Fix Ipv6 format compression
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / match / cases / OfToSalIpv6SrcCase.java
index 981bdf8166adc9f25672e64837d2473bba04c975..49e3e5eeaebd25fe2d8907b453c87a9c8d6819af 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.cas
 import java.util.Optional;
 import javax.annotation.Nonnull;
 import org.opendaylight.openflowplugin.api.OFConstants;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.ConvertorCase;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.IpConversionUtil;
 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.data.MatchResponseConvertorData;
@@ -29,7 +30,7 @@ public class OfToSalIpv6SrcCase extends ConvertorCase<Ipv6SrcCase, MatchBuilder,
     }
 
     @Override
-    public Optional<MatchBuilder> process(@Nonnull Ipv6SrcCase source, MatchResponseConvertorData data) {
+    public Optional<MatchBuilder> process(@Nonnull Ipv6SrcCase source, MatchResponseConvertorData data, ConvertorExecutor convertorExecutor) {
         final MatchBuilder matchBuilder = data.getMatchBuilder();
         final Ipv6MatchBuilder ipv6MatchBuilder = data.getIpv6MatchBuilder();
         final Ipv6MatchArbitraryBitMaskBuilder ipv6MatchArbitraryBitMaskBuilder = data.getIpv6MatchArbitraryBitMaskBuilder();
@@ -48,11 +49,11 @@ public class OfToSalIpv6SrcCase extends ConvertorCase<Ipv6SrcCase, MatchBuilder,
                     Ipv6ArbitraryMask dstIpv6ArbitraryMask = IpConversionUtil.compressedIpv6MaskFormat(
                             IpConversionUtil.extractIpv6AddressMask(ipv6PrefixDestinationAddress));
                     setDstIpv6MatchArbitraryBitMaskBuilderFields(ipv6MatchArbitraryBitMaskBuilder,
-                            dstIpv6ArbitraryMask, IpConversionUtil.compressedIpv6Format(ipv6DstAddress.getValue()));
+                            dstIpv6ArbitraryMask, IpConversionUtil.compressedIpv6AddressFormat(ipv6DstAddress));
                 }
                 Ipv6ArbitraryMask srcIpv6ArbitraryMask = IpConversionUtil.compressedIpv6MaskFormat(
                         IpConversionUtil.createIpv6ArbitraryBitMask(mask));
-                String stringIpv6SrcAddress = IpConversionUtil.compressedIpv6Format(ipv6Src.getIpv6Address().getValue());
+                Ipv6Address stringIpv6SrcAddress = IpConversionUtil.compressedIpv6AddressFormat(ipv6Src.getIpv6Address());
                 setSrcIpv6MatchArbitraryBitMaskBuilderFields(ipv6MatchArbitraryBitMaskBuilder,
                         srcIpv6ArbitraryMask, stringIpv6SrcAddress);
                 matchBuilder.setLayer3Match(ipv6MatchArbitraryBitMaskBuilder.build());
@@ -74,12 +75,12 @@ public class OfToSalIpv6SrcCase extends ConvertorCase<Ipv6SrcCase, MatchBuilder,
                         */
                 Ipv6ArbitraryMask srcIpv6ArbitraryMask = IpConversionUtil.compressedIpv6MaskFormat(
                         IpConversionUtil.createIpv6ArbitraryBitMask(mask));
-                String stringIpv6SrcAddress = IpConversionUtil.compressedIpv6Format(ipv6Src.getIpv6Address().getValue());
+                Ipv6Address stringIpv6SrcAddress = IpConversionUtil.compressedIpv6AddressFormat(ipv6Src.getIpv6Address());
                 setSrcIpv6MatchArbitraryBitMaskBuilderFields(ipv6MatchArbitraryBitMaskBuilder,
                         srcIpv6ArbitraryMask, stringIpv6SrcAddress);
                 matchBuilder.setLayer3Match(ipv6MatchArbitraryBitMaskBuilder.build());
             } else {
-                String stringIpv6SrcAddress = IpConversionUtil.compressedIpv6Format(ipv6Src.getIpv6Address().getValue());
+                Ipv6Address stringIpv6SrcAddress = IpConversionUtil.compressedIpv6AddressFormat(ipv6Src.getIpv6Address());
                 setIpv6MatchBuilderFields(ipv6MatchBuilder, mask, stringIpv6SrcAddress);
                 matchBuilder.setLayer3Match(ipv6MatchBuilder.build());
             }
