import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.openflowjava.nx.api.NiciraActionDeserializerKey;
import org.opendaylight.openflowjava.nx.api.NiciraActionSerializerKey;
+import org.opendaylight.openflowjava.nx.api.NiciraConstants;
import org.opendaylight.openflowjava.nx.api.NiciraExtensionCodecRegistrator;
+import org.opendaylight.openflowjava.nx.codec.action.DecNshTtlCodec;
+import org.opendaylight.openflowjava.nx.codec.action.DecapCodec;
+import org.opendaylight.openflowjava.nx.codec.action.EncapCodec;
import org.opendaylight.openflowjava.nx.codec.action.MultipathCodec;
+import org.opendaylight.openflowjava.nx.codec.action.OutputReg2Codec;
import org.opendaylight.openflowjava.nx.codec.action.OutputRegCodec;
import org.opendaylight.openflowjava.nx.codec.action.PopNshCodec;
import org.opendaylight.openflowjava.nx.codec.action.PushNshCodec;
+import org.opendaylight.openflowjava.nx.codec.action.RegLoad2Codec;
import org.opendaylight.openflowjava.nx.codec.action.RegLoadCodec;
import org.opendaylight.openflowjava.nx.codec.action.RegMoveCodec;
import org.opendaylight.openflowjava.nx.codec.action.ResubmitCodec;
import org.opendaylight.openflowjava.nx.codec.match.EthDstCodec;
import org.opendaylight.openflowjava.nx.codec.match.EthSrcCodec;
import org.opendaylight.openflowjava.nx.codec.match.EthTypeCodec;
+import org.opendaylight.openflowjava.nx.codec.match.NshFlagsCodec;
+import org.opendaylight.openflowjava.nx.codec.match.NshTtlCodec;
import org.opendaylight.openflowjava.nx.codec.match.Nshc1Codec;
import org.opendaylight.openflowjava.nx.codec.match.Nshc2Codec;
import org.opendaylight.openflowjava.nx.codec.match.Nshc3Codec;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ExperimenterClass;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm0Class;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Nxm1Class;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionConntrack;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionDecNshTtl;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionDecap;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionEncap;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionMultipath;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionOutputReg;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionOutputReg2;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionPopNsh;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionPushNsh;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionRegLoad;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionRegLoad2;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionRegMove;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.action.container.action.choice.ActionResubmit;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxArpSha;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxCtTpDst;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxCtTpSrc;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxCtZone;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxNshFlags;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxNshTtl;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxNshc1;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxNshc2;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxNshc3;
Mockito.verify(registrator).registerActionSerializer(
Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionRegLoad.class)),
Matchers.any(RegLoadCodec.class));
+ Mockito.verify(registrator).registerActionDeserializer(
+ Matchers.eq(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 33)),
+ Matchers.any(RegLoad2Codec.class));
+ Mockito.verify(registrator).registerActionSerializer(
+ Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionRegLoad2.class)),
+ Matchers.any(RegLoad2Codec.class));
Mockito.verify(registrator).registerActionDeserializer(
Matchers.eq(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 6)),
Matchers.any(RegMoveCodec.class));
Mockito.verify(registrator).registerActionSerializer(
Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionOutputReg.class)),
Matchers.any(OutputRegCodec.class));
+ Mockito.verify(registrator).registerActionDeserializer(
+ Matchers.eq(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 32)),
+ Matchers.any(OutputReg2Codec.class));
+ Mockito.verify(registrator).registerActionSerializer(
+ Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionOutputReg2.class)),
+ Matchers.any(OutputReg2Codec.class));
Mockito.verify(registrator).registerActionSerializer(
Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionResubmit.class)),
Matchers.any(ResubmitCodec.class));
Mockito.verify(registrator).registerActionSerializer(
Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionPopNsh.class)),
Matchers.any(PopNshCodec.class));
+ Mockito.verify(registrator).registerActionDeserializer(
+ Matchers.eq(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 46)),
+ Matchers.any(EncapCodec.class));
+ Mockito.verify(registrator).registerActionSerializer(
+ Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionEncap.class)),
+ Matchers.any(EncapCodec.class));
+ Mockito.verify(registrator).registerActionDeserializer(
+ Matchers.eq(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 47)),
+ Matchers.any(DecapCodec.class));
+ Mockito.verify(registrator).registerActionSerializer(
+ Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionDecap.class)),
+ Matchers.any(DecapCodec.class));
Mockito.verify(registrator).registerMatchEntrySerializer(Matchers
.eq(new MatchEntrySerializerKey<>(EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxReg0.class)),
Matchers.any(Reg0Codec.class));
Mockito.verify(registrator).registerMatchEntryDeserializer(Matchers
.eq(new MatchEntryDeserializerKey(EncodeConstants.OF13_VERSION_ID,
OxmMatchConstants.NXM_1_CLASS, 33)), Matchers.any(PktMarkCodec.class));
+ Mockito.verify(registrator).registerActionDeserializer(
+ Matchers.eq(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 48)),
+ Matchers.any(DecNshTtlCodec.class));
+ Mockito.verify(registrator).registerActionSerializer(
+ Matchers.eq(new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionDecNshTtl.class)),
+ Matchers.any(DecNshTtlCodec.class));
+
+ // experimenters
+ MatchEntrySerializerKey<ExperimenterClass, NxmNxNshFlags> nshFlagsSerializerKey = new MatchEntrySerializerKey<>(
+ EncodeConstants.OF13_VERSION_ID,
+ ExperimenterClass.class,
+ NxmNxNshFlags.class);
+ nshFlagsSerializerKey.setExperimenterId(NiciraConstants.NX_NSH_VENDOR_ID);
+ Mockito.verify(registrator).registerMatchEntrySerializer(
+ Matchers.eq(nshFlagsSerializerKey),
+ Matchers.any(NshFlagsCodec.class));
+ MatchEntryDeserializerKey nshFlagsDeserializerKey = new MatchEntryDeserializerKey(
+ EncodeConstants.OF13_VERSION_ID,
+ OxmMatchConstants.EXPERIMENTER_CLASS,
+ 1);
+ nshFlagsDeserializerKey.setExperimenterId(NiciraConstants.NX_NSH_VENDOR_ID);
+ Mockito.verify(registrator).registerMatchEntryDeserializer(
+ Matchers.eq(nshFlagsDeserializerKey),
+ Matchers.any(NshFlagsCodec.class));
+ MatchEntrySerializerKey<ExperimenterClass, NxmNxNshTtl> nshTtlSerializerKey = new MatchEntrySerializerKey<>(
+ EncodeConstants.OF13_VERSION_ID,
+ ExperimenterClass.class,
+ NxmNxNshTtl.class);
+ nshTtlSerializerKey.setExperimenterId(NiciraConstants.NX_NSH_VENDOR_ID);
+ Mockito.verify(registrator).registerMatchEntrySerializer(
+ Matchers.eq(nshTtlSerializerKey),
+ Matchers.any(NshTtlCodec.class));
+ MatchEntryDeserializerKey nshTtlDeserializerKey = new MatchEntryDeserializerKey(
+ EncodeConstants.OF13_VERSION_ID,
+ OxmMatchConstants.EXPERIMENTER_CLASS,
+ 10);
+ nshTtlDeserializerKey.setExperimenterId(NiciraConstants.NX_NSH_VENDOR_ID);
+ Mockito.verify(registrator).registerMatchEntryDeserializer(
+ Matchers.eq(nshTtlDeserializerKey),
+ Matchers.any(NshTtlCodec.class));
}
@Test
.unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 7));
Mockito.verify(registrator).unregisterActionSerializer(
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionRegLoad.class));
+ Mockito.verify(registrator)
+ .unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 33));
+ Mockito.verify(registrator).unregisterActionSerializer(
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionRegLoad2.class));
Mockito.verify(registrator)
.unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 6));
Mockito.verify(registrator).unregisterActionSerializer(
.unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 15));
Mockito.verify(registrator).unregisterActionSerializer(
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionOutputReg.class));
+ Mockito.verify(registrator)
+ .unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 32));
+ Mockito.verify(registrator).unregisterActionSerializer(
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionOutputReg2.class));
Mockito.verify(registrator)
.unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 1));
Mockito.verify(registrator)
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionPopNsh.class));
Mockito.verify(registrator).unregisterActionSerializer(
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionConntrack.class));
+ Mockito.verify(registrator)
+ .unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 46));
+ Mockito.verify(registrator).unregisterActionSerializer(
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionEncap.class));
+ Mockito.verify(registrator)
+ .unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 47));
+ Mockito.verify(registrator).unregisterActionSerializer(
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionDecap.class));
+ Mockito.verify(registrator)
+ .unregisterActionDeserializer(new NiciraActionDeserializerKey(EncodeConstants.OF13_VERSION_ID, 48));
+ Mockito.verify(registrator).unregisterActionSerializer(
+ new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionDecNshTtl.class));
Mockito.verify(registrator).unregisterMatchEntrySerializer(
new MatchEntrySerializerKey<>(EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxReg0.class));
Mockito.verify(registrator).unregisterMatchEntryDeserializer(
new MatchEntrySerializerKey<>(EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxPktMark.class));
Mockito.verify(registrator).unregisterMatchEntryDeserializer(
new MatchEntryDeserializerKey(EncodeConstants.OF13_VERSION_ID, OxmMatchConstants.NXM_1_CLASS, 33));
+
+ // experimenters
+ MatchEntrySerializerKey<ExperimenterClass, NxmNxNshFlags> nshFlagsSerializerKey = new MatchEntrySerializerKey<>(
+ EncodeConstants.OF13_VERSION_ID,
+ ExperimenterClass.class,
+ NxmNxNshFlags.class);
+ nshFlagsSerializerKey.setExperimenterId(NiciraConstants.NX_NSH_VENDOR_ID);
+ Mockito.verify(registrator).unregisterMatchEntrySerializer(nshFlagsSerializerKey);
+ MatchEntryDeserializerKey nshFlagsDeserializerKey = new MatchEntryDeserializerKey(
+ EncodeConstants.OF13_VERSION_ID,
+ OxmMatchConstants.EXPERIMENTER_CLASS,
+ 1);
+ nshFlagsDeserializerKey.setExperimenterId(NiciraConstants.NX_NSH_VENDOR_ID);
+ Mockito.verify(registrator).unregisterMatchEntryDeserializer(nshFlagsDeserializerKey);
+ MatchEntrySerializerKey<ExperimenterClass, NxmNxNshTtl> nshTtlSerializerKey = new MatchEntrySerializerKey<>(
+ EncodeConstants.OF13_VERSION_ID,
+ ExperimenterClass.class,
+ NxmNxNshTtl.class);
+ nshTtlSerializerKey.setExperimenterId(NiciraConstants.NX_NSH_VENDOR_ID);
+ Mockito.verify(registrator).unregisterMatchEntrySerializer(nshTtlSerializerKey);
+ MatchEntryDeserializerKey nshTtlDeserializerKey = new MatchEntryDeserializerKey(
+ EncodeConstants.OF13_VERSION_ID,
+ OxmMatchConstants.EXPERIMENTER_CLASS,
+ 10);
+ nshTtlDeserializerKey.setExperimenterId(NiciraConstants.NX_NSH_VENDOR_ID);
+ Mockito.verify(registrator).unregisterMatchEntryDeserializer(nshTtlDeserializerKey);
}
}