Added Compatibility for Switch Manager and Topology Manager
[controller.git] / opendaylight / md-sal / sal-compability / src / main / java / org / opendaylight / controller / sal / compability / MDFlowMapping.xtend
diff --git a/opendaylight/md-sal/sal-compability/src/main/java/org/opendaylight/controller/sal/compability/MDFlowMapping.xtend b/opendaylight/md-sal/sal-compability/src/main/java/org/opendaylight/controller/sal/compability/MDFlowMapping.xtend
deleted file mode 100644 (file)
index cd03df8..0000000
+++ /dev/null
@@ -1,347 +0,0 @@
-package org.opendaylight.controller.sal.compability;
-
-import com.google.common.net.InetAddresses
-import java.math.BigInteger
-import java.net.Inet4Address
-import java.net.Inet6Address
-import java.util.ArrayList
-import java.util.List
-import org.opendaylight.controller.sal.action.Controller
-import org.opendaylight.controller.sal.action.Drop
-import org.opendaylight.controller.sal.action.Flood
-import org.opendaylight.controller.sal.action.FloodAll
-import org.opendaylight.controller.sal.action.HwPath
-import org.opendaylight.controller.sal.action.Loopback
-import org.opendaylight.controller.sal.action.Output
-import org.opendaylight.controller.sal.action.PopVlan
-import org.opendaylight.controller.sal.action.PushVlan
-import org.opendaylight.controller.sal.action.SetDlDst
-import org.opendaylight.controller.sal.action.SetDlSrc
-import org.opendaylight.controller.sal.action.SetDlType
-import org.opendaylight.controller.sal.action.SetNextHop
-import org.opendaylight.controller.sal.action.SetNwDst
-import org.opendaylight.controller.sal.action.SetNwSrc
-import org.opendaylight.controller.sal.action.SetNwTos
-import org.opendaylight.controller.sal.action.SetTpDst
-import org.opendaylight.controller.sal.action.SetTpSrc
-import org.opendaylight.controller.sal.action.SetVlanCfi
-import org.opendaylight.controller.sal.action.SetVlanId
-import org.opendaylight.controller.sal.action.SetVlanPcp
-import org.opendaylight.controller.sal.action.SwPath
-import org.opendaylight.controller.sal.core.Node
-import org.opendaylight.controller.sal.core.NodeConnector
-import org.opendaylight.controller.sal.flowprogrammer.Flow
-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.inet.types.rev100924.Uri
-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.service.rev130819.AddFlowInputBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.FlowAddedBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.RemoveFlowInputBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.UpdateFlowInputBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.GetFlowStatisticsInputBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.VlanCfi
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.ControllerActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.DropActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.FloodActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.FloodAllActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.HwPathActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.LoopbackActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.OutputActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.PopVlanActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.PushVlanActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetDlDstActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetDlSrcActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetDlTypeActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetNextHopActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetNwDstActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetNwSrcActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetNwTosActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetTpDstActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetTpSrcActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetVlanCfiActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetVlanIdActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SetVlanPcpActionBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.action.SwPathActionBuilder
-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.action.list.Action
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.action.list.ActionBuilder
-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 static extension org.opendaylight.controller.sal.compability.FromSalConversionsUtils.*
-import static extension org.opendaylight.controller.sal.compability.NodeMapping.*
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.flow.update.OriginalFlowBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.service.rev130819.flow.update.UpdatedFlowBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Instructions
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.InstructionsBuilder
-import java.util.Collections
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsBuilder
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder
-
-public class MDFlowMapping {
-
-    private new() {
-        throw new UnsupportedOperationException()
-    }
-
-    public static def flowAdded(Flow sourceFlow) {
-        if (sourceFlow == null)
-            throw new IllegalArgumentException();
-        val it = new FlowAddedBuilder();
-
-        hardTimeout = sourceFlow.hardTimeout as int
-        idleTimeout = sourceFlow.idleTimeout as int
-        cookie = BigInteger.valueOf(sourceFlow.id)
-        priority = sourceFlow.priority as int
-
-        val sourceActions = sourceFlow.actions;
-        val targetActions = new ArrayList<Action>();
-        for (sourceAction : sourceActions) {
-            targetActions.add(sourceAction.toAction());
-        }
-        instructions = targetActions.toApplyInstruction();
-        match = sourceFlow.match.toMatch();
-        return it.build();
-
-    }
-    
-    public static def Instructions toApplyInstruction(ArrayList<Action> actions) {
-        val it = new InstructionsBuilder;
-        val applyActions = new InstructionBuilder;
-        applyActions.instruction = new ApplyActionsBuilder().setAction(actions).build()
-        instruction = Collections.<Instruction>singletonList(applyActions.build)
-        return it.build;
-    }
-
-    public static def flowStatisticsInput(Node sourceNode, Flow sourceFlow) {
-        val source = flowAdded(sourceFlow);
-        val it = new GetFlowStatisticsInputBuilder(source as org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow);
-        node = sourceNode.toNodeRef();
-        return it.build();
-    }
-
-    public static def removeFlowInput(Node sourceNode, Flow sourceFlow) {
-        val source = flowAdded(sourceFlow);
-        val it = new RemoveFlowInputBuilder(source as org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow);
-        return it.build();
-    }
-
-    public static def addFlowInput(Node sourceNode, Flow sourceFlow) {
-        val source = flowAdded(sourceFlow);
-        val it = new AddFlowInputBuilder(source as org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow);
-        return it.build();
-    }
-
-    public static def updateFlowInput(Node sourceNode, Flow oldFlow, Flow newFlow) {
-        val it = new UpdateFlowInputBuilder();
-        val sourceOld = flowAdded(newFlow);
-
-        val original = new OriginalFlowBuilder(sourceOld as org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow);
-        val sourceNew = flowAdded(newFlow);
-        val updated = new UpdatedFlowBuilder(sourceNew as org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.Flow);
-        originalFlow = original.build()
-        updatedFlow = updated.build();
-        node = sourceNode.toNodeRef()
-        return it.build();
-    }
-
-    public static dispatch def toAction(Controller sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        actionBuilder.action = new ControllerActionBuilder().build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(Drop sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        actionBuilder.action = new DropActionBuilder().build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(Flood sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        actionBuilder.action = new FloodActionBuilder().build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(FloodAll sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        actionBuilder.action = new FloodAllActionBuilder().build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(HwPath sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        actionBuilder.action = new HwPathActionBuilder().build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(Loopback sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        actionBuilder.action = new LoopbackActionBuilder().build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(Output sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new OutputActionBuilder();
-        outputNodeConnector = sourceAction.port.toUriList;
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-
-    }
-
-    public static dispatch def toAction(PopVlan sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        actionBuilder.action = new PopVlanActionBuilder().build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(PushVlan sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new PushVlanActionBuilder();
-        cfi = new VlanCfi(sourceAction.cfi);
-        vlanId = new VlanId(sourceAction.vlanId);
-        pcp = sourceAction.pcp;
-        tag = sourceAction.tag;
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetDlDst sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetDlDstActionBuilder();
-        address = sourceAction.dlAddress.toMacAddress();
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetDlSrc sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetDlSrcActionBuilder();
-        address = sourceAction.dlAddress.toMacAddress;
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetDlType sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetDlTypeActionBuilder();
-        dlType = new EtherType(sourceAction.dlType as long);
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetNextHop sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetNextHopActionBuilder();
-        val inetAddress = sourceAction.address;
-        address = inetAddress.toInetAddress;
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetNwDst sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetNwDstActionBuilder();
-        val inetAddress = sourceAction.address;
-        address = inetAddress.toInetAddress;
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetNwSrc sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetNwSrcActionBuilder();
-        val inetAddress = sourceAction.address;
-        address = inetAddress.toInetAddress;
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetNwTos sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetNwTosActionBuilder();
-        tos = sourceAction.nwTos;
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetTpDst sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetTpDstActionBuilder();
-        port = new PortNumber(sourceAction.port);
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetTpSrc sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetTpSrcActionBuilder();
-        port = new PortNumber(sourceAction.port);
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetVlanCfi sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetVlanCfiActionBuilder();
-        vlanCfi = new VlanCfi(sourceAction.cfi);
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetVlanId sourceAction) {
-        val actionBuilder = new ActionBuilder();
-
-        val it = new SetVlanIdActionBuilder();
-        vlanId = new VlanId(sourceAction.vlanId);
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SetVlanPcp sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        val it = new SetVlanPcpActionBuilder();
-        vlanPcp = new VlanPcp(sourceAction.pcp as short);
-        actionBuilder.action = it.build();
-        return actionBuilder.build();
-    }
-
-    public static dispatch def toAction(SwPath sourceAction) {
-        val actionBuilder = new ActionBuilder();
-        actionBuilder.action = new SwPathActionBuilder().build();
-        return actionBuilder.build();
-    }
-
-    public static def dispatch Address toInetAddress(Inet4Address address) {
-        val it = new Ipv4Builder
-        ipv4Address = new Ipv4Prefix(InetAddresses.toAddrString(address))
-        return it.build()
-    }
-
-    public static def dispatch Address toInetAddress(Inet6Address address) {
-        val it = new Ipv6Builder
-        ipv6Address = new Ipv6Prefix(InetAddresses.toAddrString(address))
-        return it.build()
-    }
-
-    public static def List<Uri> toUriList(NodeConnector connector) {
-        throw new UnsupportedOperationException("TODO: auto-generated method stub")
-    }
-
-    public static def MacAddress toMacAddress(byte[] bytes) {
-        val sb = new StringBuilder(18);
-        for (byte b : bytes) {
-            if (sb.length() > 0)
-                sb.append(':');
-            sb.append(String.format("%02x", b));
-        }
-        return new MacAddress(sb.toString());
-    }
-}