Search in sources :

Example 1 with InPhyPortCase

use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase in project openflowplugin by opendaylight.

the class OfToSalInPhyPortCase method process.

@Override
public Optional<MatchBuilder> process(@Nonnull InPhyPortCase source, MatchResponseConvertorData data, ConvertorExecutor convertorExecutor) {
    final MatchBuilder matchBuilder = data.getMatchBuilder();
    final OpenflowVersion ofVersion = OpenflowVersion.get(data.getVersion());
    final BigInteger datapathId = data.getDatapathId();
    final PortNumber portNumber = source.getInPhyPort().getPortNumber();
    if (portNumber != null) {
        matchBuilder.setInPhyPort(InventoryDataServiceUtil.nodeConnectorIdfromDatapathPortNo(datapathId, portNumber.getValue(), ofVersion));
    }
    return Optional.of(matchBuilder);
}
Also used : OpenflowVersion(org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion) BigInteger(java.math.BigInteger) PortNumber(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber) MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder)

Example 2 with InPhyPortCase

use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase in project openflowplugin by opendaylight.

the class MatchDeserializerTest method testMatch.

/**
 * Testing match deserialization.
 */
@Test
public void testMatch() {
    ByteBuf buffer = ByteBufUtils.hexStringToByteBuf("00 01 01 A8 " + "80 00 00 04 00 00 00 01 " + "80 00 02 04 00 00 00 02 " + "80 00 05 10 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 04 " + "80 00 07 0C 00 00 00 00 00 05 00 00 00 00 00 06 " + "80 00 09 0C 00 00 00 00 00 07 00 00 00 00 00 08 " + "80 00 0A 02 00 09 " + "80 00 0D 04 00 0A 00 0B " + "80 00 0E 01 0C " + "80 00 10 01 0D " + "80 00 12 01 0E " + "80 00 14 01 0F " + "80 00 17 08 0A 00 00 01 00 00 FF 00 " + "80 00 19 08 0A 00 00 02 00 00 00 FF " + "80 00 1A 02 00 03 " + "80 00 1C 02 00 04 " + "80 00 1E 02 00 05 " + "80 00 20 02 00 06 " + "80 00 22 02 00 07 " + "80 00 24 02 00 08 " + "80 00 26 01 05 " + "80 00 28 01 07 " + "80 00 2A 02 00 10 " + "80 00 2D 08 0A 00 00 09 00 00 FF 00 " + "80 00 2F 08 0A 00 00 0A 00 00 00 FF " + "80 00 31 0C 00 00 00 00 00 01 00 00 00 00 00 03 " + "80 00 33 0C 00 00 00 00 00 02 00 00 00 00 00 04 " + "80 00 35 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 " + "80 00 37 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 17 " + "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 " + "80 00 38 04 00 00 00 02 " + "80 00 3A 01 15 " + "80 00 3C 01 17 " + // ipv6ndtarget
    "80 00 3E 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 " + "80 00 40 06 00 05 00 00 00 01 " + "80 00 42 06 00 05 00 00 00 02 " + "80 00 44 04 00 00 02 03 " + "80 00 46 01 03 " + "80 00 48 01 01 " + "80 00 4B 06 00 00 02 00 00 01 " + "80 00 4D 10 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 FF " + "80 00 4F 04 00 00 03 04");
    Match match = matchDeserializer.deserialize(buffer);
    Assert.assertEquals("Wrong match type", OxmMatchType.class, match.getType());
    Assert.assertEquals("Wrong match entries size", 40, match.getMatchEntry().size());
    List<MatchEntry> entries = match.getMatchEntry();
    MatchEntry entry0 = entries.get(0);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry0.getOxmClass());
    Assert.assertEquals("Wrong entry field", InPort.class, entry0.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry0.isHasMask());
    Assert.assertEquals("Wrong entry value", 1, ((InPortCase) entry0.getMatchEntryValue()).getInPort().getPortNumber().getValue().intValue());
    MatchEntry entry1 = entries.get(1);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry1.getOxmClass());
    Assert.assertEquals("Wrong entry field", InPhyPort.class, entry1.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry1.isHasMask());
    Assert.assertEquals("Wrong entry value", 2, ((InPhyPortCase) entry1.getMatchEntryValue()).getInPhyPort().getPortNumber().getValue().intValue());
    MatchEntry entry2 = entries.get(2);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry2.getOxmClass());
    Assert.assertEquals("Wrong entry field", Metadata.class, entry2.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry2.isHasMask());
    Assert.assertArrayEquals("Wrong entry value", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 03"), ((MetadataCase) entry2.getMatchEntryValue()).getMetadata().getMetadata());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 04"), ((MetadataCase) entry2.getMatchEntryValue()).getMetadata().getMask());
    MatchEntry entry3 = entries.get(3);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry3.getOxmClass());
    Assert.assertEquals("Wrong entry field", EthDst.class, entry3.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry3.isHasMask());
    Assert.assertEquals("Wrong entry value", new MacAddress("00:00:00:00:00:05"), ((EthDstCase) entry3.getMatchEntryValue()).getEthDst().getMacAddress());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 00 00 06"), ((EthDstCase) entry3.getMatchEntryValue()).getEthDst().getMask());
    MatchEntry entry4 = entries.get(4);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry4.getOxmClass());
    Assert.assertEquals("Wrong entry field", EthSrc.class, entry4.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry4.isHasMask());
    Assert.assertEquals("Wrong entry value", new MacAddress("00:00:00:00:00:07"), ((EthSrcCase) entry4.getMatchEntryValue()).getEthSrc().getMacAddress());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 00 00 08"), ((EthSrcCase) entry4.getMatchEntryValue()).getEthSrc().getMask());
    MatchEntry entry5 = entries.get(5);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry5.getOxmClass());
    Assert.assertEquals("Wrong entry field", EthType.class, entry5.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry5.isHasMask());
    Assert.assertEquals("Wrong entry value", 9, ((EthTypeCase) entry5.getMatchEntryValue()).getEthType().getEthType().getValue().intValue());
    MatchEntry entry6 = entries.get(6);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry6.getOxmClass());
    Assert.assertEquals("Wrong entry field", VlanVid.class, entry6.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry6.isHasMask());
    Assert.assertEquals("Wrong entry value", 10, ((VlanVidCase) entry6.getMatchEntryValue()).getVlanVid().getVlanVid().intValue());
    Assert.assertEquals("Wrong entry value", false, ((VlanVidCase) entry6.getMatchEntryValue()).getVlanVid().isCfiBit());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 0B"), ((VlanVidCase) entry6.getMatchEntryValue()).getVlanVid().getMask());
    MatchEntry entry7 = entries.get(7);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry7.getOxmClass());
    Assert.assertEquals("Wrong entry field", VlanPcp.class, entry7.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry7.isHasMask());
    Assert.assertEquals("Wrong entry value", 12, ((VlanPcpCase) entry7.getMatchEntryValue()).getVlanPcp().getVlanPcp().intValue());
    MatchEntry entry8 = entries.get(8);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry8.getOxmClass());
    Assert.assertEquals("Wrong entry field", IpDscp.class, entry8.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry8.isHasMask());
    Assert.assertEquals("Wrong entry value", 13, ((IpDscpCase) entry8.getMatchEntryValue()).getIpDscp().getDscp().getValue().intValue());
    MatchEntry entry9 = entries.get(9);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry9.getOxmClass());
    Assert.assertEquals("Wrong entry field", IpEcn.class, entry9.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry9.isHasMask());
    Assert.assertEquals("Wrong entry value", 14, ((IpEcnCase) entry9.getMatchEntryValue()).getIpEcn().getEcn().intValue());
    MatchEntry entry10 = entries.get(10);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry10.getOxmClass());
    Assert.assertEquals("Wrong entry field", IpProto.class, entry10.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry10.isHasMask());
    Assert.assertEquals("Wrong entry value", 15, ((IpProtoCase) entry10.getMatchEntryValue()).getIpProto().getProtocolNumber().intValue());
    MatchEntry entry11 = entries.get(11);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry11.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv4Src.class, entry11.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry11.isHasMask());
    Assert.assertEquals("Wrong entry value", new Ipv4Address("10.0.0.1"), ((Ipv4SrcCase) entry11.getMatchEntryValue()).getIpv4Src().getIpv4Address());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 FF 00"), ((Ipv4SrcCase) entry11.getMatchEntryValue()).getIpv4Src().getMask());
    MatchEntry entry12 = entries.get(12);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry12.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv4Dst.class, entry12.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry12.isHasMask());
    Assert.assertEquals("Wrong entry value", new Ipv4Address("10.0.0.2"), ((Ipv4DstCase) entry12.getMatchEntryValue()).getIpv4Dst().getIpv4Address());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 FF"), ((Ipv4DstCase) entry12.getMatchEntryValue()).getIpv4Dst().getMask());
    MatchEntry entry13 = entries.get(13);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry13.getOxmClass());
    Assert.assertEquals("Wrong entry field", TcpSrc.class, entry13.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry13.isHasMask());
    Assert.assertEquals("Wrong entry value", 3, ((TcpSrcCase) entry13.getMatchEntryValue()).getTcpSrc().getPort().getValue().intValue());
    MatchEntry entry14 = entries.get(14);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry14.getOxmClass());
    Assert.assertEquals("Wrong entry field", TcpDst.class, entry14.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry14.isHasMask());
    Assert.assertEquals("Wrong entry value", 4, ((TcpDstCase) entry14.getMatchEntryValue()).getTcpDst().getPort().getValue().intValue());
    MatchEntry entry15 = entries.get(15);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry15.getOxmClass());
    Assert.assertEquals("Wrong entry field", UdpSrc.class, entry15.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry15.isHasMask());
    Assert.assertEquals("Wrong entry value", 5, ((UdpSrcCase) entry15.getMatchEntryValue()).getUdpSrc().getPort().getValue().intValue());
    MatchEntry entry16 = entries.get(16);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry16.getOxmClass());
    Assert.assertEquals("Wrong entry field", UdpDst.class, entry16.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry16.isHasMask());
    Assert.assertEquals("Wrong entry value", 6, ((UdpDstCase) entry16.getMatchEntryValue()).getUdpDst().getPort().getValue().intValue());
    MatchEntry entry17 = entries.get(17);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry17.getOxmClass());
    Assert.assertEquals("Wrong entry field", SctpSrc.class, entry17.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry17.isHasMask());
    Assert.assertEquals("Wrong entry value", 7, ((SctpSrcCase) entry17.getMatchEntryValue()).getSctpSrc().getPort().getValue().intValue());
    MatchEntry entry18 = entries.get(18);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry18.getOxmClass());
    Assert.assertEquals("Wrong entry field", SctpDst.class, entry18.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry18.isHasMask());
    Assert.assertEquals("Wrong entry value", 8, ((SctpDstCase) entry18.getMatchEntryValue()).getSctpDst().getPort().getValue().intValue());
    MatchEntry entry19 = entries.get(19);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry19.getOxmClass());
    Assert.assertEquals("Wrong entry field", Icmpv4Type.class, entry19.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry19.isHasMask());
    Assert.assertEquals("Wrong entry value", 5, ((Icmpv4TypeCase) entry19.getMatchEntryValue()).getIcmpv4Type().getIcmpv4Type().intValue());
    MatchEntry entry20 = entries.get(20);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry20.getOxmClass());
    Assert.assertEquals("Wrong entry field", Icmpv4Code.class, entry20.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry20.isHasMask());
    Assert.assertEquals("Wrong entry value", 7, ((Icmpv4CodeCase) entry20.getMatchEntryValue()).getIcmpv4Code().getIcmpv4Code().intValue());
    MatchEntry entry21 = entries.get(21);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry21.getOxmClass());
    Assert.assertEquals("Wrong entry field", ArpOp.class, entry21.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry21.isHasMask());
    Assert.assertEquals("Wrong entry value", 16, ((ArpOpCase) entry21.getMatchEntryValue()).getArpOp().getOpCode().intValue());
    MatchEntry entry22 = entries.get(22);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry22.getOxmClass());
    Assert.assertEquals("Wrong entry field", ArpSpa.class, entry22.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry22.isHasMask());
    Assert.assertEquals("Wrong entry value", new Ipv4Address("10.0.0.9"), ((ArpSpaCase) entry22.getMatchEntryValue()).getArpSpa().getIpv4Address());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 FF 00"), ((ArpSpaCase) entry22.getMatchEntryValue()).getArpSpa().getMask());
    MatchEntry entry23 = entries.get(23);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry23.getOxmClass());
    Assert.assertEquals("Wrong entry field", ArpTpa.class, entry23.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry23.isHasMask());
    Assert.assertEquals("Wrong entry value", new Ipv4Address("10.0.0.10"), ((ArpTpaCase) entry23.getMatchEntryValue()).getArpTpa().getIpv4Address());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 FF"), ((ArpTpaCase) entry23.getMatchEntryValue()).getArpTpa().getMask());
    MatchEntry entry24 = entries.get(24);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry24.getOxmClass());
    Assert.assertEquals("Wrong entry field", ArpSha.class, entry24.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry24.isHasMask());
    Assert.assertEquals("Wrong entry value", new MacAddress("00:00:00:00:00:01"), ((ArpShaCase) entry24.getMatchEntryValue()).getArpSha().getMacAddress());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 00 00 03"), ((ArpShaCase) entry24.getMatchEntryValue()).getArpSha().getMask());
    MatchEntry entry25 = entries.get(25);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry25.getOxmClass());
    Assert.assertEquals("Wrong entry field", ArpTha.class, entry25.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry25.isHasMask());
    Assert.assertEquals("Wrong entry value", new MacAddress("00:00:00:00:00:02"), ((ArpThaCase) entry25.getMatchEntryValue()).getArpTha().getMacAddress());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 00 00 04"), ((ArpThaCase) entry25.getMatchEntryValue()).getArpTha().getMask());
    MatchEntry entry26 = entries.get(26);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry26.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv6Src.class, entry26.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry26.isHasMask());
    Assert.assertEquals("Wrong entry value", new Ipv6Address("::15"), ((Ipv6SrcCase) entry26.getMatchEntryValue()).getIpv6Src().getIpv6Address());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16"), ((Ipv6SrcCase) entry26.getMatchEntryValue()).getIpv6Src().getMask());
    MatchEntry entry27 = entries.get(27);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry27.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv6Dst.class, entry27.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry27.isHasMask());
    Assert.assertEquals("Wrong entry value", new Ipv6Address("::17"), ((Ipv6DstCase) entry27.getMatchEntryValue()).getIpv6Dst().getIpv6Address());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18"), ((Ipv6DstCase) entry27.getMatchEntryValue()).getIpv6Dst().getMask());
    MatchEntry entry28 = entries.get(28);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry28.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv6Flabel.class, entry28.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry28.isHasMask());
    Assert.assertEquals("Wrong entry value", 2, ((Ipv6FlabelCase) entry28.getMatchEntryValue()).getIpv6Flabel().getIpv6Flabel().getValue().intValue());
    MatchEntry entry29 = entries.get(29);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry29.getOxmClass());
    Assert.assertEquals("Wrong entry field", Icmpv6Type.class, entry29.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry29.isHasMask());
    Assert.assertEquals("Wrong entry value", 21, ((Icmpv6TypeCase) entry29.getMatchEntryValue()).getIcmpv6Type().getIcmpv6Type().intValue());
    MatchEntry entry30 = entries.get(30);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry30.getOxmClass());
    Assert.assertEquals("Wrong entry field", Icmpv6Code.class, entry30.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry30.isHasMask());
    Assert.assertEquals("Wrong entry value", 23, ((Icmpv6CodeCase) entry30.getMatchEntryValue()).getIcmpv6Code().getIcmpv6Code().intValue());
    MatchEntry entry31 = entries.get(31);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry31.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv6NdTarget.class, entry31.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry31.isHasMask());
    Assert.assertEquals("Wrong entry value", new Ipv6Address("::20"), ((Ipv6NdTargetCase) entry31.getMatchEntryValue()).getIpv6NdTarget().getIpv6Address());
    MatchEntry entry32 = entries.get(32);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry32.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv6NdSll.class, entry32.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry32.isHasMask());
    Assert.assertEquals("Wrong entry value", new MacAddress("00:05:00:00:00:01"), ((Ipv6NdSllCase) entry32.getMatchEntryValue()).getIpv6NdSll().getMacAddress());
    MatchEntry entry33 = entries.get(33);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry33.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv6NdTll.class, entry33.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry33.isHasMask());
    Assert.assertEquals("Wrong entry value", new MacAddress("00:05:00:00:00:02"), ((Ipv6NdTllCase) entry33.getMatchEntryValue()).getIpv6NdTll().getMacAddress());
    MatchEntry entry34 = entries.get(34);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry34.getOxmClass());
    Assert.assertEquals("Wrong entry field", MplsLabel.class, entry34.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry34.isHasMask());
    Assert.assertEquals("Wrong entry value", 515, ((MplsLabelCase) entry34.getMatchEntryValue()).getMplsLabel().getMplsLabel().intValue());
    MatchEntry entry35 = entries.get(35);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry35.getOxmClass());
    Assert.assertEquals("Wrong entry field", MplsTc.class, entry35.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry35.isHasMask());
    Assert.assertEquals("Wrong entry value", 3, ((MplsTcCase) entry35.getMatchEntryValue()).getMplsTc().getTc().intValue());
    MatchEntry entry36 = entries.get(36);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry36.getOxmClass());
    Assert.assertEquals("Wrong entry field", MplsBos.class, entry36.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", false, entry36.isHasMask());
    Assert.assertEquals("Wrong entry value", true, ((MplsBosCase) entry36.getMatchEntryValue()).getMplsBos().isBos());
    MatchEntry entry37 = entries.get(37);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry37.getOxmClass());
    Assert.assertEquals("Wrong entry field", PbbIsid.class, entry37.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry37.isHasMask());
    Assert.assertEquals("Wrong entry value", 2, ((PbbIsidCase) entry37.getMatchEntryValue()).getPbbIsid().getIsid().intValue());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 01"), ((PbbIsidCase) entry37.getMatchEntryValue()).getPbbIsid().getMask());
    MatchEntry entry38 = entries.get(38);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry38.getOxmClass());
    Assert.assertEquals("Wrong entry field", TunnelId.class, entry38.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry38.isHasMask());
    Assert.assertArrayEquals("Wrong entry value", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 07"), ((TunnelIdCase) entry38.getMatchEntryValue()).getTunnelId().getTunnelId());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("00 00 00 00 00 00 00 FF"), ((TunnelIdCase) entry38.getMatchEntryValue()).getTunnelId().getMask());
    MatchEntry entry39 = entries.get(39);
    Assert.assertEquals("Wrong entry class", OpenflowBasicClass.class, entry39.getOxmClass());
    Assert.assertEquals("Wrong entry field", Ipv6Exthdr.class, entry39.getOxmMatchField());
    Assert.assertEquals("Wrong entry hasMask", true, entry39.isHasMask());
    Assert.assertEquals("Wrong entry value", new Ipv6ExthdrFlags(false, false, false, false, false, false, false, false, false), ((Ipv6ExthdrCase) entry39.getMatchEntryValue()).getIpv6Exthdr().getPseudoField());
    Assert.assertArrayEquals("Wrong entry mask", ByteBufUtils.hexStringToBytes("03 04"), ((Ipv6ExthdrCase) entry39.getMatchEntryValue()).getIpv6Exthdr().getMask());
    Assert.assertTrue("Unread data", buffer.readableBytes() == 0);
}
Also used : Ipv6FlabelCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6FlabelCase) Ipv6ExthdrCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6ExthdrCase) Ipv6ExthdrFlags(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Ipv6ExthdrFlags) MatchEntry(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry) Ipv6DstCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6DstCase) MplsBosCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsBosCase) ArpShaCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpShaCase) ByteBuf(io.netty.buffer.ByteBuf) Ipv4SrcCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv4SrcCase) Ipv6SrcCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6SrcCase) Match(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match) Ipv6NdTllCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdTllCase) EthTypeCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthTypeCase) Ipv4DstCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv4DstCase) Ipv6Address(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address) Ipv4Address(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address) InPortCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPortCase) ArpThaCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpThaCase) TunnelIdCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCase) MetadataCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MetadataCase) TcpSrcCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpSrcCase) ArpSpaCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpSpaCase) Ipv6NdTargetCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdTargetCase) Ipv6NdSllCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdSllCase) IpDscpCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpDscpCase) MacAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress) TcpDstCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpDstCase) UdpSrcCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.UdpSrcCase) EthDstCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthDstCase) EthSrcCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthSrcCase) SctpDstCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.SctpDstCase) ArpTpaCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpTpaCase) InPhyPortCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase) VlanVidCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.VlanVidCase) SctpSrcCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.SctpSrcCase) UdpDstCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.UdpDstCase) PbbIsidCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.PbbIsidCase) Test(org.junit.Test)

