- if (action instanceof OutputActionCase)
- actionsList.add(salToOFOutputAction(action, actionsListBuilder, version));
- else if (action instanceof GroupActionCase)
- actionsList.add(SalToOFGroupAction(action, actionsListBuilder));
- else if (action instanceof CopyTtlOutCase)
- actionsList.add(SalToOFCopyTTLIOut(actionsListBuilder));
- else if (action instanceof CopyTtlInCase)
- actionsList.add(SalToOFCopyTTLIIn(actionsListBuilder));
- else if (action instanceof SetMplsTtlActionCase)
- actionsList.add(SalToOFSetMplsTtl(action, actionsListBuilder));
- else if (action instanceof DecMplsTtlCase)
- actionsList.add(SalToOFDecMplsTtl(actionsListBuilder));
- else if (action instanceof PushVlanActionCase)
- actionsList.add(SalToOFPushVlanAction(action, actionsListBuilder));
- else if (action instanceof PopVlanActionCase)
- actionsList.add(SalToOFPopVlan(action, actionsListBuilder));
- else if (action instanceof PushMplsActionCase)
- actionsList.add(SalToOFPushMplsAction(action, actionsListBuilder));
- else if (action instanceof PopMplsActionCase)
- actionsList.add(SalToOFPopMpls(action, actionsListBuilder));
- else if (action instanceof SetQueueActionCase)
- actionsList.add(SalToOFSetQueue(action, actionsListBuilder));
- else if (action instanceof SetNwTtlActionCase)
- actionsList.add(SalToOFSetNwTtl(action, actionsListBuilder));
- else if (action instanceof DecNwTtlCase)
- actionsList.add(SalToOFDecNwTtl(action, actionsListBuilder));
- else if (action instanceof SetFieldCase)
- actionsList.add(SalToOFSetField(action, actionsListBuilder, version));
- else if (action instanceof PushPbbActionCase)
- actionsList.add(SalToOFPushPbbAction(action, actionsListBuilder));
- else if (action instanceof PopPbbActionCase)
- actionsList.add(SalToOFPopPBB(action, actionsListBuilder));
- else if (action instanceof ExperimenterAction)
- actionsList.add(SalToOFExperimenter(action, actionsListBuilder));
-
- // 1.0 Actions
- else if (action instanceof SetVlanIdActionCase)
- actionsList.add(SalToOFSetVlanId(action, actionsListBuilder, version));
- else if (action instanceof SetVlanPcpActionCase)
- actionsList.add(SalToOFSetVlanpcp(action, actionsListBuilder, version));
- else if (action instanceof StripVlanActionCase)
- actionsList.add(SalToOFStripVlan(action, actionsListBuilder, version));
- else if (action instanceof SetDlSrcActionCase)
- actionsList.add(SalToOFSetDlSrc(action, actionsListBuilder, version));
- else if (action instanceof SetDlDstActionCase)
- actionsList.add(SalToOFSetDlDst(action, actionsListBuilder, version));
- else if (action instanceof SetNwSrcActionCase)
- actionsList.add(SalToOFSetNwSrc(action, actionsListBuilder, version));
- else if (action instanceof SetNwDstActionCase)
- actionsList.add(SalToOFSetNwDst(action, actionsListBuilder, version));
- else if (action instanceof SetTpSrcActionCase)
- actionsList.add(SalToOFSetTpSrc(action, actionsListBuilder, version));
- else if (action instanceof SetTpDstActionCase)
- actionsList.add(SalToOFSetTpDst(action, actionsListBuilder, version));
+ if (action instanceof OutputActionCase) {
+ ofAction = salToOFAction((OutputActionCase) action, actionBuilder, version);
+ } else if (action instanceof GroupActionCase) {
+ ofAction = salToOFGroupAction(action, actionBuilder);
+ } else if (action instanceof CopyTtlOutCase) {
+ ofAction = salToOFCopyTTLIOut(actionBuilder);
+ } else if (action instanceof CopyTtlInCase) {
+ ofAction = salToOFCopyTTLIIn(actionBuilder);
+ } else if (action instanceof SetMplsTtlActionCase) {
+ ofAction = salToOFSetMplsTtl(action, actionBuilder);
+ } else if (action instanceof DecMplsTtlCase) {
+ ofAction = salToOFDecMplsTtl(actionBuilder);
+ } else if (action instanceof PushVlanActionCase) {
+ ofAction = salToOFPushVlanAction(action, actionBuilder, version);
+ } else if (action instanceof PopVlanActionCase) {
+ ofAction = (version == OFConstants.OFP_VERSION_1_0) ?
+ salToOFStripVlan(actionBuilder, version)
+ : salToOFPopVlan(actionBuilder);
+ } else if (action instanceof PushMplsActionCase) {
+ ofAction = salToOFPushMplsAction(action, actionBuilder);
+ } else if (action instanceof PopMplsActionCase) {
+ ofAction = salToOFPopMpls(action, actionBuilder);
+ } else if (action instanceof SetQueueActionCase) {
+ ofAction = salToOFSetQueue(action, actionBuilder);
+ } else if (action instanceof SetNwTtlActionCase) {
+ ofAction = salToOFSetNwTtl(action, actionBuilder);
+ } else if (action instanceof DecNwTtlCase) {
+ ofAction = salToOFDecNwTtl(actionBuilder);
+ } else if (action instanceof SetFieldCase) {
+ ofAction = salToOFSetField(action, actionBuilder, version, datapathid);
+ } else if (action instanceof PushPbbActionCase) {
+ ofAction = salToOFPushPbbAction(action, actionBuilder);
+ } else if (action instanceof PopPbbActionCase) {
+ ofAction = salToOFPopPBB(actionBuilder);
+
+ // 1.0 Actions
+ } else if (action instanceof SetVlanIdActionCase) {
+ ofAction = salToOFSetVlanId(action, actionBuilder, version);
+ } else if (action instanceof SetVlanPcpActionCase) {
+ ofAction = salToOFSetVlanpcp(action, actionBuilder, version);
+ } else if (action instanceof StripVlanActionCase) {
+ ofAction = salToOFStripVlan(actionBuilder, version);
+ } else if (action instanceof SetDlSrcActionCase) {
+ ofAction = salToOFSetDlSrc(action, actionBuilder, version);
+ } else if (action instanceof SetDlDstActionCase) {
+ ofAction = salToOFSetDlDst(action, actionBuilder, version);
+ } else if (action instanceof SetNwSrcActionCase) {
+ ofAction = salToOFSetNwSrc(action, actionBuilder, version);
+ } else if (action instanceof SetNwDstActionCase) {
+ ofAction = salToOFSetNwDst(action, actionBuilder, version);
+ } else if (action instanceof SetTpSrcActionCase) {
+ ofAction = salToOFSetTpSrc(action, actionBuilder, version, IPProtocols.fromProtocolNum(flow.getMatch().
+ getIpMatch().getIpProtocol()));
+ } else if (action instanceof SetTpDstActionCase) {
+ ofAction = salToOFSetTpDst(action, actionBuilder, version, IPProtocols.fromProtocolNum(flow.getMatch().
+ getIpMatch().getIpProtocol()));
+ } else if (action instanceof SetNwTosActionCase) {
+ ofAction = salToOFSetNwTos(action, actionBuilder, version);
+ } else if (action instanceof GeneralExtensionGrouping) {
+
+ /**
+ * TODO: EXTENSION PROPOSAL (action, MD-SAL to OFJava)
+ * - we might need sessionContext as converter input
+ *
+ */
+
+ GeneralExtensionGrouping extensionCaseGrouping = (GeneralExtensionGrouping) action;
+ Extension extAction = extensionCaseGrouping.getExtension();
+ ConverterExtensionKey<? extends ExtensionKey> key = new ConverterExtensionKey<>(extensionCaseGrouping.getExtensionKey(), version);
+ ConvertorToOFJava<Action> convertor =
+ OFSessionUtil.getExtensionConvertorProvider().getConverter(key);
+ if (convertor != null) {
+ ofAction = convertor.convert(extAction);
+ }
+ } else {
+ // try vendor codecs
+ TypeVersionKey<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action> key =
+ new TypeVersionKey<>(
+ (Class<? extends org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action>) action.getImplementedInterface(),
+ version);
+ ConvertorActionToOFJava<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action, Action> convertor =
+ OFSessionUtil.getExtensionConvertorProvider().getConverter(key);
+ if (convertor != null) {
+ ofAction = convertor.convert(action);
+ }
+ }