\r
package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;\r
\r
+import java.math.BigInteger;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
import org.junit.Assert;\r
import org.junit.Test;\r
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.set.nw.src._case.SetNwSrcActionBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.ActionBuilder;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions;\r
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ApplyActionsCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.ClearActionsCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.GotoTableCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.MeterCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteActionsCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.WriteMetadataCaseBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice._goto.table._case.GotoTableBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.apply.actions._case.ApplyActionsBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.meter._case.MeterBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.actions._case.WriteActionsBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instruction.grouping.instruction.choice.write.metadata._case.WriteMetadataBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss;\r
import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;\r
-import java.math.BigInteger;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
\r
/**\r
* @author michal.polkorab\r
List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart\r
.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features\r
.TableFeatures> features = new ArrayList<>();\r
+\r
TableFeaturesBuilder featuresBuilder = new TableFeaturesBuilder();\r
featuresBuilder.setTableId((short) 5);\r
featuresBuilder.setName("Aloha");\r
featuresBuilder.setMetadataWrite(metaWrite);\r
featuresBuilder.setConfig(new TableConfig(false));\r
featuresBuilder.setMaxEntries(42L);\r
+\r
List<TableFeatureProperties> properties = new ArrayList<>();\r
TableFeaturePropertiesBuilder propBuilder = new TableFeaturePropertiesBuilder();\r
+\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLES);\r
NextTableRelatedTableFeaturePropertyBuilder nextPropBuilder =\r
new NextTableRelatedTableFeaturePropertyBuilder();\r
propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());\r
properties.add(propBuilder.build());\r
propBuilder = new TableFeaturePropertiesBuilder();\r
+\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLESMISS);\r
nextPropBuilder = new NextTableRelatedTableFeaturePropertyBuilder();\r
nextIds = new ArrayList<>();\r
propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());\r
properties.add(propBuilder.build());\r
propBuilder = new TableFeaturePropertiesBuilder();\r
+\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONS);\r
InstructionRelatedTableFeaturePropertyBuilder insPropBuilder =\r
new InstructionRelatedTableFeaturePropertyBuilder();\r
+\r
+ /* -------------------------------------------------- */\r
+\r
+ List<Action> actions = new ArrayList<>();\r
List<Instruction> insIds = new ArrayList<>();\r
InstructionBuilder insBuilder = new InstructionBuilder();\r
- insBuilder.setType(WriteActions.class);\r
+ WriteActionsCaseBuilder writeActionsCaseBuilder = new WriteActionsCaseBuilder();\r
+ WriteActionsBuilder writeActionsBuilder = new WriteActionsBuilder();\r
+ ActionBuilder actionBuilder = new ActionBuilder();\r
+ actionBuilder.setActionChoice(createSetNwSrcAction());\r
+ actions.add(actionBuilder.build());\r
+ writeActionsBuilder.setAction(actions);\r
+ writeActionsCaseBuilder.setWriteActions(writeActionsBuilder.build());\r
+ insBuilder.setInstructionChoice(writeActionsCaseBuilder.build());\r
insIds.add(insBuilder.build());\r
+ \r
+ /* -------------------------------------------------- */\r
+\r
insBuilder = new InstructionBuilder();\r
- insBuilder.setType(GotoTable.class);\r
+ GotoTableCaseBuilder gotoCaseBuilder = new GotoTableCaseBuilder();\r
+ GotoTableBuilder gotoTableBuilder = new GotoTableBuilder();\r
+ gotoCaseBuilder.setGotoTable(gotoTableBuilder.build());\r
+ insBuilder.setInstructionChoice(gotoCaseBuilder.build());\r
insIds.add(insBuilder.build());\r
insPropBuilder.setInstruction(insIds);\r
propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());\r
properties.add(propBuilder.build());\r
+\r
+ /* -------------------------------------------------- */\r
+\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS);\r
insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder();\r
insIds = new ArrayList<>();\r
insBuilder = new InstructionBuilder();\r
- insBuilder.setType(WriteMetadata.class);\r
+ WriteMetadataCaseBuilder writeMetadataCaseBuilder = new WriteMetadataCaseBuilder();\r
+ WriteMetadataBuilder writeMetadataBuilder = new WriteMetadataBuilder();\r
+ writeMetadataCaseBuilder.setWriteMetadata(writeMetadataBuilder.build());\r
+ insBuilder.setInstructionChoice(writeMetadataCaseBuilder.build());\r
insIds.add(insBuilder.build());\r
+\r
insBuilder = new InstructionBuilder();\r
- insBuilder.setType(ApplyActions.class);\r
+ ApplyActionsCaseBuilder applyActionsCaseBuilder = new ApplyActionsCaseBuilder();\r
+ ApplyActionsBuilder applyActionsBuilder = new ApplyActionsBuilder();\r
+ applyActionsCaseBuilder.setApplyActions(applyActionsBuilder.build());\r
+ insBuilder.setInstructionChoice(applyActionsCaseBuilder.build());\r
insIds.add(insBuilder.build());\r
+\r
insBuilder = new InstructionBuilder();\r
- insBuilder.setType(Meter.class);\r
+ MeterCaseBuilder meterCaseBuilder = new MeterCaseBuilder();\r
+ MeterBuilder meterBuilder = new MeterBuilder();\r
+ meterCaseBuilder.setMeter(meterBuilder.build());\r
+ insBuilder.setInstructionChoice(meterCaseBuilder.build());\r
insIds.add(insBuilder.build());\r
+\r
+\r
insBuilder = new InstructionBuilder();\r
- insBuilder.setType(ClearActions.class);\r
+ ClearActionsCaseBuilder clearActionsCaseBuilder = new ClearActionsCaseBuilder();\r
+ insBuilder.setInstructionChoice(clearActionsCaseBuilder.build());\r
insIds.add(insBuilder.build());\r
+\r
+\r
insBuilder = new InstructionBuilder();\r
- insBuilder.setType(GotoTable.class);\r
+ GotoTableCaseBuilder gotoCaseBuilder2 = new GotoTableCaseBuilder();\r
+ GotoTableBuilder gotoTableBuilder2 = new GotoTableBuilder();\r
+ gotoCaseBuilder2.setGotoTable(gotoTableBuilder2.build());\r
+ insBuilder.setInstructionChoice(gotoCaseBuilder2.build());\r
insIds.add(insBuilder.build());\r
+\r
insPropBuilder.setInstruction(insIds);\r
propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());\r
properties.add(propBuilder.build());\r
featuresBuilder.setConfig(new TableConfig(false));\r
featuresBuilder.setMaxEntries(24L);\r
\r
+ /* -------------------------------------------------- */\r
\r
properties = new ArrayList<>();\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
properties.add(propBuilder.build()); //[0]\r
\r
+ /* -------------------------------------------------- */\r
+\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELD);\r
oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
properties.add(propBuilder.build());//[1]\r
\r
+ /* -------------------------------------------------- */\r
+\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELD);\r
oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
properties.add(propBuilder.build());//[2]\r
\r
+ /* -------------------------------------------------- */\r
+\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELDMISS);\r
oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
properties.add(propBuilder.build());//[3]\r
\r
+ /* -------------------------------------------------- */\r
+\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELDMISS);\r
oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
properties.add(propBuilder.build());//[4]\r
\r
+ /* -------------------------------------------------- */\r
+\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTWILDCARDS);\r
oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
propBuilder = new TableFeaturePropertiesBuilder();\r
propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYACTIONS);\r
ActionRelatedTableFeaturePropertyBuilder actBuilder = new ActionRelatedTableFeaturePropertyBuilder();\r
- List<Action> actions = new ArrayList<>();\r
+ actions = new ArrayList<>();\r
\r
- ActionBuilder actionBuilder = new ActionBuilder();\r
+ actionBuilder = new ActionBuilder();\r
actionBuilder.setActionChoice(createSetNwSrcAction());\r
actions.add(actionBuilder.build());\r
\r
ids = propType2.getTablesMiss().getTableIds();\r
Assert.assertEquals("Wrong next table-id size", 1, ids.size());\r
Assert.assertEquals("Wrong next-registry-id", 3, ids.get(0).intValue());\r
+\r
property = feature.getTableProperties().getTableFeatureProperties().get(2);\r
Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Instructions",\r
property.getTableFeaturePropType().getImplementedInterface().getName());\r
\r
matchEntries.add(matchEntryBuilder.build());\r
setFieldActionBuilder.setMatchEntry(matchEntries);\r
- setFieldCaseBuilder.setSetFieldAction(setFieldActionBuilder .build());\r
+ setFieldCaseBuilder.setSetFieldAction(setFieldActionBuilder.build());\r
return setFieldCaseBuilder.build();\r
}\r
\r