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.

Signed-off-by: Ben Pfaff <b...@nicira.com>
---
 lib/ofp-print.c    |   14 ++++++++++++--
 tests/ofp-print.at |    6 +++---
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index b6a1e53..ab36a3b 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -1417,8 +1417,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 471a73c..b3fbb65 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-                        |........        |
 ])
-- 
1.7.2.5

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to