Fixed discard-changes for mdsal netconf, mapping code cleanup.
[controller.git] / opendaylight / md-sal / compatibility / sal-compatibility / src / main / java / org / opendaylight / controller / sal / compatibility / FromSalConversionsUtils.java
index 1b648dc98c36c0c6e05bfce6740b294dd730e8b8..8468c2d7f5fc333da47ff314eb9d9c1d2d7b0919 100644 (file)
@@ -61,10 +61,16 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026
 
 import com.google.common.net.InetAddresses;
 
-public class FromSalConversionsUtils {
+/**
+ * MD-SAL to AD-SAL conversions collection
+ */
+public final class FromSalConversionsUtils {
 
-    private FromSalConversionsUtils() {
+    /** http://en.wikipedia.org/wiki/IPv4#Packet_structure (end of octet number 1, bit 14.+15.) */
+    public static final int ENC_FIELD_BIT_SIZE = 2;
 
+    private FromSalConversionsUtils() {
+        throw new IllegalAccessError("forcing no instance for factory");
     }
 
     @SuppressWarnings("unused")
@@ -325,11 +331,11 @@ public class FromSalConversionsUtils {
             final Inet4Address inetDestAddress) {
         String inetSourceAddressStr = InetAddresses
                 .toAddrString(inetSourceAddress);
-        Ipv4Prefix ipv4SourcePrefix = new Ipv4Prefix(inetSourceAddressStr);
+        Ipv4Prefix ipv4SourcePrefix = new Ipv4Prefix(inetSourceAddressStr + "/32");
 
         String inetDestAddressValue = InetAddresses
                 .toAddrString(inetDestAddress);
-        Ipv4Prefix ipv4DestPrefix = new Ipv4Prefix(inetDestAddressValue);
+        Ipv4Prefix ipv4DestPrefix = new Ipv4Prefix(inetDestAddressValue + "/32");
 
         ArpMatchBuilder arpMatchBuilder = new ArpMatchBuilder();
 
@@ -369,13 +375,13 @@ public class FromSalConversionsUtils {
         if(inetSourceAddress != null) {
             String inetSrcAddressString = InetAddresses
                     .toAddrString(inetSourceAddress);
-            layer4MatchBuild.setIpv4Source(new Ipv4Prefix(inetSrcAddressString));
+            layer4MatchBuild.setIpv4Source(new Ipv4Prefix(inetSrcAddressString + "/32"));
         }
         if(inetDestAddress != null) {
             String inetDstAddressString = InetAddresses
                     .toAddrString(inetDestAddress);
             layer4MatchBuild
-            .setIpv4Destination(new Ipv4Prefix(inetDstAddressString));
+            .setIpv4Destination(new Ipv4Prefix(inetDstAddressString + "/32"));
         }
         return layer4MatchBuild.build();
 
@@ -388,13 +394,13 @@ public class FromSalConversionsUtils {
         if(inetSourceAddress != null) {
             String inetSrcAddressString = InetAddresses
                     .toAddrString(inetSourceAddress);
-            layer6MatchBuild.setIpv6Source(new Ipv6Prefix(inetSrcAddressString));
+            layer6MatchBuild.setIpv6Source(new Ipv6Prefix(inetSrcAddressString + "/128"));
         }
         if(inetDestAddress != null) {
             String inetDstAddressString = InetAddresses
                     .toAddrString(inetDestAddress);
             layer6MatchBuild
-                    .setIpv6Destination(new Ipv6Prefix(inetDstAddressString));
+                    .setIpv6Destination(new Ipv6Prefix(inetDstAddressString + "/128"));
         }
         return layer6MatchBuild.build();
     }
@@ -469,5 +475,12 @@ public class FromSalConversionsUtils {
         return true;
     }
 
+    /**
+     * @param nwDscp NW-DSCP
+     * @return shifted to NW-TOS (with empty ECN part)
+     */
+    public static int dscpToTos(int nwDscp) {
+        return (short) (nwDscp << ENC_FIELD_BIT_SIZE);
+    }
 
 }