netlink-socket: Fix handling socket allocation failure in nl_dump_start().
[cascardo/ovs.git] / lib / ofp-print.c
index ba808af..790d586 100644 (file)
@@ -545,6 +545,7 @@ ofp_print_switch_features(struct ds *string, const struct ofp_header *oh)
         break;
     case OFP13_VERSION:
     case OFP14_VERSION:
+    case OFP15_VERSION:
         return; /* no ports in ofp13_switch_features */
     default:
         OVS_NOT_REACHED();
@@ -1802,6 +1803,7 @@ ofp_print_ofpst_table_reply(struct ds *string, const struct ofp_header *oh,
                             int verbosity)
 {
     switch ((enum ofp_version)oh->version) {
+    case OFP15_VERSION:
     case OFP14_VERSION:
     case OFP13_VERSION:
         ofp_print_ofpst_table_reply13(string, oh, verbosity);
@@ -1897,6 +1899,23 @@ ofp_print_ofpst_queue_reply(struct ds *string, const struct ofp_header *oh,
     }
 }
 
+static void
+ofp_print_ofpst_port_desc_request(struct ds *string,
+                                  const struct ofp_header *oh)
+{
+    enum ofperr error;
+    ofp_port_t port;
+
+    error = ofputil_decode_port_desc_stats_request(oh, &port);
+    if (error) {
+        ofp_print_error(string, error);
+        return;
+    }
+
+    ds_put_cstr(string, " port=");
+    ofputil_format_port(port, string);
+}
+
 static void
 ofp_print_ofpst_port_desc_reply(struct ds *string,
                                 const struct ofp_header *oh)
@@ -2303,6 +2322,9 @@ ofp_print_version(const struct ofp_header *oh,
     case OFP14_VERSION:
         ds_put_cstr(string, " (OF1.4)");
         break;
+    case OFP15_VERSION:
+        ds_put_cstr(string, " (OF1.5)");
+        break;
     default:
         ds_put_format(string, " (OF 0x%02"PRIx8")", oh->version);
         break;
@@ -2350,6 +2372,15 @@ ofp_print_group(struct ds *s, uint32_t group_id, uint8_t type,
     }
 }
 
+static void
+ofp_print_ofpst_group_desc_request(struct ds *string,
+                                   const struct ofp_header *oh)
+{
+    uint32_t group_id = ofputil_decode_group_desc_request(oh);
+    ds_put_cstr(string, " group_id=");
+    ofputil_format_group(group_id, string);
+}
+
 static void
 ofp_print_group_desc(struct ds *s, const struct ofp_header *oh)
 {
@@ -2777,6 +2808,7 @@ ofp_to_string__(const struct ofp_header *oh, enum ofpraw raw,
 
     case OFPTYPE_GROUP_DESC_STATS_REQUEST:
         ofp_print_stats_request(string, oh);
+        ofp_print_ofpst_group_desc_request(string, oh);
         break;
 
     case OFPTYPE_GROUP_DESC_STATS_REPLY:
@@ -2902,7 +2934,6 @@ ofp_to_string__(const struct ofp_header *oh, enum ofpraw raw,
         break;
 
     case OFPTYPE_DESC_STATS_REQUEST:
-    case OFPTYPE_PORT_DESC_STATS_REQUEST:
     case OFPTYPE_METER_FEATURES_STATS_REQUEST:
         ofp_print_stats_request(string, oh);
         break;
@@ -2957,6 +2988,11 @@ ofp_to_string__(const struct ofp_header *oh, enum ofpraw raw,
         ofp_print_aggregate_stats_reply(string, oh);
         break;
 
+    case OFPTYPE_PORT_DESC_STATS_REQUEST:
+        ofp_print_stats_request(string, oh);
+        ofp_print_ofpst_port_desc_request(string, oh);
+        break;
+
     case OFPTYPE_PORT_DESC_STATS_REPLY:
         ofp_print_stats_reply(string, oh);
         ofp_print_ofpst_port_desc_reply(string, oh);