Add bsn_switch_pipeline extension.
diff --git a/c_gen/c_test_gen.py b/c_gen/c_test_gen.py
index 6068716..83fa4a3 100644
--- a/c_gen/c_test_gen.py
+++ b/c_gen/c_test_gen.py
@@ -129,7 +129,12 @@
             m_name == "subtype")):
         return True
 
-    if (cls in ["of_bsn_lacp_stats_request", "of_bsn_lacp_stats_reply"] and (
+    classes = ["of_bsn_lacp_stats_request",
+               "of_bsn_lacp_stats_reply",
+               "of_bsn_switch_pipeline_stats_request",
+               "of_bsn_switch_pipeline_stats_reply"]
+
+    if (cls in classes and (
             m_name == "experimenter" or
             m_name == "subtype")):
         return True
diff --git a/c_gen/templates/loci_show.h b/c_gen/templates/loci_show.h
index c61866c..70f18d5 100644
--- a/c_gen/templates/loci_show.h
+++ b/c_gen/templates/loci_show.h
@@ -194,6 +194,7 @@
 #define LOCI_SHOW_desc_str_sw_desc(writer, cookie, val) LOCI_SHOW_desc_str(writer, cookie, val)
 #define LOCI_SHOW_ser_num_serial_num(writer, cookie, val) LOCI_SHOW_ser_num(writer, cookie, val)
 #define LOCI_SHOW_desc_str_dp_desc(writer, cookie, val) LOCI_SHOW_desc_str(writer, cookie, val)
+#define LOCI_SHOW_desc_str_pipeline(writer, cookie, val) LOCI_SHOW_desc_str(writer, cookie, val)
 #define LOCI_SHOW_octets_data(writer, cookie, val) LOCI_SHOW_octets(writer, cookie, val)
 #define LOCI_SHOW_u16_err_type(writer, cookie, val) LOCI_SHOW_u16(writer, cookie, val)
 #define LOCI_SHOW_u16_code(writer, cookie, val) LOCI_SHOW_u16(writer, cookie, val)
diff --git a/c_gen/type_maps.py b/c_gen/type_maps.py
index 480eb29..d22e7bc 100644
--- a/c_gen/type_maps.py
+++ b/c_gen/type_maps.py
@@ -456,6 +456,7 @@
     "of_table_features_stats_reply",
     "of_bsn_stats_reply",
     "of_bsn_lacp_stats_reply",
+    "of_bsn_switch_pipeline_stats_reply",
 ]
 
 stats_request_list = [
@@ -476,6 +477,7 @@
     "of_table_features_stats_request",
     "of_bsn_stats_request",
     "of_bsn_lacp_stats_request",
+    "of_bsn_switch_pipeline_stats_request",
 ]
 
 flow_mod_list = [