[ovs-dev] [PATCH] ofp-print.c: Fix remaining port number prints.

Jarno Rajahalme jarno.rajahalme at nsn.com
Mon Jan 14 12:43:53 UTC 2013


Use ofputil_format_port() to print port numbers so that special ports
will be printed out as symbolic names (e.g., LOCAL) instead of numbers.


Signed-off-by: Jarno Rajahalme <jarno.rajahalme at nsn.com>
---
 lib/ofp-print.c    |   42 ++++++++++++++++++++++++++++++++----------
 tests/ofp-print.at |   12 ++++++------
 tests/ofproto.at   |    4 ++--
 3 files changed, 40 insertions(+), 18 deletions(-)

diff --git a/lib/ofp-print.c b/lib/ofp-print.c
index 8ad406d..6dd55a9 100644
--- a/lib/ofp-print.c
+++ b/lib/ofp-print.c
@@ -569,6 +569,21 @@ static void print_wild(struct ds *string, const char *leader, int is_wild,
     ds_put_char(string, ',');
 }
 
+static void print_wild_port(struct ds *string, const char *leader, int is_wild,
+                            int verbosity, uint16_t port)
+{
+    if (is_wild && verbosity < 2) {
+        return;
+    }
+    ds_put_cstr(string, leader);
+    if (!is_wild) {
+        ofputil_format_port(port, string);
+    } else {
+        ds_put_char(string, '*');
+    }
+    ds_put_char(string, ',');
+}
+
 static void
 print_ip_netmask(struct ds *string, const char *leader, ovs_be32 ip,
                  uint32_t wild_bits, int verbosity)
@@ -630,8 +645,8 @@ ofp10_match_to_string(const struct ofp10_match *om, int verbosity)
             skip_type = false;
         }
     }
-    print_wild(&f, "in_port=", w & OFPFW10_IN_PORT, verbosity,
-               "%d", ntohs(om->in_port));
+    print_wild_port(&f, "in_port=", w & OFPFW10_IN_PORT, verbosity,
+                    ntohs(om->in_port));
     print_wild(&f, "dl_vlan=", w & OFPFW10_DL_VLAN, verbosity,
                "%d", ntohs(om->dl_vlan));
     print_wild(&f, "dl_vlan_pcp=", w & OFPFW10_DL_VLAN_PCP, verbosity,
@@ -896,20 +911,22 @@ ofp_print_port_mod(struct ds *string, const struct ofp_header *oh)
         return;
     }
 
-    ds_put_format(string, "port: %"PRIu16": addr:"ETH_ADDR_FMT"\n",
-                  pm.port_no, ETH_ADDR_ARGS(pm.hw_addr));
+    ds_put_cstr(string, "port: ");
+    ofputil_format_port(pm.port_no, string);
+    ds_put_format(string, ": addr:"ETH_ADDR_FMT"\n",
+                  ETH_ADDR_ARGS(pm.hw_addr));
 
-    ds_put_format(string, "     config: ");
+    ds_put_cstr(string, "     config: ");
     ofp_print_port_config(string, pm.config);
 
-    ds_put_format(string, "     mask:   ");
+    ds_put_cstr(string, "     mask:   ");
     ofp_print_port_config(string, pm.mask);
 
-    ds_put_format(string, "     advertise: ");
+    ds_put_cstr(string, "     advertise: ");
     if (pm.advertise) {
         ofp_print_port_features(string, pm.advertise);
     } else {
-        ds_put_format(string, "UNCHANGED\n");
+        ds_put_cstr(string, "UNCHANGED\n");
     }
 }
 
@@ -1135,7 +1152,8 @@ ofp_print_ofpst_port_request(struct ds *string, const struct ofp_header *oh)
         return;
     }
 
-    ds_put_format(string, " port_no=%2"PRIu16, ofp10_port);
+    ds_put_cstr(string, " port_no=");
+    ofputil_format_port(ofp10_port, string);
 }
 
 static void
@@ -1162,7 +1180,11 @@ ofp_print_ofpst_port_reply(struct ds *string, const struct ofp_header *oh,
             return;
         }
 
-        ds_put_format(string, "  port %2"PRIu16, ps.port_no);
+        ds_put_cstr(string, "  port ");
+        if (ps.port_no < 10) {
+            ds_put_char(string, ' ');
+        }
+        ofputil_format_port(ps.port_no, string);
 
         ds_put_cstr(string, ": rx ");
         print_port_stat(string, "pkts=", ps.stats.rx_packets, 1);