Example 3 with InPhyPortCase

use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase in project openflowplugin by opendaylight.

the class ActionsDeserializerTest method test.

/**
 * Testing actions deserialization.
 */
@Test
public void test() {
    ByteBuf message = BufferHelper.buildBuffer("00 00 00 10 00 00 00 01 00 02 00 00 00 00 00 00 " + "00 0B 00 08 00 00 00 00 " + "00 0C 00 08 00 00 00 00 " + "00 0F 00 08 03 00 00 00 " + "00 10 00 08 00 00 00 00 " + "00 11 00 08 00 04 00 00 " + "00 12 00 08 00 00 00 00 " + "00 13 00 08 00 05 00 00 " + "00 14 00 08 00 06 00 00 " + "00 15 00 08 00 00 00 07 " + "00 16 00 08 00 00 00 08 " + "00 17 00 08 09 00 00 00 " + "00 18 00 08 00 00 00 00 " + "00 19 00 10 80 00 02 04 00 00 00 0B 00 00 00 00 " + "00 1A 00 08 00 0A 00 00 " + "00 1B 00 08 00 00 00 00");
    // skip XID
    message.skipBytes(4);
    LOG.info("bytes: {}", message.readableBytes());
    CodeKeyMaker keyMaker = CodeKeyMakerFactory.createActionsKeyMaker(EncodeConstants.OF13_VERSION_ID);
    List<Action> actions = ListDeserializer.deserializeList(EncodeConstants.OF13_VERSION_ID, message.readableBytes(), message, keyMaker, registry);
    Assert.assertTrue("Wrong action type", actions.get(0).getActionChoice() instanceof OutputActionCase);
    Assert.assertEquals("Wrong action port", 1, ((OutputActionCase) actions.get(0).getActionChoice()).getOutputAction().getPort().getValue().intValue());
    Assert.assertEquals("Wrong action max-length", 2, ((OutputActionCase) actions.get(0).getActionChoice()).getOutputAction().getMaxLength().intValue());
    Assert.assertTrue("Wrong action type", actions.get(1).getActionChoice() instanceof CopyTtlOutCase);
    Assert.assertTrue("Wrong action type", actions.get(2).getActionChoice() instanceof CopyTtlInCase);
    Assert.assertTrue("Wrong action type", actions.get(3).getActionChoice() instanceof SetMplsTtlCase);
    Assert.assertEquals("Wrong action value", 3, ((SetMplsTtlCase) actions.get(3).getActionChoice()).getSetMplsTtlAction().getMplsTtl().shortValue());
    Assert.assertTrue("Wrong action type", actions.get(4).getActionChoice() instanceof DecMplsTtlCase);
    Assert.assertTrue("Wrong action type", actions.get(5).getActionChoice() instanceof PushVlanCase);
    Assert.assertEquals("Wrong action value", 4, ((PushVlanCase) actions.get(5).getActionChoice()).getPushVlanAction().getEthertype().getValue().intValue());
    Assert.assertTrue("Wrong action type", actions.get(6).getActionChoice() instanceof PopVlanCase);
    Assert.assertTrue("Wrong action type", actions.get(7).getActionChoice() instanceof PushMplsCase);
    Assert.assertEquals("Wrong action value", 5, ((PushMplsCase) actions.get(7).getActionChoice()).getPushMplsAction().getEthertype().getValue().intValue());
    Assert.assertTrue("Wrong action type", actions.get(8).getActionChoice() instanceof PopMplsCase);
    Assert.assertEquals("Wrong action value", 6, ((PopMplsCase) actions.get(8).getActionChoice()).getPopMplsAction().getEthertype().getValue().intValue());
    Assert.assertTrue("Wrong action type", actions.get(9).getActionChoice() instanceof SetQueueCase);
    Assert.assertEquals("Wrong action value", 7, ((SetQueueCase) actions.get(9).getActionChoice()).getSetQueueAction().getQueueId().intValue());
    Assert.assertTrue("Wrong action type", actions.get(10).getActionChoice() instanceof GroupCase);
    Assert.assertEquals("Wrong action value", 8, ((GroupCase) actions.get(10).getActionChoice()).getGroupAction().getGroupId().intValue());
    Assert.assertTrue("Wrong action type", actions.get(11).getActionChoice() instanceof SetNwTtlCase);
    Assert.assertEquals("Wrong action value", 9, ((SetNwTtlCase) actions.get(11).getActionChoice()).getSetNwTtlAction().getNwTtl().intValue());
    Assert.assertTrue("Wrong action type", actions.get(12).getActionChoice() instanceof DecNwTtlCase);
    Assert.assertTrue("Wrong action type", actions.get(13).getActionChoice() instanceof SetFieldCase);
    List<MatchEntry> entries = ((SetFieldCase) actions.get(13).getActionChoice()).getSetFieldAction().getMatchEntry();
    Assert.assertEquals("Wrong number of fields", 1, entries.size());
    Assert.assertEquals("Wrong match entry class", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow." + "oxm.rev150225.OpenflowBasicClass", entries.get(0).getOxmClass().getName());
    Assert.assertEquals("Wrong match entry field", "org.opendaylight.yang.gen.v1.urn.opendaylight.openflow." + "oxm.rev150225.InPhyPort", entries.get(0).getOxmMatchField().getName());
    Assert.assertEquals("Wrong match entry mask", false, entries.get(0).isHasMask());
    Assert.assertEquals("Wrong match entry value", 11, ((InPhyPortCase) entries.get(0).getMatchEntryValue()).getInPhyPort().getPortNumber().getValue().intValue());
    Assert.assertTrue("Wrong action type", actions.get(14).getActionChoice() instanceof PushPbbCase);
    Assert.assertEquals("Wrong action value", 10, ((PushPbbCase) actions.get(14).getActionChoice()).getPushPbbAction().getEthertype().getValue().intValue());
    Assert.assertTrue("Wrong action type", actions.get(15).getActionChoice() instanceof PopPbbCase);
    Assert.assertTrue("Unread data in message", message.readableBytes() == 0);
}
Also used : Action(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action) PushVlanCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushVlanCase) MatchEntry(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry) SetFieldCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetFieldCase) SetMplsTtlCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetMplsTtlCase) SetQueueCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetQueueCase) GroupCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.GroupCase) ByteBuf(io.netty.buffer.ByteBuf) PushPbbCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushPbbCase) DecNwTtlCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.DecNwTtlCase) InPhyPortCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase) PopPbbCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PopPbbCase) CopyTtlOutCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.CopyTtlOutCase) PushMplsCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PushMplsCase) OutputActionCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.OutputActionCase) DecMplsTtlCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.DecMplsTtlCase) PopVlanCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PopVlanCase) SetNwTtlCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.SetNwTtlCase) CopyTtlInCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.CopyTtlInCase) PopMplsCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.action.choice.PopMplsCase) Test(org.junit.Test)

