import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwDstActionCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwSrcActionCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTosActionCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTtlActionCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTtlActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetQueueActionCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.mpls.ttl.action._case.SetMplsTtlActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.dst.action._case.SetNwDstAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.src.action._case.SetNwSrcAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.tos.action._case.SetNwTosAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.nw.ttl.action._case.SetNwTtlActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.queue.action._case.SetQueueAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.queue.action._case.SetQueueActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.tp.src.action._case.SetTpSrcAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.id.action._case.SetVlanIdAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.vlan.pcp.action._case.SetVlanPcpAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.address.address.Ipv4;
import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.OutputPortValues;
import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.DlAddressAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MaxLengthActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MplsTtlAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.MplsTtlActionBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NwTosAction;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NwTosActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NwTtlAction;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NwTtlActionBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmFieldsAction;
actionsList.add(SalToOFSetTpSrc(action, actionsListBuilder, version));
else if (action instanceof SetTpDstActionCase)
actionsList.add(SalToOFSetTpDst(action, actionsListBuilder, version));
+ else if (action instanceof SetNwTosActionCase)
+ actionsList.add(SalToOFSetNwTos(action, actionsListBuilder, version));
}
return actionsList;
SetNwSrcAction setnwsrcaction = setnwsrccase.getSetNwSrcAction();
IpAddressActionBuilder ipvaddress = new IpAddressActionBuilder();
- ipvaddress.setIpAddress((Ipv4Address) setnwsrcaction.getAddress());
+ Ipv4 address_ipv4 = (Ipv4) setnwsrcaction.getAddress();
+ Ipv4Address address = new Ipv4Address(address_ipv4.getIpv4Address().getValue());
+ ipvaddress.setIpAddress(address);
actionBuilder
.setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwSrc.class);
actionBuilder.addAugmentation(
SetNwDstAction setnwdstaction = setnwdstcase.getSetNwDstAction();
IpAddressActionBuilder ipvaddress = new IpAddressActionBuilder();
- ipvaddress.setIpAddress((Ipv4Address) setnwdstaction.getAddress());
+ Ipv4 address_ipv4 = (Ipv4) setnwdstaction.getAddress();
+ Ipv4Address address = new Ipv4Address(address_ipv4.getIpv4Address().getValue());
+ ipvaddress.setIpAddress(address);
actionBuilder
.setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwDst.class);
actionBuilder.addAugmentation(
}
+ private static ActionsList SalToOFSetNwTos(
+ org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
+ ActionsListBuilder actionsListBuilder, short version) {
+
+ if (version == OFConstants.OFP_VERSION_1_0) {
+ ActionBuilder actionBuilder = new ActionBuilder();
+ SetNwTosActionCase setnwtoscase = (SetNwTosActionCase) action;
+ SetNwTosAction setnwtosaction = setnwtoscase.getSetNwTosAction();
+
+ NwTosActionBuilder tosBuilder = new NwTosActionBuilder();
+ tosBuilder.setNwTos(setnwtosaction.getTos().shortValue());
+ actionBuilder.addAugmentation(NwTosAction.class, tosBuilder.build());
+ actionBuilder.setType(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTos.class);
+
+ actionsListBuilder.setAction(actionBuilder.build());
+ return actionsListBuilder.build();
+
+ } else {
+ logger.error("Unknown Action Type for the Version", version);
+ return null;
+ }
+
+ }
+
+
private static ActionsList SalToOFSetTpSrc(
org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action action,
ActionsListBuilder actionsListBuilder, short version) {
OutputAction outputAction = outputActionCase.getOutputAction();
PortActionBuilder portAction = new PortActionBuilder();
MaxLengthActionBuilder maxLenActionBuilder = new MaxLengthActionBuilder();
- maxLenActionBuilder.setMaxLength(outputAction.getMaxLength());
+ if (outputAction.getMaxLength() != null) {
+ maxLenActionBuilder.setMaxLength(outputAction.getMaxLength());
+ } else {
+ maxLenActionBuilder.setMaxLength(new Integer(0));
+ }
ActionBuilder actionBuilder = new ActionBuilder();
actionBuilder.addAugmentation(MaxLengthAction.class, maxLenActionBuilder.build());
* @param actionList
* @return List of converted SAL Actions.
*/
- public static List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action> toSALBucketActions(
+ public static List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action> toMDSalActions(
List<ActionsList> actionList) {
List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action> bucketActions = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action>();