[ovs-dev] [PATCH 13/27] ofp-print: Allow printing of Open Flow 1.1 & 1.2 Port Status Request Messages
Simon Horman
horms at verge.net.au
Tue Aug 21 04:55:45 UTC 2012
Signed-off-by: Simon Horman <horms at verge.net.au>
---
v12
* No change
v11
* No change
v10
* No change
v9
* Manual Rebase
* Make use of enum ofp_version
* Change title from "ofp-print: Allow display of Open Flow 1.1 & 1.2 Port Status
Request Messages" to "ofp-print: Allow printing of Open Flow 1.1 & 1.2 Port Status
Request Messages"
* Add ofp-print test
v8
* Omitted
v7
* Omitted
v6
* No change
v5
* Initial Post
---
lib/ofp-print.c | 19 +++++++++++++++++--
tests/ofp-print.at | 22 +++++++++++++++++++++-
2 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index bebb28e..735fe42 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -1089,8 +1089,23 @@ static void print_port_stat(struct ds *string, const char *leader,
static void
ofp_print_ofpst_port_request(struct ds *string, const struct ofp_header *oh)
{
- const struct ofp10_port_stats_request *psr = ofpmsg_body(oh);
- ds_put_format(string, " port_no=%"PRIu16, ntohs(psr->port_no));
+ switch ((enum ofp_version)oh->version) {
+ case OFP12_VERSION:
+ case OFP11_VERSION: {
+ const struct ofp11_port_stats_request *psr = ofpmsg_body(oh);
+ ds_put_format(string, " port_no=%"PRIu32, ntohl(psr->port_no));
+ break;
+ }
+
+ case OFP10_VERSION: {
+ const struct ofp10_port_stats_request *psr = ofpmsg_body(oh);
+ ds_put_format(string, " port_no=%"PRIu16, ntohs(psr->port_no));
+ break;
+ }
+
+ default:
+ NOT_REACHED();
+ }
}
static void
diff --git a/tests/ofp-print.at b/tests/ofp-print.at
index d8187cb..58f4d9c 100644
--- a/tests/ofp-print.at
+++ b/tests/ofp-print.at
@@ -885,7 +885,7 @@ AT_KEYWORDS([ofp-print OFPT_STATS_REPLY])
AT_CHECK([ovs-ofctl ofp-print "$(cat in)"], [0], [expout])
AT_CLEANUP
-AT_SETUP([OFPST_PORT request])
+AT_SETUP([OFPST_PORT request - 1.0])
AT_KEYWORDS([ofp-print OFPT_STATS_REQUEST])
AT_CHECK([ovs-ofctl ofp-print "\
01 10 00 14 00 00 00 01 00 04 00 00 ff ff 00 00 \
@@ -895,6 +895,26 @@ OFPST_PORT request (xid=0x1): port_no=65535
])
AT_CLEANUP
+AT_SETUP([OFPST_PORT request - 1.1])
+AT_KEYWORDS([ofp-print OFPT_STATS_REQUEST])
+AT_CHECK([ovs-ofctl ofp-print "\
+02 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \
+ff ff 00 00 00 00 00 00 \
+"], [0], [dnl
+OFPST_PORT request (OF1.1) (xid=0x2): port_no=4294901760
+])
+AT_CLEANUP
+
+AT_SETUP([OFPST_PORT request - 1.2])
+AT_KEYWORDS([ofp-print OFPT_STATS_REQUEST])
+AT_CHECK([ovs-ofctl ofp-print "\
+03 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \
+ff ff 00 00 00 00 00 00 \
+"], [0], [dnl
+OFPST_PORT request (OF1.2) (xid=0x2): port_no=4294901760
+])
+AT_CLEANUP
+
AT_SETUP([OFPST_PORT reply - OF1.0])
AT_KEYWORDS([ofp-print OFPT_STATS_REPLY])
AT_CHECK([ovs-ofctl ofp-print "\
--
1.7.10.2.484.gcd07cc5
More information about the dev
mailing list