Extensions added as per new OVS NSH patch

Change-Id: Iae1d9db03dea20120d9c689ea25d262104e937e4
diff --git a/openflow_input/nicira_set_nsh b/openflow_input/nicira_set_nsh
index 04bee49..ec29cc2 100644
--- a/openflow_input/nicira_set_nsh
+++ b/openflow_input/nicira_set_nsh
@@ -27,56 +27,20 @@
 
 #version any
 
-struct of_action_nicira_set_nsp : of_action_nicira {
+struct of_action_nicira_push_nsh : of_action_nicira {
     uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter == 0x2320;
-    uint16_t subtype == 32;
+    uint16_t subtype == 38;
     pad(2);
-    uint32_t nsp;
+    pad(4);
 };
 
-struct of_action_nicira_set_nsi : of_action_nicira {
+struct of_action_nicira_pop_nsh : of_action_nicira {
     uint16_t type == 65535;
     uint16_t len;
     uint32_t experimenter == 0x2320;
-    uint16_t subtype == 33;
-    uint8_t nsi;
-    pad(5);
-};
-
-struct of_action_nicira_set_nshc1 : of_action_nicira {
-    uint16_t type == 65535;
-    uint16_t len;
-    uint32_t experimenter == 0x2320;
-    uint16_t subtype == 34;
+    uint16_t subtype == 39;
     pad(2);
-    uint32_t nshc1;
-};
-
-struct of_action_nicira_set_nshc2 : of_action_nicira {
-    uint16_t type == 65535;
-    uint16_t len;
-    uint32_t experimenter == 0x2320;
-    uint16_t subtype == 35;
-    pad(2);
-    uint32_t nshc2;
-};
-
-struct of_action_nicira_set_nshc3 : of_action_nicira {
-    uint16_t type == 65535;
-    uint16_t len;
-    uint32_t experimenter == 0x2320;
-    uint16_t subtype == 36;
-    pad(2);
-    uint32_t nshc3;
-};
-
-struct of_action_nicira_set_nshc4 : of_action_nicira {
-    uint16_t type == 65535;
-    uint16_t len;
-    uint32_t experimenter == 0x2320;
-    uint16_t subtype == 37;
-    pad(2);
-    uint32_t nshc4;
+    pad(4);
 };
diff --git a/openflow_input/oxm_nicira_nsh b/openflow_input/oxm_nicira_nsh
index eb32b4d..2ab12e8 100644
--- a/openflow_input/oxm_nicira_nsh
+++ b/openflow_input/oxm_nicira_nsh
@@ -29,75 +29,141 @@
 #version 4
 #version 5
 
-// Nicira extension for nsh_spi (37)
-struct of_oxm_nsh_spi : of_oxm {
-    uint32_t type_len == 0x00014a04;
+// Nicira extension for nsp (113)
+struct of_oxm_nsp : of_oxm {
+    uint32_t type_len == 0x0001e204;
     uint32_t value;
 };
 
-struct of_oxm_nsh_spi_masked : of_oxm {
-    uint32_t type_len == 0x00014b08;
+struct of_oxm_nsp_masked : of_oxm {
+    uint32_t type_len == 0x0001e308;
     uint32_t value;
     uint32_t value_mask;
 };
 
-// Nicira extension for nsh_si (38)
-struct of_oxm_nsh_si : of_oxm {
-    uint32_t type_len == 0x00014c04;
+// Nicira extension for nsi (114)
+struct of_oxm_nsi : of_oxm {
+    uint32_t type_len == 0x0001e401;
     uint8_t value;
 };
 
-struct of_oxm_nsh_si_masked : of_oxm {
-    uint32_t type_len == 0x00014d08;
+struct of_oxm_nsi_masked : of_oxm {
+    uint32_t type_len == 0x0001e502;
     uint8_t value;
     uint8_t value_mask;
 };
 
-// Nicira extension for nsh_ch1 (39)
-struct of_oxm_nsh_ch1 : of_oxm {
-    uint32_t type_len == 0x00014e04;
+// Nicira extension for nsh_c1 (115)
+struct of_oxm_nsh_c1 : of_oxm {
+    uint32_t type_len == 0x0001e604;
     uint32_t value;
 };
 
-struct of_oxm_nsh_ch1_masked : of_oxm {
-    uint32_t type_len == 0x00014f08;
+struct of_oxm_nsh_c1_masked : of_oxm {
+    uint32_t type_len == 0x0001e708;
     uint32_t value;
     uint32_t value_mask;
 };
 
-// Nicira extension for nsh_ch2 (40)
-struct of_oxm_nsh_ch2 : of_oxm {
-    uint32_t type_len == 0x00015004;
+// Nicira extension for nsh_c2 (116)
+struct of_oxm_nsh_c2 : of_oxm {
+    uint32_t type_len == 0x0001e804;
     uint32_t value;
 };
 
-struct of_oxm_nsh_ch2_masked : of_oxm {
-    uint32_t type_len == 0x00015108;
+struct of_oxm_nsh_c2_masked : of_oxm {
+    uint32_t type_len == 0x0001e908;
     uint32_t value;
     uint32_t value_mask;
 };
 
 
-// Nicira extension for nsh_ch3 (41)
-struct of_oxm_nsh_ch3 : of_oxm {
-    uint32_t type_len == 0x00015204;
+// Nicira extension for nsh_c3 (117)
+struct of_oxm_nsh_c3 : of_oxm {
+    uint32_t type_len == 0x0001ea04;
     uint32_t value;
 };
 
-struct of_oxm_nsh_ch3_masked : of_oxm {
-    uint32_t type_len == 0x00015308;
+struct of_oxm_nsh_c3_masked : of_oxm {
+    uint32_t type_len == 0x0001eb08;
     uint32_t value;
     uint32_t value_mask;
 };
 
-// Nicira extension for nsh_ch4 (42)
-struct of_oxm_nsh_ch4 : of_oxm {
-    uint32_t type_len == 0x00015404;
+// Nicira extension for nsh_c4 (118)
+struct of_oxm_nsh_c4 : of_oxm {
+    uint32_t type_len == 0x0001ec04;
     uint32_t value;
 };
 
-struct of_oxm_nsh_ch4_masked : of_oxm {
-    uint32_t type_len == 0x00015508;
+struct of_oxm_nsh_c4_masked : of_oxm {
+    uint32_t type_len == 0x0001ed08;
     uint32_t value;
     uint32_t value_mask;
 };
+
+
+// Nicira extension for nsh_mdtype (119)
+struct of_oxm_nsh_mdtype : of_oxm {
+    uint32_t type_len == 0x0001ee01;
+    uint8_t value;
+};
+
+struct of_oxm_nsh_mdtype_masked : of_oxm {
+    uint32_t type_len == 0x0001ef02;
+    uint8_t value;
+    uint8_t value_mask;
+};
+
+
+// Nicira extension for nsh_np (120)
+struct of_oxm_nsh_np : of_oxm {
+    uint32_t type_len == 0x0001f001;
+    uint8_t value;
+};
+
+struct of_oxm_nsh_np_masked : of_oxm {
+    uint32_t type_len == 0x0001f102;
+    uint8_t value;
+    uint8_t value_mask;
+};
+
+
+// Nicira extension for encap_eth_src (121)
+struct of_oxm_encap_eth_src : of_oxm {
+    uint32_t type_len == 0x0001f206;
+    of_mac_addr_t value;
+};
+
+struct of_oxm_encap_eth_src_masked : of_oxm {
+    uint32_t type_len == 0x0001f30c;
+    of_mac_addr_t value;
+    of_mac_addr_t value_mask;
+
+};
+
+
+// Nicira extension for encap_eth_dst (122)
+struct of_oxm_encap_eth_dst : of_oxm {
+    uint32_t type_len == 0x0001f406;
+    of_mac_addr_t value;
+};
+
+struct of_oxm_encap_eth_dst_masked : of_oxm {
+    uint32_t type_len == 0x0001f50c;
+    of_mac_addr_t value;
+    of_mac_addr_t value_mask;
+};
+
+
+// Nicira extension for encap_eth_type (123)
+struct of_oxm_encap_eth_type : of_oxm {
+    uint32_t type_len == 0x0001f602;
+    uint16_t value;
+};
+
+struct of_oxm_encap_eth_type_masked : of_oxm {
+    uint32_t type_len == 0x0001f704;
+    uint16_t value;
+    uint16_t value_mask;
+};
diff --git a/openflow_input/oxm_nicira_tun b/openflow_input/oxm_nicira_tun
index 408f63e..9e73fec 100644
--- a/openflow_input/oxm_nicira_tun
+++ b/openflow_input/oxm_nicira_tun
@@ -52,3 +52,64 @@
     of_ipv4_t value;
     of_ipv4_t value_mask;
 };
+
+// Nicira extension for tun_flags (104)
+struct of_oxm_tun_flags : of_oxm {
+    uint32_t type_len == 0x0001d002;
+    uint16_t value;
+};
+
+struct of_oxm_tun_flags_masked : of_oxm {
+    uint32_t type_len == 0x0001d104;
+    uint16_t value;
+    uint16_t value_mask;
+};
+
+// Nicira extension for tun_gbp_id (38)
+struct of_oxm_tun_gbp_id : of_oxm {
+    uint32_t type_len == 0x00014c02;
+    uint16_t value;
+};
+
+struct of_oxm_tun_gbp_id_masked : of_oxm {
+    uint32_t type_len == 0x00014d04;
+    uint16_t value;
+    uint16_t value_mask;
+};
+
+// Nicira extension for tun_gbp_flags (39)
+struct of_oxm_tun_gbp_flags : of_oxm {
+    uint32_t type_len == 0x00014e01;
+    uint8_t value;
+};
+
+struct of_oxm_tun_gbp_flags_masked : of_oxm {
+    uint32_t type_len == 0x00014f02;
+    uint8_t value;
+    uint8_t value_mask;
+};
+
+// Nicira extension for tun_gpe_np (111)
+struct of_oxm_tun_gpe_np : of_oxm {
+    uint32_t type_len == 0x0001de01;
+    uint8_t value;
+};
+
+struct of_oxm_tun_gpe_np_masked : of_oxm {
+    uint32_t type_len == 0x0001df02;
+    uint8_t value;
+    uint8_t value_mask;
+};
+
+// Nicira extension for tun_gpe_flags (112)
+struct of_oxm_tun_gpe_flags : of_oxm {
+    uint32_t type_len == 0x0001e001;
+    uint8_t value;
+};
+
+struct of_oxm_tun_gpe_flags_masked : of_oxm {
+    uint32_t type_len == 0x0001e102;
+    uint8_t value;
+    uint8_t value_mask;
+};
+