@@ -88,37 +89,31 @@ public class OfToSalIpv6SrcCase extends ConvertorCase<Ipv6SrcCase, MatchBuilder,
         return Optional.of(matchBuilder);
     }
 
-    private static void setIpv6MatchBuilderFields(final Ipv6MatchBuilder ipv6MatchBuilder, final byte[] mask, final String ipv6PrefixStr) {
+    private static void setIpv6MatchBuilderFields(final Ipv6MatchBuilder builder, final byte[] mask, final Ipv6Address prefix) {
         Ipv6Prefix ipv6Prefix;
-
         if (mask != null) {
-            ipv6Prefix = IpConversionUtil.createPrefix(new Ipv6Address(ipv6PrefixStr), mask);
+            ipv6Prefix = IpConversionUtil.createPrefix(prefix, mask);
         } else {
-            ipv6Prefix = IpConversionUtil.createPrefix(new Ipv6Address(ipv6PrefixStr));
+            ipv6Prefix = IpConversionUtil.createPrefix(prefix);
         }
-
-        ipv6MatchBuilder.setIpv6Source(ipv6Prefix);
+        builder.setIpv6Source(ipv6Prefix);
     }
 
-    private static void setSrcIpv6MatchArbitraryBitMaskBuilderFields(
-            final Ipv6MatchArbitraryBitMaskBuilder ipv6MatchArbitraryBitMaskBuilder,
-            final Ipv6ArbitraryMask mask, final String ipv6AddressStr) {
-        Ipv6Address ipv6Address;
+    private static void setSrcIpv6MatchArbitraryBitMaskBuilderFields(final Ipv6MatchArbitraryBitMaskBuilder builder,
+                                                                     final Ipv6ArbitraryMask mask,
+                                                                     final Ipv6Address ipv6Address) {
         if (mask != null) {
-            ipv6MatchArbitraryBitMaskBuilder.setIpv6SourceArbitraryBitmask(mask);
+            builder.setIpv6SourceArbitraryBitmask(mask);
         }
-        ipv6Address = new Ipv6Address(ipv6AddressStr);
-        ipv6MatchArbitraryBitMaskBuilder.setIpv6SourceAddressNoMask(ipv6Address);
+        builder.setIpv6SourceAddressNoMask(ipv6Address);
     }
 
-    private static void setDstIpv6MatchArbitraryBitMaskBuilderFields(
-            final Ipv6MatchArbitraryBitMaskBuilder ipv6MatchArbitraryBitMaskBuilder,
-            final Ipv6ArbitraryMask mask, final String ipv6AddressStr) {
-        Ipv6Address ipv6Address;
+    private static void setDstIpv6MatchArbitraryBitMaskBuilderFields(final Ipv6MatchArbitraryBitMaskBuilder builder,
+                                                                     final Ipv6ArbitraryMask mask,
+                                                                     final Ipv6Address ipv6Address) {
         if (mask != null) {
-            ipv6MatchArbitraryBitMaskBuilder.setIpv6DestinationArbitraryBitmask(mask);
+            builder.setIpv6DestinationArbitraryBitmask(mask);
         }
-        ipv6Address = new Ipv6Address(ipv6AddressStr);
-        ipv6MatchArbitraryBitMaskBuilder.setIpv6DestinationAddressNoMask(ipv6Address);
+        builder.setIpv6DestinationAddressNoMask(ipv6Address);
     }
 }