Added Compatibility for Switch Manager and Topology Manager
[controller.git] / opendaylight / md-sal / sal-compability / src / main / java / org / opendaylight / controller / sal / compability / FromSalConversionsUtils.java
diff --git a/opendaylight/md-sal/sal-compability/src/main/java/org/opendaylight/controller/sal/compability/FromSalConversionsUtils.java b/opendaylight/md-sal/sal-compability/src/main/java/org/opendaylight/controller/sal/compability/FromSalConversionsUtils.java
deleted file mode 100644 (file)
index 8b86689..0000000
+++ /dev/null
@@ -1,388 +0,0 @@
-package org.opendaylight.controller.sal.compability;
-
-import static org.opendaylight.controller.sal.match.MatchType.DL_DST;
-import static org.opendaylight.controller.sal.match.MatchType.DL_SRC;
-import static org.opendaylight.controller.sal.match.MatchType.DL_TYPE;
-
-import java.math.BigInteger;
-import java.net.Inet4Address;
-import java.net.Inet6Address;
-import java.net.InetAddress;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.opendaylight.controller.sal.core.NodeConnector;
-
-
-
-import org.opendaylight.controller.sal.match.Match;
-import org.opendaylight.controller.sal.match.MatchField;
-import org.opendaylight.controller.sal.match.MatchType;
-import org.opendaylight.controller.sal.utils.NetUtils;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Dscp;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv6Prefix;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
-
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetNodeConnectorStatisticsInput;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetNodeConnectorStatisticsInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.address.Address;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.address.address.Ipv4Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.address.address.Ipv6Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeRef;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.EtherType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanPcp;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.arp.match.fields.ArpSourceHardwareAddressBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.arp.match.fields.ArpTargetHardwareAddressBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetDestinationBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetSourceBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetTypeBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatch;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatch;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Layer3Match;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Layer4Match;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatch;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv6MatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.SctpMatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatchBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder;
-
-import com.google.common.net.InetAddresses;
-
-
-
-
-
-
-
-
-import static org.opendaylight.controller.sal.compability.ProtocolConstants.*;
-import static org.opendaylight.controller.sal.compability.NodeMapping.*;
-
-public class FromSalConversionsUtils {
-
-    private FromSalConversionsUtils() {
-
-    }
-
-    public static GetNodeConnectorStatisticsInput nodeConnectorStatistics(
-            NodeConnector connector) {
-        GetNodeConnectorStatisticsInputBuilder target = new GetNodeConnectorStatisticsInputBuilder();
-
-        NodeRef nodeRef = toNodeRef(connector.getNode());
-        target.setNode(nodeRef);
-
-        NodeConnectorRef nodeConnectorRef = toNodeConnectorRef(connector);
-        target.setNodeConnector(nodeConnectorRef);
-
-        return target.build();
-    }
-
-    private static Address addressFromAction(InetAddress inetAddress) {
-        String strInetAddresss = InetAddresses.toAddrString(inetAddress);
-        if (inetAddress instanceof Inet4Address) {
-            Ipv4Builder ipv4Builder = new Ipv4Builder();
-            ipv4Builder.setIpv4Address(new Ipv4Prefix(strInetAddresss));
-            return ipv4Builder.build();
-        } else if (inetAddress instanceof Inet6Address) {
-            Ipv6Builder ipv6Builder = new Ipv6Builder();
-            ipv6Builder.setIpv6Address(new Ipv6Prefix(strInetAddresss));
-            return ipv6Builder.build();
-        }
-        return null;
-    }
-
-    public static org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match toMatch(
-            Match sourceMatch) {
-        if (sourceMatch != null) {
-            MatchBuilder targetBuilder = new MatchBuilder();
-
-            targetBuilder.setEthernetMatch(ethernetMatch(sourceMatch));
-            targetBuilder.setIpMatch(ipMatch(sourceMatch));
-            targetBuilder.setVlanMatch(vlanMatch(sourceMatch));
-            targetBuilder.setLayer3Match(layer3Match(sourceMatch));
-            targetBuilder.setLayer4Match(layer4Match(sourceMatch));
-
-            return targetBuilder.build();
-        }
-        return null;
-
-    }
-
-    private static Layer4Match layer4Match(final Match sourceMatch) {
-        MatchField nwProto = sourceMatch.getField(MatchType.NW_PROTO);
-        Short nwProtocolSource = null;
-        if (nwProto != null && nwProto.getValue() != null) {
-            nwProtocolSource = (short) ((byte) nwProto.getValue());
-            switch (nwProtocolSource) {
-            case TCP:
-                return Layer4MatchAsTcp(sourceMatch);
-            case UDP:
-                return Layer4MatchAsUdp(sourceMatch);
-            case SCTP:
-                return Layer4MatchAsSctp(sourceMatch);
-            }
-        }
-        return null;
-    }
-
-    private static Layer4Match Layer4MatchAsSctp(final Match sourceMatch) {
-        SctpMatchBuilder sctpMatchBuilder = new SctpMatchBuilder();
-
-        Integer sourcePort = transportPort(sourceMatch, MatchType.TP_SRC);
-        Integer destinationPort = transportPort(sourceMatch,
-                MatchType.TP_DST);
-
-        if (sourcePort != null) {
-            sctpMatchBuilder.setSctpSourcePort(new PortNumber(sourcePort));
-        }
-        if (destinationPort != null) {
-            sctpMatchBuilder.setSctpDestinationPort(new PortNumber(
-                    destinationPort));
-        }
-
-        return sctpMatchBuilder.build();
-    }
-
-    private static Layer4Match Layer4MatchAsUdp(final Match sourceMatch) {
-        UdpMatchBuilder udpMatchBuilder = new UdpMatchBuilder();
-
-        Integer sourcePort = transportPort(sourceMatch, MatchType.TP_SRC);
-        Integer destinationPort = transportPort(sourceMatch,
-                MatchType.TP_DST);
-
-        if (sourcePort != null) {
-            udpMatchBuilder.setUdpSourcePort(new PortNumber(sourcePort));
-        }
-
-        if (destinationPort != null) {
-            udpMatchBuilder.setUdpDestinationPort(new PortNumber(
-                    destinationPort));
-        }
-
-        return udpMatchBuilder.build();
-    }
-
-    private static Layer4Match Layer4MatchAsTcp(final Match sourceMatch) {
-        TcpMatchBuilder tcpMatchBuilder = new TcpMatchBuilder();
-
-        Integer sourcePort = transportPort(sourceMatch, MatchType.TP_SRC);
-        Integer destinationPort = transportPort(sourceMatch,
-                MatchType.TP_DST);
-
-        if (sourcePort != null) {
-            tcpMatchBuilder.setTcpSourcePort(new PortNumber(sourcePort));
-        }
-        if (destinationPort != null) {
-            tcpMatchBuilder.setTcpDestinationPort(new PortNumber(
-                    destinationPort));
-        }
-
-        return tcpMatchBuilder.build();
-    }
-
-    private static Integer transportPort(final Match sourceMatch,
-            final MatchType matchType) {
-        MatchField transportPort = sourceMatch.getField(matchType);
-        if (transportPort != null && transportPort.getValue() != null
-                && transportPort.getValue().getClass().equals(Short.class)) {
-            return new Integer(NetUtils.getUnsignedShort((short) transportPort
-                    .getValue()));
-        }
-        return null;
-    }
-
-    private static VlanMatch vlanMatch(final Match sourceMatch) {
-        VlanMatchBuilder vlanMatchBuild = new VlanMatchBuilder();
-
-        MatchField vlan = sourceMatch.getField(MatchType.DL_VLAN);
-        if (vlan != null && vlan.getValue() != null) {
-            VlanIdBuilder vlanIDBuilder = new VlanIdBuilder();
-            vlanIDBuilder.setVlanId(new VlanId((int) (NetUtils
-                    .getUnsignedShort((short) vlan.getValue()))));
-            vlanMatchBuild.setVlanId(vlanIDBuilder.build());
-        }
-
-        MatchField vlanPriority = sourceMatch.getField(MatchType.DL_VLAN_PR);
-        if (vlanPriority != null && vlanPriority.getValue() != null) {
-            vlanMatchBuild.setVlanPcp(new VlanPcp((short) ((byte) vlanPriority
-                    .getValue())));
-        }
-
-        return vlanMatchBuild.build();
-    }
-
-    private static IpMatch ipMatch(final Match sourceMatch) {
-        IpMatchBuilder targetIpMatchBuild = new IpMatchBuilder();
-        MatchField networkTos = sourceMatch.getField(MatchType.NW_TOS);
-        if (networkTos != null && networkTos.getValue() != null) {
-            Dscp dscp = new Dscp(
-                    (short) (NetUtils.getUnsignedByte((Byte) networkTos
-                            .getValue())));
-            targetIpMatchBuild.setIpDscp(dscp);
-        }
-
-        MatchField protocol = sourceMatch.getField(MatchType.NW_PROTO);
-        if (protocol != null && protocol.getValue() != null) {
-            targetIpMatchBuild.setIpProtocol((short) ((byte) protocol
-                    .getValue()));
-        }
-
-        return targetIpMatchBuild.build();
-
-    }
-
-    private static EthernetMatch ethernetMatch(final Match sourceMatch) {
-        final EthernetMatchBuilder targetEthMatchBuild = new EthernetMatchBuilder();
-
-        EthernetSourceBuilder ethSourBuild = new EthernetSourceBuilder()
-                .setAddress(ethernetSourceAddress(sourceMatch));
-        targetEthMatchBuild.setEthernetSource(ethSourBuild.build());
-
-        EthernetDestinationBuilder ethDestBuild = new EthernetDestinationBuilder()
-                .setAddress(ethernetDestAddress(sourceMatch));
-        targetEthMatchBuild.setEthernetDestination(ethDestBuild.build());
-
-        final MatchField dataLinkType = sourceMatch.getField(MatchType.DL_TYPE);
-        if (dataLinkType != null && dataLinkType.getValue() != null) {
-            EtherType etherType = new EtherType(new Long(
-                    NetUtils.getUnsignedShort((Short) dataLinkType.getValue())));
-            EthernetTypeBuilder ethType = new EthernetTypeBuilder()
-                    .setType(etherType);
-            targetEthMatchBuild.setEthernetType(ethType.build());
-        }
-        return targetEthMatchBuild.build();
-    }
-
-    private static MacAddress ethernetSourceAddress(final Match sourceMatch) {
-        final MatchField dataLinkSource = sourceMatch.getField(DL_SRC);
-        if (dataLinkSource != null && dataLinkSource.getValue() != null) {
-            return MDFlowMapping.toMacAddress((byte[])dataLinkSource.getValue());
-        }
-        return null;
-
-    }
-
-    private static Layer3Match layer3Match(final Match sourceMatch) {
-        InetAddress inetSourceAddress = null;
-        MatchField netSource = sourceMatch.getField(MatchType.NW_SRC);
-        if (netSource != null && netSource.getValue() != null) {
-            inetSourceAddress = (InetAddress) (netSource.getValue());
-        }
-
-        InetAddress inetDestAddress = null;
-        MatchField netDest = sourceMatch.getField(MatchType.NW_DST);
-        if (netSource != null && netSource.getValue() != null) {
-            inetDestAddress = (InetAddress) (netDest.getValue());
-        }
-
-        if ((inetSourceAddress instanceof Inet4Address)
-                && (inetDestAddress instanceof Inet4Address)) {
-            MatchField dataLinkType = sourceMatch.getField(DL_TYPE);
-            Short dLType = null;
-            if (dataLinkType != null && dataLinkType.getValue() != null) {
-                dLType = (Short) (dataLinkType.getValue());
-            }
-            if (dLType != null && dLType.equals(ETHERNET_ARP)) {
-                return setLayer3MatchAsArp(sourceMatch,
-                        (Inet4Address) inetSourceAddress,
-                        (Inet4Address) inetDestAddress);
-            } else {
-                return setLayer3MatchAsIpv4((Inet4Address) inetSourceAddress,
-                        (Inet4Address) inetDestAddress);
-            }
-        } else if ((inetSourceAddress instanceof Inet6Address)
-                && (inetDestAddress instanceof Inet6Address)) {
-            return setLayer3MatchAsIpv6((Inet6Address) inetSourceAddress,
-                    (Inet6Address) inetDestAddress);
-        }
-
-        return null;
-
-    }
-
-    private static Layer3Match setLayer3MatchAsArp(final Match sourceMatch,
-            final Inet4Address inetSourceAddress,
-            final Inet4Address inetDestAddress) {
-        String inetSourceAddressStr = InetAddresses
-                .toAddrString(inetSourceAddress);
-        Ipv4Prefix ipv4SourcePrefix = new Ipv4Prefix(inetSourceAddressStr);
-
-        String inetDestAddressValue = InetAddresses
-                .toAddrString(inetDestAddress);
-        Ipv4Prefix ipv4DestPrefix = new Ipv4Prefix(inetDestAddressValue);
-
-        ArpMatchBuilder arpMatchBuilder = new ArpMatchBuilder();
-
-        arpMatchBuilder.setArpSourceTransportAddress(ipv4SourcePrefix);
-        arpMatchBuilder.setArpTargetTransportAddress(ipv4DestPrefix);
-
-        ArpSourceHardwareAddressBuilder arpSourceHardwareAddressBuilder = new ArpSourceHardwareAddressBuilder();
-        arpSourceHardwareAddressBuilder
-                .setAddress(ethernetSourceAddress(sourceMatch));
-        arpMatchBuilder
-                .setArpSourceHardwareAddress(arpSourceHardwareAddressBuilder
-                        .build());
-
-        ArpTargetHardwareAddressBuilder arpTargetHardwareAddressBuilder = new ArpTargetHardwareAddressBuilder();
-        arpTargetHardwareAddressBuilder
-                .setAddress(ethernetDestAddress(sourceMatch));
-        arpMatchBuilder
-                .setArpTargetHardwareAddress(arpTargetHardwareAddressBuilder
-                        .build());
-
-        return arpMatchBuilder.build();
-
-    }
-
-    private static MacAddress ethernetDestAddress(final Match sourceMatch) {
-        final MatchField dataLinkDest = sourceMatch.getField(DL_DST);
-        if (dataLinkDest != null && dataLinkDest.getValue() != null) {
-            return MDFlowMapping.toMacAddress((byte[]) dataLinkDest.getValue());
-        }
-        return null;
-    }
-
-    private static Layer3Match setLayer3MatchAsIpv4(
-            final Inet4Address inetSourceAddress,
-            final Inet4Address inetDestAddress) {
-        String inetSrcAddressString = InetAddresses
-                .toAddrString(inetSourceAddress);
-        String inetDstAddressString = InetAddresses
-                .toAddrString(inetDestAddress);
-
-        Ipv4MatchBuilder layer4MatchBuild = new Ipv4MatchBuilder();
-        layer4MatchBuild.setIpv4Source(new Ipv4Prefix(inetSrcAddressString));
-        layer4MatchBuild
-                .setIpv4Destination(new Ipv4Prefix(inetDstAddressString));
-        return layer4MatchBuild.build();
-
-    }
-
-    private static Layer3Match setLayer3MatchAsIpv6(
-            final Inet6Address inetSourceAddress,
-            final Inet6Address inetDestAddress) {
-        String inetSrcAddressString = InetAddresses
-                .toAddrString(inetSourceAddress);
-        String inetDstAddressString = InetAddresses
-                .toAddrString(inetDestAddress);
-        Ipv6MatchBuilder layer6MatchBuild = new Ipv6MatchBuilder();
-
-        layer6MatchBuild.setIpv6Source(new Ipv6Prefix(inetSrcAddressString));
-        layer6MatchBuild
-                .setIpv6Destination(new Ipv6Prefix(inetDstAddressString));
-        return layer6MatchBuild.build();
-    }
-
-}