Skip to content

Commit

Permalink
ofp-msgs: Add function ofptype_get_name().
Browse files Browse the repository at this point in the history
An upcoming commit will make use of this.

Signed-off-by: Ben Pfaff <[email protected]>
Acked-by: Jarno Rajahalme <[email protected]>
  • Loading branch information
blp committed Jul 7, 2015
1 parent bd53aa1 commit 64795a0
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
9 changes: 9 additions & 0 deletions build-aux/extract-ofp-msgs
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ def extract_ofp_msgs(output_file_name):
if re.match('enum ofptype', line):
break

all_types = []
while True:
get_line()
if re.match(r'\s*/?\*', line) or line.isspace():
Expand Down Expand Up @@ -280,6 +281,8 @@ def extract_ofp_msgs(output_file_name):
% (raw, all_raws[raw]["ofptype"]))
all_raws[raw]["ofptype"] = ofptype

all_types.append(all_raws[raws[0]]["human_name"])

input_file.close()

if n_errors:
Expand Down Expand Up @@ -346,6 +349,12 @@ def extract_ofp_msgs(output_file_name):
% r["human_name"])
output.append("};")

output.append("");
output.append("static const char *type_names[] = {");
for t in all_types:
output.append(" \"%s\"," % t)
output.append("};")

if n_errors:
sys.exit(1)

Expand Down
9 changes: 8 additions & 1 deletion lib/ofp-msgs.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2013, 2014 Nicira, Inc.
* Copyright (c) 2012, 2013, 2014, 2015 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -824,6 +824,13 @@ ofptype_from_ofpraw(enum ofpraw raw)
{
return raw_info_get(raw)->type;
}

const char *
ofptype_get_name(enum ofptype type)
{
ovs_assert(type < ARRAY_SIZE(type_names));
return type_names[type];
}

/* Updates the 'length' field of the OpenFlow message in 'buf' to
* 'buf->size'. */
Expand Down
5 changes: 4 additions & 1 deletion lib/ofp-msgs.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012, 2013, 2014 Nicira, Inc.
* Copyright (c) 2012, 2013, 2014, 2015 Nicira, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -653,6 +653,9 @@ enum ofptype {
enum ofperr ofptype_decode(enum ofptype *, const struct ofp_header *);
enum ofperr ofptype_pull(enum ofptype *, struct ofpbuf *);
enum ofptype ofptype_from_ofpraw(enum ofpraw);

/* Information about OFTYPE_* values. */
const char *ofptype_get_name(enum ofptype);

/* OpenFlow message properties. */
void ofpmsg_update_length(struct ofpbuf *);
Expand Down

0 comments on commit 64795a0

Please sign in to comment.