Bug 5390 - Adding Ipv6 L3ArbitraryBitMask feature support.
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / match / MatchConvertorImplV13Test.java
index 56cf2372433b53e5bacace1d44f017c6ea5a66eb..d5adffe7397191361679a5e3cb03638cd27f3887 100644 (file)
@@ -11,7 +11,6 @@ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match;
 import java.math.BigInteger;\r
 import java.util.ArrayList;\r
 import java.util.List;\r
-\r
 import org.junit.Assert;\r
 import org.junit.Before;\r
 import org.junit.Test;\r
@@ -26,6 +25,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4Match;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchArbitraryBitMask;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv6Match;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv6MatchArbitraryBitMask;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.SctpMatch;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatch;\r
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatch;\r
@@ -1118,9 +1118,9 @@ public class MatchConvertorImplV13Test {
         final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();\r
 \r
         final Ipv6Match ipv6Match = (Ipv6Match) builtMatch.getLayer3Match();\r
-        Assert.assertEquals("Wrong ipv6 src address", "2001:cdba:0000:0000:0000:0000:3257:9657/128",\r
+        Assert.assertEquals("Wrong ipv6 src address", "2001:cdba::3257:9657/128",\r
                 ipv6Match.getIpv6Source().getValue());\r
-        Assert.assertEquals("Wrong ipv6 dst address", "2001:cdba:0000:0000:0000:0000:3257:9658/128",\r
+        Assert.assertEquals("Wrong ipv6 dst address", "2001:cdba::3257:9658/128",\r
                 ipv6Match.getIpv6Destination().getValue());\r
         Assert.assertEquals("Wrong ipv6 nd target", "2001:cdba:0000:0000:0000:0000:3257:9659",\r
                 ipv6Match.getIpv6NdTarget().getValue());\r
@@ -1312,4 +1312,275 @@ public class MatchConvertorImplV13Test {
         Assert.assertEquals("Wrong arp tha", "00:00:00:00:00:04", arpMatch.getArpTargetHardwareAddress().getAddress().getValue());\r
         Assert.assertEquals("Wrong arp tha mask", "01:01:01:02:02:02", arpMatch.getArpTargetHardwareAddress().getMask().getValue());\r
     }\r
+\r
+    /**\r
+     * Test {@link MatchConvertorImpl#fromOFMatchToSALMatch(\r
+     * org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match, java.math.BigInteger,\r
+     * org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion)}\r
+     */\r
+    @Test\r
+    public void testWithMatchEntryWithIpv6ArbitraryMasks() {\r
+        final MatchBuilder builder = new MatchBuilder();\r
+        builder.setType(OxmMatchType.class);\r
+        final List<MatchEntry> entries = new ArrayList<>();\r
+        MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);\r
+        entriesBuilder.setHasMask(true);\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Src.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();\r
+        final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();\r
+        ipv6SrcBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));\r
+        ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});\r
+        ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Dst.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();\r
+        final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();\r
+        ipv6AddressBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));\r
+        ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});\r
+        ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        builder.setMatchEntry(entries);\r
+        final Match match = builder.build();\r
+\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow\r
+                .MatchBuilder salMatch = MatchConvertorImpl.fromOFMatchToSALMatch(match, new BigInteger("42"), OpenflowVersion.OF13);\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();\r
+\r
+        final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();\r
+        Assert.assertEquals("Wrong ipv6 src address", "1001:1001:1001:1001:1001:1001:1001:1001",\r
+                ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());\r
+        Assert.assertEquals("Wrong ipv6 dst address", "2002:2002:2002:2002:2002:2002:2002:2002",\r
+                ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());\r
+    }\r
+\r
+    /**\r
+     * Test {@link MatchConvertorImpl#fromOFMatchToSALMatch(\r
+     * org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match, java.math.BigInteger,\r
+     * org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion)}\r
+     */\r
+    @Test\r
+    public void testWithMatchEntryWithIpv6SrcCidrlMaskAndDstArbitraryBitMask() {\r
+        final MatchBuilder builder = new MatchBuilder();\r
+        builder.setType(OxmMatchType.class);\r
+        final List<MatchEntry> entries = new ArrayList<>();\r
+        MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);\r
+        entriesBuilder.setHasMask(true);\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Src.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();\r
+        final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();\r
+        ipv6SrcBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));\r
+        ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});\r
+        ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Dst.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();\r
+        final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();\r
+        ipv6AddressBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));\r
+        ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});\r
+        ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        builder.setMatchEntry(entries);\r
+        final Match match = builder.build();\r
+\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow\r
+                .MatchBuilder salMatch = MatchConvertorImpl.fromOFMatchToSALMatch(match, new BigInteger("42"), OpenflowVersion.OF13);\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();\r
+\r
+        final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();\r
+        Assert.assertEquals("Wrong ipv6 src address", "1001:1001:1001:1001:1001:1001:1001:1001",\r
+                ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());\r
+        Assert.assertEquals("Wrong ipv6 dst address", "2002:2002:2002:2002:2002:2002:2002:2002",\r
+                ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());\r
+    }\r
+\r
+    /**\r
+     * Test {@link MatchConvertorImpl#fromOFMatchToSALMatch(\r
+     * org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match, java.math.BigInteger,\r
+     * org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion)}\r
+     */\r
+    @Test\r
+    public void testWithMatchEntryWithIpv6SrcArbitraryBitMaskAndDstCidrMask() {\r
+        final MatchBuilder builder = new MatchBuilder();\r
+        builder.setType(OxmMatchType.class);\r
+        final List<MatchEntry> entries = new ArrayList<>();\r
+        MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);\r
+        entriesBuilder.setHasMask(true);\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Src.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();\r
+        final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();\r
+        ipv6SrcBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));\r
+        ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});\r
+        ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Dst.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();\r
+        final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();\r
+        ipv6AddressBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));\r
+        ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});\r
+        ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        builder.setMatchEntry(entries);\r
+        final Match match = builder.build();\r
+\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow\r
+                .MatchBuilder salMatch = MatchConvertorImpl.fromOFMatchToSALMatch(match, new BigInteger("42"), OpenflowVersion.OF13);\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();\r
+\r
+        final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();\r
+        Assert.assertEquals("Wrong ipv6 src address", "1001:1001:1001:1001:1001:1001:1001:1001",\r
+                ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());\r
+        Assert.assertEquals("Wrong ipv6 dst address", "2002:2002:2002:2002:2002:2002:2002:2002",\r
+                ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());\r
+    }\r
+\r
+\r
+    /**\r
+     * Test {@link MatchConvertorImpl#fromOFMatchToSALMatch(\r
+     * org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match, java.math.BigInteger,\r
+     * org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion)}\r
+     */\r
+\r
+    @Test\r
+    public void testWithMatchEntryWithIpv6DstArbitraryBitMaskAndSrcCidrMask() {\r
+        final MatchBuilder builder = new MatchBuilder();\r
+        builder.setType(OxmMatchType.class);\r
+        final List<MatchEntry> entries = new ArrayList<>();\r
+        MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);\r
+        entriesBuilder.setHasMask(true);\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Dst.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();\r
+        final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();\r
+        ipv6AddressBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));\r
+        ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});\r
+        ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Src.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();\r
+        final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();\r
+        ipv6SrcBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));\r
+        ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});\r
+        ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        builder.setMatchEntry(entries);\r
+        final Match match = builder.build();\r
+\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow\r
+                .MatchBuilder salMatch = MatchConvertorImpl.fromOFMatchToSALMatch(match, new BigInteger("42"), OpenflowVersion.OF13);\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();\r
+\r
+        final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();\r
+        Assert.assertEquals("Wrong ipv6 src address", "2002:2002:2002:2002:2002:2002:2002:2002",\r
+                ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());\r
+        Assert.assertEquals("Wrong ipv6 dst address", "1001:1001:1001:1001:1001:1001:1001:1001",\r
+                ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());\r
+    }\r
+\r
+\r
+    /**\r
+     * Test {@link MatchConvertorImpl#fromOFMatchToSALMatch(\r
+     * org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match, java.math.BigInteger,\r
+     * org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion)}\r
+     */\r
+\r
+    @Test\r
+    public void testWithMatchEntryWithIpv6DstCidrMaskAndSrcArbitraryBitMask() {\r
+        final MatchBuilder builder = new MatchBuilder();\r
+        builder.setType(OxmMatchType.class);\r
+        final List<MatchEntry> entries = new ArrayList<>();\r
+        MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);\r
+        entriesBuilder.setHasMask(true);\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Dst.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();\r
+        final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();\r
+        ipv6AddressBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));\r
+        ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});\r
+        ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        entriesBuilder = new MatchEntryBuilder();\r
+        entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
+        entriesBuilder.setOxmMatchField(Ipv6Src.class);\r
+        entriesBuilder.setHasMask(true);\r
+        final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();\r
+        final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();\r
+        ipv6SrcBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));\r
+        ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});\r
+        ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());\r
+        entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());\r
+        entries.add(entriesBuilder.build());\r
+\r
+        builder.setMatchEntry(entries);\r
+        final Match match = builder.build();\r
+\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow\r
+                .MatchBuilder salMatch = MatchConvertorImpl.fromOFMatchToSALMatch(match, new BigInteger("42"), OpenflowVersion.OF13);\r
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();\r
+\r
+        final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();\r
+        Assert.assertEquals("Wrong ipv6 src address", "2002:2002:2002:2002:2002:2002:2002:2002",\r
+                ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());\r
+        Assert.assertEquals("Wrong ipv6 dst address", "1001:1001:1001:1001:1001:1001:1001:1001",\r
+                ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());\r
+    }\r
+\r
+\r
 }\r