+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
package org.opendaylight.controller.sal.compatibility;
import com.google.common.net.InetAddresses
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCaseBuilder
import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowBuilder
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId
+import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowCookie
public class MDFlowMapping {
hardTimeout = sourceFlow.hardTimeout as int
idleTimeout = sourceFlow.idleTimeout as int
- cookie = BigInteger.valueOf(sourceFlow.id)
+ cookie = new FlowCookie(BigInteger.valueOf(sourceFlow.id))
priority = sourceFlow.priority as int
val sourceActions = sourceFlow.actions;
val targetActions = new ArrayList<Action>();
+ var int action = 0;
for (sourceAction : sourceActions) {
- targetActions.add(sourceAction.toAction());
+ targetActions.add(sourceAction.toAction(action));
+ action = action + 1;
}
instructions = targetActions.toApplyInstruction();
match = sourceFlow.match.toMatch();
+ tableId = new Integer(0).shortValue
return it.build();
}
+ public static def toMDFlow(Flow sourceFlow, String flowId) {
+ if (sourceFlow == null)
+ throw new IllegalArgumentException();
+ val it = new FlowBuilder();
+ hardTimeout = sourceFlow.hardTimeout as int
+ idleTimeout = sourceFlow.idleTimeout as int
+ cookie = new FlowCookie(BigInteger.valueOf(sourceFlow.id))
+ priority = sourceFlow.priority as int
+ id = new FlowId(flowId)
+
+ val sourceActions = sourceFlow.actions;
+ val targetActions = new ArrayList<Action>();
+ var int action = 0;
+ for (sourceAction : sourceActions) {
+ targetActions.add(sourceAction.toAction(action));
+ action = action+ 1;
+ }
+ instructions = targetActions.toApplyInstruction();
+ match = sourceFlow.match.toMatch();
+ tableId = new Integer(0).shortValue
+ return it.build();
+ }
+
public static def Instructions toApplyInstruction(ArrayList<Action> actions) {
val it = new InstructionsBuilder;
val applyActions = new InstructionBuilder;
applyActions.instruction = new ApplyActionsCaseBuilder().setApplyActions(new ApplyActionsBuilder().setAction(actions).build()).build()
+ applyActions.setOrder(new Integer(0))
instruction = Collections.<Instruction>singletonList(applyActions.build)
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);
+ node = sourceNode.toNodeRef()
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);
+ it.setNode(sourceNode.toNodeRef)
return it.build();
}
return it.build();
}
- public static dispatch def toAction(Controller sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(Controller sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
actionBuilder.action = new ControllerActionCaseBuilder().setControllerAction(new ControllerActionBuilder().build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(Drop sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(Drop sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
actionBuilder.action = new DropActionCaseBuilder().setDropAction(new DropActionBuilder().build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(Flood sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(Flood sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
actionBuilder.action = new FloodActionCaseBuilder().setFloodAction(new FloodActionBuilder().build).build();
return actionBuilder.build();
}
- public static dispatch def toAction(FloodAll sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(FloodAll sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
actionBuilder.action = new FloodAllActionCaseBuilder().setFloodAllAction(new FloodAllActionBuilder().build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(HwPath sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(HwPath sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
actionBuilder.action = new HwPathActionCaseBuilder().setHwPathAction(new HwPathActionBuilder().build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(Loopback sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(Loopback sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
actionBuilder.action = new LoopbackActionCaseBuilder().setLoopbackAction(new LoopbackActionBuilder().build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(Output sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(Output sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new OutputActionBuilder();
outputNodeConnector = sourceAction.port.toUri;
actionBuilder.action = new OutputActionCaseBuilder().setOutputAction(it.build()).build();
}
- public static dispatch def toAction(PopVlan sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(PopVlan sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
actionBuilder.action = new PopVlanActionCaseBuilder().build();
return actionBuilder.build();
}
- public static dispatch def toAction(PushVlan sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(PushVlan sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new PushVlanActionBuilder();
cfi = new VlanCfi(sourceAction.cfi);
vlanId = new VlanId(sourceAction.vlanId);
return actionBuilder.build();
}
- public static dispatch def toAction(SetDlDst sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetDlDst sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetDlDstActionBuilder();
address = sourceAction.dlAddress.toMacAddress();
actionBuilder.action = new SetDlDstActionCaseBuilder().setSetDlDstAction(it.build()).build;
return actionBuilder.build();
}
- public static dispatch def toAction(SetDlSrc sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetDlSrc sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetDlSrcActionBuilder();
address = sourceAction.dlAddress.toMacAddress;
actionBuilder.action = new SetDlSrcActionCaseBuilder().setSetDlSrcAction(it.build()).build;
return actionBuilder.build();
}
- public static dispatch def toAction(SetDlType sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetDlType sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetDlTypeActionBuilder();
dlType = new EtherType(sourceAction.dlType as long);
actionBuilder.action = new SetDlTypeActionCaseBuilder().setSetDlTypeAction(it.build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(SetNextHop sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetNextHop sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetNextHopActionBuilder();
val inetAddress = sourceAction.address;
address = inetAddress.toInetAddress;
return actionBuilder.build();
}
- public static dispatch def toAction(SetNwDst sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetNwDst sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetNwDstActionBuilder();
val inetAddress = sourceAction.address;
address = inetAddress.toInetAddress;
return actionBuilder.build();
}
- public static dispatch def toAction(SetNwSrc sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetNwSrc sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetNwSrcActionBuilder();
val inetAddress = sourceAction.address;
address = inetAddress.toInetAddress;
return actionBuilder.build();
}
- public static dispatch def toAction(SetNwTos sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetNwTos sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetNwTosActionBuilder();
tos = sourceAction.nwTos;
actionBuilder.action = new SetNwTosActionCaseBuilder().setSetNwTosAction(it.build).build;
return actionBuilder.build();
}
- public static dispatch def toAction(SetTpDst sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetTpDst sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetTpDstActionBuilder();
port = new PortNumber(sourceAction.port);
actionBuilder.action = new SetTpDstActionCaseBuilder().setSetTpDstAction(it.build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(SetTpSrc sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetTpSrc sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetTpSrcActionBuilder();
port = new PortNumber(sourceAction.port);
actionBuilder.action = new SetTpSrcActionCaseBuilder().setSetTpSrcAction(it.build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(SetVlanCfi sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetVlanCfi sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetVlanCfiActionBuilder();
vlanCfi = new VlanCfi(sourceAction.cfi);
actionBuilder.action = new SetVlanCfiActionCaseBuilder().setSetVlanCfiAction(it.build()).build();
return actionBuilder.build();
}
- public static dispatch def toAction(SetVlanId sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetVlanId sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetVlanIdActionBuilder();
vlanId = new VlanId(sourceAction.vlanId);
return actionBuilder.build();
}
- public static dispatch def toAction(SetVlanPcp sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SetVlanPcp sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
val it = new SetVlanPcpActionBuilder();
vlanPcp = new VlanPcp(sourceAction.pcp as short);
actionBuilder.action = new SetVlanPcpActionCaseBuilder().setSetVlanPcpAction(it.build).build;
return actionBuilder.build();
}
- public static dispatch def toAction(SwPath sourceAction) {
- val actionBuilder = new ActionBuilder();
+ public static dispatch def toAction(SwPath sourceAction, int order) {
+ val actionBuilder = new ActionBuilder().setOrder(order);
actionBuilder.action = new SwPathActionCaseBuilder().setSwPathAction(new SwPathActionBuilder().build()).build();
return actionBuilder.build();
}
hardTimeout = sourceFlow.hardTimeout as int
idleTimeout = sourceFlow.idleTimeout as int
- cookie = BigInteger.valueOf(sourceFlow.id)
+ cookie = new FlowCookie(BigInteger.valueOf(sourceFlow.id))
priority = sourceFlow.priority as int
val sourceActions = sourceFlow.actions;
val targetActions = new ArrayList<Action>();
+ var int action = 0;
for (sourceAction : sourceActions) {
- targetActions.add(sourceAction.toAction());
+ targetActions.add(sourceAction.toAction(action));
+ action = action + 1;
}
instructions = targetActions.toApplyInstruction();
match = sourceFlow.match.toMatch();