+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction88() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetVlanPcpActionBuilder pcp = new SetVlanPcpActionBuilder();
+ // the code point is a 3-bit(0-7) field representing the frame priority level
+ final VlanPcp pcp1 = new VlanPcp((short) 4);
+ pcp.setVlanPcp(pcp1);
+ ab.setAction(new SetVlanPcpActionCaseBuilder().setSetVlanPcpAction(pcp.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction9() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final CopyTtlInBuilder ttlin = new CopyTtlInBuilder();
+ ab.setAction(new CopyTtlInCaseBuilder().setCopyTtlIn(ttlin.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction10() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final CopyTtlOutBuilder ttlout = new CopyTtlOutBuilder();
+ ab.setAction(new CopyTtlOutCaseBuilder().setCopyTtlOut(ttlout.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction11() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final DecMplsTtlBuilder mpls = new DecMplsTtlBuilder();
+ ab.setAction(new DecMplsTtlCaseBuilder().setDecMplsTtl(mpls.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+ ib.withKey(new InstructionKey(0));
+ ib.setOrder(0);
+
+ // Put our Instruction in a list of Instruction
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction12() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final DecNwTtlBuilder nwttl = new DecNwTtlBuilder();
+ ab.setAction(new DecNwTtlCaseBuilder().setDecNwTtl(nwttl.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction13() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final DropActionBuilder drop = new DropActionBuilder();
+ ab.setAction(new DropActionCaseBuilder().setDropAction(drop.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction14() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final FloodActionBuilder fld = new FloodActionBuilder();
+ ab.setAction(new FloodActionCaseBuilder().setFloodAction(fld.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction15() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final FloodAllActionBuilder fldall = new FloodAllActionBuilder();
+ ab.setAction(new FloodAllActionCaseBuilder().setFloodAllAction(fldall.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction16() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final GroupActionBuilder groupActionB = new GroupActionBuilder();
+ groupActionB.setGroupId(1L);
+ groupActionB.setGroup("0");
+ ab.setAction(new GroupActionCaseBuilder().setGroupAction(groupActionB.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction17() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final HwPathActionBuilder hwPathB = new HwPathActionBuilder();
+ ab.setAction(new HwPathActionCaseBuilder().setHwPathAction(hwPathB.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction18() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final LoopbackActionBuilder loopbackActionBuilder = new LoopbackActionBuilder();
+ ab.setAction(new LoopbackActionCaseBuilder().setLoopbackAction(loopbackActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction19() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final PopMplsActionBuilder popMplsActionBuilder = new PopMplsActionBuilder();
+ popMplsActionBuilder.setEthernetType(0XB);
+ ab.setAction(new PopMplsActionCaseBuilder().setPopMplsAction(popMplsActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction20() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final PopPbbActionBuilder popPbbActionBuilder = new PopPbbActionBuilder();
+ ab.setAction(new PopPbbActionCaseBuilder().setPopPbbAction(popPbbActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction21() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final PopVlanActionBuilder popVlanActionBuilder = new PopVlanActionBuilder();
+ ab.setAction(new PopVlanActionCaseBuilder().setPopVlanAction(popVlanActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction22() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetDlTypeActionBuilder setDlTypeActionBuilder = new SetDlTypeActionBuilder();
+ setDlTypeActionBuilder.setDlType(new EtherType(8L));
+ ab.setAction(new SetDlTypeActionCaseBuilder().setSetDlTypeAction(setDlTypeActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction23(final NodeId nodeId) {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ setFieldBuilder.setInPort(new NodeConnectorId(nodeId + ":2"));
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction24() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetMplsTtlActionBuilder setMplsTtlActionBuilder = new SetMplsTtlActionBuilder();
+ setMplsTtlActionBuilder.setMplsTtl((short) 0X1);
+ ab.setAction(new SetMplsTtlActionCaseBuilder().setSetMplsTtlAction(setMplsTtlActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction25() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetNextHopActionBuilder setNextHopActionBuilder = new SetNextHopActionBuilder();
+ final Ipv4Builder ipnext = new Ipv4Builder();
+ final Ipv4Prefix prefix = new Ipv4Prefix(IPV4_PREFIX);
+ ipnext.setIpv4Address(prefix);
+ setNextHopActionBuilder.setAddress(ipnext.build());
+ ab.setAction(new SetNextHopActionCaseBuilder().setSetNextHopAction(setNextHopActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction26() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetNwDstActionBuilder setNwDstActionBuilder = new SetNwDstActionBuilder();
+ final Ipv4Builder ipdst = new Ipv4Builder();
+ final Ipv4Prefix prefixdst = new Ipv4Prefix("10.0.0.21/24");
+ ipdst.setIpv4Address(prefixdst);
+ setNwDstActionBuilder.setAddress(ipdst.build());
+ ab.setAction(new SetNwDstActionCaseBuilder().setSetNwDstAction(setNwDstActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction27() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetNwSrcActionBuilder setNwsrcActionBuilder = new SetNwSrcActionBuilder();
+ final Ipv4Builder ipsrc = new Ipv4Builder();
+ final Ipv4Prefix prefixsrc = new Ipv4Prefix("10.0.23.21/24");
+ ipsrc.setIpv4Address(prefixsrc);
+ setNwsrcActionBuilder.setAddress(ipsrc.build());
+ ab.setAction(new SetNwSrcActionCaseBuilder().setSetNwSrcAction(setNwsrcActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction28() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetNwTosActionBuilder setNwTosActionBuilder = new SetNwTosActionBuilder();
+ setNwTosActionBuilder.setTos(8);
+ ab.setAction(new SetNwTosActionCaseBuilder().setSetNwTosAction(setNwTosActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction29() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetNwTtlActionBuilder setNwTtlActionBuilder = new SetNwTtlActionBuilder();
+ setNwTtlActionBuilder.setNwTtl((short) 1);
+ ab.setAction(new SetNwTtlActionCaseBuilder().setSetNwTtlAction(setNwTtlActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction30() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetQueueActionBuilder setQueueActionBuilder = new SetQueueActionBuilder();
+ setQueueActionBuilder.setQueueId(1L);
+ ab.setAction(new SetQueueActionCaseBuilder().setSetQueueAction(setQueueActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction31() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetTpDstActionBuilder setTpDstActionBuilder = new SetTpDstActionBuilder();
+ setTpDstActionBuilder.setPort(new PortNumber(109));
+
+ ab.setAction(new SetTpDstActionCaseBuilder().setSetTpDstAction(setTpDstActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction32() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetTpSrcActionBuilder setTpSrcActionBuilder = new SetTpSrcActionBuilder();
+ setTpSrcActionBuilder.setPort(new PortNumber(109));
+ ab.setAction(new SetTpSrcActionCaseBuilder().setSetTpSrcAction(setTpSrcActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction33() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SetVlanCfiActionBuilder setVlanCfiActionBuilder = new SetVlanCfiActionBuilder();
+ setVlanCfiActionBuilder.setVlanCfi(new VlanCfi(2));
+ ab.setAction(new SetVlanCfiActionCaseBuilder().setSetVlanCfiAction(setVlanCfiActionBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction34() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+
+ final SwPathActionBuilder swPathAction = new SwPathActionBuilder();
+ ab.setAction(new SwPathActionCaseBuilder().setSwPathAction(swPathAction.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ // Create an Apply Action
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ // Wrap our Apply Action in an Instruction
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction35() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+ final ActionBuilder ab2 = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder();
+
+ // Ethernet
+ final EthernetMatchBuilder ethernetMatch = new EthernetMatchBuilder();
+ final EthernetSourceBuilder ethSourceBuilder = new EthernetSourceBuilder();
+ ethSourceBuilder.setAddress(new MacAddress("00:00:00:00:00:01"));
+ final EthernetMatchBuilder ethernetMatch1 = new EthernetMatchBuilder();
+ final EthernetDestinationBuilder ethDestBuilder = new EthernetDestinationBuilder();
+ ethDestBuilder.setAddress(new MacAddress("00:00:00:00:00:02"));
+ final EthernetMatchBuilder ethernetMatch2 = new EthernetMatchBuilder();
+ final EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder();
+ ethTypeBuilder.setType(new EtherType(0x86ddL));
+
+ ethernetMatch.setEthernetSource(ethSourceBuilder.build());
+ ethernetMatch1.setEthernetDestination(ethDestBuilder.build());
+ ethernetMatch2.setEthernetType(ethTypeBuilder.build());
+ setFieldBuilder.setEthernetMatch(ethernetMatch.build());
+ setFieldBuilder1.setEthernetMatch(ethernetMatch1.build());
+ setFieldBuilder2.setEthernetMatch(ethernetMatch2.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ ab2.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder2.build()).build());
+ ab2.withKey(new ActionKey(2));
+ actionList.add(ab2.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ ib.withKey(new InstructionKey(0));
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction36() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+
+ // Vlan
+ final VlanMatchBuilder vlanBuilder = new VlanMatchBuilder();
+ final VlanMatchBuilder vlanBuilder1 = new VlanMatchBuilder();
+ final VlanIdBuilder vlanIdBuilder = new VlanIdBuilder();
+ final VlanId vlanId = new VlanId(10);
+ final VlanPcp vpcp = new VlanPcp((short) 3);
+ vlanBuilder.setVlanPcp(vpcp);
+ vlanBuilder1.setVlanId(vlanIdBuilder.setVlanId(vlanId).setVlanIdPresent(true).build());
+ setFieldBuilder.setVlanMatch(vlanBuilder.build());
+ setFieldBuilder1.setVlanMatch(vlanBuilder1.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction37() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+ final ActionBuilder ab2 = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder();
+ // Ip
+ final IpMatchBuilder ipmatch = new IpMatchBuilder();
+ final IpMatchBuilder ipmatch1 = new IpMatchBuilder();
+ final IpMatchBuilder ipmatch2 = new IpMatchBuilder();
+ final Dscp dscp = new Dscp((short) 3);
+ ipmatch.setIpDscp(dscp);
+ ipmatch1.setIpEcn((short) 2);
+ ipmatch2.setIpProtocol((short) 120);
+ setFieldBuilder.setIpMatch(ipmatch.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setIpMatch(ipmatch1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ setFieldBuilder2.setIpMatch(ipmatch2.build());
+ ab2.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder2.build()).build());
+ ab2.withKey(new ActionKey(2));
+ actionList.add(ab2.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction38() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+ // IPv4
+ final Ipv4MatchBuilder ipv4Match = new Ipv4MatchBuilder();
+ final Ipv4MatchBuilder ipv4Match1 = new Ipv4MatchBuilder();
+ final Ipv4Prefix dstip = new Ipv4Prefix("200.71.9.5210");
+ final Ipv4Prefix srcip = new Ipv4Prefix("100.1.1.1");
+ ipv4Match1.setIpv4Destination(dstip);
+ ipv4Match.setIpv4Source(srcip);
+ setFieldBuilder.setLayer3Match(ipv4Match.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setLayer3Match(ipv4Match1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction39() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+
+ // Tcp
+ final PortNumber tcpsrcport = new PortNumber(1213);
+ final PortNumber tcpdstport = new PortNumber(646);
+ final TcpMatchBuilder tcpmatch = new TcpMatchBuilder();
+ final TcpMatchBuilder tcpmatch1 = new TcpMatchBuilder();
+ tcpmatch.setTcpSourcePort(tcpsrcport);
+ tcpmatch1.setTcpDestinationPort(tcpdstport);
+ setFieldBuilder.setLayer4Match(tcpmatch.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setLayer4Match(tcpmatch1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction40() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+
+ // Udp
+ final PortNumber udpsrcport = new PortNumber(1325);
+ final PortNumber udpdstport = new PortNumber(42);
+ final UdpMatchBuilder udpmatch = new UdpMatchBuilder();
+ final UdpMatchBuilder udpmatch1 = new UdpMatchBuilder();
+ udpmatch.setUdpDestinationPort(udpdstport);
+ udpmatch1.setUdpSourcePort(udpsrcport);
+ setFieldBuilder.setLayer4Match(udpmatch.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setLayer4Match(udpmatch1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction41() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+
+ // Sctp
+ final SctpMatchBuilder sctpmatch = new SctpMatchBuilder();
+ final SctpMatchBuilder sctpmatch1 = new SctpMatchBuilder();
+ final PortNumber srcport = new PortNumber(1435);
+ final PortNumber dstport = new PortNumber(22);
+ sctpmatch.setSctpSourcePort(srcport);
+ sctpmatch1.setSctpDestinationPort(dstport);
+ setFieldBuilder.setLayer4Match(sctpmatch.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setLayer4Match(sctpmatch1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction42() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+
+ // Icmpv4
+ final Icmpv4MatchBuilder icmpv4match = new Icmpv4MatchBuilder();
+ final Icmpv4MatchBuilder icmpv4match1 = new Icmpv4MatchBuilder();
+ icmpv4match.setIcmpv4Type((short) 8);
+ icmpv4match1.setIcmpv4Code((short) 0);
+ setFieldBuilder.setIcmpv4Match(icmpv4match.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setIcmpv4Match(icmpv4match1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction43() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+ final ActionBuilder ab2 = new ActionBuilder();
+ final ActionBuilder ab3 = new ActionBuilder();
+ final ActionBuilder ab4 = new ActionBuilder();
+
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder3 = new SetFieldBuilder();
+ final SetFieldBuilder setFieldBuilder4 = new SetFieldBuilder();
+
+ // setting the values of ARP
+ final MacAddress macdest = new MacAddress(DEST_MAC_ADDRESS);
+ final MacAddress macsrc = new MacAddress(SRC_MAC_ADDRESS);
+ final Ipv4Prefix dstiparp = new Ipv4Prefix("200.71.9.52");
+ final Ipv4Prefix srciparp = new Ipv4Prefix("100.1.1.1");
+ // create ARP match action
+ final ArpMatchBuilder arpmatch = new ArpMatchBuilder();
+ final ArpMatchBuilder arpmatch1 = new ArpMatchBuilder();
+ final ArpMatchBuilder arpmatch2 = new ArpMatchBuilder();
+ final ArpMatchBuilder arpmatch3 = new ArpMatchBuilder();
+ final ArpMatchBuilder arpmatch4 = new ArpMatchBuilder();
+ final ArpSourceHardwareAddressBuilder arpsrc = new ArpSourceHardwareAddressBuilder();
+ arpsrc.setAddress(macsrc);
+ final ArpTargetHardwareAddressBuilder arpdst = new ArpTargetHardwareAddressBuilder();
+ arpdst.setAddress(macdest);
+ arpmatch.setArpOp(2);
+ arpmatch1.setArpSourceHardwareAddress(arpsrc.build());
+ arpmatch2.setArpTargetHardwareAddress(arpdst.build());
+ arpmatch3.setArpSourceTransportAddress(srciparp);
+ arpmatch4.setArpTargetTransportAddress(dstiparp);
+ setFieldBuilder.setLayer3Match(arpmatch.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setLayer3Match(arpmatch1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ setFieldBuilder2.setLayer3Match(arpmatch2.build());
+ ab2.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder2.build()).build());
+ ab2.withKey(new ActionKey(2));
+ actionList.add(ab2.build());
+
+ setFieldBuilder3.setLayer3Match(arpmatch3.build());
+ ab3.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder3.build()).build());
+ ab3.withKey(new ActionKey(3));
+ actionList.add(ab3.build());
+
+ setFieldBuilder4.setLayer3Match(arpmatch4.build());
+ ab4.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder4.build()).build());
+ ab4.withKey(new ActionKey(4));
+ actionList.add(ab4.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction44() {
+
+ final List<Action> actionLists = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+ final ActionBuilder ab5 = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder5 = new SetFieldBuilder();
+ final ActionBuilder ab6 = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder6 = new SetFieldBuilder();
+
+ // IPv6
+ final Ipv6MatchBuilder ipv6Builder = new Ipv6MatchBuilder();
+ final Ipv6MatchBuilder ipv6Builder1 = new Ipv6MatchBuilder();
+ final Ipv6MatchBuilder ipv6Builder5 = new Ipv6MatchBuilder();
+ final Ipv6MatchBuilder ipv6Builder6 = new Ipv6MatchBuilder();
+
+ final Ipv6Prefix dstip6 = new Ipv6Prefix("2002::2/128");
+ final Ipv6Prefix srcip6 = new Ipv6Prefix("2001:0:0:0:0:0:0:1/128");
+ final Ipv6ExtHeaderBuilder nextheader = new Ipv6ExtHeaderBuilder();
+ nextheader.setIpv6Exthdr(58);
+ final Ipv6LabelBuilder ipv6label = new Ipv6LabelBuilder();
+ final Ipv6FlowLabel label = new Ipv6FlowLabel(10028L);
+ ipv6label.setIpv6Flabel(label);
+
+ ipv6Builder.setIpv6Source(srcip6);
+ ipv6Builder1.setIpv6Destination(dstip6);
+ ipv6Builder5.setIpv6ExtHeader(nextheader.build());
+ ipv6Builder6.setIpv6Label(ipv6label.build());
+
+ setFieldBuilder.setLayer3Match(ipv6Builder.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionLists.add(ab.build());
+
+ setFieldBuilder1.setLayer3Match(ipv6Builder1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionLists.add(ab1.build());
+
+ setFieldBuilder5.setLayer3Match(ipv6Builder5.build());
+ ab5.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder5.build()).build());
+ ab5.withKey(new ActionKey(5));
+ actionLists.add(ab5.build());
+
+ setFieldBuilder6.setLayer3Match(ipv6Builder6.build());
+ ab6.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder6.build()).build());
+ ab6.withKey(new ActionKey(6));
+ actionLists.add(ab6.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionLists);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction45() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+
+ // Icmpv6
+ final Icmpv6MatchBuilder icmpv6match = new Icmpv6MatchBuilder();
+ final Icmpv6MatchBuilder icmpv6match1 = new Icmpv6MatchBuilder();
+ icmpv6match.setIcmpv6Type((short) 135);
+ icmpv6match1.setIcmpv6Code((short) 0);
+ setFieldBuilder.setIcmpv6Match(icmpv6match.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setIcmpv6Match(icmpv6match1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction46() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ final ActionBuilder ab1 = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder1 = new SetFieldBuilder();
+ final ActionBuilder ab2 = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder2 = new SetFieldBuilder();
+
+ // MPLS
+ final ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder();
+ final ProtocolMatchFieldsBuilder protomatch1 = new ProtocolMatchFieldsBuilder();
+ final ProtocolMatchFieldsBuilder protomatch2 = new ProtocolMatchFieldsBuilder();
+ protomatch.setMplsLabel((long) 36008);
+ protomatch1.setMplsTc((short) 4);
+ protomatch2.setMplsBos((short) 1);
+ setFieldBuilder.setProtocolMatchFields(protomatch.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ setFieldBuilder1.setProtocolMatchFields(protomatch1.build());
+ ab1.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder1.build()).build());
+ ab1.withKey(new ActionKey(1));
+ actionList.add(ab1.build());
+
+ setFieldBuilder2.setProtocolMatchFields(protomatch2.build());
+ ab2.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder2.build()).build());
+ ab2.withKey(new ActionKey(2));
+ actionList.add(ab2.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction47() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ // PBB
+ final ProtocolMatchFieldsBuilder protomatch = new ProtocolMatchFieldsBuilder();
+ protomatch.setPbb(new PbbBuilder().setPbbIsid(4L).setPbbMask(
+ new BigInteger(new byte[]{0, 1, 0, 0}).longValue()).build());
+ setFieldBuilder.setProtocolMatchFields(protomatch.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ actionList.add(ab.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }
+
+ private static InstructionsBuilder createAppyActionInstruction48() {
+
+ final List<Action> actionList = new ArrayList<>();
+ final ActionBuilder ab = new ActionBuilder();
+ final SetFieldBuilder setFieldBuilder = new SetFieldBuilder();
+ // Tunnel
+ final TunnelBuilder tunnel = new TunnelBuilder();
+ tunnel.setTunnelId(BigInteger.valueOf(10668));
+ setFieldBuilder.setTunnel(tunnel.build());
+ ab.setAction(new SetFieldCaseBuilder().setSetField(setFieldBuilder.build()).build());
+ ab.withKey(new ActionKey(0));
+ actionList.add(ab.build());
+
+ final ApplyActionsBuilder aab = new ApplyActionsBuilder();
+ aab.setAction(actionList);
+
+ final InstructionBuilder ib = new InstructionBuilder();
+ ib.withKey(new InstructionKey(0));
+ ib.setInstruction(new ApplyActionsCaseBuilder().setApplyActions(aab.build()).build());
+
+ // Put our Instruction in a list of Instructions
+ final InstructionsBuilder isb = new InstructionsBuilder();
+ final List<Instruction> instructions = new ArrayList<>();
+ instructions.add(ib.build());
+ isb.setInstruction(instructions);
+ return isb;
+ }