[VOL-4005] Add support for matches on MPLS fields
Change-Id: If74dbb747b22cb0ea66e65f4b256d76f6894695c
diff --git a/internal/pkg/openflow/flowMod.go b/internal/pkg/openflow/flowMod.go
index c0cbde1..4f8ab63 100644
--- a/internal/pkg/openflow/flowMod.go
+++ b/internal/pkg/openflow/flowMod.go
@@ -129,6 +129,10 @@
field.Value = &voltha.OfpOxmOfbField_EthDst{
EthDst: val.(net.HardwareAddr),
}
+ case voltha.OxmOfbFieldTypes_OFPXMT_OFB_ETH_SRC:
+ field.Value = &voltha.OfpOxmOfbField_EthSrc{
+ EthSrc: val.(net.HardwareAddr),
+ }
case voltha.OxmOfbFieldTypes_OFPXMT_OFB_UDP_SRC:
field.Value = &voltha.OfpOxmOfbField_UdpSrc{
UdpSrc: uint32(val.(uint16)),
@@ -145,6 +149,18 @@
field.Value = &voltha.OfpOxmOfbField_VlanPcp{
VlanPcp: uint32(val.(uint8)),
}
+ case voltha.OxmOfbFieldTypes_OFPXMT_OFB_MPLS_LABEL:
+ field.Value = &voltha.OfpOxmOfbField_MplsLabel{
+ MplsLabel: val.(uint32),
+ }
+ case voltha.OxmOfbFieldTypes_OFPXMT_OFB_MPLS_BOS:
+ field.Value = &voltha.OfpOxmOfbField_MplsBos{
+ MplsBos: uint32(val.(uint8)),
+ }
+ case voltha.OxmOfbFieldTypes_OFPXMT_OFB_MPLS_TC:
+ field.Value = &voltha.OfpOxmOfbField_MplsTc{
+ MplsTc: val.(uint32),
+ }
case 200: // voltha-protos doesn't actually have a type for vlan_mask
field = voltha.OfpOxmOfbField{Type: voltha.OxmOfbFieldTypes(oxmMap["vlan_vid"])}
field.HasMask = true