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")
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();
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();
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();
}
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);
+ }
}