diff --git a/tests/ofp-print.at b/tests/ofp-print.at
index a8adda2..4021291 100644
--- a/tests/ofp-print.at
+++ b/tests/ofp-print.at
@@ -1180,7 +1180,7 @@ AT_CHECK([ovs-ofctl ofp-print "\
 01 10 00 14 00 00 00 01 00 04 00 00 ff ff 00 00 \
 00 00 00 00 \
 "], [0], [dnl
-OFPST_PORT request (xid=0x1): port_no=65535
+OFPST_PORT request (xid=0x1): port_no=ANY
 ])
 AT_CLEANUP
 
@@ -1190,7 +1190,7 @@ AT_CHECK([ovs-ofctl ofp-print "\
 02 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \
 ff ff ff ff 00 00 00 00 \
 "], [0], [dnl
-OFPST_PORT request (OF1.1) (xid=0x2): port_no=65535
+OFPST_PORT request (OF1.1) (xid=0x2): port_no=ANY
 ])
 AT_CLEANUP
 
@@ -1200,7 +1200,7 @@ AT_CHECK([ovs-ofctl ofp-print "\
 03 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \
 ff ff ff ff 00 00 00 00 \
 "], [0], [dnl
-OFPST_PORT request (OF1.2) (xid=0x2): port_no=65535
+OFPST_PORT request (OF1.2) (xid=0x2): port_no=ANY
 ])
 AT_CLEANUP
 
@@ -1210,7 +1210,7 @@ AT_CHECK([ovs-ofctl ofp-print "\
 04 12 00 18 00 00 00 02 00 04 00 00 00 00 00 00 \
 ff ff ff ff 00 00 00 00 \
 "], [0], [dnl
-OFPST_PORT request (OF1.3) (xid=0x2): port_no=65535
+OFPST_PORT request (OF1.3) (xid=0x2): port_no=ANY
 ])
 AT_CLEANUP
 
@@ -1248,7 +1248,7 @@ AT_CHECK([ovs-ofctl ofp-print "\
 OFPST_PORT reply (xid=0x1): 4 ports
   port  3: rx pkts=19744, bytes=1007694, drop=0, errs=0, frame=0, over=0, crc=0
            tx pkts=5170, bytes=356796, drop=0, errs=0, coll=0
-  port 65534: rx pkts=684, bytes=68748, drop=0, errs=0, frame=0, over=0, crc=0
+  port LOCAL: rx pkts=684, bytes=68748, drop=0, errs=0, frame=0, over=0, crc=0
            tx pkts=501, bytes=56092, drop=0, errs=0, coll=0
   port  2: rx pkts=1726, bytes=144564, drop=0, errs=0, frame=0, over=0, crc=0
            tx pkts=1412, bytes=140244, drop=0, errs=0, coll=0
@@ -1285,7 +1285,7 @@ AT_CHECK([ovs-ofctl ofp-print "\
 OFPST_PORT reply (OF1.2) (xid=0x2): 3 ports
   port  2: rx pkts=103766, bytes=39651480, drop=0, errs=0, frame=0, over=0, crc=0
            tx pkts=136, bytes=11512, drop=0, errs=0, coll=0
-  port 65534: rx pkts=68, bytes=5756, drop=0, errs=0, frame=0, over=0, crc=0
+  port LOCAL: rx pkts=68, bytes=5756, drop=0, errs=0, frame=0, over=0, crc=0
            tx pkts=40236, bytes=18757188, drop=0, errs=0, coll=0
   port  1: rx pkts=68, bytes=5756, drop=0, errs=0, frame=0, over=0, crc=0
            tx pkts=40236, bytes=18757188, drop=0, errs=0, coll=0
diff --git a/tests/ofproto.at b/tests/ofproto.at
index fe68363..45aa549 100644
--- a/tests/ofproto.at
+++ b/tests/ofproto.at
@@ -61,7 +61,7 @@ OVS_VSWITCHD_START
 AT_CHECK([ovs-ofctl -vwarn dump-ports br0], [0], [stdout])
 AT_CHECK([STRIP_XIDS stdout], [0], [dnl
 OFPST_PORT reply: 1 ports
-  port 65534: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
+  port LOCAL: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
            tx pkts=0, bytes=0, drop=0, errs=0, coll=0
 ])
 OVS_VSWITCHD_STOP
@@ -72,7 +72,7 @@ OVS_VSWITCHD_START
 AT_CHECK([ovs-ofctl -O OpenFlow12 -vwarn dump-ports br0], [0], [stdout])
 AT_CHECK([STRIP_XIDS stdout], [0], [dnl
 OFPST_PORT reply (OF1.2): 1 ports
-  port 65534: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
+  port LOCAL: rx pkts=0, bytes=0, drop=0, errs=0, frame=0, over=0, crc=0
            tx pkts=0, bytes=0, drop=0, errs=0, coll=0
 ])
 OVS_VSWITCHD_STOP
-- 
1.7.10.4




More information about the dev mailing list