- eth_src {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return EthSrc.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
- .get(EthernetMatchBuilder.class);
-
- if (ethernetMatchBuilder == null) {
- ethernetMatchBuilder = new EthernetMatchBuilder();
- mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
- }
-
- ethernetMatchBuilder.setEthernetSource(new EthernetSourceBuilder().setAddress(
- new MacAddress(matchInfo.getStringMatchValues()[0])).build());
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
- .remove(EthernetMatchBuilder.class);
-
- if (ethernetMatchBuilder != null) {
- matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
- }
- }
- },
-
- eth_dst {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return EthDst.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
- .get(EthernetMatchBuilder.class);
-
- if (ethernetMatchBuilder == null) {
- ethernetMatchBuilder = new EthernetMatchBuilder();
- mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
- }
-
- ethernetMatchBuilder.setEthernetDestination(new EthernetDestinationBuilder().setAddress(
- new MacAddress(matchInfo.getStringMatchValues()[0])).build());
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
- .remove(EthernetMatchBuilder.class);
-
- if (ethernetMatchBuilder != null) {
- matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
- }
- }
- },
-
- eth_type {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return EthType.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
- .get(EthernetMatchBuilder.class);
-
- if (ethernetMatchBuilder == null) {
- ethernetMatchBuilder = new EthernetMatchBuilder();
- mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
- }
-
- ethernetMatchBuilder.setEthernetType(new EthernetTypeBuilder().setType(
- new EtherType(matchInfo.getMatchValues()[0])).build());
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
- .remove(EthernetMatchBuilder.class);
-
- if (ethernetMatchBuilder != null) {
- matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
- }
- }
- },
-
- in_port {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return InPort.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- // NodeConnectorId format -> openflow:<dpnId>:<portId>
- StringBuffer nodeConnectorId = new StringBuffer().append("openflow:").append(matchInfo.getMatchValues()[0])
- .append(':').append(matchInfo.getMatchValues()[1]);
- matchBuilderInOut.setInPort(new NodeConnectorId(nodeConnectorId.toString()));
- }
- },
-
- ip_proto {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return IpProto.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- IpMatchBuilder ipMatchBuilder = (IpMatchBuilder) mapMatchBuilder.get(IpMatchBuilder.class);
-
- if (ipMatchBuilder == null) {
- ipMatchBuilder = new IpMatchBuilder();
- mapMatchBuilder.put(IpMatchBuilder.class, ipMatchBuilder);
- }
-
- ipMatchBuilder.setIpProtocol(Short.valueOf((short) matchInfo.getMatchValues()[0])).build();
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- IpMatchBuilder ipMatchBuilder = (IpMatchBuilder) mapMatchBuilder.remove(IpMatchBuilder.class);
-
- if (ipMatchBuilder != null) {
- matchBuilderInOut.setIpMatch(ipMatchBuilder.build());
- }
- }
- },
-
- ipv4_dst {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return Ipv4Dst.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.get(Ipv4MatchBuilder.class);
-
- if (ipv4MatchBuilder == null) {
- ipv4MatchBuilder = new Ipv4MatchBuilder();
- mapMatchBuilder.put(Ipv4MatchBuilder.class, ipv4MatchBuilder);
- }
-
- long[] prefix = matchInfo.getMatchValues();
- ipv4MatchBuilder.setIpv4Destination(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1]))).build();
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.remove(Ipv4MatchBuilder.class);
-
- if (ipv4MatchBuilder != null) {
- matchBuilderInOut.setLayer3Match(ipv4MatchBuilder.build());
- }
- }
- },
-
- ipv4_src {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return Ipv4Src.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.get(Ipv4MatchBuilder.class);
-
- if (ipv4MatchBuilder == null) {
- ipv4MatchBuilder = new Ipv4MatchBuilder();
- mapMatchBuilder.put(Ipv4MatchBuilder.class, ipv4MatchBuilder);
- }
-
- long[] prefix = matchInfo.getMatchValues();
- ipv4MatchBuilder.setIpv4Source(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1]))).build();
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.remove(Ipv4MatchBuilder.class);
-
- if (ipv4MatchBuilder != null) {
- matchBuilderInOut.setLayer3Match(ipv4MatchBuilder.build());
- }
- }
- },
-
- arp_op {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return ArpOp.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
-
- if (arpMatchBuilder == null) {
- arpMatchBuilder = new ArpMatchBuilder();
- mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
- }
-
- arpMatchBuilder.setArpOp(Integer.valueOf((int) matchInfo.getMatchValues()[0]));
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
-
- if (arpMatchBuilder != null) {
- matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
- }
- }
- },
-
- arp_tpa {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return ArpTpa.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
-
- if (arpMatchBuilder == null) {
- arpMatchBuilder = new ArpMatchBuilder();
- mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
- }
-
- long[] prefix = matchInfo.getMatchValues();
- arpMatchBuilder.setArpTargetTransportAddress(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1])));
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
-
- if (arpMatchBuilder != null) {
- matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
- }
- }
- },
-
- arp_spa {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return ArpSpa.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
-
- if (arpMatchBuilder == null) {
- arpMatchBuilder = new ArpMatchBuilder();
- mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
- }
-
- long[] prefix = matchInfo.getMatchValues();
- arpMatchBuilder.setArpSourceTransportAddress(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1])));
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
-
- if (arpMatchBuilder != null) {
- matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
- }
- }
- },
-
- metadata {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return Metadata.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- MetadataBuilder metadataBuilder = (MetadataBuilder) mapMatchBuilder.get(MetadataBuilder.class);
-
- if (metadataBuilder == null) {
- metadataBuilder = new MetadataBuilder();
- mapMatchBuilder.put(MetadataBuilder.class, metadataBuilder);
- }
-
- BigInteger[] metadataValues = matchInfo.getBigMatchValues();
- metadataBuilder.setMetadata(metadataValues[0]).setMetadataMask(metadataValues[1]).build();
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- MetadataBuilder metadataBuilder = (MetadataBuilder) mapMatchBuilder.remove(MetadataBuilder.class);
-
- if (metadataBuilder != null) {
- matchBuilderInOut.setMetadata(metadataBuilder.build());
- }
- }
- },
-
- mpls_label {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return MplsLabel.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
- .get(ProtocolMatchFieldsBuilder.class);
-
- if (protocolMatchFieldsBuilder == null) {
- protocolMatchFieldsBuilder = new ProtocolMatchFieldsBuilder();
- mapMatchBuilder.put(ProtocolMatchFieldsBuilder.class, protocolMatchFieldsBuilder);
- }
-
- protocolMatchFieldsBuilder.setMplsLabel(Long.valueOf(matchInfo.getStringMatchValues()[0])).build();
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
- .remove(ProtocolMatchFieldsBuilder.class);
-
- if (protocolMatchFieldsBuilder != null) {
- matchBuilderInOut.setProtocolMatchFields(protocolMatchFieldsBuilder.build());
- }
- }
- },
-
- pbb_isid {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return PbbIsid.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
- .get(ProtocolMatchFieldsBuilder.class);
-
- if (protocolMatchFieldsBuilder == null) {
- protocolMatchFieldsBuilder = new ProtocolMatchFieldsBuilder();
- mapMatchBuilder.put(ProtocolMatchFieldsBuilder.class, protocolMatchFieldsBuilder);
- }
-
- protocolMatchFieldsBuilder.setPbb(new PbbBuilder().setPbbIsid(Long.valueOf(matchInfo.getMatchValues()[0]))
- .build());
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
- .remove(ProtocolMatchFieldsBuilder.class);
-
- if (protocolMatchFieldsBuilder != null) {
- matchBuilderInOut.setProtocolMatchFields(protocolMatchFieldsBuilder.build());
- }
- }
- },
-
- tcp_dst {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return TcpDst.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.get(TcpMatchBuilder.class);
-
- if (tcpMatchBuilder == null) {
- tcpMatchBuilder = new TcpMatchBuilder();
- mapMatchBuilder.put(TcpMatchBuilder.class, tcpMatchBuilder);
- }
-
- tcpMatchBuilder.setTcpDestinationPort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.remove(TcpMatchBuilder.class);
-
- if (tcpMatchBuilder != null) {
- matchBuilderInOut.setLayer4Match(tcpMatchBuilder.build());
- }
- }
- },
-
- tcp_src {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return TcpSrc.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.get(TcpMatchBuilder.class);
-
- if (tcpMatchBuilder == null) {
- tcpMatchBuilder = new TcpMatchBuilder();
- mapMatchBuilder.put(TcpMatchBuilder.class, tcpMatchBuilder);
- }
-
- tcpMatchBuilder.setTcpSourcePort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.remove(TcpMatchBuilder.class);
-
- if (tcpMatchBuilder != null) {
- matchBuilderInOut.setLayer4Match(tcpMatchBuilder.build());
- }
- }
- },
-
- udp_dst {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return UdpDst.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.get(UdpMatchBuilder.class);
-
- if (udpMatchBuilder == null) {
- udpMatchBuilder = new UdpMatchBuilder();
- mapMatchBuilder.put(UdpMatchBuilder.class, udpMatchBuilder);
- }
-
- udpMatchBuilder.setUdpDestinationPort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.remove(UdpMatchBuilder.class);
-
- if (udpMatchBuilder != null) {
- matchBuilderInOut.setLayer4Match(udpMatchBuilder.build());
- }
- }
- },
-
- udp_src {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return UdpSrc.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.get(UdpMatchBuilder.class);
-
- if (udpMatchBuilder == null) {
- udpMatchBuilder = new UdpMatchBuilder();
- mapMatchBuilder.put(UdpMatchBuilder.class, udpMatchBuilder);
- }
-
- udpMatchBuilder.setUdpSourcePort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.remove(UdpMatchBuilder.class);
-
- if (udpMatchBuilder != null) {
- matchBuilderInOut.setLayer4Match(udpMatchBuilder.build());
- }
- }
- },
- tunnel_id {
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- TunnelBuilder tunnelBuilder = (TunnelBuilder) mapMatchBuilder.get(TunnelBuilder.class);
-
- if (tunnelBuilder == null) {
- tunnelBuilder = new TunnelBuilder();
- mapMatchBuilder.put(TunnelBuilder.class, tunnelBuilder);
- }
-
- BigInteger[] tunnelIdValues = matchInfo.getBigMatchValues();
- tunnelBuilder.setTunnelId(tunnelIdValues[0]).setTunnelMask(tunnelIdValues[1]).build();
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- TunnelBuilder tunnelBuilder = (TunnelBuilder) mapMatchBuilder.remove(TunnelBuilder.class);
-
- if (tunnelBuilder != null) {
- matchBuilderInOut.setTunnel(tunnelBuilder.build());
- }
- }
-
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return TunnelId.class;
- }
-
- },
-
- vlan_vid {
- @Override
- protected Class<? extends MatchField> getMatchType() {
- return VlanVid.class;
- }
-
- @Override
- public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- VlanMatchBuilder vlanMatchBuilder = (VlanMatchBuilder) mapMatchBuilder.get(VlanMatchBuilder.class);
-
- if (vlanMatchBuilder == null) {
- vlanMatchBuilder = new VlanMatchBuilder();
- mapMatchBuilder.put(VlanMatchBuilder.class, vlanMatchBuilder);
- }
-
- vlanMatchBuilder.setVlanId(new VlanIdBuilder()
- .setVlanId(new VlanId(Integer.valueOf((int) matchInfo.getMatchValues()[0])))
- .setVlanIdPresent(((int) matchInfo.getMatchValues()[0] == 0) ? Boolean.FALSE : Boolean.TRUE)
- .build());
- }
-
- @Override
- public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
- VlanMatchBuilder vlanMatchBuilder = (VlanMatchBuilder) mapMatchBuilder.remove(VlanMatchBuilder.class);
-
- if (vlanMatchBuilder != null) {
- matchBuilderInOut.setVlanMatch(vlanMatchBuilder.build());
- }
- }
- };
-
- /*
- public SetFieldMatch buildSetFieldMatch(XtensionType xtype) {
- if (xtype == null || xtype.getMatchMaskType() ==
- SalOfaMatchMaskType.OFPMMNOMASK) {
- return new
- SetFieldMatchBuilder().setHasMask(false).setMatchType(getMatchType())
- .setSalOxmClass(SalOpenflowBasicClass.class).build();
- }
-
- return new SetFieldMatchBuilder()
- .setHasMask(true)
- .setMatchType(getMatchType())
- .setSalOxmClass(SalOpenflowBasicClass.class)
- .addAugmentation(
- ExperimenterSetFieldMatch.class,
- new
- ExperimenterSetFieldMatchBuilder().setMatchMaskType(xtype.getMatchMaskType())
- .setTlvMatchMask(xtype.getByteBuf()).build()).build();
-
-
- }
-*/
-
- // New one for ODL without the Extension --CHECK
- /*
- public SetFieldMatch buildSetFieldMatch() {
-
- return new SetFieldMatchBuilder().setHasMask(false).setMatchType(getMatchType())
- .setSalOxmClass(SalOpenflowBasicClass.class).build();
-
- return null;
- }
-*/
-
-
- public abstract void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder);
-
- public abstract void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo,
- Map<Class<?>, Object> mapMatchBuilder);
-
- protected abstract Class<? extends MatchField> getMatchType();
-
- protected boolean hasMatchFieldMask() {
- // Override this to return true
- return false;
- }
+ eth_src {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return EthSrc.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
+ .get(EthernetMatchBuilder.class);
+
+ if (ethernetMatchBuilder == null) {
+ ethernetMatchBuilder = new EthernetMatchBuilder();
+ mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
+ }
+
+ ethernetMatchBuilder.setEthernetSource(new EthernetSourceBuilder().setAddress(
+ new MacAddress(matchInfo.getStringMatchValues()[0])).build());
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
+ .remove(EthernetMatchBuilder.class);
+
+ if (ethernetMatchBuilder != null) {
+ matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
+ }
+ }
+ },
+
+ eth_dst {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return EthDst.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
+ .get(EthernetMatchBuilder.class);
+
+ if (ethernetMatchBuilder == null) {
+ ethernetMatchBuilder = new EthernetMatchBuilder();
+ mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
+ }
+
+ ethernetMatchBuilder.setEthernetDestination(new EthernetDestinationBuilder().setAddress(
+ new MacAddress(matchInfo.getStringMatchValues()[0])).build());
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
+ .remove(EthernetMatchBuilder.class);
+
+ if (ethernetMatchBuilder != null) {
+ matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
+ }
+ }
+ },
+
+ eth_type {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return EthType.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
+ .get(EthernetMatchBuilder.class);
+
+ if (ethernetMatchBuilder == null) {
+ ethernetMatchBuilder = new EthernetMatchBuilder();
+ mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
+ }
+
+ ethernetMatchBuilder.setEthernetType(new EthernetTypeBuilder().setType(
+ new EtherType(matchInfo.getMatchValues()[0])).build());
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
+ .remove(EthernetMatchBuilder.class);
+
+ if (ethernetMatchBuilder != null) {
+ matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
+ }
+ }
+ },
+
+ in_port {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return InPort.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+
+ StringBuffer nodeConnectorId = new StringBuffer().append("openflow:").append(matchInfo.getMatchValues()[0])
+ .append(':').append(matchInfo.getMatchValues()[1]);
+ matchBuilderInOut.setInPort(new NodeConnectorId(nodeConnectorId.toString()));
+ }
+ },
+
+ ip_proto {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return IpProto.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ IpMatchBuilder ipMatchBuilder = (IpMatchBuilder) mapMatchBuilder.get(IpMatchBuilder.class);
+
+ if (ipMatchBuilder == null) {
+ ipMatchBuilder = new IpMatchBuilder();
+ mapMatchBuilder.put(IpMatchBuilder.class, ipMatchBuilder);
+ }
+
+ ipMatchBuilder.setIpProtocol(Short.valueOf((short) matchInfo.getMatchValues()[0])).build();
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ IpMatchBuilder ipMatchBuilder = (IpMatchBuilder) mapMatchBuilder.remove(IpMatchBuilder.class);
+
+ if (ipMatchBuilder != null) {
+ matchBuilderInOut.setIpMatch(ipMatchBuilder.build());
+ }
+ }
+ },
+
+ ipv4_dst {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return Ipv4Dst.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.get(Ipv4MatchBuilder.class);
+
+ if (ipv4MatchBuilder == null) {
+ ipv4MatchBuilder = new Ipv4MatchBuilder();
+ mapMatchBuilder.put(Ipv4MatchBuilder.class, ipv4MatchBuilder);
+ }
+
+ long[] prefix = matchInfo.getMatchValues();
+ ipv4MatchBuilder.setIpv4Destination(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1]))).build();
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.remove(Ipv4MatchBuilder.class);
+
+ if (ipv4MatchBuilder != null) {
+ matchBuilderInOut.setLayer3Match(ipv4MatchBuilder.build());
+ }
+ }
+ },
+
+ ipv4_src {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return Ipv4Src.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.get(Ipv4MatchBuilder.class);
+
+ if (ipv4MatchBuilder == null) {
+ ipv4MatchBuilder = new Ipv4MatchBuilder();
+ mapMatchBuilder.put(Ipv4MatchBuilder.class, ipv4MatchBuilder);
+ }
+
+ long[] prefix = matchInfo.getMatchValues();
+ ipv4MatchBuilder.setIpv4Source(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1]))).build();
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.remove(Ipv4MatchBuilder.class);
+
+ if (ipv4MatchBuilder != null) {
+ matchBuilderInOut.setLayer3Match(ipv4MatchBuilder.build());
+ }
+ }
+ },
+
+ arp_op {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return ArpOp.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
+
+ if (arpMatchBuilder == null) {
+ arpMatchBuilder = new ArpMatchBuilder();
+ mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
+ }
+
+ arpMatchBuilder.setArpOp(Integer.valueOf((int) matchInfo.getMatchValues()[0]));
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
+
+ if (arpMatchBuilder != null) {
+ matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
+ }
+ }
+ },
+
+ arp_tpa {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return ArpTpa.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
+
+ if (arpMatchBuilder == null) {
+ arpMatchBuilder = new ArpMatchBuilder();
+ mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
+ }
+
+ long[] prefix = matchInfo.getMatchValues();
+ arpMatchBuilder.setArpTargetTransportAddress(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1])));
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
+
+ if (arpMatchBuilder != null) {
+ matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
+ }
+ }
+ },
+
+ arp_spa {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return ArpSpa.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
+
+ if (arpMatchBuilder == null) {
+ arpMatchBuilder = new ArpMatchBuilder();
+ mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
+ }
+
+ long[] prefix = matchInfo.getMatchValues();
+ arpMatchBuilder.setArpSourceTransportAddress(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1])));
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
+
+ if (arpMatchBuilder != null) {
+ matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
+ }
+ }
+ },
+
+ metadata {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return Metadata.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ MetadataBuilder metadataBuilder = (MetadataBuilder) mapMatchBuilder.get(MetadataBuilder.class);
+
+ if (metadataBuilder == null) {
+ metadataBuilder = new MetadataBuilder();
+ mapMatchBuilder.put(MetadataBuilder.class, metadataBuilder);
+ }
+
+ BigInteger[] metadataValues = matchInfo.getBigMatchValues();
+ metadataBuilder.setMetadata(metadataValues[0]).setMetadataMask(metadataValues[1]).build();
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ MetadataBuilder metadataBuilder = (MetadataBuilder) mapMatchBuilder.remove(MetadataBuilder.class);
+
+ if (metadataBuilder != null) {
+ matchBuilderInOut.setMetadata(metadataBuilder.build());
+ }
+ }
+ },
+
+ mpls_label {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return MplsLabel.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
+ .get(ProtocolMatchFieldsBuilder.class);
+
+ if (protocolMatchFieldsBuilder == null) {
+ protocolMatchFieldsBuilder = new ProtocolMatchFieldsBuilder();
+ mapMatchBuilder.put(ProtocolMatchFieldsBuilder.class, protocolMatchFieldsBuilder);
+ }
+
+ protocolMatchFieldsBuilder.setMplsLabel(Long.valueOf(matchInfo.getStringMatchValues()[0])).build();
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
+ .remove(ProtocolMatchFieldsBuilder.class);
+
+ if (protocolMatchFieldsBuilder != null) {
+ matchBuilderInOut.setProtocolMatchFields(protocolMatchFieldsBuilder.build());
+ }
+ }
+ },
+
+ pbb_isid {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return PbbIsid.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
+ .get(ProtocolMatchFieldsBuilder.class);
+
+ if (protocolMatchFieldsBuilder == null) {
+ protocolMatchFieldsBuilder = new ProtocolMatchFieldsBuilder();
+ mapMatchBuilder.put(ProtocolMatchFieldsBuilder.class, protocolMatchFieldsBuilder);
+ }
+
+ protocolMatchFieldsBuilder.setPbb(new PbbBuilder().setPbbIsid(Long.valueOf(matchInfo.getMatchValues()[0]))
+ .build());
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
+ .remove(ProtocolMatchFieldsBuilder.class);
+
+ if (protocolMatchFieldsBuilder != null) {
+ matchBuilderInOut.setProtocolMatchFields(protocolMatchFieldsBuilder.build());
+ }
+ }
+ },
+
+ tcp_dst {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return TcpDst.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.get(TcpMatchBuilder.class);
+
+ if (tcpMatchBuilder == null) {
+ tcpMatchBuilder = new TcpMatchBuilder();
+ mapMatchBuilder.put(TcpMatchBuilder.class, tcpMatchBuilder);
+ }
+
+ tcpMatchBuilder.setTcpDestinationPort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.remove(TcpMatchBuilder.class);
+
+ if (tcpMatchBuilder != null) {
+ matchBuilderInOut.setLayer4Match(tcpMatchBuilder.build());
+ }
+ }
+ },
+
+ tcp_src {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return TcpSrc.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.get(TcpMatchBuilder.class);
+
+ if (tcpMatchBuilder == null) {
+ tcpMatchBuilder = new TcpMatchBuilder();
+ mapMatchBuilder.put(TcpMatchBuilder.class, tcpMatchBuilder);
+ }
+
+ tcpMatchBuilder.setTcpSourcePort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.remove(TcpMatchBuilder.class);
+
+ if (tcpMatchBuilder != null) {
+ matchBuilderInOut.setLayer4Match(tcpMatchBuilder.build());
+ }
+ }
+ },
+
+ udp_dst {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return UdpDst.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.get(UdpMatchBuilder.class);
+
+ if (udpMatchBuilder == null) {
+ udpMatchBuilder = new UdpMatchBuilder();
+ mapMatchBuilder.put(UdpMatchBuilder.class, udpMatchBuilder);
+ }
+
+ udpMatchBuilder.setUdpDestinationPort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.remove(UdpMatchBuilder.class);
+
+ if (udpMatchBuilder != null) {
+ matchBuilderInOut.setLayer4Match(udpMatchBuilder.build());
+ }
+ }
+ },
+
+ udp_src {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return UdpSrc.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.get(UdpMatchBuilder.class);
+
+ if (udpMatchBuilder == null) {
+ udpMatchBuilder = new UdpMatchBuilder();
+ mapMatchBuilder.put(UdpMatchBuilder.class, udpMatchBuilder);
+ }
+
+ udpMatchBuilder.setUdpSourcePort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.remove(UdpMatchBuilder.class);
+
+ if (udpMatchBuilder != null) {
+ matchBuilderInOut.setLayer4Match(udpMatchBuilder.build());
+ }
+ }
+ },
+ tunnel_id {
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ TunnelBuilder tunnelBuilder = (TunnelBuilder) mapMatchBuilder.get(TunnelBuilder.class);
+
+ if (tunnelBuilder == null) {
+ tunnelBuilder = new TunnelBuilder();
+ mapMatchBuilder.put(TunnelBuilder.class, tunnelBuilder);
+ }
+
+ BigInteger[] tunnelIdValues = matchInfo.getBigMatchValues();
+ tunnelBuilder.setTunnelId(tunnelIdValues[0]).setTunnelMask(tunnelIdValues[1]).build();
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ TunnelBuilder tunnelBuilder = (TunnelBuilder) mapMatchBuilder.remove(TunnelBuilder.class);
+
+ if (tunnelBuilder != null) {
+ matchBuilderInOut.setTunnel(tunnelBuilder.build());
+ }
+ }
+
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return TunnelId.class;
+ }
+
+ },
+
+ vlan_vid {
+ @Override
+ protected Class<? extends MatchField> getMatchType() {
+ return VlanVid.class;
+ }
+
+ @Override
+ public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ VlanMatchBuilder vlanMatchBuilder = (VlanMatchBuilder) mapMatchBuilder.get(VlanMatchBuilder.class);
+
+ if (vlanMatchBuilder == null) {
+ vlanMatchBuilder = new VlanMatchBuilder();
+ mapMatchBuilder.put(VlanMatchBuilder.class, vlanMatchBuilder);
+ }
+
+ vlanMatchBuilder.setVlanId(new VlanIdBuilder()
+ .setVlanId(new VlanId(Integer.valueOf((int) matchInfo.getMatchValues()[0])))
+ .setVlanIdPresent(((int) matchInfo.getMatchValues()[0] == 0) ? Boolean.FALSE : Boolean.TRUE)
+ .build());
+ }
+
+ @Override
+ public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
+ VlanMatchBuilder vlanMatchBuilder = (VlanMatchBuilder) mapMatchBuilder.remove(VlanMatchBuilder.class);
+
+ if (vlanMatchBuilder != null) {
+ matchBuilderInOut.setVlanMatch(vlanMatchBuilder.build());
+ }
+ }
+ };
+
+
+ public abstract void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder);
+
+ public abstract void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo,
+ Map<Class<?>, Object> mapMatchBuilder);
+
+ protected abstract Class<? extends MatchField> getMatchType();
+
+ protected boolean hasMatchFieldMask() {
+ // Override this to return true
+ return false;
+ }