2 * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.vpnservice.mdsalutil;
10 import java.math.BigInteger;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
14 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.EtherType;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetDestinationBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetSourceBuilder;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetTypeBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatchBuilder;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.MetadataBuilder;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.ProtocolMatchFieldsBuilder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatchBuilder;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchBuilder;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatchBuilder;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.protocol.match.fields.PbbBuilder;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpOp;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpSpa;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpTpa;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthDst;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthSrc;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthType;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPort;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpProto;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv4Dst;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv4Src;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.MatchField;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Metadata;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.MplsLabel;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.PbbIsid;
48 //import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.SalOpenflowBasicClass;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpDst;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpSrc;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpDst;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpSrc;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanVid;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatchBuilder;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.TunnelBuilder;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TunnelId;
59 public enum MatchFieldType {
62 protected Class<? extends MatchField> getMatchType() {
67 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
68 EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
69 .get(EthernetMatchBuilder.class);
71 if (ethernetMatchBuilder == null) {
72 ethernetMatchBuilder = new EthernetMatchBuilder();
73 mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
76 ethernetMatchBuilder.setEthernetSource(new EthernetSourceBuilder().setAddress(
77 new MacAddress(matchInfo.getStringMatchValues()[0])).build());
81 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
82 EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
83 .remove(EthernetMatchBuilder.class);
85 if (ethernetMatchBuilder != null) {
86 matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
93 protected Class<? extends MatchField> getMatchType() {
98 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
99 EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
100 .get(EthernetMatchBuilder.class);
102 if (ethernetMatchBuilder == null) {
103 ethernetMatchBuilder = new EthernetMatchBuilder();
104 mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
107 ethernetMatchBuilder.setEthernetDestination(new EthernetDestinationBuilder().setAddress(
108 new MacAddress(matchInfo.getStringMatchValues()[0])).build());
112 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
113 EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
114 .remove(EthernetMatchBuilder.class);
116 if (ethernetMatchBuilder != null) {
117 matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
124 protected Class<? extends MatchField> getMatchType() {
125 return EthType.class;
129 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
130 EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
131 .get(EthernetMatchBuilder.class);
133 if (ethernetMatchBuilder == null) {
134 ethernetMatchBuilder = new EthernetMatchBuilder();
135 mapMatchBuilder.put(EthernetMatchBuilder.class, ethernetMatchBuilder);
138 ethernetMatchBuilder.setEthernetType(new EthernetTypeBuilder().setType(
139 new EtherType(matchInfo.getMatchValues()[0])).build());
143 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
144 EthernetMatchBuilder ethernetMatchBuilder = (EthernetMatchBuilder) mapMatchBuilder
145 .remove(EthernetMatchBuilder.class);
147 if (ethernetMatchBuilder != null) {
148 matchBuilderInOut.setEthernetMatch(ethernetMatchBuilder.build());
155 protected Class<? extends MatchField> getMatchType() {
160 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
164 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
166 StringBuffer nodeConnectorId = new StringBuffer().append("openflow:").append(matchInfo.getMatchValues()[0])
167 .append(':').append(matchInfo.getMatchValues()[1]);
168 matchBuilderInOut.setInPort(new NodeConnectorId(nodeConnectorId.toString()));
174 protected Class<? extends MatchField> getMatchType() {
175 return IpProto.class;
179 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
180 IpMatchBuilder ipMatchBuilder = (IpMatchBuilder) mapMatchBuilder.get(IpMatchBuilder.class);
182 if (ipMatchBuilder == null) {
183 ipMatchBuilder = new IpMatchBuilder();
184 mapMatchBuilder.put(IpMatchBuilder.class, ipMatchBuilder);
187 ipMatchBuilder.setIpProtocol(Short.valueOf((short) matchInfo.getMatchValues()[0])).build();
191 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
192 IpMatchBuilder ipMatchBuilder = (IpMatchBuilder) mapMatchBuilder.remove(IpMatchBuilder.class);
194 if (ipMatchBuilder != null) {
195 matchBuilderInOut.setIpMatch(ipMatchBuilder.build());
202 protected Class<? extends MatchField> getMatchType() {
203 return Ipv4Dst.class;
207 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
208 Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.get(Ipv4MatchBuilder.class);
210 if (ipv4MatchBuilder == null) {
211 ipv4MatchBuilder = new Ipv4MatchBuilder();
212 mapMatchBuilder.put(Ipv4MatchBuilder.class, ipv4MatchBuilder);
215 long[] prefix = matchInfo.getMatchValues();
216 ipv4MatchBuilder.setIpv4Destination(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1]))).build();
220 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
221 Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.remove(Ipv4MatchBuilder.class);
223 if (ipv4MatchBuilder != null) {
224 matchBuilderInOut.setLayer3Match(ipv4MatchBuilder.build());
231 protected Class<? extends MatchField> getMatchType() {
232 return Ipv4Src.class;
236 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
237 Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.get(Ipv4MatchBuilder.class);
239 if (ipv4MatchBuilder == null) {
240 ipv4MatchBuilder = new Ipv4MatchBuilder();
241 mapMatchBuilder.put(Ipv4MatchBuilder.class, ipv4MatchBuilder);
244 long[] prefix = matchInfo.getMatchValues();
245 ipv4MatchBuilder.setIpv4Source(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1]))).build();
249 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
250 Ipv4MatchBuilder ipv4MatchBuilder = (Ipv4MatchBuilder) mapMatchBuilder.remove(Ipv4MatchBuilder.class);
252 if (ipv4MatchBuilder != null) {
253 matchBuilderInOut.setLayer3Match(ipv4MatchBuilder.build());
260 protected Class<? extends MatchField> getMatchType() {
265 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
266 ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
268 if (arpMatchBuilder == null) {
269 arpMatchBuilder = new ArpMatchBuilder();
270 mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
273 arpMatchBuilder.setArpOp(Integer.valueOf((int) matchInfo.getMatchValues()[0]));
277 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
278 ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
280 if (arpMatchBuilder != null) {
281 matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
288 protected Class<? extends MatchField> getMatchType() {
293 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
294 ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
296 if (arpMatchBuilder == null) {
297 arpMatchBuilder = new ArpMatchBuilder();
298 mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
301 long[] prefix = matchInfo.getMatchValues();
302 arpMatchBuilder.setArpTargetTransportAddress(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1])));
306 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
307 ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
309 if (arpMatchBuilder != null) {
310 matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
317 protected Class<? extends MatchField> getMatchType() {
322 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
323 ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.get(ArpMatchBuilder.class);
325 if (arpMatchBuilder == null) {
326 arpMatchBuilder = new ArpMatchBuilder();
327 mapMatchBuilder.put(ArpMatchBuilder.class, arpMatchBuilder);
330 long[] prefix = matchInfo.getMatchValues();
331 arpMatchBuilder.setArpSourceTransportAddress(new Ipv4Prefix(MDSALUtil.longToIp(prefix[0], prefix[1])));
335 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
336 ArpMatchBuilder arpMatchBuilder = (ArpMatchBuilder) mapMatchBuilder.remove(ArpMatchBuilder.class);
338 if (arpMatchBuilder != null) {
339 matchBuilderInOut.setLayer3Match(arpMatchBuilder.build());
346 protected Class<? extends MatchField> getMatchType() {
347 return Metadata.class;
351 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
352 MetadataBuilder metadataBuilder = (MetadataBuilder) mapMatchBuilder.get(MetadataBuilder.class);
354 if (metadataBuilder == null) {
355 metadataBuilder = new MetadataBuilder();
356 mapMatchBuilder.put(MetadataBuilder.class, metadataBuilder);
359 BigInteger[] metadataValues = matchInfo.getBigMatchValues();
360 metadataBuilder.setMetadata(metadataValues[0]).setMetadataMask(metadataValues[1]).build();
364 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
365 MetadataBuilder metadataBuilder = (MetadataBuilder) mapMatchBuilder.remove(MetadataBuilder.class);
367 if (metadataBuilder != null) {
368 matchBuilderInOut.setMetadata(metadataBuilder.build());
375 protected Class<? extends MatchField> getMatchType() {
376 return MplsLabel.class;
380 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
381 ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
382 .get(ProtocolMatchFieldsBuilder.class);
384 if (protocolMatchFieldsBuilder == null) {
385 protocolMatchFieldsBuilder = new ProtocolMatchFieldsBuilder();
386 mapMatchBuilder.put(ProtocolMatchFieldsBuilder.class, protocolMatchFieldsBuilder);
389 protocolMatchFieldsBuilder.setMplsLabel(Long.valueOf(matchInfo.getStringMatchValues()[0])).build();
393 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
394 ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
395 .remove(ProtocolMatchFieldsBuilder.class);
397 if (protocolMatchFieldsBuilder != null) {
398 matchBuilderInOut.setProtocolMatchFields(protocolMatchFieldsBuilder.build());
405 protected Class<? extends MatchField> getMatchType() {
406 return PbbIsid.class;
410 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
411 ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
412 .get(ProtocolMatchFieldsBuilder.class);
414 if (protocolMatchFieldsBuilder == null) {
415 protocolMatchFieldsBuilder = new ProtocolMatchFieldsBuilder();
416 mapMatchBuilder.put(ProtocolMatchFieldsBuilder.class, protocolMatchFieldsBuilder);
419 protocolMatchFieldsBuilder.setPbb(new PbbBuilder().setPbbIsid(Long.valueOf(matchInfo.getMatchValues()[0]))
424 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
425 ProtocolMatchFieldsBuilder protocolMatchFieldsBuilder = (ProtocolMatchFieldsBuilder) mapMatchBuilder
426 .remove(ProtocolMatchFieldsBuilder.class);
428 if (protocolMatchFieldsBuilder != null) {
429 matchBuilderInOut.setProtocolMatchFields(protocolMatchFieldsBuilder.build());
436 protected Class<? extends MatchField> getMatchType() {
441 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
442 TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.get(TcpMatchBuilder.class);
444 if (tcpMatchBuilder == null) {
445 tcpMatchBuilder = new TcpMatchBuilder();
446 mapMatchBuilder.put(TcpMatchBuilder.class, tcpMatchBuilder);
449 tcpMatchBuilder.setTcpDestinationPort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
453 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
454 TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.remove(TcpMatchBuilder.class);
456 if (tcpMatchBuilder != null) {
457 matchBuilderInOut.setLayer4Match(tcpMatchBuilder.build());
464 protected Class<? extends MatchField> getMatchType() {
469 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
470 TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.get(TcpMatchBuilder.class);
472 if (tcpMatchBuilder == null) {
473 tcpMatchBuilder = new TcpMatchBuilder();
474 mapMatchBuilder.put(TcpMatchBuilder.class, tcpMatchBuilder);
477 tcpMatchBuilder.setTcpSourcePort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
481 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
482 TcpMatchBuilder tcpMatchBuilder = (TcpMatchBuilder) mapMatchBuilder.remove(TcpMatchBuilder.class);
484 if (tcpMatchBuilder != null) {
485 matchBuilderInOut.setLayer4Match(tcpMatchBuilder.build());
492 protected Class<? extends MatchField> getMatchType() {
497 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
498 UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.get(UdpMatchBuilder.class);
500 if (udpMatchBuilder == null) {
501 udpMatchBuilder = new UdpMatchBuilder();
502 mapMatchBuilder.put(UdpMatchBuilder.class, udpMatchBuilder);
505 udpMatchBuilder.setUdpDestinationPort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
509 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
510 UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.remove(UdpMatchBuilder.class);
512 if (udpMatchBuilder != null) {
513 matchBuilderInOut.setLayer4Match(udpMatchBuilder.build());
520 protected Class<? extends MatchField> getMatchType() {
525 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
526 UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.get(UdpMatchBuilder.class);
528 if (udpMatchBuilder == null) {
529 udpMatchBuilder = new UdpMatchBuilder();
530 mapMatchBuilder.put(UdpMatchBuilder.class, udpMatchBuilder);
533 udpMatchBuilder.setUdpSourcePort(new PortNumber(Integer.valueOf((int) matchInfo.getMatchValues()[0])));
537 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
538 UdpMatchBuilder udpMatchBuilder = (UdpMatchBuilder) mapMatchBuilder.remove(UdpMatchBuilder.class);
540 if (udpMatchBuilder != null) {
541 matchBuilderInOut.setLayer4Match(udpMatchBuilder.build());
547 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
548 TunnelBuilder tunnelBuilder = (TunnelBuilder) mapMatchBuilder.get(TunnelBuilder.class);
550 if (tunnelBuilder == null) {
551 tunnelBuilder = new TunnelBuilder();
552 mapMatchBuilder.put(TunnelBuilder.class, tunnelBuilder);
555 BigInteger[] tunnelIdValues = matchInfo.getBigMatchValues();
556 tunnelBuilder.setTunnelId(tunnelIdValues[0]).setTunnelMask(tunnelIdValues[1]).build();
560 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
561 TunnelBuilder tunnelBuilder = (TunnelBuilder) mapMatchBuilder.remove(TunnelBuilder.class);
563 if (tunnelBuilder != null) {
564 matchBuilderInOut.setTunnel(tunnelBuilder.build());
569 protected Class<? extends MatchField> getMatchType() {
570 return TunnelId.class;
577 protected Class<? extends MatchField> getMatchType() {
578 return VlanVid.class;
582 public void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
583 VlanMatchBuilder vlanMatchBuilder = (VlanMatchBuilder) mapMatchBuilder.get(VlanMatchBuilder.class);
585 if (vlanMatchBuilder == null) {
586 vlanMatchBuilder = new VlanMatchBuilder();
587 mapMatchBuilder.put(VlanMatchBuilder.class, vlanMatchBuilder);
590 vlanMatchBuilder.setVlanId(new VlanIdBuilder()
591 .setVlanId(new VlanId(Integer.valueOf((int) matchInfo.getMatchValues()[0])))
592 .setVlanIdPresent(((int) matchInfo.getMatchValues()[0] == 0) ? Boolean.FALSE : Boolean.TRUE)
597 public void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder) {
598 VlanMatchBuilder vlanMatchBuilder = (VlanMatchBuilder) mapMatchBuilder.remove(VlanMatchBuilder.class);
600 if (vlanMatchBuilder != null) {
601 matchBuilderInOut.setVlanMatch(vlanMatchBuilder.build());
607 public abstract void createInnerMatchBuilder(MatchInfo matchInfo, Map<Class<?>, Object> mapMatchBuilder);
609 public abstract void setMatch(MatchBuilder matchBuilderInOut, MatchInfo matchInfo,
610 Map<Class<?>, Object> mapMatchBuilder);
612 protected abstract Class<? extends MatchField> getMatchType();
614 protected boolean hasMatchFieldMask() {
615 // Override this to return true