Search in sources :

Example 6 with SetFieldMatch

use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch in project openflowplugin by opendaylight.

the class TableFeaturesResponseConvertorTest method testWithMPTableFeatureWithProperties.

/**
 * Test correct input.
 */
@Test
public void testWithMPTableFeatureWithProperties() {
    TableFeaturesBuilder featuresBuilder = new TableFeaturesBuilder();
    featuresBuilder.setTableId((short) 5);
    featuresBuilder.setName("Aloha");
    byte[] metaMatch = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };
    featuresBuilder.setMetadataMatch(metaMatch);
    byte[] metaWrite = new byte[] { 8, 9, 10, 11, 12, 13, 14, 15 };
    featuresBuilder.setMetadataWrite(metaWrite);
    featuresBuilder.setConfig(new TableConfig(false));
    featuresBuilder.setMaxEntries(42L);
    TableFeaturePropertiesBuilder propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLES);
    NextTableRelatedTableFeaturePropertyBuilder nextPropBuilder = new NextTableRelatedTableFeaturePropertyBuilder();
    List<NextTableIds> nextIds = new ArrayList<>();
    nextIds.add(new NextTableIdsBuilder().setTableId((short) 1).build());
    nextIds.add(new NextTableIdsBuilder().setTableId((short) 2).build());
    nextPropBuilder.setNextTableIds(nextIds);
    propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());
    List<TableFeatureProperties> properties = new ArrayList<>();
    properties.add(propBuilder.build());
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLESMISS);
    nextPropBuilder = new NextTableRelatedTableFeaturePropertyBuilder();
    nextIds = new ArrayList<>();
    nextIds.add(new NextTableIdsBuilder().setTableId((short) 3).build());
    nextPropBuilder.setNextTableIds(nextIds);
    propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());
    properties.add(propBuilder.build());
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONS);
    /* -------------------------------------------------- */
    List<Action> actions = new ArrayList<>();
    WriteActionsBuilder writeActionsBuilder = new WriteActionsBuilder();
    ActionBuilder actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createSetNwSrcAction());
    actions.add(actionBuilder.build());
    writeActionsBuilder.setAction(actions);
    WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();
    writeActionsCaseBuilder.setWriteActions(writeActionsBuilder.build());
    InstructionBuilder insBuilder = new InstructionBuilder();
    insBuilder.setInstructionChoice(writeActionsCaseBuilder.build());
    List<Instruction> insIds = new ArrayList<>();
    insIds.add(insBuilder.build());
    /* -------------------------------------------------- */
    insBuilder = new InstructionBuilder();
    GotoTableCaseBuilder gotoCaseBuilder = new GotoTableCaseBuilder();
    GotoTableBuilder gotoTableBuilder = new GotoTableBuilder();
    gotoCaseBuilder.setGotoTable(gotoTableBuilder.build());
    insBuilder.setInstructionChoice(gotoCaseBuilder.build());
    insIds.add(insBuilder.build());
    InstructionRelatedTableFeaturePropertyBuilder insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder();
    insPropBuilder.setInstruction(insIds);
    propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS);
    insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder();
    insIds = new ArrayList<>();
    insBuilder = new InstructionBuilder();
    WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder();
    WriteMetadataBuilder writeMetadataBuilder = new WriteMetadataBuilder();
    writeMetadataCaseBuilder.setWriteMetadata(writeMetadataBuilder.build());
    insBuilder.setInstructionChoice(writeMetadataCaseBuilder.build());
    insIds.add(insBuilder.build());
    insBuilder = new InstructionBuilder();
    ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();
    ApplyActionsBuilder applyActionsBuilder = new ApplyActionsBuilder();
    applyActionsCaseBuilder.setApplyActions(applyActionsBuilder.build());
    insBuilder.setInstructionChoice(applyActionsCaseBuilder.build());
    insIds.add(insBuilder.build());
    insBuilder = new InstructionBuilder();
    MeterCaseBuilder meterCaseBuilder = new MeterCaseBuilder();
    MeterBuilder meterBuilder = new MeterBuilder();
    meterCaseBuilder.setMeter(meterBuilder.build());
    insBuilder.setInstructionChoice(meterCaseBuilder.build());
    insIds.add(insBuilder.build());
    insBuilder = new InstructionBuilder();
    ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();
    insBuilder.setInstructionChoice(clearActionsCaseBuilder.build());
    insIds.add(insBuilder.build());
    insBuilder = new InstructionBuilder();
    GotoTableCaseBuilder gotoCaseBuilder2 = new GotoTableCaseBuilder();
    GotoTableBuilder gotoTableBuilder2 = new GotoTableBuilder();
    gotoCaseBuilder2.setGotoTable(gotoTableBuilder2.build());
    insBuilder.setInstructionChoice(gotoCaseBuilder2.build());
    insIds.add(insBuilder.build());
    insPropBuilder.setInstruction(insIds);
    propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());
    properties.add(propBuilder.build());
    featuresBuilder.setTableFeatureProperties(properties);
    List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features.TableFeatures> features = new ArrayList<>();
    features.add(featuresBuilder.build());
    featuresBuilder = new TableFeaturesBuilder();
    featuresBuilder.setTableId((short) 6);
    featuresBuilder.setName("Mahalo");
    byte[] metaMatch2 = new byte[] { 8, 9, 10, 11, 12, 13, 14, 15 };
    featuresBuilder.setMetadataMatch(metaMatch2);
    byte[] metaWrite2 = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };
    featuresBuilder.setMetadataWrite(metaWrite2);
    featuresBuilder.setConfig(new TableConfig(false));
    featuresBuilder.setMaxEntries(24L);
    /* -------------------------------------------------- */
    properties = new ArrayList<>();
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTMATCH);
    MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(InPhyPort.class);
    entriesBuilder.setHasMask(false);
    List<MatchEntry> entries = new ArrayList<>();
    entries.add(entriesBuilder.build());
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(InPort.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    OxmRelatedTableFeaturePropertyBuilder oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
    oxmBuilder.setMatchEntry(entries);
    propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
    // [0]
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELD);
    oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
    entries = new ArrayList<>();
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(IpProto.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(IpEcn.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    oxmBuilder.setMatchEntry(entries);
    propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
    // [1]
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELD);
    oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
    entries = new ArrayList<>();
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(Ipv6Exthdr.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(VlanVid.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    oxmBuilder.setMatchEntry(entries);
    propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
    // [2]
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELDMISS);
    oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
    entries = new ArrayList<>();
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(VlanPcp.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(TcpSrc.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    oxmBuilder.setMatchEntry(entries);
    propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
    // [3]
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELDMISS);
    oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
    entries = new ArrayList<>();
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(UdpSrc.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(UdpDst.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    oxmBuilder.setMatchEntry(entries);
    propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
    // [4]
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTWILDCARDS);
    oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
    entries = new ArrayList<>();
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(EthSrc.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    entriesBuilder = new MatchEntryBuilder();
    entriesBuilder.setOxmClass(OpenflowBasicClass.class);
    entriesBuilder.setOxmMatchField(EthDst.class);
    entriesBuilder.setHasMask(false);
    entries.add(entriesBuilder.build());
    oxmBuilder.setMatchEntry(entries);
    propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
    // [5]
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYACTIONS);
    actions = new ArrayList<>();
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createSetNwSrcAction());
    actions.add(actionBuilder.build());
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createSetNwSrcAction());
    actions.add(actionBuilder.build());
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createSetNwSrcAction());
    actions.add(actionBuilder.build());
    ActionRelatedTableFeaturePropertyBuilder actBuilder = new ActionRelatedTableFeaturePropertyBuilder();
    actBuilder.setAction(actions);
    propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());
    // [6]
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYACTIONSMISS);
    actBuilder = new ActionRelatedTableFeaturePropertyBuilder();
    actions = new ArrayList<>();
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createGroupAction());
    actions.add(actionBuilder.build());
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createCopyTtlInCase());
    actions.add(actionBuilder.build());
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createCopyTtlOutCase());
    actions.add(actionBuilder.build());
    actBuilder.setAction(actions);
    propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());
    // [7]
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITEACTIONS);
    actBuilder = new ActionRelatedTableFeaturePropertyBuilder();
    actions = new ArrayList<>();
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createSetMplsTtlCase());
    actions.add(actionBuilder.build());
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createDecMplsTtlCase());
    actions.add(actionBuilder.build());
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(pushVlanCase());
    actions.add(actionBuilder.build());
    actBuilder.setAction(actions);
    propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITEACTIONSMISS);
    actBuilder = new ActionRelatedTableFeaturePropertyBuilder();
    actions = new ArrayList<>();
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createPopVlanCase());
    actions.add(actionBuilder.build());
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createPushPbbCase());
    actions.add(actionBuilder.build());
    actionBuilder = new ActionBuilder();
    actionBuilder.setActionChoice(createEmptySetFieldCase());
    actions.add(actionBuilder.build());
    actBuilder.setAction(actions);
    propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTEXPERIMENTER);
    oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
    propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    propBuilder = new TableFeaturePropertiesBuilder();
    propBuilder.setType(TableFeaturesPropType.OFPTFPTEXPERIMENTERMISS);
    oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();
    propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());
    properties.add(propBuilder.build());
    /* -------------------------------------------------- */
    featuresBuilder.setTableFeatureProperties(properties);
    features.add(featuresBuilder.build());
    MultipartReplyTableFeaturesBuilder builder = new MultipartReplyTableFeaturesBuilder();
    builder.setTableFeatures(features);
    List<TableFeatures> list = convert(builder.build());
    Assert.assertEquals("Returned empty list", 2, list.size());
    TableFeatures feature = list.get(0);
    Assert.assertEquals("Wrong table-id", 5, feature.getTableId().intValue());
    Assert.assertEquals("Wrong name", "Aloha", feature.getName());
    Assert.assertEquals("Wrong metadata match", new BigInteger(1, metaMatch), feature.getMetadataMatch());
    Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite), feature.getMetadataWrite());
    Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());
    Assert.assertEquals("Wrong max-entries", 42, feature.getMaxEntries().intValue());
    Assert.assertEquals("Wrong properties", 4, feature.getTableProperties().getTableFeatureProperties().size());
    org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.table.features.table.properties.TableFeatureProperties property = feature.getTableProperties().getTableFeatureProperties().get(0);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.NextTable", property.getTableFeaturePropType().getImplementedInterface().getName());
    NextTable propType = (NextTable) property.getTableFeaturePropType();
    List<Short> ids = propType.getTables().getTableIds();
    Assert.assertEquals("Wrong next table-id size", 2, ids.size());
    Assert.assertEquals("Wrong next-registry-id", 1, ids.get(0).intValue());
    Assert.assertEquals("Wrong next-registry-id", 2, ids.get(1).intValue());
    property = feature.getTableProperties().getTableFeatureProperties().get(1);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.NextTableMiss", property.getTableFeaturePropType().getImplementedInterface().getName());
    NextTableMiss propType2 = (NextTableMiss) property.getTableFeaturePropType();
    ids = propType2.getTablesMiss().getTableIds();
    Assert.assertEquals("Wrong next table-id size", 1, ids.size());
    Assert.assertEquals("Wrong next-registry-id", 3, ids.get(0).intValue());
    property = feature.getTableProperties().getTableFeatureProperties().get(2);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.Instructions", property.getTableFeaturePropType().getImplementedInterface().getName());
    Instructions propType3 = (Instructions) property.getTableFeaturePropType();
    List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction> instructionIds = propType3.getInstructions().getInstruction();
    Assert.assertEquals("Wrong instruction-ids size", 2, instructionIds.size());
    Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types." + "rev131026.instruction.instruction.WriteActionsCase", instructionIds.get(0).getInstruction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types." + "rev131026.instruction.instruction.GoToTableCase", instructionIds.get(1).getInstruction().getImplementedInterface().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(3);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.InstructionsMiss", property.getTableFeaturePropType().getImplementedInterface().getName());
    InstructionsMiss propType4 = (InstructionsMiss) property.getTableFeaturePropType();
    instructionIds = propType4.getInstructionsMiss().getInstruction();
    Assert.assertEquals("Wrong instruction-ids size", 5, instructionIds.size());
    Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types." + "rev131026.instruction.instruction.WriteMetadataCase", instructionIds.get(0).getInstruction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types." + "rev131026.instruction.instruction.ApplyActionsCase", instructionIds.get(1).getInstruction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types." + "rev131026.instruction.instruction.MeterCase", instructionIds.get(2).getInstruction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types." + "rev131026.instruction.instruction.ClearActionsCase", instructionIds.get(3).getInstruction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types." + "rev131026.instruction.instruction.GoToTableCase", instructionIds.get(4).getInstruction().getImplementedInterface().getName());
    feature = list.get(1);
    Assert.assertEquals("Wrong table-id", 6, feature.getTableId().intValue());
    Assert.assertEquals("Wrong name", "Mahalo", feature.getName());
    Assert.assertEquals("Wrong metadata match", new BigInteger(1, metaMatch2), feature.getMetadataMatch());
    Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite2), feature.getMetadataWrite());
    Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());
    Assert.assertEquals("Wrong max-entries", 24, feature.getMaxEntries().intValue());
    Assert.assertEquals("Wrong properties", 12, feature.getTableProperties().getTableFeatureProperties().size());
    property = feature.getTableProperties().getTableFeatureProperties().get(0);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.Match", property.getTableFeaturePropType().getImplementedInterface().getName());
    Match propType5 = (Match) property.getTableFeaturePropType();
    List<SetFieldMatch> fieldMatch = propType5.getMatchSetfield().getSetFieldMatch();
    Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.InPhyPort", fieldMatch.get(0).getMatchType().getName());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.InPort", fieldMatch.get(1).getMatchType().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(1);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfield", property.getTableFeaturePropType().getImplementedInterface().getName());
    ApplySetfield propType6 = (ApplySetfield) property.getTableFeaturePropType();
    fieldMatch = propType6.getApplySetfield().getSetFieldMatch();
    Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpProto", fieldMatch.get(0).getMatchType().getName());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpEcn", fieldMatch.get(1).getMatchType().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(2);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield", property.getTableFeaturePropType().getImplementedInterface().getName());
    WriteSetfield propType7 = (WriteSetfield) property.getTableFeaturePropType();
    fieldMatch = propType7.getWriteSetfield().getSetFieldMatch();
    Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Exthdr", fieldMatch.get(0).getMatchType().getName());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanVid", fieldMatch.get(1).getMatchType().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(3);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss", property.getTableFeaturePropType().getImplementedInterface().getName());
    WriteSetfieldMiss propType8 = (WriteSetfieldMiss) property.getTableFeaturePropType();
    fieldMatch = propType8.getWriteSetfieldMiss().getSetFieldMatch();
    Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanPcp", fieldMatch.get(0).getMatchType().getName());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpSrc", fieldMatch.get(1).getMatchType().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(4);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfieldMiss", property.getTableFeaturePropType().getImplementedInterface().getName());
    ApplySetfieldMiss propType9 = (ApplySetfieldMiss) property.getTableFeaturePropType();
    fieldMatch = propType9.getApplySetfieldMiss().getSetFieldMatch();
    Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpSrc", fieldMatch.get(0).getMatchType().getName());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpDst", fieldMatch.get(1).getMatchType().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(5);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.Wildcards", property.getTableFeaturePropType().getImplementedInterface().getName());
    Wildcards propType10 = (Wildcards) property.getTableFeaturePropType();
    fieldMatch = propType10.getWildcardSetfield().getSetFieldMatch();
    Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthSrc", fieldMatch.get(0).getMatchType().getName());
    Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthDst", fieldMatch.get(1).getMatchType().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(6);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActions", property.getTableFeaturePropType().getImplementedInterface().getName());
    org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActions propType11 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActions) property.getTableFeaturePropType();
    List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList = propType11.getApplyActions().getAction();
    Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwSrcActionCase", actionsList.get(0).getAction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwSrcActionCase", actionsList.get(1).getAction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwSrcActionCase", actionsList.get(2).getAction().getImplementedInterface().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(7);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActionsMiss", property.getTableFeaturePropType().getImplementedInterface().getName());
    org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActionsMiss propType12 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActionsMiss) property.getTableFeaturePropType();
    actionsList = propType12.getApplyActionsMiss().getAction();
    Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCase", actionsList.get(0).getAction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCase", actionsList.get(1).getAction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlOutCase", actionsList.get(2).getAction().getImplementedInterface().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(8);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.WriteActions", property.getTableFeaturePropType().getImplementedInterface().getName());
    org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteActions propType13 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteActions) property.getTableFeaturePropType();
    actionsList = propType13.getWriteActions().getAction();
    Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionCase", actionsList.get(0).getAction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecMplsTtlCase", actionsList.get(1).getAction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushVlanActionCase", actionsList.get(2).getAction().getImplementedInterface().getName());
    property = feature.getTableProperties().getTableFeatureProperties().get(9);
    Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types." + "rev131026.table.feature.prop.type.table.feature.prop.type.WriteActionsMiss", property.getTableFeaturePropType().getImplementedInterface().getName());
    org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteActionsMiss propType14 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteActionsMiss) property.getTableFeaturePropType();
    actionsList = propType14.getWriteActionsMiss().getAction();
    Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCase", actionsList.get(0).getAction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushPbbActionCase", actionsList.get(1).getAction().getImplementedInterface().getName());
    Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCase", actionsList.get(2).getAction().getImplementedInterface().getName());
}
Also used : WriteMetadataCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCaseBuilder) ArrayList(java.util.ArrayList) TableFeatureProperties(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties) Instruction(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction) WriteSetfieldMiss(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss) MultipartReplyTableFeaturesBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.MultipartReplyTableFeaturesBuilder) ApplySetfieldMiss(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfieldMiss) MatchEntryBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder) TableFeaturePropertiesBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeaturePropertiesBuilder) TableConfig(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig) ApplyActionsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.apply.actions._case.ApplyActionsBuilder) NextTable(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTable) WriteActionsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.actions._case.WriteActionsBuilder) WriteActionsCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCaseBuilder) MultipartReplyTableFeaturesBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.MultipartReplyTableFeaturesBuilder) TableFeaturesBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features.TableFeaturesBuilder) InstructionsMiss(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.InstructionsMiss) Instructions(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Instructions) SetFieldMatch(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch) ApplySetfield(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfield) GotoTableBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice._goto.table._case.GotoTableBuilder) BigInteger(java.math.BigInteger) Wildcards(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Wildcards) OxmRelatedTableFeaturePropertyBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.OxmRelatedTableFeaturePropertyBuilder) MeterBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.meter._case.MeterBuilder) InstructionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder) Action(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action) NextTableIdsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.table.features.properties.container.table.feature.properties.NextTableIdsBuilder) MatchEntry(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry) SetMplsTtlActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.mpls.ttl._case.SetMplsTtlActionBuilder) SetNwSrcActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.nw.src._case.SetNwSrcActionBuilder) GroupActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.group._case.GroupActionBuilder) SetFieldActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.field._case.SetFieldActionBuilder) PushVlanActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.push.vlan._case.PushVlanActionBuilder) ActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder) PushPbbActionBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.push.pbb._case.PushPbbActionBuilder) GotoTableCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCaseBuilder) NextTableRelatedTableFeaturePropertyBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.NextTableRelatedTableFeaturePropertyBuilder) WriteMetadataBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.metadata._case.WriteMetadataBuilder) SetFieldMatch(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch) Match(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match) InstructionRelatedTableFeaturePropertyBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.InstructionRelatedTableFeaturePropertyBuilder) ActionRelatedTableFeaturePropertyBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionRelatedTableFeaturePropertyBuilder) ApplyActionsCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCaseBuilder) TableFeatures(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures) MultipartReplyTableFeatures(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.MultipartReplyTableFeatures) ClearActionsCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCaseBuilder) MeterCaseBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCaseBuilder) NextTableMiss(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTableMiss) NextTableIds(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.table.features.properties.container.table.feature.properties.NextTableIds) WriteSetfield(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield) Test(org.junit.Test)

