Implement an action type nx_load_in_port 19/46219/2
authorOlga Schukin <olga.schukin@hpe.com>
Tue, 27 Sep 2016 11:26:05 +0000 (14:26 +0300)
committerOlga Schukin <olga.schukin@hpe.com>
Tue, 27 Sep 2016 12:01:08 +0000 (15:01 +0300)
Implement action type: nx_load_in_port required for ping responder

Change-Id: I1629d809c28a2bf834f0aba5e960d47444d8c891
Signed-off-by: Olga Schukin <olga.schukin@hpe.com>
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/ActionType.java

index f98d8c6fd1c63ed3180e59e442ec1873052ef06a..1d33154d692b7a3ac70bfd19682506935eeef5fc 100644 (file)
@@ -57,6 +57,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionResubmitRpcAddGroupCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxOfInPortCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxRegCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstOfEthDstCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstOfIpDstCaseBuilder;
@@ -78,6 +79,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.NxLearnBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowMods;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowModsBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoad;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.Dst;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
@@ -632,6 +634,22 @@ public enum ActionType {
             return ab.build();
         }
 
+    },
+    nx_load_in_port {
+        @Override
+        public Action buildAction(int newActionKey, ActionInfo actionInfo) {
+            BigInteger[] actionValues = actionInfo.getBigActionValues();
+            NxRegLoad rb = new NxRegLoadBuilder()
+                    .setDst(new DstBuilder()
+                            .setDstChoice(new DstNxOfInPortCaseBuilder().setOfInPort(Boolean.TRUE).build())
+                            .setStart(Integer.valueOf(0)).setEnd(Integer.valueOf(15)).build())
+                    .setValue(actionValues[0]).build();
+            ActionBuilder ab = new ActionBuilder();
+            ab.setKey(new ActionKey(newActionKey));
+            ab.setOrder(newActionKey);
+            ab.setAction(new NxActionRegLoadNodesNodeTableFlowApplyActionsCaseBuilder().setNxRegLoad(rb).build());
+            return ab.build();
+        }
     };
 
     private static final int RADIX_HEX = 16;