Example 4 with InPhyPortCase

use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase in project openflowplugin by opendaylight.

the class MatchConvertorTest method testConversion.

@Test
public void testConversion() {
    MatchBuilder builder = new MatchBuilder();
    builder.setInPort(new NodeConnectorId("openflow:42:1"));
    builder.setInPhyPort(new NodeConnectorId("openflow:42:2"));
    MetadataBuilder metadataBuilder = new MetadataBuilder();
    metadataBuilder.setMetadata(new BigInteger("3"));
    builder.setMetadata(metadataBuilder.build());
    EthernetMatchBuilder ethernetBuilder = new EthernetMatchBuilder();
    EthernetTypeBuilder ethTypeBuilder = new EthernetTypeBuilder();
    ethTypeBuilder.setType(new EtherType(4L));
    ethernetBuilder.setEthernetType(ethTypeBuilder.build());
    EthernetSourceBuilder ethSrcBuilder = new EthernetSourceBuilder();
    ethSrcBuilder.setAddress(new MacAddress("00:00:00:00:00:05"));
    ethernetBuilder.setEthernetSource(ethSrcBuilder.build());
    EthernetDestinationBuilder ethDstBuilder = new EthernetDestinationBuilder();
    ethDstBuilder.setAddress(new MacAddress("00:00:00:00:00:06"));
    ethernetBuilder.setEthernetDestination(ethDstBuilder.build());
    builder.setEthernetMatch(ethernetBuilder.build());
    VlanMatchBuilder vlanBuilder = new VlanMatchBuilder();
    VlanIdBuilder vlanIdBuilder = new VlanIdBuilder();
    vlanIdBuilder.setVlanId(new VlanId(7));
    vlanIdBuilder.setVlanIdPresent(true);
    vlanBuilder.setVlanId(vlanIdBuilder.build());
    vlanBuilder.setVlanPcp(new VlanPcp((short) 7));
    builder.setVlanMatch(vlanBuilder.build());
    IpMatchBuilder ipMatchBuilder = new IpMatchBuilder();
    ipMatchBuilder.setIpDscp(new Dscp((short) 8));
    ipMatchBuilder.setIpEcn((short) 9);
    ipMatchBuilder.setIpProtocol((short) 10);
    builder.setIpMatch(ipMatchBuilder.build());
    TcpMatchBuilder tcpMatchBuilder = new TcpMatchBuilder();
    tcpMatchBuilder.setTcpSourcePort(new PortNumber(11));
    tcpMatchBuilder.setTcpDestinationPort(new PortNumber(12));
    builder.setLayer4Match(tcpMatchBuilder.build());
    Icmpv4MatchBuilder icmpv4Builder = new Icmpv4MatchBuilder();
    icmpv4Builder.setIcmpv4Type((short) 13);
    icmpv4Builder.setIcmpv4Code((short) 14);
    builder.setIcmpv4Match(icmpv4Builder.build());
    Icmpv6MatchBuilder icmpv6Builder = new Icmpv6MatchBuilder();
    icmpv6Builder.setIcmpv6Type((short) 15);
    icmpv6Builder.setIcmpv6Code((short) 16);
    builder.setIcmpv6Match(icmpv6Builder.build());
    ProtocolMatchFieldsBuilder protoBuilder = new ProtocolMatchFieldsBuilder();
    protoBuilder.setMplsLabel(17L);
    protoBuilder.setMplsTc((short) 18);
    protoBuilder.setMplsBos((short) 19);
    PbbBuilder pbbBuilder = new PbbBuilder();
    pbbBuilder.setPbbIsid(20L);
    protoBuilder.setPbb(pbbBuilder.build());
    builder.setProtocolMatchFields(protoBuilder.build());
    TunnelBuilder tunnelBuilder = new TunnelBuilder();
    tunnelBuilder.setTunnelId(new BigInteger("21"));
    builder.setTunnel(tunnelBuilder.build());
    Ipv4MatchBuilder ipv4MatchBuilder = new Ipv4MatchBuilder();
    ipv4MatchBuilder.setIpv4Source(new Ipv4Prefix("10.0.0.1/32"));
    ipv4MatchBuilder.setIpv4Destination(new Ipv4Prefix("10.0.0.2/32"));
    builder.setLayer3Match(ipv4MatchBuilder.build());
    Match match = builder.build();
    Optional<List<MatchEntry>> entriesOptional = converterManager.convert(match, new VersionConvertorData(OFConstants.OFP_VERSION_1_3));
    List<MatchEntry> entries = entriesOptional.get();
    Assert.assertEquals("Wrong entries size", 24, entries.size());
    MatchEntry entry = entries.get(0);
    checkEntryHeader(entry, InPort.class, false);
    Assert.assertEquals("Wrong in port", 1, ((InPortCase) entry.getMatchEntryValue()).getInPort().getPortNumber().getValue().intValue());
    entry = entries.get(1);
    checkEntryHeader(entry, InPhyPort.class, false);
    Assert.assertEquals("Wrong in phy port", 2, ((InPhyPortCase) entry.getMatchEntryValue()).getInPhyPort().getPortNumber().getValue().intValue());
    entry = entries.get(2);
    checkEntryHeader(entry, Metadata.class, false);
    Assert.assertArrayEquals("Wrong metadata", new byte[] { 0, 0, 0, 0, 0, 0, 0, 3 }, ((MetadataCase) entry.getMatchEntryValue()).getMetadata().getMetadata());
    entry = entries.get(3);
    checkEntryHeader(entry, EthDst.class, false);
    Assert.assertEquals("Wrong eth dst", new MacAddress("00:00:00:00:00:06"), ((EthDstCase) entry.getMatchEntryValue()).getEthDst().getMacAddress());
    entry = entries.get(4);
    checkEntryHeader(entry, EthSrc.class, false);
    Assert.assertEquals("Wrong eth src", new MacAddress("00:00:00:00:00:05"), ((EthSrcCase) entry.getMatchEntryValue()).getEthSrc().getMacAddress());
    entry = entries.get(5);
    checkEntryHeader(entry, EthType.class, false);
    Assert.assertEquals("Wrong eth type", 4, ((EthTypeCase) entry.getMatchEntryValue()).getEthType().getEthType().getValue().intValue());
    entry = entries.get(6);
    checkEntryHeader(entry, VlanVid.class, false);
    Assert.assertEquals("Wrong vlan id", 7, ((VlanVidCase) entry.getMatchEntryValue()).getVlanVid().getVlanVid().intValue());
    Assert.assertEquals("Wrong cfi bit", true, ((VlanVidCase) entry.getMatchEntryValue()).getVlanVid().isCfiBit());
    entry = entries.get(7);
    checkEntryHeader(entry, org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanPcp.class, false);
    Assert.assertEquals("Wrong vlan pcp", 7, ((VlanPcpCase) entry.getMatchEntryValue()).getVlanPcp().getVlanPcp().intValue());
    entry = entries.get(8);
    checkEntryHeader(entry, IpDscp.class, false);
    Assert.assertEquals("Wrong ip dscp", 8, ((IpDscpCase) entry.getMatchEntryValue()).getIpDscp().getDscp().getValue().intValue());
    entry = entries.get(9);
    checkEntryHeader(entry, IpEcn.class, false);
    Assert.assertEquals("Wrong ip ecn", 9, ((IpEcnCase) entry.getMatchEntryValue()).getIpEcn().getEcn().intValue());
    entry = entries.get(10);
    checkEntryHeader(entry, IpProto.class, false);
    Assert.assertEquals("Wrong ip proto", 10, ((IpProtoCase) entry.getMatchEntryValue()).getIpProto().getProtocolNumber().intValue());
    entry = entries.get(11);
    checkEntryHeader(entry, TcpSrc.class, false);
    Assert.assertEquals("Wrong tcp src", 11, ((TcpSrcCase) entry.getMatchEntryValue()).getTcpSrc().getPort().getValue().intValue());
    entry = entries.get(12);
    checkEntryHeader(entry, TcpDst.class, false);
    Assert.assertEquals("Wrong tcp dst", 12, ((TcpDstCase) entry.getMatchEntryValue()).getTcpDst().getPort().getValue().intValue());
    entry = entries.get(13);
    checkEntryHeader(entry, Icmpv4Type.class, false);
    Assert.assertEquals("Wrong icmpv4 type", 13, ((Icmpv4TypeCase) entry.getMatchEntryValue()).getIcmpv4Type().getIcmpv4Type().intValue());
    entry = entries.get(14);
    checkEntryHeader(entry, Icmpv4Code.class, false);
    Assert.assertEquals("Wrong icmpv4 code", 14, ((Icmpv4CodeCase) entry.getMatchEntryValue()).getIcmpv4Code().getIcmpv4Code().intValue());
    entry = entries.get(15);
    checkEntryHeader(entry, Icmpv6Type.class, false);
    Assert.assertEquals("Wrong icmpv6 type", 15, ((Icmpv6TypeCase) entry.getMatchEntryValue()).getIcmpv6Type().getIcmpv6Type().intValue());
    entry = entries.get(16);
    checkEntryHeader(entry, Icmpv6Code.class, false);
    Assert.assertEquals("Wrong icmpv6 code", 16, ((Icmpv6CodeCase) entry.getMatchEntryValue()).getIcmpv6Code().getIcmpv6Code().intValue());
    entry = entries.get(17);
    checkEntryHeader(entry, Ipv4Src.class, false);
    Assert.assertEquals("Wrong ipv4 src", "10.0.0.1", ((Ipv4SrcCase) entry.getMatchEntryValue()).getIpv4Src().getIpv4Address().getValue());
    entry = entries.get(18);
    checkEntryHeader(entry, Ipv4Dst.class, false);
    Assert.assertEquals("Wrong ipv4 dst", "10.0.0.2", ((Ipv4DstCase) entry.getMatchEntryValue()).getIpv4Dst().getIpv4Address().getValue());
    entry = entries.get(19);
    checkEntryHeader(entry, MplsLabel.class, false);
    Assert.assertEquals("Wrong mpls label", 17, ((MplsLabelCase) entry.getMatchEntryValue()).getMplsLabel().getMplsLabel().intValue());
    entry = entries.get(20);
    checkEntryHeader(entry, MplsBos.class, false);
    Assert.assertEquals("Wrong mpls bos", true, ((MplsBosCase) entry.getMatchEntryValue()).getMplsBos().isBos());
    entry = entries.get(21);
    checkEntryHeader(entry, MplsTc.class, false);
    Assert.assertEquals("Wrong mpls tc", 18, ((MplsTcCase) entry.getMatchEntryValue()).getMplsTc().getTc().intValue());
    entry = entries.get(22);
    checkEntryHeader(entry, PbbIsid.class, false);
    Assert.assertEquals("Wrong pbb isid", 20, ((PbbIsidCase) entry.getMatchEntryValue()).getPbbIsid().getIsid().intValue());
    entry = entries.get(23);
    checkEntryHeader(entry, TunnelId.class, false);
    Assert.assertArrayEquals("Wrong tunnel id", new byte[] { 0, 0, 0, 0, 0, 0, 0, 21 }, ((TunnelIdCase) entry.getMatchEntryValue()).getTunnelId().getTunnelId());
}
Also used : TunnelIpv4MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.TunnelIpv4MatchBuilder) Ipv4MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchBuilder) MatchEntry(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry) EthernetTypeBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetTypeBuilder) MplsBosCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsBosCase) NodeConnectorId(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId) EtherType(org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.EtherType) VlanMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder) TunnelBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.TunnelBuilder) Match(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match) TcpMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder) Icmpv4MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Icmpv4MatchBuilder) EthTypeCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthTypeCase) List(java.util.List) VlanIdBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.vlan.match.fields.VlanIdBuilder) Icmpv6MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Icmpv6MatchBuilder) Ipv4Prefix(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix) VlanId(org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId) IpMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder) InPortCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPortCase) TunnelIdCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCase) MetadataBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.MetadataBuilder) ProtocolMatchFieldsBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.ProtocolMatchFieldsBuilder) MetadataCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MetadataCase) TcpSrcCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpSrcCase) IpDscpCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpDscpCase) MacAddress(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress) EthernetMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatchBuilder) TcpDstCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpDstCase) EthernetDestinationBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetDestinationBuilder) VersionConvertorData(org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData) EthDstCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthDstCase) EthSrcCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthSrcCase) EthernetSourceBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.ethernet.match.fields.EthernetSourceBuilder) VlanPcp(org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanPcp) BigInteger(java.math.BigInteger) InPhyPortCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase) VlanVidCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.VlanVidCase) Dscp(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp) IpDscp(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpDscp) PortNumber(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber) ArpMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatchBuilder) Icmpv4MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Icmpv4MatchBuilder) TunnelIpv4MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.TunnelIpv4MatchBuilder) VlanMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.VlanMatchBuilder) EthernetMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.EthernetMatchBuilder) Ipv4MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchBuilder) Ipv6MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv6MatchBuilder) IpMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.IpMatchBuilder) Icmpv6MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Icmpv6MatchBuilder) SctpMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.SctpMatchBuilder) UdpMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatchBuilder) TcpMatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatchBuilder) MatchBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder) PbbBuilder(org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.protocol.match.fields.PbbBuilder) Test(org.junit.Test)

Example 5 with InPhyPortCase

use of org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase in project openflowplugin by opendaylight.

the class OxmInPhyPortSerializer method serialize.

@Override
public void serialize(MatchEntry entry, ByteBuf outBuffer) {
    super.serialize(entry, outBuffer);
    InPhyPortCase entryValue = (InPhyPortCase) entry.getMatchEntryValue();
    outBuffer.writeInt(entryValue.getInPhyPort().getPortNumber().getValue().intValue());
}
Also used : InPhyPortCase(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase)

Aggregations

InPhyPortCase (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCase)4 Test (org.junit.Test)3 MatchEntry (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry)3 ByteBuf (io.netty.buffer.ByteBuf)2 BigInteger (java.math.BigInteger)2 MacAddress (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress)2 MatchBuilder (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder)2 EthDstCase (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthDstCase)2 EthSrcCase (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthSrcCase)2 EthTypeCase (org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthTypeCase)2 List (java.util.List)1 OpenflowVersion (org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion)1 VersionConvertorData (org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionConvertorData)1 Dscp (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp)1 Ipv4Address (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address)1 Ipv4Prefix (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix)1 Ipv6Address (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address)1 PortNumber (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber)1 Match (org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match)1 NodeConnectorId (org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId)1