Example 7 with SetFieldMatch

use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch in project openflowplugin by opendaylight.

the class WriteSetfieldMissTablePropertySerializerTest method testSerialize.

@Test
public void testSerialize() throws Exception {
    final WriteSetfieldMiss property = new WriteSetfieldMissBuilder().setWriteSetfieldMiss(new org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.write.setfield.miss.WriteSetfieldMissBuilder().setSetFieldMatch(ImmutableList.<SetFieldMatch>builder().add(new SetFieldMatchBuilder().setMatchType(ArpOp.class).setHasMask(false).build()).build()).build()).build();
    assertProperty(property, out -> {
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ARP_OP << 1);
        // Skip match entry length
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
    });
}
Also used : WriteSetfieldMissBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMissBuilder) SetFieldMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatchBuilder) WriteSetfieldMiss(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss) SetFieldMatch(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch) Test(org.junit.Test)

Example 8 with SetFieldMatch

use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch in project openflowplugin by opendaylight.

the class MatchFieldSerializerTest method testSerialize.

@Test
public void testSerialize() throws Exception {
    final Match property = new MatchBuilder().setMatchSetfield(new MatchSetfieldBuilder().setSetFieldMatch(ImmutableList.<SetFieldMatch>builder().add(new SetFieldMatchBuilder().setMatchType(ArpOp.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(ArpSha.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(ArpSpa.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(ArpTha.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(ArpTpa.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(EthDst.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(EthSrc.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(EthType.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Icmpv4Code.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Icmpv4Type.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Icmpv6Code.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Icmpv6Type.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(InPhyPort.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(InPort.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(IpDscp.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(IpEcn.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(IpProto.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv4Dst.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv4Src.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv6Dst.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv6Exthdr.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv6Flabel.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv6NdSll.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv6NdTarget.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv6NdTll.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Ipv6Src.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(Metadata.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(MplsBos.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(MplsLabel.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(MplsTc.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(PbbIsid.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(SctpDst.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(SctpSrc.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(TcpDst.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(TcpFlags.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(TcpSrc.class).setHasMask(true).build()).add(new SetFieldMatchBuilder().setMatchType(TunnelId.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(UdpDst.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(UdpSrc.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(VlanPcp.class).setHasMask(false).build()).add(new SetFieldMatchBuilder().setMatchType(VlanVid.class).setHasMask(false).build()).build()).build()).build();
    assertProperty(property, out -> {
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ARP_OP << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ARP_SHA << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ARP_SPA << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ARP_THA << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ARP_TPA << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ETH_DST << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ETH_SRC << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ETH_TYPE << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ICMPV4_CODE << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ICMPV4_TYPE << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ICMPV6_CODE << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ICMPV6_TYPE << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IN_PHY_PORT << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IN_PORT << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IP_DSCP << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IP_ECN << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IP_PROTO << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV4_DST << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV4_SRC << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV6_DST << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV6_EXTHDR << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV6_FLABEL << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV6_ND_SLL << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV6_ND_TARGET << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV6_ND_TLL << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.IPV6_SRC << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.METADATA << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.MPLS_BOS << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.MPLS_LABEL << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.MPLS_TC << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.PBB_ISID << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.SCTP_DST << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.SCTP_SRC << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.TCP_DST << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.EXPERIMENTER_CLASS);
        assertEquals(out.readUnsignedByte(), EncodeConstants.ONFOXM_ET_TCP_FLAGS << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte() >>> 1, OxmMatchConstants.TCP_SRC);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.TUNNEL_ID << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.UDP_DST << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.UDP_SRC << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.VLAN_PCP << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.VLAN_VID << 1);
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
    });
}
Also used : Ipv6Src(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Src) ArpSha(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpSha) Icmpv6Type(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Icmpv6Type) ArpTha(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpTha) SetFieldMatch(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch) Match(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match) MatchSetfieldBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.match.MatchSetfieldBuilder) SctpDst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.SctpDst) Icmpv4Type(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Icmpv4Type) MplsBos(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.MplsBos) MplsTc(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.MplsTc) EthDst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthDst) Ipv4Dst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv4Dst) TcpSrc(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpSrc) SetFieldMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatchBuilder) Ipv6Dst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Dst) Ipv6NdTarget(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6NdTarget) InPort(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPort) UdpDst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpDst) SetFieldMatch(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch) IpEcn(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpEcn) EthType(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthType) VlanPcp(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanPcp) Ipv6Flabel(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Flabel) TcpDst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpDst) MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.MatchBuilder) SetFieldMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatchBuilder) AbstractTablePropertySerializerTest(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.AbstractTablePropertySerializerTest) Test(org.junit.Test)

Example 9 with SetFieldMatch

use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch in project openflowplugin by opendaylight.

the class MatchTablePropertySerializerTest method testSerialize.

@Test
public void testSerialize() throws Exception {
    final Match property = new MatchBuilder().setMatchSetfield(new MatchSetfieldBuilder().setSetFieldMatch(ImmutableList.<SetFieldMatch>builder().add(new SetFieldMatchBuilder().setMatchType(ArpOp.class).setHasMask(false).build()).build()).build()).build();
    assertProperty(property, out -> {
        assertEquals(out.readUnsignedShort(), OxmMatchConstants.OPENFLOW_BASIC_CLASS);
        assertEquals(out.readUnsignedByte(), OxmMatchConstants.ARP_OP << 1);
        // Skip match entry length
        out.skipBytes(EncodeConstants.SIZE_OF_BYTE_IN_BYTES);
    });
}
Also used : SetFieldMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatchBuilder) MatchSetfieldBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.match.MatchSetfieldBuilder) SetFieldMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatchBuilder) MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.MatchBuilder) SetFieldMatch(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch) SetFieldMatch(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch) Match(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match) Test(org.junit.Test)

Example 10 with SetFieldMatch

use of org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch in project openflowplugin by opendaylight.

the class MultipartMatchFieldSerializerInjector method injectSerializers.

/**
 * Injects multipart match field serializers into provided
 * {@link org.opendaylight.openflowjava.protocol.api.extensibility.SerializerExtensionProvider}.
 *
 * @param provider OpenflowJava serializer extension provider
 */
static void injectSerializers(final SerializerExtensionProvider provider) {
    // Inject new message serializers here using injector created by createInjector method
    final Function<Class<? extends MatchField>, Consumer<OFSerializer<SetFieldMatch>>> injector = createInjector(provider, EncodeConstants.OF13_VERSION_ID);
    injector.apply(ArpOp.class).accept(new ArpOpMatchFieldSerializer());
    injector.apply(ArpSha.class).accept(new ArpShaMatchFieldSerializer());
    injector.apply(ArpSpa.class).accept(new ArpSpaMatchFieldSerializer());
    injector.apply(ArpTha.class).accept(new ArpThaMatchFieldSerializer());
    injector.apply(ArpTpa.class).accept(new ArpTpaMatchFieldSerializer());
    injector.apply(EthDst.class).accept(new EthDstMatchFieldSerializer());
    injector.apply(EthSrc.class).accept(new EthSrcMatchFieldSerializer());
    injector.apply(EthType.class).accept(new EthTypeMatchFieldSerializer());
    injector.apply(Icmpv4Code.class).accept(new Icmpv4CodeMatchFieldSerializer());
    injector.apply(Icmpv4Type.class).accept(new Icmpv4TypeMatchFieldSerializer());
    injector.apply(Icmpv6Code.class).accept(new Icmpv6CodeMatchFieldSerializer());
    injector.apply(Icmpv6Type.class).accept(new Icmpv6TypeMatchFieldSerializer());
    injector.apply(InPhyPort.class).accept(new InPhyPortMatchFieldSerializer());
    injector.apply(InPort.class).accept(new InPortMatchFieldSerializer());
    injector.apply(IpDscp.class).accept(new IpDscpMatchFieldSerializer());
    injector.apply(IpEcn.class).accept(new IpEcnMatchFieldSerializer());
    injector.apply(IpProto.class).accept(new IpProtoMatchFieldSerializer());
    injector.apply(Ipv4Dst.class).accept(new Ipv4DstMatchFieldSerializer());
    injector.apply(Ipv4Src.class).accept(new Ipv4SrcMatchFieldSerializer());
    injector.apply(Ipv6Dst.class).accept(new Ipv6DstMatchFieldSerializer());
    injector.apply(Ipv6Exthdr.class).accept(new Ipv6ExtHdrMatchFieldSerializer());
    injector.apply(Ipv6Flabel.class).accept(new Ipv6FlabelMatchFieldSerializer());
    injector.apply(Ipv6NdSll.class).accept(new Ipv6NdSllMatchFieldSerializer());
    injector.apply(Ipv6NdTarget.class).accept(new Ipv6NdTargetMatchFieldSerializer());
    injector.apply(Ipv6NdTll.class).accept(new Ipv6NdTllMatchFieldSerializer());
    injector.apply(Ipv6Src.class).accept(new Ipv6SrcMatchFieldSerializer());
    injector.apply(Metadata.class).accept(new MetadataMatchFieldSerializer());
    injector.apply(MplsBos.class).accept(new MplsBosMatchFieldSerializer());
    injector.apply(MplsLabel.class).accept(new MplsLabelMatchFieldSerializer());
    injector.apply(MplsTc.class).accept(new MplsTcMatchFieldSerializer());
    injector.apply(PbbIsid.class).accept(new PbbIsidMatchFieldSerializer());
    injector.apply(SctpDst.class).accept(new SctpDstMatchFieldSerializer());
    injector.apply(SctpSrc.class).accept(new SctpSrcMatchFieldSerializer());
    injector.apply(TcpDst.class).accept(new TcpDstMatchFieldSerializer());
    injector.apply(TcpFlags.class).accept(new TcpFlagsMatchFieldSerializer());
    injector.apply(TcpSrc.class).accept(new TcpSrcMatchFieldSerializer());
    injector.apply(TunnelId.class).accept(new TunnelIdMatchFieldSerializer());
    // TODO: Finish implementation of Tunnel Ipv4 src and dst
    injector.apply(TunnelIpv4Dst.class).accept(new Ipv4DstMatchFieldSerializer());
    injector.apply(TunnelIpv4Src.class).accept(new Ipv4SrcMatchFieldSerializer());
    injector.apply(UdpDst.class).accept(new UdpDstMatchFieldSerializer());
    injector.apply(UdpSrc.class).accept(new UdpSrcMatchFieldSerializer());
    injector.apply(VlanPcp.class).accept(new VlanPcpMatchFieldSerializer());
    injector.apply(VlanVid.class).accept(new VlanVidMatchFieldSerializer());
}
Also used : ArpSpa(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpSpa) UdpDstMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.UdpDstMatchFieldSerializer) PbbIsidMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.PbbIsidMatchFieldSerializer) IpProto(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpProto) Ipv6Src(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Src) Ipv6ExtHdrMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv6ExtHdrMatchFieldSerializer) ArpSha(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpSha) Icmpv6Type(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Icmpv6Type) SctpSrcMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.SctpSrcMatchFieldSerializer) Ipv4SrcMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv4SrcMatchFieldSerializer) Ipv6NdSll(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6NdSll) Icmpv6TypeMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Icmpv6TypeMatchFieldSerializer) SctpDst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.SctpDst) Icmpv4CodeMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Icmpv4CodeMatchFieldSerializer) TunnelIdMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.TunnelIdMatchFieldSerializer) Consumer(java.util.function.Consumer) TcpFlagsMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.TcpFlagsMatchFieldSerializer) ArpShaMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.ArpShaMatchFieldSerializer) Icmpv4Type(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Icmpv4Type) TcpSrc(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpSrc) ArpThaMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.ArpThaMatchFieldSerializer) InPort(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPort) VlanVid(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanVid) UdpDst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpDst) TunnelIpv4Dst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TunnelIpv4Dst) InPhyPortMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.InPhyPortMatchFieldSerializer) TcpDstMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.TcpDstMatchFieldSerializer) Icmpv6CodeMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Icmpv6CodeMatchFieldSerializer) SetFieldMatch(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch) Ipv6NdSllMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv6NdSllMatchFieldSerializer) UdpSrcMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.UdpSrcMatchFieldSerializer) EthType(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthType) EthTypeMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.EthTypeMatchFieldSerializer) EthSrcMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.EthSrcMatchFieldSerializer) IpEcnMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.IpEcnMatchFieldSerializer) Ipv6DstMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv6DstMatchFieldSerializer) TcpDst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpDst) MplsLabelMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.MplsLabelMatchFieldSerializer) Ipv6NdTllMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv6NdTllMatchFieldSerializer) IpDscpMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.IpDscpMatchFieldSerializer) MplsTcMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.MplsTcMatchFieldSerializer) PbbIsid(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.PbbIsid) TunnelIpv4Src(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TunnelIpv4Src) Ipv4Src(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv4Src) UdpSrc(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpSrc) ArpTpa(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpTpa) Metadata(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Metadata) ArpOp(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpOp) TunnelIpv4Src(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TunnelIpv4Src) Ipv6FlabelMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv6FlabelMatchFieldSerializer) ArpTha(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpTha) TunnelId(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TunnelId) VlanPcpMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.VlanPcpMatchFieldSerializer) MatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.MatchField) MplsBosMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.MplsBosMatchFieldSerializer) Ipv6Exthdr(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Exthdr) Ipv6NdTll(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6NdTll) TcpFlags(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpFlags) InPortMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.InPortMatchFieldSerializer) VlanVidMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.VlanVidMatchFieldSerializer) MplsBos(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.MplsBos) MplsLabel(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.MplsLabel) SctpDstMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.SctpDstMatchFieldSerializer) MplsTc(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.MplsTc) EthDst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthDst) EthDstMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.EthDstMatchFieldSerializer) Icmpv6Code(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Icmpv6Code) Ipv4Dst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv4Dst) TunnelIpv4Dst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TunnelIpv4Dst) Ipv6SrcMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv6SrcMatchFieldSerializer) Ipv6Dst(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Dst) Ipv6NdTarget(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6NdTarget) InPhyPort(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPhyPort) IpProtoMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.IpProtoMatchFieldSerializer) MetadataMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.MetadataMatchFieldSerializer) ArpTpaMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.ArpTpaMatchFieldSerializer) IpEcn(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpEcn) TcpSrcMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.TcpSrcMatchFieldSerializer) Icmpv4Code(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Icmpv4Code) SctpSrc(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.SctpSrc) Ipv6NdTargetMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv6NdTargetMatchFieldSerializer) Icmpv4TypeMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Icmpv4TypeMatchFieldSerializer) VlanPcp(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanPcp) ArpOpMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.ArpOpMatchFieldSerializer) EthSrc(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthSrc) Ipv6Flabel(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Flabel) Ipv4DstMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.Ipv4DstMatchFieldSerializer) ArpSpaMatchFieldSerializer(org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield.ArpSpaMatchFieldSerializer) IpDscp(org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpDscp)

Aggregations

SetFieldMatch (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch)17 SetFieldMatchBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatchBuilder)14 ArrayList (java.util.ArrayList)10 Test (org.junit.Test)9 TableFeaturePropertiesBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.table.features.table.properties.TableFeaturePropertiesBuilder)6 TableFeaturePropertiesKey (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.table.features.table.properties.TableFeaturePropertiesKey)6 ApplySetfield (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfield)4 WriteSetfield (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield)4 Match (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match)3 MatchBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.MatchBuilder)3 MatchSetfieldBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.match.MatchSetfieldBuilder)3 MatchEntry (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry)2 ArpSha (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpSha)2 ArpTha (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.ArpTha)2 EthDst (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthDst)2 EthType (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthType)2 Icmpv4Type (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Icmpv4Type)2 Icmpv6Type (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Icmpv6Type)2 InPort (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPort)2 IpEcn (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpEcn)2