From: Ben Pfaff Date: Wed, 15 Feb 2012 23:28:25 +0000 (-0800) Subject: ofp-print: Print OpenFlow version number of message, unless it's 1.0. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3811e66bb6e6ea4d56271f6061495b89fdd547bd;p=openvswitch ofp-print: Print OpenFlow version number of message, unless it's 1.0. The version number is an important part of the OpenFlow message's meaning, so include it. Version 1.0 is grandfathered in so existing output parsers don't have to change. Reviewed-by: Simon Horman Signed-off-by: Ben Pfaff --- diff --git a/lib/ofp-print.c b/lib/ofp-print.c index b1f46df8..c5312a38 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -1424,8 +1424,18 @@ ofp_to_string__(const struct ofp_header *oh, enum ofputil_msg_code code; const void *msg = oh; - ds_put_format(string, "%s (xid=0x%"PRIx32"):", - ofputil_msg_type_name(type), ntohl(oh->xid)); + ds_put_cstr(string, ofputil_msg_type_name(type)); + switch (oh->version) { + case OFP10_VERSION: + break; + case OFP11_VERSION: + ds_put_cstr(string, " (OF1.1)"); + break; + default: + ds_put_format(string, " (OF 0x%02"PRIx8")", oh->version); + break; + } + ds_put_format(string, " (xid=0x%"PRIx32"):", ntohl(oh->xid)); code = ofputil_msg_type_code(type); switch (code) { diff --git a/tests/ofp-print.at b/tests/ofp-print.at index 6d17d01c..46b16175 100644 --- a/tests/ofp-print.at +++ b/tests/ofp-print.at @@ -68,7 +68,7 @@ AT_CLEANUP AT_SETUP([OFPT_ERROR with type OFPET_HELLO_FAILED - OF1.1]) AT_KEYWORDS([ofp-print]) AT_CHECK([ovs-ofctl ofp-print 020100170000000000000001657874726120646174610a], [0], [dnl -OFPT_ERROR (xid=0x0): OFPHFC_EPERM +OFPT_ERROR (OF1.1) (xid=0x0): OFPHFC_EPERM extra data\012 ]) AT_CLEANUP @@ -93,7 +93,7 @@ AT_CLEANUP AT_SETUP([OFPT_ERROR with code NXBRC_NXM_BAD_PREREQ - OF1.1]) AT_KEYWORDS([ofp-print]) AT_CHECK([ovs-ofctl ofp-print '0201001c55555555 b0c20000 0000232000010104 0102000811111111'], [0], [dnl -OFPT_ERROR (xid=0x55555555): NXBRC_NXM_BAD_PREREQ +OFPT_ERROR (OF1.1) (xid=0x55555555): NXBRC_NXM_BAD_PREREQ OFPT_ECHO_REQUEST (xid=0x11111111): 0 bytes of payload ]) AT_CLEANUP @@ -111,7 +111,7 @@ AT_CLEANUP AT_SETUP([OFPT_ERROR with type OFPBIC_UNSUP_INST - OF1.1]) AT_KEYWORDS([ofp-print]) AT_CHECK([ovs-ofctl ofp-print 02010014000000000003000102bbccddeeff0011], [0], [dnl -OFPT_ERROR (xid=0x0): OFPBIC_UNSUP_INST +OFPT_ERROR (OF1.1) (xid=0x0): OFPBIC_UNSUP_INST (***truncated to 8 bytes from 52445***) 00000000 02 bb cc dd ee ff 00 11- |........ | ])