ofp-print: Change "table_id" to "table" in flow_mod and flow_stats.
[openvswitch] / lib / ofp-print.c
index 65dea728b399b1888b0756059e16ae7cfcd4c36f..7b5e456fd8f58c1a7a689713672237d0fa140ed6 100644 (file)
@@ -123,7 +123,7 @@ ofp_print_packet_in(struct ds *string, const struct ofp_packet_in *op,
 
     data_len = len - offsetof(struct ofp_packet_in, data);
     ds_put_format(string, " data_len=%zu", data_len);
-    if (htonl(op->buffer_id) == UINT32_MAX) {
+    if (op->buffer_id == htonl(UINT32_MAX)) {
         ds_put_format(string, " (unbuffered)");
         if (ntohs(op->total_len) != data_len)
             ds_put_format(string, " (***total_len != data_len***)");
@@ -210,8 +210,7 @@ nx_action_len(enum nx_action_subtype subtype)
     case NXAST_SNAT__OBSOLETE: return -1;
     case NXAST_RESUBMIT: return sizeof(struct nx_action_resubmit);
     case NXAST_SET_TUNNEL: return sizeof(struct nx_action_set_tunnel);
-    case NXAST_DROP_SPOOFED_ARP:
-        return sizeof(struct nx_action_drop_spoofed_arp);
+    case NXAST_DROP_SPOOFED_ARP__OBSOLETE: return -1;
     case NXAST_SET_QUEUE: return sizeof(struct nx_action_set_queue);
     case NXAST_POP_QUEUE: return sizeof(struct nx_action_pop_queue);
     case NXAST_REG_MOVE: return sizeof(struct nx_action_reg_move);
@@ -259,10 +258,6 @@ ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah)
             ds_put_format(string, "set_tunnel:%#"PRIx32, ntohl(nast->tun_id));
             return;
 
-        case NXAST_DROP_SPOOFED_ARP:
-            ds_put_cstr(string, "drop_spoofed_arp");
-            return;
-
         case NXAST_SET_QUEUE:
             nasq = (struct nx_action_set_queue *)nah;
             ds_put_format(string, "set_queue:%u", ntohl(nasq->queue_id));
@@ -307,6 +302,7 @@ ofp_print_nx_action(struct ds *string, const struct nx_action_header *nah)
             return;
 
         case NXAST_SNAT__OBSOLETE:
+        case NXAST_DROP_SPOOFED_ARP__OBSOLETE:
         default:
             break;
         }
@@ -722,7 +718,7 @@ static void print_wild(struct ds *string, const char *leader, int is_wild,
 }
 
 static void
-print_ip_netmask(struct ds *string, const char *leader, uint32_t ip,
+print_ip_netmask(struct ds *string, const char *leader, ovs_be32 ip,
                  uint32_t wild_bits, int verbosity)
 {
     if (wild_bits >= 32 && verbosity < 2) {
@@ -834,7 +830,7 @@ ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh,
     bool need_priority;
     int error;
 
-    error = ofputil_decode_flow_mod(&fm, oh);
+    error = ofputil_decode_flow_mod(&fm, oh, true);
     if (error) {
         ofp_print_error(s, error);
         return;
@@ -860,6 +856,9 @@ ofp_print_flow_mod(struct ds *s, const struct ofp_header *oh,
     default:
         ds_put_format(s, "cmd:%d", fm.command);
     }
+    if (fm.table_id != 0) {
+        ds_put_format(s, " table:%d", fm.table_id);
+    }
 
     ds_put_char(s, ' ');
     if (verbosity >= 3 && code == OFPUTIL_OFPT_FLOW_MOD) {
@@ -1044,10 +1043,8 @@ ofp_print_port_status(struct ds *string, const struct ofp_port_status *ops)
 }
 
 static void
-ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_header *oh)
+ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_desc_stats *ods)
 {
-    const struct ofp_desc_stats *ods = ofputil_stats_body(oh);
-
     ds_put_char(string, '\n');
     ds_put_format(string, "Manufacturer: %.*s\n",
             (int) sizeof ods->mfr_desc, ods->mfr_desc);
@@ -1062,19 +1059,20 @@ ofp_print_ofpst_desc_reply(struct ds *string, const struct ofp_header *oh)
 }
 
 static void
-ofp_print_flow_stats_request(struct ds *string, const struct ofp_header *oh)
+ofp_print_flow_stats_request(struct ds *string,
+                             const struct ofp_stats_msg *osm)
 {
     struct flow_stats_request fsr;
     int error;
 
-    error = ofputil_decode_flow_stats_request(&fsr, oh);
+    error = ofputil_decode_flow_stats_request(&fsr, &osm->header);
     if (error) {
         ofp_print_error(string, error);
         return;
     }
 
     if (fsr.table_id != 0xff) {
-        ds_put_format(string, " table_id=%"PRIu8, fsr.table_id);
+        ds_put_format(string, " table=%"PRIu8, fsr.table_id);
     }
 
     if (fsr.out_port != OFPP_NONE) {
@@ -1113,7 +1111,7 @@ ofp_print_flow_stats_reply(struct ds *string, const struct ofp_header *oh)
         ds_put_format(string, " cookie=0x%"PRIx64", duration=",
                       ntohll(fs.cookie));
         ofp_print_duration(string, fs.duration_sec, fs.duration_nsec);
-        ds_put_format(string, ", table_id=%"PRIu8", ", fs.table_id);
+        ds_put_format(string, ", table=%"PRIu8", ", fs.table_id);
         ds_put_format(string, "n_packets=%"PRIu64", ", fs.packet_count);
         ds_put_format(string, "n_bytes=%"PRIu64", ", fs.byte_count);
         if (fs.idle_timeout != OFP_FLOW_PERMANENT) {
@@ -1132,8 +1130,8 @@ ofp_print_flow_stats_reply(struct ds *string, const struct ofp_header *oh)
 }
 
 static void
-ofp_print_ofp_aggregate_stats_reply (
-    struct ds *string, const struct ofp_aggregate_stats_reply *asr)
+ofp_print_ofpst_aggregate_reply(struct ds *string,
+                                const struct ofp_aggregate_stats_reply *asr)
 {
     ds_put_format(string, " packet_count=%"PRIu64,
                   ntohll(get_32aligned_be64(&asr->packet_count)));
@@ -1142,17 +1140,13 @@ ofp_print_ofp_aggregate_stats_reply (
     ds_put_format(string, " flow_count=%"PRIu32, ntohl(asr->flow_count));
 }
 
-static void
-ofp_print_ofpst_aggregate_reply(struct ds *string, const struct ofp_header *oh)
-{
-    ofp_print_ofp_aggregate_stats_reply(string, ofputil_stats_body(oh));
-}
-
 static void
 ofp_print_nxst_aggregate_reply(struct ds *string,
                                const struct nx_aggregate_stats_reply *nasr)
 {
-    ofp_print_ofp_aggregate_stats_reply(string, &nasr->asr);
+    ds_put_format(string, " packet_count=%"PRIu64, ntohll(nasr->packet_count));
+    ds_put_format(string, " byte_count=%"PRIu64, ntohll(nasr->byte_count));
+    ds_put_format(string, " flow_count=%"PRIu32, ntohl(nasr->flow_count));
 }
 
 static void print_port_stat(struct ds *string, const char *leader,
@@ -1174,9 +1168,9 @@ 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)
+ofp_print_ofpst_port_request(struct ds *string,
+                             const struct ofp_port_stats_request *psr)
 {
-    const struct ofp_port_stats_request *psr = ofputil_stats_body(oh);
     ds_put_format(string, " port_no=%"PRIu16, ntohs(psr->port_no));
 }
 
@@ -1250,10 +1244,9 @@ ofp_print_queue_name(struct ds *string, uint32_t queue_id)
 }
 
 static void
-ofp_print_ofpst_queue_request(struct ds *string, const struct ofp_header *oh)
+ofp_print_ofpst_queue_request(struct ds *string,
+                              const struct ofp_queue_stats_request *qsr)
 {
-    const struct ofp_queue_stats_request *qsr = ofputil_stats_body(oh);
-
     ds_put_cstr(string, "port=");
     ofp_print_port_name(string, ntohs(qsr->port_no));
 
@@ -1288,8 +1281,7 @@ ofp_print_ofpst_queue_reply(struct ds *string, const struct ofp_header *oh,
 static void
 ofp_print_stats_request(struct ds *string, const struct ofp_header *oh)
 {
-    const struct ofp_stats_request *srq
-        = (const struct ofp_stats_request *) oh;
+    const struct ofp_stats_msg *srq = (const struct ofp_stats_msg *) oh;
 
     if (srq->flags) {
         ds_put_format(string, " ***unknown flags 0x%04"PRIx16"***",
@@ -1300,7 +1292,7 @@ ofp_print_stats_request(struct ds *string, const struct ofp_header *oh)
 static void
 ofp_print_stats_reply(struct ds *string, const struct ofp_header *oh)
 {
-    const struct ofp_stats_reply *srp = (const struct ofp_stats_reply *) oh;
+    const struct ofp_stats_msg *srp = (const struct ofp_stats_msg *) oh;
 
     if (srp->flags) {
         uint16_t flags = ntohs(srp->flags);
@@ -1346,6 +1338,13 @@ ofp_print_nxt_role_message(struct ds *string,
     }
 }
 
+static void
+ofp_print_nxt_flow_mod_table_id(struct ds *string,
+                                const struct nxt_flow_mod_table_id *nfmti)
+{
+    ds_put_format(string, " %s", nfmti->set ? "enable" : "disable");
+}
+
 static void
 ofp_print_nxt_set_flow_format(struct ds *string,
                               const struct nxt_set_flow_format *nsff)
@@ -1449,7 +1448,7 @@ ofp_to_string__(const struct ofp_header *oh,
     case OFPUTIL_OFPST_AGGREGATE_REQUEST:
     case OFPUTIL_NXST_AGGREGATE_REQUEST:
         ofp_print_stats_request(string, oh);
-        ofp_print_flow_stats_request(string, oh);
+        ofp_print_flow_stats_request(string, msg);
         break;
 
     case OFPUTIL_OFPST_TABLE_REQUEST:
@@ -1458,17 +1457,17 @@ ofp_to_string__(const struct ofp_header *oh,
 
     case OFPUTIL_OFPST_PORT_REQUEST:
         ofp_print_stats_request(string, oh);
-        ofp_print_ofpst_port_request(string, oh);
+        ofp_print_ofpst_port_request(string, msg);
         break;
 
     case OFPUTIL_OFPST_QUEUE_REQUEST:
         ofp_print_stats_request(string, oh);
-        ofp_print_ofpst_queue_request(string, oh);
+        ofp_print_ofpst_queue_request(string, msg);
         break;
 
     case OFPUTIL_OFPST_DESC_REPLY:
         ofp_print_stats_reply(string, oh);
-        ofp_print_ofpst_desc_reply(string, oh);
+        ofp_print_ofpst_desc_reply(string, msg);
         break;
 
     case OFPUTIL_OFPST_FLOW_REPLY:
@@ -1494,7 +1493,7 @@ ofp_to_string__(const struct ofp_header *oh,
 
     case OFPUTIL_OFPST_AGGREGATE_REPLY:
         ofp_print_stats_reply(string, oh);
-        ofp_print_ofpst_aggregate_reply(string, oh);
+        ofp_print_ofpst_aggregate_reply(string, msg);
         break;
 
     case OFPUTIL_NXT_ROLE_REQUEST:
@@ -1502,6 +1501,10 @@ ofp_to_string__(const struct ofp_header *oh,
         ofp_print_nxt_role_message(string, msg);
         break;
 
+    case OFPUTIL_NXT_FLOW_MOD_TABLE_ID:
+        ofp_print_nxt_flow_mod_table_id(string, msg);
+        break;
+
     case OFPUTIL_NXT_SET_FLOW_FORMAT:
         ofp_print_nxt_set_flow_format(string, msg);
         break;