Fixes bsn_switch_pipeline.
diff --git a/c_gen/c_type_maps.py b/c_gen/c_type_maps.py
index 024de52..43cd4a8 100644
--- a/c_gen/c_type_maps.py
+++ b/c_gen/c_type_maps.py
@@ -1071,6 +1071,11 @@
                 of_message_stats_experimenter_id_set(msg, OF_EXPERIMENTER_ID_BSN);
                 of_message_stats_experimenter_subtype_set(msg, 1);
                 break;
+            case OF_BSN_SWITCH_PIPELINE_STATS_REQUEST:
+            case OF_BSN_SWITCH_PIPELINE_STATS_REPLY:
+                of_message_stats_experimenter_id_set(msg, OF_EXPERIMENTER_ID_BSN);
+                of_message_stats_experimenter_subtype_set(msg, 6);
+                break;
             default:
                 break;
             }
diff --git a/c_gen/templates/of_type_maps.c b/c_gen/templates/of_type_maps.c
index a48bdf8..fa3e05c 100644
--- a/c_gen/templates/of_type_maps.c
+++ b/c_gen/templates/of_type_maps.c
@@ -870,6 +870,7 @@
     case OF_EXPERIMENTER_ID_BSN:
         switch (subtype) {
         case 1: return OF_BSN_LACP_STATS_REQUEST;
+        case 6: return OF_BSN_SWITCH_PIPELINE_STATS_REQUEST;
         }
     }
     return OF_OBJECT_INVALID;
@@ -882,6 +883,7 @@
     case OF_EXPERIMENTER_ID_BSN:
         switch (subtype) {
         case 1: return OF_BSN_LACP_STATS_REPLY;
+        case 6: return OF_BSN_SWITCH_PIPELINE_STATS_REPLY;
         }
     }
     return OF_OBJECT_INVALID;
diff --git a/c_gen/type_maps.py b/c_gen/type_maps.py
index d22e7bc..14e7048 100644
--- a/c_gen/type_maps.py
+++ b/c_gen/type_maps.py
@@ -268,7 +268,8 @@
         table_features = 12,
         port_desc = 13,
         experimenter = 0xffff,
-        bsn_lacp = 0xffff
+        bsn_lacp = 0xffff,
+        bsn_switch_pipeline = 0xffff
         )
     }
 
diff --git a/openflow_input/bsn_switch_pipeline b/openflow_input/bsn_switch_pipeline
index f8037e6..ff2213f 100644
--- a/openflow_input/bsn_switch_pipeline
+++ b/openflow_input/bsn_switch_pipeline
@@ -74,23 +74,23 @@
     uint8_t type == 18;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type == 6;
+    uint16_t stats_type == 0xffff;
     enum ofp_stats_request_flags flags;
     pad(4);
     uint32_t experimenter == 0x5c16c7;
-    uint32_t subtype == 1;
+    uint32_t subtype == 6;
 };
 
-struct of_bsn_switch_pipeline_stats_reply : of_bsn_stats_request {
+struct of_bsn_switch_pipeline_stats_reply : of_bsn_stats_reply {
     uint8_t version;
     uint8_t type == 19;
     uint16_t length;
     uint32_t xid;
-    uint16_t stats_type == 6;
-    enum ofp_stats_request_flags flags;
+    uint16_t stats_type == 0xffff;
+    enum ofp_stats_reply_flags flags;
     pad(4);
     uint32_t experimenter == 0x5c16c7;
-    uint32_t subtype == 1;
+    uint32_t subtype == 6;
     list(of_bsn_switch_pipeline_stats_entry_t) entries;
 };