Merge into master from pull request #319:
Adding an oxm for mpls BoS indicator bit (https://github.com/floodlight/loxigen/pull/319)
diff --git a/c_gen/templates/loci_show.h b/c_gen/templates/loci_show.h
index 3624bcd..239bf57 100644
--- a/c_gen/templates/loci_show.h
+++ b/c_gen/templates/loci_show.h
@@ -416,5 +416,6 @@
#define LOCI_SHOW_u8_loglevel(writer, cookie, val) LOCI_SHOW_u8(writer, cookie, val)
#define LOCI_SHOW_u32_vrf(write, cookie, val) LOCI_SHOW_u32(writer, cookie, val)
#define LOCI_SHOW_u32_bsn_vlan_xlate_port_group_id(writer, cookie, val) LOCI_SHOW_u32(writer, cookie, val)
+#define LOCI_SHOW_u8_mpls_bos(writer, cookie, val) LOCI_SHOW_u8(writer, cookie, val)
#endif /* _LOCI_SHOW_H_ */
diff --git a/java_gen/java_type.py b/java_gen/java_type.py
index abd9e5b..e0f0680 100644
--- a/java_gen/java_type.py
+++ b/java_gen/java_type.py
@@ -614,6 +614,8 @@
'of_oxm_mpls_label_masked' : { 'value' : u32obj, 'value_mask' : u32obj },
'of_oxm_mpls_tc' : { 'value' : u8obj },
'of_oxm_mpls_tc_masked' : { 'value' : u8obj, 'value_mask' : u8obj },
+ 'of_oxm_mpls_bos' : { 'value' : boolean_value },
+ 'of_oxm_mpls_bos_masked' : { 'value' : boolean_value, 'value_mask' : boolean_value },
'of_oxm_bsn_in_ports_128' : { 'value': port_bitmap },
'of_oxm_bsn_in_ports_128_masked' : { 'value': port_bitmap, 'value_mask': port_bitmap },
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
index 78e6075..2fb58b7 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchField.java
@@ -178,6 +178,10 @@
new MatchField<U8>("mpls_tc", MatchFields.MPLS_TC,
new Prerequisite<EthType>(MatchField.ETH_TYPE, EthType.MPLS_UNICAST, EthType.MPLS_MULTICAST));
+ public final static MatchField<OFBooleanValue> MPLS_BOS =
+ new MatchField<OFBooleanValue>("mpls_bos", MatchFields.MPLS_BOS,
+ new Prerequisite<EthType>(MatchField.ETH_TYPE, EthType.MPLS_UNICAST, EthType.MPLS_MULTICAST));
+
public final static MatchField<U64> TUNNEL_ID =
new MatchField<U64>("tunnel_id", MatchFields.TUNNEL_ID);
diff --git a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
index 863634e..77494cb 100644
--- a/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
+++ b/java_gen/pre-written/src/main/java/org/projectfloodlight/openflow/protocol/match/MatchFields.java
@@ -38,6 +38,7 @@
IPV6_ND_TLL,
MPLS_LABEL,
MPLS_TC,
+ MPLS_BOS,
TUNNEL_ID,
BSN_IN_PORTS_128,
BSN_LAG_ID,
diff --git a/openflow_input/oxm-1.3 b/openflow_input/oxm-1.3
index 2dbab42..8574236 100644
--- a/openflow_input/oxm-1.3
+++ b/openflow_input/oxm-1.3
@@ -40,3 +40,14 @@
uint64_t value;
uint64_t value_mask;
};
+
+struct of_oxm_mpls_bos : of_oxm {
+ uint32_t type_len == 0x80004801;
+ uint8_t value;
+};
+
+struct of_oxm_mpls_bos_masked : of_oxm {
+ uint32_t type_len == 0x80004902;
+ uint8_t value;
+ uint8_t value_mask;
+};
diff --git a/test_data/of13/oxm_mpls_bos.data b/test_data/of13/oxm_mpls_bos.data
new file mode 100644
index 0000000..8d43f33
--- /dev/null
+++ b/test_data/of13/oxm_mpls_bos.data
@@ -0,0 +1,7 @@
+-- binary
+80 00 # class
+48 # type/masked
+01 # length
+01 # value
+-- python
+ofp.oxm.mpls_bos(value=01)