- public static List<MatchEntries> toMatch(
- org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.Match match) {
-
- MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
- List<MatchEntries> matchEntriesList = new ArrayList<>();
-
- if (match.getInPort() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(InPort.class);
- PortNumberMatchEntryBuilder port = new PortNumberMatchEntryBuilder();
- port.setPortNumber(new PortNumber(match.getInPort()));
- matchEntriesBuilder.addAugmentation(PortNumberMatchEntry.class, port.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (match.getInPhyPort() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(InPhyPort.class);
- PortNumberMatchEntryBuilder phyPort = new PortNumberMatchEntryBuilder();
- phyPort.setPortNumber(new PortNumber(match.getInPhyPort()));
- matchEntriesBuilder.addAugmentation(PortNumberMatchEntry.class, phyPort.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (match.getMetadata() != null) {
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(Metadata.class);
- addMetadataAugmentation(matchEntriesBuilder, match.getMetadata().getMetadata());
- if (match.getMetadata().getMetadataMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, match.getMetadata().getMetadataMask());
- }
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (match.getEthernetMatch() != null) {
- EthernetMatch ethernetMatch = match.getEthernetMatch();
- EthernetDestination ethernetDestination = ethernetMatch.getEthernetDestination();
- if (ethernetDestination != null) {
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(EthDst.class);
- addMacAddressAugmentation(matchEntriesBuilder, ethernetDestination.getAddress());
- if (ethernetDestination.getMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, ethernetDestination.getMask());
- }
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- EthernetSource ethernetSource = ethernetMatch.getEthernetSource();
- if (ethernetSource != null) {
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(EthSrc.class);
- addMacAddressAugmentation(matchEntriesBuilder, ethernetSource.getAddress());
- if (ethernetSource.getMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, ethernetSource.getMask());
- }
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ethernetMatch.getEthernetType() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(EthType.class);
- EthTypeMatchEntryBuilder ethertypeBuilder = new EthTypeMatchEntryBuilder();
- ethertypeBuilder.setEthType(new EtherType(ethernetMatch.getEthernetType().getType().getValue()
- .intValue()));
- matchEntriesBuilder.addAugmentation(EthTypeMatchEntry.class, ethertypeBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- VlanMatch vlanMatch = match.getVlanMatch();
- if (vlanMatch != null) {
- if (vlanMatch.getVlanId() != null) {
- // verify
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(VlanVid.class);
- VlanVidMatchEntryBuilder vlanVidBuilder = new VlanVidMatchEntryBuilder();
- Integer vidEntryValue = vlanMatch.getVlanId().getVlanId().getValue();
- vlanVidBuilder.setCfiBit(vidEntryValue != 0);
- vlanVidBuilder.setVlanVid(vidEntryValue);
- matchEntriesBuilder.addAugmentation(VlanVidMatchEntry.class, vlanVidBuilder.build());
- if (vlanMatch.getVlanId().getMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, vlanMatch.getVlanId().getMask());
- }
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (vlanMatch.getVlanPcp() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(VlanPcp.class);
- VlanPcpMatchEntryBuilder vlanPcpBuilder = new VlanPcpMatchEntryBuilder();
- vlanPcpBuilder.setVlanPcp(vlanMatch.getVlanPcp().getValue());
- matchEntriesBuilder.addAugmentation(VlanPcpMatchEntry.class, vlanPcpBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- IpMatch ipMatch = match.getIpMatch();
- if (ipMatch != null) {
- if (ipMatch.getIpDscp() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(IpDscp.class);
- DscpMatchEntryBuilder dscpBuilder = new DscpMatchEntryBuilder();
- dscpBuilder.setDscp(ipMatch.getIpDscp());
- matchEntriesBuilder.addAugmentation(DscpMatchEntry.class, dscpBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ipMatch.getIpEcn() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(IpDscp.class);
- EcnMatchEntryBuilder ecnBuilder = new EcnMatchEntryBuilder();
- ecnBuilder.setEcn(ipMatch.getIpEcn());
- matchEntriesBuilder.addAugmentation(EcnMatchEntry.class, ecnBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ipMatch.getIpProto() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(IpProto.class);
- ProtocolNumberMatchEntryBuilder protoNumberBuilder = new ProtocolNumberMatchEntryBuilder();
- protoNumberBuilder.setProtocolNumber((short) ipMatch.getIpProto().getIntValue());
- matchEntriesBuilder.addAugmentation(ProtocolNumberMatchEntry.class, protoNumberBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- }
-
- Layer4Match layer4Match = match.getLayer4Match();
- if (layer4Match != null) {
- if (layer4Match instanceof TcpMatch) {
- TcpMatch tcpMatch = (TcpMatch) layer4Match;
- if (tcpMatch.getTcpSourcePort() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(TcpSrc.class);
- addPortAugmentation(matchEntriesBuilder, tcpMatch.getTcpSourcePort());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (tcpMatch.getTcpDestinationPort() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(TcpDst.class);
- addPortAugmentation(matchEntriesBuilder, tcpMatch.getTcpDestinationPort());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- else if (layer4Match instanceof UdpMatch) {
- UdpMatch udpMatch = (UdpMatch) layer4Match;
- if (udpMatch.getUdpSourcePort() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(UdpSrc.class);
- addPortAugmentation(matchEntriesBuilder, udpMatch.getUdpSourcePort());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (udpMatch.getUdpDestinationPort() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(UdpDst.class);
- addPortAugmentation(matchEntriesBuilder, udpMatch.getUdpDestinationPort());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- else if (layer4Match instanceof SctpMatch) {
- SctpMatch sctpMatch = (SctpMatch) layer4Match;
- if (sctpMatch.getSctpSourcePort() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(SctpSrc.class);
- addPortAugmentation(matchEntriesBuilder, sctpMatch.getSctpSourcePort());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (sctpMatch.getSctpDestinationPort() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(SctpDst.class);
- addPortAugmentation(matchEntriesBuilder, sctpMatch.getSctpDestinationPort());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
- }
-
- Icmpv4Match icmpv4Match = match.getIcmpv4Match();
- if (icmpv4Match != null) {
- if (icmpv4Match.getIcmpv4Type() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(Icmpv4Type.class);
- Icmpv4TypeMatchEntryBuilder icmpv4TypeBuilder = new Icmpv4TypeMatchEntryBuilder();
- icmpv4TypeBuilder.setIcmpv4Type(icmpv4Match.getIcmpv4Type());
- matchEntriesBuilder.addAugmentation(Icmpv4TypeMatchEntry.class, icmpv4TypeBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (icmpv4Match.getIcmpv4Code() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(Icmpv4Code.class);
- Icmpv4CodeMatchEntryBuilder icmpv4CodeBuilder = new Icmpv4CodeMatchEntryBuilder();
- icmpv4CodeBuilder.setIcmpv4Code(icmpv4Match.getIcmpv4Code());
- matchEntriesBuilder.addAugmentation(Icmpv4CodeMatchEntry.class, icmpv4CodeBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- Icmpv6Match icmpv6Match = match.getIcmpv6Match();
- if (icmpv6Match != null) {
- if (icmpv6Match.getIcmpv6Type() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(Icmpv6Type.class);
- Icmpv6TypeMatchEntryBuilder icmpv6TypeBuilder = new Icmpv6TypeMatchEntryBuilder();
- icmpv6TypeBuilder.setIcmpv6Type(icmpv6Match.getIcmpv6Type());
- matchEntriesBuilder.addAugmentation(Icmpv6TypeMatchEntry.class, icmpv6TypeBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (icmpv6Match.getIcmpv6Code() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(Icmpv6Code.class);
- Icmpv6CodeMatchEntryBuilder icmpv6CodeBuilder = new Icmpv6CodeMatchEntryBuilder();
- icmpv6CodeBuilder.setIcmpv6Code(icmpv6Match.getIcmpv6Code());
- matchEntriesBuilder.addAugmentation(Icmpv6CodeMatchEntry.class, icmpv6CodeBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- Layer3Match layer3Match = match.getLayer3Match();
- if (layer3Match != null) {
- if (layer3Match instanceof Ipv4Match) {
- Ipv4Match ipv4Match = (Ipv4Match) layer3Match;
- if (ipv4Match.getIpv4Source() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(Ipv4Src.class);
- boolean hasMask = addIpv4PrefixAugmentation(matchEntriesBuilder, ipv4Match.getIpv4Source());
- matchEntriesBuilder.setHasMask(hasMask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- if (ipv4Match.getIpv4Destination() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(Ipv4Dst.class);
- boolean hasMask = addIpv4PrefixAugmentation(matchEntriesBuilder, ipv4Match.getIpv4Destination());
- matchEntriesBuilder.setHasMask(hasMask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- else if (layer3Match instanceof ArpMatch) {
- ArpMatch arpMatch = (ArpMatch) layer3Match;
- if (arpMatch.getArpOp() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(ArpOp.class);
- OpCodeMatchEntryBuilder opcodeBuilder = new OpCodeMatchEntryBuilder();
- opcodeBuilder.setOpCode(arpMatch.getArpOp());
- matchEntriesBuilder.addAugmentation(OpCodeMatchEntry.class, opcodeBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (arpMatch.getArpSourceTransportAddress() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(ArpSpa.class);
- boolean hasMask = addIpv4PrefixAugmentation(matchEntriesBuilder, arpMatch.getArpSourceTransportAddress());
- matchEntriesBuilder.setHasMask(hasMask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (arpMatch.getArpTargetTransportAddress() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(ArpTpa.class);
- boolean hasMask = addIpv4PrefixAugmentation(matchEntriesBuilder, arpMatch.getArpTargetTransportAddress());
- matchEntriesBuilder.setHasMask(hasMask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- ArpSourceHardwareAddress arpSourceHardwareAddress = arpMatch.getArpSourceHardwareAddress();
- if (arpSourceHardwareAddress != null) {
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(ArpSha.class);
- addMacAddressAugmentation(matchEntriesBuilder, arpSourceHardwareAddress.getAddress());
- if (arpSourceHardwareAddress.getMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, arpSourceHardwareAddress.getMask());
- }
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- ArpTargetHardwareAddress arpTargetHardwareAddress = arpMatch.getArpTargetHardwareAddress();
- if (arpTargetHardwareAddress != null) {
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(ArpTha.class);
- addMacAddressAugmentation(matchEntriesBuilder, arpTargetHardwareAddress.getAddress());
- if (arpTargetHardwareAddress.getMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, arpTargetHardwareAddress.getMask());
- }
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- else if (layer3Match instanceof Ipv6Match) {
- Ipv6Match ipv6Match = (Ipv6Match) layer3Match;
- if (ipv6Match.getIpv6Source() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(Ipv6Src.class);
- boolean hasmask = addIpv6PrefixAugmentation(matchEntriesBuilder, ipv6Match.getIpv6Source());
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ipv6Match.getIpv6Destination() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(Ipv6Dst.class);
- boolean hasmask = addIpv6PrefixAugmentation(matchEntriesBuilder, ipv6Match.getIpv6Destination());
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ipv6Match.getIpv6Label() != null) {
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(Ipv6Flabel.class);
- Ipv6FlabelMatchEntryBuilder ipv6FlabelBuilder = new Ipv6FlabelMatchEntryBuilder();
- ipv6FlabelBuilder.setIpv6Flabel(ipv6Match.getIpv6Label().getIpv6Flabel());
- matchEntriesBuilder.addAugmentation(Ipv6FlabelMatchEntry.class, ipv6FlabelBuilder.build());
- if (ipv6Match.getIpv6Label().getFlabelMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, ipv6Match.getIpv6Label().getFlabelMask());
- }
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ipv6Match.getIpv6NdTarget() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(Ipv6NdTarget.class);
- addIpv6AddressAugmentation(matchEntriesBuilder, ipv6Match.getIpv6NdTarget());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ipv6Match.getIpv6NdSll() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(Ipv6NdSll.class);
- addMacAddressAugmentation(matchEntriesBuilder, ipv6Match.getIpv6NdSll());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ipv6Match.getIpv6NdTll() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(Ipv6NdTll.class);
- addMacAddressAugmentation(matchEntriesBuilder, ipv6Match.getIpv6NdTll());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (ipv6Match.getIpv6Exthdr() != null) {
- // TODO: verify
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(Ipv6Exthdr.class);
- PseudoFieldMatchEntryBuilder pseudoBuilder = new PseudoFieldMatchEntryBuilder();
- Integer bitmap = ipv6Match.getIpv6Exthdr();
- final Boolean NONEXT = ((bitmap) & (1 << 0)) != 0;
- final Boolean ESP = ((bitmap) & (1 << 1)) != 0;
- final Boolean AUTH = ((bitmap) & (1 << 2)) != 0;
- final Boolean DEST = ((bitmap) & (1 << 3)) != 0;
- final Boolean FRAG = ((bitmap) & (1 << 4)) != 0;
- final Boolean ROUTER = ((bitmap) & (1 << 5)) != 0;
- final Boolean HOP = ((bitmap) & (1 << 6)) != 0;
- final Boolean UNREP = ((bitmap) & (1 << 7)) != 0;
- final Boolean UNSEQ = ((bitmap) & (1 << 8)) != 0;
- pseudoBuilder.setPseudoField(new PseudoField(AUTH, DEST, ESP, FRAG, HOP, NONEXT, ROUTER, UNREP,
- UNSEQ));
- matchEntriesBuilder.addAugmentation(PseudoFieldMatchEntry.class, pseudoBuilder.build());
- addMaskAugmentation(matchEntriesBuilder, ByteBuffer.allocate(2).putInt(bitmap).array());
- matchEntriesBuilder.setHasMask(false);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
- }
-
- ProtocolMatchFields protocolMatchFields = match.getProtocolMatchFields();
- if (protocolMatchFields != null) {
- if (protocolMatchFields.getMplsLabel() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(MplsLabel.class);
- MplsLabelMatchEntryBuilder mplsLabelBuilder = new MplsLabelMatchEntryBuilder();
- mplsLabelBuilder.setMplsLabel(protocolMatchFields.getMplsLabel());
- matchEntriesBuilder.addAugmentation(MplsLabelMatchEntry.class, mplsLabelBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (protocolMatchFields.getMplsBos() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(MplsBos.class);
- BosMatchEntryBuilder bosBuilder = new BosMatchEntryBuilder();
- if (protocolMatchFields.getMplsBos() != 0) {
- bosBuilder.setBos(true);
- } else {
- bosBuilder.setBos(false);
- }
- matchEntriesBuilder.addAugmentation(BosMatchEntry.class, bosBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (protocolMatchFields.getMplsTc() != null) {
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setHasMask(false);
- matchEntriesBuilder.setOxmMatchField(MplsTc.class);
- TcMatchEntryBuilder tcBuilder = new TcMatchEntryBuilder();
- tcBuilder.setTc(protocolMatchFields.getMplsTc());
- matchEntriesBuilder.addAugmentation(TcMatchEntry.class, tcBuilder.build());
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- if (protocolMatchFields.getPbb() != null) {
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(PbbIsid.class);
- IsidMatchEntryBuilder isidBuilder = new IsidMatchEntryBuilder();
- isidBuilder.setIsid(protocolMatchFields.getPbb().getPbbIsid());
- matchEntriesBuilder.addAugmentation(IsidMatchEntry.class, isidBuilder.build());
- if (protocolMatchFields.getPbb().getPbbMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, protocolMatchFields.getPbb().getPbbMask());
- }
- matchEntriesBuilder.setHasMask(hasmask);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
- }
-
- if (match.getTunnel() != null) {
- boolean hasmask = false;
- matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
- matchEntriesBuilder.setOxmMatchField(TunnelId.class);
- addMetadataAugmentation(matchEntriesBuilder, match.getTunnel().getTunnelId());
- if (match.getTunnel().getTunnelMask() != null) {
- hasmask = true;
- addMaskAugmentation(matchEntriesBuilder, match.getTunnel().getTunnelMask());
- }
- matchEntriesBuilder.setHasMask(false);
- matchEntriesList.add(matchEntriesBuilder.build());
- }
-
- return matchEntriesList;
- }
-