import java.math.BigInteger;
import java.nio.ByteBuffer;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import org.opendaylight.openflowplugin.openflow.md.OFConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.base.Splitter;
+
/**
* Utility class for converting a MD-SAL Flow into the OF flow mod
*/
public class MatchConvertorImpl implements MatchConvertor<List<MatchEntries>> {
private static final Logger logger = LoggerFactory.getLogger(MatchConvertorImpl.class);
static final String PREFIX_SEPARATOR = "/";
+ static final Splitter PREFIX_SPLITTER = Splitter.on('/');
private static final byte[] VLAN_VID_MASK = new byte[] { 16, 0 };
private static final short PROTO_TCP = 6;
private static final short PROTO_UDP = 17;
@Override
public List<MatchEntries> convert(
- org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.Match match, BigInteger datapathid) {
+ final org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.Match match, final BigInteger datapathid) {
List<MatchEntries> matchEntriesList = new ArrayList<>();
if (match.getInPort() != null) {
* @return
* @author avishnoi@in.ibm.com
*/
- public static Match fromOFMatchV10ToSALMatch(MatchV10 swMatch, BigInteger datapathid) {
+ public static Match fromOFMatchV10ToSALMatch(final MatchV10 swMatch, final BigInteger datapathid) {
MatchBuilder matchBuilder = new MatchBuilder();
EthernetMatchBuilder ethMatchBuilder = new EthernetMatchBuilder();
VlanMatchBuilder vlanMatchBuilder = new VlanMatchBuilder();
}
if (!swMatch.getWildcards().isNWPROTO().booleanValue() && swMatch.getNwProto() == PROTO_TCP) {
TcpMatchBuilder tcpMatchBuilder = new TcpMatchBuilder();
- if (!swMatch.getWildcards().isTPSRC().booleanValue() && swMatch.getTpSrc() != null)
+ if (!swMatch.getWildcards().isTPSRC().booleanValue() && swMatch.getTpSrc() != null) {
tcpMatchBuilder
.setTcpSourcePort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
swMatch.getTpSrc()));
- if (!swMatch.getWildcards().isTPDST().booleanValue() && swMatch.getTpDst() != null)
+ }
+ if (!swMatch.getWildcards().isTPDST().booleanValue() && swMatch.getTpDst() != null) {
tcpMatchBuilder
.setTcpDestinationPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
swMatch.getTpDst()));
+ }
- if (!swMatch.getWildcards().isTPSRC().booleanValue() || !swMatch.getWildcards().isTPDST().booleanValue())
+ if (!swMatch.getWildcards().isTPSRC().booleanValue() || !swMatch.getWildcards().isTPDST().booleanValue()) {
matchBuilder.setLayer4Match(tcpMatchBuilder.build());
+ }
}
if (!swMatch.getWildcards().isNWPROTO().booleanValue() && swMatch.getNwProto() == PROTO_UDP) {
UdpMatchBuilder udpMatchBuilder = new UdpMatchBuilder();
- if (!swMatch.getWildcards().isTPSRC().booleanValue() && swMatch.getTpSrc() != null)
+ if (!swMatch.getWildcards().isTPSRC().booleanValue() && swMatch.getTpSrc() != null) {
udpMatchBuilder
.setUdpSourcePort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
swMatch.getTpSrc()));
- if (!swMatch.getWildcards().isTPDST().booleanValue() && swMatch.getTpDst() != null)
+ }
+ if (!swMatch.getWildcards().isTPDST().booleanValue() && swMatch.getTpDst() != null) {
udpMatchBuilder
.setUdpDestinationPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
swMatch.getTpDst()));
+ }
- if (!swMatch.getWildcards().isTPSRC().booleanValue() || !swMatch.getWildcards().isTPDST().booleanValue())
+ if (!swMatch.getWildcards().isTPSRC().booleanValue() || !swMatch.getWildcards().isTPDST().booleanValue()) {
matchBuilder.setLayer4Match(udpMatchBuilder.build());
+ }
}
if (!swMatch.getWildcards().isNWTOS().booleanValue() && swMatch.getNwTos() != null) {
// DSCP default value is 0 from the library but controller side it
* @author avishnoi@in.ibm.com
*/
public static Match fromOFMatchToSALMatch(
- org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match swMatch,
- BigInteger datapathid) {
+ final org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.grouping.Match swMatch,
+ final BigInteger datapathid) {
MatchBuilder matchBuilder = new MatchBuilder();
EthernetMatchBuilder ethMatchBuilder = new EthernetMatchBuilder();
}
ipv4PrefixStr += PREFIX_SEPARATOR + (32-shiftCount);
}else{
- //Openflow Spec : 1.3.2
+ //Openflow Spec : 1.3.2
//An all-one-bits oxm_mask is equivalent to specifying 0 for oxm_hasmask and omitting oxm_mask.
// So when user specify 32 as a mast, switch omit that mast and we get null as a mask in flow
// statistics response.
return matchBuilder.build();
}
- private static MatchEntries toOfMplsPbb(Pbb pbb) {
+ private static MatchEntries toOfMplsPbb(final Pbb pbb) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
boolean hasmask = false;
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfMplsTc(Short mplsTc) {
+ private static MatchEntries toOfMplsTc(final Short mplsTc) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfMplsBos(Short mplsBos) {
+ private static MatchEntries toOfMplsBos(final Short mplsBos) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfMplsLabel(Long mplsLabel) {
+ private static MatchEntries toOfMplsLabel(final Long mplsLabel) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIpv6ExtHeader(Ipv6ExtHeader ipv6ExtHeader) {
+ private static MatchEntries toOfIpv6ExtHeader(final Ipv6ExtHeader ipv6ExtHeader) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
boolean hasmask = false;
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIpv6FlowLabel(Ipv6Label ipv6Label) {
+ private static MatchEntries toOfIpv6FlowLabel(final Ipv6Label ipv6Label) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
boolean hasmask = false;
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfPort(Class<? extends MatchField> field, Long portNumber) {
+ private static MatchEntries toOfPort(final Class<? extends MatchField> field, final Long portNumber) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfMetadata(Class<? extends MatchField> field, BigInteger metadata,
- BigInteger metadataMask) {
+ private static MatchEntries toOfMetadata(final Class<? extends MatchField> field, final BigInteger metadata,
+ final BigInteger metadataMask) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
boolean hasmask = false;
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
return matchEntriesBuilder.build();
}
- public static MatchEntries toOfMacAddress(Class<? extends MatchField> field,
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress macAddress,
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress mask) {
+ public static MatchEntries toOfMacAddress(final Class<? extends MatchField> field,
+ final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress macAddress,
+ final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress mask) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
boolean hasmask = false;
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfEthernetType(EthernetType ethernetType) {
+ private static MatchEntries toOfEthernetType(final EthernetType ethernetType) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfLayer3Port(Class<? extends MatchField> field,
- org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber portNumber) {
+ private static MatchEntries toOfLayer3Port(final Class<? extends MatchField> field,
+ final org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber portNumber) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIcmpv4Type(Short icmpv4Type) {
+ private static MatchEntries toOfIcmpv4Type(final Short icmpv4Type) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIcmpv4Code(Short icmpv4Code) {
+ private static MatchEntries toOfIcmpv4Code(final Short icmpv4Code) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIcmpv6Type(Short icmpv6Type) {
+ private static MatchEntries toOfIcmpv6Type(final Short icmpv6Type) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIcmpv6Code(Short icmpv6Code) {
+ private static MatchEntries toOfIcmpv6Code(final Short icmpv6Code) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- public static MatchEntries toOfIpv4Prefix(Class<? extends MatchField> field, Ipv4Prefix ipv4Prefix) {
+ public static MatchEntries toOfIpv4Prefix(final Class<? extends MatchField> field, final Ipv4Prefix ipv4Prefix) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setOxmMatchField(field);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIpv6Prefix(Class<? extends MatchField> field, Ipv6Prefix ipv6Prefix) {
+ private static MatchEntries toOfIpv6Prefix(final Class<? extends MatchField> field, final Ipv6Prefix ipv6Prefix) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setOxmMatchField(field);
return matchEntriesBuilder.build();
}
- public static MatchEntries toOfIpDscp(Dscp ipDscp) {
+ public static MatchEntries toOfIpDscp(final Dscp ipDscp) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
}
public static MatchEntries toOfVlanPcp(
- org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanPcp vlanPcp) {
+ final org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanPcp vlanPcp) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfVlanVid(VlanId vlanId) {
+ private static MatchEntries toOfVlanVid(final VlanId vlanId) {
// TODO: verify
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
boolean hasmask = false;
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIpProto(Short ipProtocol) {
+ private static MatchEntries toOfIpProto(final Short ipProtocol) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIpEcn(Short ipEcn) {
+ private static MatchEntries toOfIpEcn(final Short ipEcn) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfArpOpCode(Integer arpOp) {
+ private static MatchEntries toOfArpOpCode(final Integer arpOp) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static MatchEntries toOfIpv6Address(Ipv6Address address) {
+ private static MatchEntries toOfIpv6Address(final Ipv6Address address) {
MatchEntriesBuilder matchEntriesBuilder = new MatchEntriesBuilder();
matchEntriesBuilder.setOxmClass(OpenflowBasicClass.class);
matchEntriesBuilder.setHasMask(false);
return matchEntriesBuilder.build();
}
- private static void addMaskAugmentation(MatchEntriesBuilder builder, byte[] mask) {
+ private static void addMaskAugmentation(final MatchEntriesBuilder builder, final byte[] mask) {
MaskMatchEntryBuilder maskBuilder = new MaskMatchEntryBuilder();
maskBuilder.setMask(mask);
builder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
}
- private static boolean addIpv6PrefixAugmentation(MatchEntriesBuilder builder, Ipv6Prefix address) {
+ private static boolean addIpv6PrefixAugmentation(final MatchEntriesBuilder builder, final Ipv6Prefix address) {
boolean hasMask = false;
- String[] addressParts = address.getValue().split(PREFIX_SEPARATOR);
+ Iterator<String> addressParts = PREFIX_SPLITTER.split(address.getValue()).iterator();
+ Ipv6Address ipv6Address = new Ipv6Address(addressParts.next());
+
Integer prefix = null;
- if (addressParts.length == 2) {
- prefix = Integer.parseInt(addressParts[1]);
+ if (addressParts.hasNext()) {
+ prefix = Integer.parseInt(addressParts.next());
}
- Ipv6Address ipv6Address = new Ipv6Address(addressParts[0]);
Ipv6AddressMatchEntryBuilder ipv6AddressBuilder = new Ipv6AddressMatchEntryBuilder();
ipv6AddressBuilder.setIpv6Address(ipv6Address);
builder.addAugmentation(Ipv6AddressMatchEntry.class, ipv6AddressBuilder.build());
return hasMask;
}
- private static byte[] convertIpv6PrefixToByteArray(int prefix) {
+ private static byte[] convertIpv6PrefixToByteArray(final int prefix) {
// TODO: Temporary fix. Has performance impacts.
byte[] mask = new byte[16];
int oneCount = prefix;
return mask;
}
- private static void addMetadataAugmentation(MatchEntriesBuilder builder, BigInteger metadata) {
+ private static void addMetadataAugmentation(final MatchEntriesBuilder builder, final BigInteger metadata) {
MetadataMatchEntryBuilder metadataMatchEntry = new MetadataMatchEntryBuilder();
metadataMatchEntry.setMetadata(ByteUtil.convertBigIntegerToNBytes(metadata, OFConstants.SIZE_OF_LONG_IN_BYTES));
builder.addAugmentation(MetadataMatchEntry.class, metadataMatchEntry.build());
* @return true if Ipv4Prefix contains prefix (and it is used in mask),
* false otherwise
*/
- private static boolean addIpv4PrefixAugmentation(MatchEntriesBuilder builder, Ipv4Prefix address) {
+ private static boolean addIpv4PrefixAugmentation(final MatchEntriesBuilder builder, final Ipv4Prefix address) {
boolean hasMask = false;
- String[] addressParts = address.getValue().split(PREFIX_SEPARATOR);
- Integer prefix = null;
- if (addressParts.length < 2) {
- prefix = 0;
+ Iterator<String> addressParts = PREFIX_SPLITTER.split(address.getValue()).iterator();
+ Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
+
+ final int prefix;
+ if (addressParts.hasNext()) {
+ prefix = Integer.parseInt(addressParts.next());
} else {
- prefix = Integer.parseInt(addressParts[1]);
+ prefix = 0;
}
- Ipv4Address ipv4Address = new Ipv4Address(addressParts[0]);
Ipv4AddressMatchEntryBuilder ipv4AddressBuilder = new Ipv4AddressMatchEntryBuilder();
ipv4AddressBuilder.setIpv4Address(ipv4Address);
builder.addAugmentation(Ipv4AddressMatchEntry.class, ipv4AddressBuilder.build());
return hasMask;
}
- private static void addMacAddressAugmentation(MatchEntriesBuilder builder, MacAddress address) {
+ private static void addMacAddressAugmentation(final MatchEntriesBuilder builder, final MacAddress address) {
MacAddressMatchEntryBuilder macAddress = new MacAddressMatchEntryBuilder();
macAddress.setMacAddress(address);
builder.addAugmentation(MacAddressMatchEntry.class, macAddress.build());
* @return
*/
public static SetField ofToSALSetField(
- Action action) {
+ final Action action) {
logger.debug("OF SetField match to SAL SetField match converstion begins");
SetFieldBuilder setField = new SetFieldBuilder();
/*
package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match;
import java.math.BigInteger;
+import java.util.Iterator;
import org.opendaylight.openflowplugin.openflow.md.util.InventoryDataServiceUtil;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.match.v10.grouping.MatchV10Builder;
/**
- *
+ *
*/
public class MatchConvertorV10Impl implements MatchConvertor<MatchV10> {
-
+
/** default MAC */
public static final MacAddress zeroMac = new MacAddress("00:00:00:00:00:00");
/** default IPv4 */
* @author avishnoi@in.ibm.com
*/
@Override
- public MatchV10 convert(Match match,BigInteger datapathid) {
+ public MatchV10 convert(final Match match,final BigInteger datapathid) {
MatchV10Builder matchBuilder = new MatchV10Builder();
boolean _dLDST = true;
boolean _dLSRC = true;
boolean _nWTOS = true;
boolean _tPDST = true;
boolean _tPSRC = true;
-
+
matchBuilder.setInPort(0);
matchBuilder.setDlDst(zeroMac);
matchBuilder.setDlSrc(zeroMac);
matchBuilder.setNwTos((short) 0);
matchBuilder.setTpSrc(0);
matchBuilder.setTpDst(0);
-
+
EthernetMatch ethernetMatch = match.getEthernetMatch();
if(ethernetMatch!= null){
_dLDST = convertEthernetDlDst(matchBuilder, ethernetMatch);
_tPDST = convertL4UdpDstMatch(matchBuilder, udpMatch);
}
}
-
+
FlowWildcardsV10 wildCards = new FlowWildcardsV10(
- _dLDST, _dLSRC, _dLTYPE, _dLVLAN,
+ _dLDST, _dLSRC, _dLTYPE, _dLVLAN,
_dLVLANPCP, _iNPORT, _nWPROTO, _nWTOS, _tPDST, _tPSRC);
matchBuilder.setWildcards(wildCards);
-
+
return matchBuilder.build();
}
* @param udpMatch
* @return is wildCard
*/
- private static boolean convertL4UdpDstMatch(MatchV10Builder matchBuilder,
- UdpMatch udpMatch) {
+ private static boolean convertL4UdpDstMatch(final MatchV10Builder matchBuilder,
+ final UdpMatch udpMatch) {
if (udpMatch.getUdpDestinationPort() != null) {
matchBuilder.setTpDst(udpMatch.getUdpDestinationPort().getValue());
return false;
* @param udpMatch
* @return is wildCard
*/
- private static boolean convertL4UdpSrcMatch(MatchV10Builder matchBuilder,
- UdpMatch udpMatch) {
+ private static boolean convertL4UdpSrcMatch(final MatchV10Builder matchBuilder,
+ final UdpMatch udpMatch) {
if (udpMatch.getUdpSourcePort() != null) {
matchBuilder.setTpSrc(udpMatch.getUdpSourcePort().getValue());
return false;
* @param tcpMatch
* @return is wildCard
*/
- private static boolean convertL4TpDstMatch(MatchV10Builder matchBuilder,
- TcpMatch tcpMatch) {
+ private static boolean convertL4TpDstMatch(final MatchV10Builder matchBuilder,
+ final TcpMatch tcpMatch) {
if (tcpMatch.getTcpDestinationPort() != null) {
matchBuilder.setTpDst(tcpMatch.getTcpDestinationPort().getValue());
return false;
* @param tcpMatch
* @return is wildCard
*/
- private static boolean convertL4TpSrcMatch(MatchV10Builder matchBuilder,
- TcpMatch tcpMatch) {
+ private static boolean convertL4TpSrcMatch(final MatchV10Builder matchBuilder,
+ final TcpMatch tcpMatch) {
if (tcpMatch.getTcpSourcePort() != null) {
matchBuilder.setTpSrc(tcpMatch.getTcpSourcePort().getValue());
return false;
* @param ipMatch
* @return is wildCard
*/
- private static boolean convertNwTos(MatchV10Builder matchBuilder,
- IpMatch ipMatch) {
+ private static boolean convertNwTos(final MatchV10Builder matchBuilder,
+ final IpMatch ipMatch) {
if (ipMatch.getIpDscp() != null) {
matchBuilder.setNwTos(ipMatch.getIpDscp().getValue());
return false;
* @param ipMatch
* @return is wildCard
*/
- private static boolean convertNwProto(MatchV10Builder matchBuilder, IpMatch ipMatch) {
+ private static boolean convertNwProto(final MatchV10Builder matchBuilder, final IpMatch ipMatch) {
if (ipMatch.getIpProtocol() != null) {
matchBuilder.setNwProto(ipMatch.getIpProtocol());
return false;
* @param ipv4
* @return is wildCard
*/
- private static boolean convertL3Ipv4DstMatch(MatchV10Builder matchBuilder,
- Ipv4Match ipv4) {
+ private static boolean convertL3Ipv4DstMatch(final MatchV10Builder matchBuilder,
+ final Ipv4Match ipv4) {
if(ipv4.getIpv4Destination()!=null){
- String[] addressParts = ipv4.getIpv4Destination().getValue().split("/");
+ Iterator<String> addressParts = MatchConvertorImpl.PREFIX_SPLITTER.split(ipv4.getIpv4Destination().getValue()).iterator();
+ Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
Integer prefix = buildPrefix(addressParts);
-
- Ipv4Address ipv4Address = new Ipv4Address(addressParts[0]);
matchBuilder.setNwDst(ipv4Address);
matchBuilder.setNwDstMask(prefix.shortValue());
return false;
* @param ipv4
* @return is wildCard
*/
- private static boolean convertL3Ipv4SrcMatch(MatchV10Builder matchBuilder,
- Ipv4Match ipv4) {
+ private static boolean convertL3Ipv4SrcMatch(final MatchV10Builder matchBuilder,
+ final Ipv4Match ipv4) {
if(ipv4.getIpv4Source()!=null){
- String[] addressParts = ipv4.getIpv4Source().getValue().split(MatchConvertorImpl.PREFIX_SEPARATOR);
- Ipv4Address ipv4Address = new Ipv4Address(addressParts[0]);
+ Iterator<String> addressParts = MatchConvertorImpl.PREFIX_SPLITTER.split(ipv4.getIpv4Source().getValue()).iterator();
+ Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
int prefix = buildPrefix(addressParts);
-
+
matchBuilder.setNwSrc(ipv4Address);
matchBuilder.setNwSrcMask((short) prefix);
return false;
* @param addressParts
* @return
*/
- private static int buildPrefix(String[] addressParts) {
+ private static int buildPrefix(final Iterator<String> addressParts) {
int prefix = 32;
- if (addressParts.length > 1) {
- prefix = Integer.parseInt(addressParts[1]);
+ if (addressParts.hasNext()) {
+ prefix = Integer.parseInt(addressParts.next());
}
return prefix;
}
/**
* @param matchBuilder
* @param vlanMatch
- * @return
+ * @return
*/
- private static boolean convertDlVlanPcp(MatchV10Builder matchBuilder,
- VlanMatch vlanMatch) {
+ private static boolean convertDlVlanPcp(final MatchV10Builder matchBuilder,
+ final VlanMatch vlanMatch) {
if (vlanMatch.getVlanPcp() != null) {
matchBuilder.setDlVlanPcp(vlanMatch.getVlanPcp().getValue());
return false;
/**
* @param matchBuilder
* @param vlanMatch
- * @return
+ * @return
*/
- private static boolean convertDlVlan(MatchV10Builder matchBuilder, VlanMatch vlanMatch) {
+ private static boolean convertDlVlan(final MatchV10Builder matchBuilder, final VlanMatch vlanMatch) {
if (vlanMatch.getVlanId() != null) {
matchBuilder.setDlVlan(vlanMatch.getVlanId().getVlanId().getValue());
return false;
* @param ethernetMatch
* @return is wildCard
*/
- private static boolean convertEthernetDlType(MatchV10Builder matchBuilder,
- EthernetMatch ethernetMatch) {
+ private static boolean convertEthernetDlType(final MatchV10Builder matchBuilder,
+ final EthernetMatch ethernetMatch) {
if (ethernetMatch.getEthernetType() != null) {
matchBuilder.setDlType(ethernetMatch.getEthernetType().getType().getValue().intValue());
return false;
* @param ethernetMatch
* @return is wildCard
*/
- private static boolean convertEthernetDlSrc(MatchV10Builder matchBuilder,
- EthernetMatch ethernetMatch) {
+ private static boolean convertEthernetDlSrc(final MatchV10Builder matchBuilder,
+ final EthernetMatch ethernetMatch) {
if (ethernetMatch.getEthernetSource() != null) {
matchBuilder.setDlSrc(ethernetMatch.getEthernetSource().getAddress());
return false;
* @param ethernetMatch
* @return is wildCard
*/
- private static boolean convertEthernetDlDst(MatchV10Builder matchBuilder,
- EthernetMatch ethernetMatch) {
+ private static boolean convertEthernetDlDst(final MatchV10Builder matchBuilder,
+ final EthernetMatch ethernetMatch) {
if (ethernetMatch.getEthernetDestination() != null) {
matchBuilder.setDlDst(ethernetMatch.getEthernetDestination().getAddress());
return false;
* @param matchBuilder
* @param inPort
*/
- private static boolean convertInPortMatch(MatchV10Builder matchBuilder, NodeConnectorId inPort) {
+ private static boolean convertInPortMatch(final MatchV10Builder matchBuilder, final NodeConnectorId inPort) {
if (inPort != null) {
matchBuilder.setInPort(InventoryDataServiceUtil.portNumberfromNodeConnectorId(inPort).intValue());
return false;