private static InstructionsBuilder createMetadataInstructions() { final WriteMetadataBuilder aab = new WriteMetadataBuilder(); aab.setMetadata(BigInteger.valueOf(10)); aab.setMetadataMask(BigInteger.valueOf(10)); final InstructionBuilder ib = new InstructionBuilder(); ib.setInstruction(new WriteMetadataCaseBuilder().setWriteMetadata(aab.build()).build()); // Put our Instruction in a list of Instructions final InstructionsBuilder isb = new InstructionsBuilder(); final List<Instruction> instructions = new ArrayList<Instruction>(); ib.setKey(new InstructionKey(0)); instructions.add(ib.build()); isb.setInstruction(instructions); return isb; }
public static WriteMetadataCase createInstructionMetadata(int order, BigInteger metadataVal, BigInteger metadataMask) { WriteMetadataBuilder wmb = new WriteMetadataBuilder(); wmb.setMetadata(metadataVal); wmb.setMetadataMask(metadataMask); WriteMetadataCaseBuilder wmcb = new WriteMetadataCaseBuilder().setWriteMetadata(wmb.build()); return wmcb.build(); }
/** * Set IPv4 Source Address Instructions * @param ib Map InstructionBuilder * @param metaData BigInteger representing the OpenFlow metadata * @param metaDataMask BigInteger representing the OpenFlow metadata mask * @return instructionbuilder with new attributes */ public static InstructionBuilder createMetadataInstructions(InstructionBuilder ib, BigInteger metaData, BigInteger metaDataMask) { WriteMetadataBuilder aab = new WriteMetadataBuilder(); aab.setMetadata(metaData); aab.setMetadataMask(metaDataMask); ib.setInstruction(new WriteMetadataCaseBuilder().setWriteMetadata(aab.build()).build()); /** * * TODO Determine why the following fails serialization * with a null value. Per the spec it is optional. * The metadata match, the Flowmod works w/o an accompanying mask. * * if (metaDataMask != null) { * aab.setMetadataMask(metaDataMask); * } * */ return ib; }
/** * Set IPv4 Source Address Instructions * @param ib Map InstructionBuilder * @param metaData BigInteger representing the OpenFlow metadata * @param metaDataMask BigInteger representing the OpenFlow metadata mask * @return instructionbuilder with new attributes */ public static InstructionBuilder createMetadataInstructions(InstructionBuilder ib, BigInteger metaData, BigInteger metaDataMask) { WriteMetadataBuilder aab = new WriteMetadataBuilder(); aab.setMetadata(metaData); aab.setMetadataMask(metaDataMask); ib.setInstruction(new WriteMetadataCaseBuilder().setWriteMetadata(aab.build()).build()); /** * * TODO Determine why the following fails serialization * with a null value. Per the spec it is optional. * The metadata match, the Flowmod works w/o an accompanying mask. * * if (metaDataMask != null) { * aab.setMetadataMask(metaDataMask); * } * */ return ib; }
((org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCase) switchInst.getInstructionChoice()); WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder(); WriteMetadataBuilder writeMetadataBuilder = new WriteMetadataBuilder(); writeMetadataBuilder.setMetadata(new BigInteger(OFConstants.SIGNUM_UNSIGNED, writeMetadataCase.getWriteMetadata().getMetadata())); writeMetadataBuilder.setMetadataMask(new BigInteger(OFConstants.SIGNUM_UNSIGNED, writeMetadataCase.getWriteMetadata().getMetadataMask()));
} else if (currInstructionType instanceof WriteMetadataCase) { builder.setInstruction((new WriteMetadataCaseBuilder() .setWriteMetadata(new WriteMetadataBuilder().build()) .build())); } else if (currInstructionType instanceof WriteActionsCase) {