Example usage for io.netty.buffer ByteBuf readUnsignedByte

List of usage examples for io.netty.buffer ByteBuf readUnsignedByte

Introduction

In this page you can find the example usage for io.netty.buffer ByteBuf readUnsignedByte.

Prototype

public abstract short readUnsignedByte();

Source Link

Document

Gets an unsigned byte at the current readerIndex and increases the readerIndex by 1 in this buffer.

Usage

From source file:org.opendaylight.openflowjava.protocol.impl.util.OF13MatchSerializerTest2.java

License:Open Source License

/**
 * Testing serialization of match//  w  ww . j  a  v a 2  s  .  c  om
 */
@Test
public void test() {
    MatchBuilder builder = new MatchBuilder();
    builder.setType(OxmMatchType.class);
    List<MatchEntries> entries = new ArrayList<>();
    MatchEntriesBuilder entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(InPort.class);
    entryBuilder.setHasMask(false);
    PortNumberMatchEntryBuilder portNumberBuilder = new PortNumberMatchEntryBuilder();
    portNumberBuilder.setPortNumber(new PortNumber(42L));
    entryBuilder.addAugmentation(PortNumberMatchEntry.class, portNumberBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(InPhyPort.class);
    entryBuilder.setHasMask(false);
    portNumberBuilder = new PortNumberMatchEntryBuilder();
    portNumberBuilder.setPortNumber(new PortNumber(43L));
    entryBuilder.addAugmentation(PortNumberMatchEntry.class, portNumberBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Metadata.class);
    entryBuilder.setHasMask(true);
    MetadataMatchEntryBuilder metadataBuilder = new MetadataMatchEntryBuilder();
    metadataBuilder.setMetadata(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 });
    entryBuilder.addAugmentation(MetadataMatchEntry.class, metadataBuilder.build());
    MaskMatchEntryBuilder maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 0, 0, 0, 0, 2 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(EthDst.class);
    entryBuilder.setHasMask(true);
    MacAddressMatchEntryBuilder macBuilder = new MacAddressMatchEntryBuilder();
    macBuilder.setMacAddress(new MacAddress("01:00:03:00:00:06"));
    entryBuilder.addAugmentation(MacAddressMatchEntry.class, macBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 0, 0, 5 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(EthSrc.class);
    entryBuilder.setHasMask(true);
    macBuilder = new MacAddressMatchEntryBuilder();
    macBuilder.setMacAddress(new MacAddress("04:00:02:00:00:08"));
    entryBuilder.addAugmentation(MacAddressMatchEntry.class, macBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 0, 0, 2 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(EthType.class);
    entryBuilder.setHasMask(false);
    EthTypeMatchEntryBuilder ethBuilder = new EthTypeMatchEntryBuilder();
    ethBuilder.setEthType(new EtherType(46));
    entryBuilder.addAugmentation(EthTypeMatchEntry.class, ethBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(VlanVid.class);
    entryBuilder.setHasMask(true);
    VlanVidMatchEntryBuilder vidBuilder = new VlanVidMatchEntryBuilder();
    vidBuilder.setCfiBit(true);
    vidBuilder.setVlanVid(45);
    entryBuilder.addAugmentation(VlanVidMatchEntry.class, vidBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 9 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(VlanPcp.class);
    entryBuilder.setHasMask(false);
    VlanPcpMatchEntryBuilder pcpBuilder = new VlanPcpMatchEntryBuilder();
    pcpBuilder.setVlanPcp((short) 14);
    entryBuilder.addAugmentation(VlanPcpMatchEntry.class, pcpBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(IpDscp.class);
    entryBuilder.setHasMask(false);
    DscpMatchEntryBuilder dscpBuilder = new DscpMatchEntryBuilder();
    dscpBuilder.setDscp(new Dscp((short) 48));
    entryBuilder.addAugmentation(DscpMatchEntry.class, dscpBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(IpEcn.class);
    entryBuilder.setHasMask(false);
    EcnMatchEntryBuilder ecnBuilder = new EcnMatchEntryBuilder();
    ecnBuilder.setEcn((short) 49);
    entryBuilder.addAugmentation(EcnMatchEntry.class, ecnBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(IpProto.class);
    entryBuilder.setHasMask(false);
    ProtocolNumberMatchEntryBuilder protoBuilder = new ProtocolNumberMatchEntryBuilder();
    protoBuilder.setProtocolNumber((short) 50);
    entryBuilder.addAugmentation(ProtocolNumberMatchEntry.class, protoBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv4Src.class);
    entryBuilder.setHasMask(true);
    Ipv4AddressMatchEntryBuilder ipv4Builder = new Ipv4AddressMatchEntryBuilder();
    ipv4Builder.setIpv4Address(new Ipv4Address("10.0.0.1"));
    entryBuilder.addAugmentation(Ipv4AddressMatchEntry.class, ipv4Builder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 14 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv4Dst.class);
    entryBuilder.setHasMask(true);
    ipv4Builder = new Ipv4AddressMatchEntryBuilder();
    ipv4Builder.setIpv4Address(new Ipv4Address("10.0.0.2"));
    entryBuilder.addAugmentation(Ipv4AddressMatchEntry.class, ipv4Builder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 15 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(TcpSrc.class);
    entryBuilder.setHasMask(false);
    PortMatchEntryBuilder portBuilder = new PortMatchEntryBuilder();
    portBuilder.setPort(
            new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
                    6653));
    entryBuilder.addAugmentation(PortMatchEntry.class, portBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(TcpDst.class);
    entryBuilder.setHasMask(false);
    portBuilder = new PortMatchEntryBuilder();
    portBuilder.setPort(
            new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
                    6654));
    entryBuilder.addAugmentation(PortMatchEntry.class, portBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(UdpSrc.class);
    entryBuilder.setHasMask(false);
    portBuilder = new PortMatchEntryBuilder();
    portBuilder.setPort(
            new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
                    6655));
    entryBuilder.addAugmentation(PortMatchEntry.class, portBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(UdpDst.class);
    entryBuilder.setHasMask(false);
    portBuilder = new PortMatchEntryBuilder();
    portBuilder.setPort(
            new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
                    6656));
    entryBuilder.addAugmentation(PortMatchEntry.class, portBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(SctpSrc.class);
    entryBuilder.setHasMask(false);
    portBuilder = new PortMatchEntryBuilder();
    portBuilder.setPort(
            new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
                    6657));
    entryBuilder.addAugmentation(PortMatchEntry.class, portBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(SctpDst.class);
    entryBuilder.setHasMask(false);
    portBuilder = new PortMatchEntryBuilder();
    portBuilder.setPort(
            new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber(
                    6658));
    entryBuilder.addAugmentation(PortMatchEntry.class, portBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Icmpv4Type.class);
    entryBuilder.setHasMask(false);
    Icmpv4TypeMatchEntryBuilder icmpv4typeBuilder = new Icmpv4TypeMatchEntryBuilder();
    icmpv4typeBuilder.setIcmpv4Type((short) 51);
    entryBuilder.addAugmentation(Icmpv4TypeMatchEntry.class, icmpv4typeBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Icmpv4Code.class);
    entryBuilder.setHasMask(false);
    Icmpv4CodeMatchEntryBuilder icmpv4CodeBuilder = new Icmpv4CodeMatchEntryBuilder();
    icmpv4CodeBuilder.setIcmpv4Code((short) 52);
    entryBuilder.addAugmentation(Icmpv4CodeMatchEntry.class, icmpv4CodeBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(ArpOp.class);
    entryBuilder.setHasMask(false);
    OpCodeMatchEntryBuilder opBuilder = new OpCodeMatchEntryBuilder();
    opBuilder.setOpCode(53);
    entryBuilder.addAugmentation(OpCodeMatchEntry.class, opBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(ArpSpa.class);
    entryBuilder.setHasMask(true);
    ipv4Builder = new Ipv4AddressMatchEntryBuilder();
    ipv4Builder.setIpv4Address(new Ipv4Address("10.0.0.4"));
    entryBuilder.addAugmentation(Ipv4AddressMatchEntry.class, ipv4Builder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 16 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(ArpTpa.class);
    entryBuilder.setHasMask(true);
    ipv4Builder = new Ipv4AddressMatchEntryBuilder();
    ipv4Builder.setIpv4Address(new Ipv4Address("10.0.0.5"));
    entryBuilder.addAugmentation(Ipv4AddressMatchEntry.class, ipv4Builder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 17 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(ArpSha.class);
    entryBuilder.setHasMask(true);
    macBuilder = new MacAddressMatchEntryBuilder();
    macBuilder.setMacAddress(new MacAddress("00:01:02:03:04:05"));
    entryBuilder.addAugmentation(MacAddressMatchEntry.class, macBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 4, 0, 0, 6 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(ArpTha.class);
    entryBuilder.setHasMask(true);
    macBuilder = new MacAddressMatchEntryBuilder();
    macBuilder.setMacAddress(new MacAddress("00:00:00:00:00:03"));
    entryBuilder.addAugmentation(MacAddressMatchEntry.class, macBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 6, 0, 0, 4 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv6Src.class);
    entryBuilder.setHasMask(true);
    Ipv6AddressMatchEntryBuilder ipv6Builder = new Ipv6AddressMatchEntryBuilder();
    ipv6Builder.setIpv6Address(new Ipv6Address("0:0:0:0:0:0:0:1"));
    entryBuilder.addAugmentation(Ipv6AddressMatchEntry.class, ipv6Builder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv6Dst.class);
    entryBuilder.setHasMask(true);
    ipv6Builder = new Ipv6AddressMatchEntryBuilder();
    ipv6Builder.setIpv6Address(new Ipv6Address("0:0:1:0:1:0:0:1"));
    entryBuilder.addAugmentation(Ipv6AddressMatchEntry.class, ipv6Builder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv6Flabel.class);
    entryBuilder.setHasMask(true);
    Ipv6FlabelMatchEntryBuilder flabelBuilder = new Ipv6FlabelMatchEntryBuilder();
    flabelBuilder.setIpv6Flabel(new Ipv6FlowLabel(58L));
    entryBuilder.addAugmentation(Ipv6FlabelMatchEntry.class, flabelBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 1, 0, 2 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Icmpv6Type.class);
    entryBuilder.setHasMask(false);
    Icmpv6TypeMatchEntryBuilder icmpv6TypeBuilder = new Icmpv6TypeMatchEntryBuilder();
    icmpv6TypeBuilder.setIcmpv6Type((short) 59);
    entryBuilder.addAugmentation(Icmpv6TypeMatchEntry.class, icmpv6TypeBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Icmpv6Code.class);
    entryBuilder.setHasMask(false);
    Icmpv6CodeMatchEntryBuilder icmpv6CodeBuilder = new Icmpv6CodeMatchEntryBuilder();
    icmpv6CodeBuilder.setIcmpv6Code((short) 60);
    entryBuilder.addAugmentation(Icmpv6CodeMatchEntry.class, icmpv6CodeBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv6NdTarget.class);
    entryBuilder.setHasMask(false);
    ipv6Builder = new Ipv6AddressMatchEntryBuilder();
    ipv6Builder.setIpv6Address(new Ipv6Address("F:0:0::0:0:0:1"));
    entryBuilder.addAugmentation(Ipv6AddressMatchEntry.class, ipv6Builder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv6NdSll.class);
    entryBuilder.setHasMask(false);
    macBuilder = new MacAddressMatchEntryBuilder();
    macBuilder.setMacAddress(new MacAddress("01:00:03:00:00:06"));
    entryBuilder.addAugmentation(MacAddressMatchEntry.class, macBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv6NdTll.class);
    entryBuilder.setHasMask(false);
    macBuilder = new MacAddressMatchEntryBuilder();
    macBuilder.setMacAddress(new MacAddress("04:00:02:00:00:08"));
    entryBuilder.addAugmentation(MacAddressMatchEntry.class, macBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(MplsLabel.class);
    entryBuilder.setHasMask(false);
    MplsLabelMatchEntryBuilder labelBuilder = new MplsLabelMatchEntryBuilder();
    labelBuilder.setMplsLabel(61L);
    entryBuilder.addAugmentation(MplsLabelMatchEntry.class, labelBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(MplsTc.class);
    entryBuilder.setHasMask(false);
    TcMatchEntryBuilder tcBuilder = new TcMatchEntryBuilder();
    tcBuilder.setTc((short) 62);
    entryBuilder.addAugmentation(TcMatchEntry.class, tcBuilder.build());
    entries.add(entryBuilder.build());
    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(MplsBos.class);
    entryBuilder.setHasMask(false);
    BosMatchEntryBuilder bosBuilder = new BosMatchEntryBuilder();
    bosBuilder.setBos(true);
    entryBuilder.addAugmentation(BosMatchEntry.class, bosBuilder.build());
    entries.add(entryBuilder.build());

    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(PbbIsid.class);
    entryBuilder.setHasMask(true);
    IsidMatchEntryBuilder isidBuilder = new IsidMatchEntryBuilder();
    isidBuilder.setIsid(64L);
    entryBuilder.addAugmentation(IsidMatchEntry.class, isidBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 1, 2 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());

    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(TunnelId.class);
    entryBuilder.setHasMask(true);
    metadataBuilder = new MetadataMatchEntryBuilder();
    metadataBuilder.setMetadata(new byte[] { 0, 0, 0, 0, 0, 0, 0, 1 });
    entryBuilder.addAugmentation(MetadataMatchEntry.class, metadataBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 0, 0, 0, 0, 0, 0, 2 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());

    entryBuilder = new MatchEntriesBuilder();
    entryBuilder.setOxmClass(OpenflowBasicClass.class);
    entryBuilder.setOxmMatchField(Ipv6Exthdr.class);
    entryBuilder.setHasMask(true);
    PseudoFieldMatchEntryBuilder pseudoBuilder = new PseudoFieldMatchEntryBuilder();
    pseudoBuilder.setPseudoField(new Ipv6ExthdrFlags(true, false, true, false, true, false, true, false, true));
    entryBuilder.addAugmentation(PseudoFieldMatchEntry.class, pseudoBuilder.build());
    maskBuilder = new MaskMatchEntryBuilder();
    maskBuilder.setMask(new byte[] { 0, 2 });
    entryBuilder.addAugmentation(MaskMatchEntry.class, maskBuilder.build());
    entries.add(entryBuilder.build());

    builder.setMatchEntries(entries);
    Match match = builder.build();

    ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer();
    matchSerializer.serialize(match, out);

    Assert.assertEquals("Wrong match type", 1, out.readUnsignedShort());
    Assert.assertEquals("Wrong match length", 428, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 0, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 4, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 42, out.readUnsignedInt());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 4, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 43, out.readUnsignedInt());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 5, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 16, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 1L, out.readLong());
    Assert.assertEquals("Wrong match entry mask", 2L, out.readLong());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 7, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 12, out.readUnsignedByte());
    byte[] array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 1, 0, 3, 0, 0, 6 }, array);
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 0, 0, 0, 0, 5 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 9, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 12, out.readUnsignedByte());
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 4, 0, 2, 0, 0, 8 }, array);
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 0, 0, 0, 0, 2 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 10, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 46, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 13, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 4, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 4141, out.readUnsignedShort());
    array = new byte[2];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 9 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 14, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 14, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 16, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 48, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 18, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 49, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 20, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 50, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 23, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 8, out.readUnsignedByte());
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 10, 0, 0, 1 }, array);
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 0, 0, 14 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 25, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 8, out.readUnsignedByte());
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 10, 0, 0, 2 }, array);
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 0, 0, 15 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 26, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 6653, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 28, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 6654, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 30, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 6655, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 32, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 6656, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 34, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 6657, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 36, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 6658, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 38, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 51, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 40, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 52, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 42, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 2, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 53, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 45, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 8, out.readUnsignedByte());
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 10, 0, 0, 4 }, array);
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 0, 0, 16 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 47, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 8, out.readUnsignedByte());
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 10, 0, 0, 5 }, array);
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 0, 0, 17 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 49, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 12, out.readUnsignedByte());
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 0, 1, 2, 3, 4, 5 }, array);
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 0, 4, 0, 0, 6 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 51, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 12, out.readUnsignedByte());
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 0, 0, 0, 0, 0, 3 }, array);
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 0, 6, 0, 0, 4 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 53, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 32, out.readUnsignedByte());
    array = new byte[16];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value",
            new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, array);
    array = new byte[16];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask",
            new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 55, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 32, out.readUnsignedByte());
    array = new byte[16];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value",
            new byte[] { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1 }, array);
    array = new byte[16];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask",
            new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 57, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 8, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 58, out.readUnsignedInt());
    array = new byte[4];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 1, 0, 2 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 58, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 59, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 60, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 60, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 62, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 16, out.readUnsignedByte());
    array = new byte[16];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value",
            new byte[] { 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 64, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 6, out.readUnsignedByte());
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 1, 0, 3, 0, 0, 6 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 66, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 6, out.readUnsignedByte());
    array = new byte[6];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 4, 0, 2, 0, 0, 8 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 68, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 4, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 61, out.readUnsignedInt());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 70, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 62, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 72, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 1, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 75, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 6, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 64, out.readUnsignedMedium());
    array = new byte[3];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry mask", new byte[] { 0, 1, 2 }, array);
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 77, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 16, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 1L, out.readLong());
    Assert.assertEquals("Wrong match entry mask", 2L, out.readLong());
    Assert.assertEquals("Wrong match entry class", 0x8000, out.readUnsignedShort());
    Assert.assertEquals("Wrong match entry field & hasMask", 79, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry length", 4, out.readUnsignedByte());
    Assert.assertEquals("Wrong match entry value", 358, out.readUnsignedShort());
    array = new byte[2];
    out.readBytes(array);
    Assert.assertArrayEquals("Wrong match entry value", new byte[] { 0, 2 }, array);
    Assert.assertTrue("Wrong padding", out.readableBytes() == 4);
}

From source file:org.opendaylight.openflowjava.util.ByteBufUtils.java

License:Open Source License

/**
 * Read an IPv4 address from a buffer and format it into dotted-quad string.
 *
 * @param buf Input buffer/*from   www  .j a  v a 2 s  .  c  om*/
 * @return Dotted-quad string
 */
public static String readIpv4Address(final ByteBuf buf) {
    final StringBuilder sb = new StringBuilder(EncodeConstants.GROUPS_IN_IPV4_ADDRESS * 4 - 1);

    sb.append(buf.readUnsignedByte());
    for (int i = 1; i < EncodeConstants.GROUPS_IN_IPV4_ADDRESS; i++) {
        sb.append('.');
        sb.append(buf.readUnsignedByte());
    }

    return sb.toString();
}

From source file:org.opendaylight.openflowjava.util.ByteBufUtilsTest.java

License:Open Source License

/**
 * Write OF header test/*  w  ww  . j a  v  a 2 s. c om*/
 */
@Test
public void testWriteHeader() {
    ByteBuf buf = PooledByteBufAllocator.DEFAULT.buffer();
    HelloInputBuilder helloBuilder = new HelloInputBuilder();
    helloBuilder.setVersion((short) EncodeConstants.OF13_VERSION_ID);
    helloBuilder.setXid(12345L);
    helloBuilder.setElements(null);
    HelloInput helloInput = helloBuilder.build();
    ByteBufUtils.writeOFHeader((byte) 0, helloInput, buf, EncodeConstants.OFHEADER_SIZE);
    Assert.assertEquals("Wrong version", EncodeConstants.OF13_VERSION_ID, buf.readUnsignedByte());
    Assert.assertEquals("Wrong type", 0, buf.readUnsignedByte());
    Assert.assertEquals("Wrong length", EncodeConstants.OFHEADER_SIZE, buf.readUnsignedShort());
    Assert.assertEquals("Wrong xid", 12345, buf.readUnsignedInt());
    Assert.assertTrue("Unexpected data", buf.readableBytes() == 0);
}

From source file:org.opendaylight.openflowplugin.impl.services.OfMessageProcessingServiceImpl.java

License:Open Source License

@Override
protected OfHeader buildRequest(Xid xid, TransmitOfMessageInput input) throws ServiceException {
    ByteBuf buffer = Unpooled.wrappedBuffer(input.getMessage());
    short ofVersion = buffer.readUnsignedByte();
    DeserializerRegistry registry = new DeserializerRegistryImpl();
    registry.init();/*from  ww w . ja v a2s.c  o m*/
    DeserializationFactory factory = new DeserializationFactory();
    factory.setRegistry(registry);
    DataObject dObj = factory.deserialize(buffer, ofVersion);
    return (OfHeader) dObj;
}

From source file:org.opendaylight.protocol.bgp.evpn.impl.attributes.PMSITunnelAttributeHandler.java

License:Open Source License

@Override
public void parseAttribute(@Nonnull final ByteBuf buffer, @Nonnull final AttributesBuilder builder) {
    if (!buffer.isReadable()) {
        return;/*from   ww  w. j a va  2 s . co m*/
    }
    final PmsiTunnelBuilder pmsiTunnelBuilder = new PmsiTunnelBuilder();
    pmsiTunnelBuilder.setLeafInformationRequired(buffer.readBoolean());
    final int tunnelType = buffer.readUnsignedByte();
    parseMpls(pmsiTunnelBuilder, buffer);
    final TunnelIdentifier tunnelIdentifier = this.tunnelIdentifierHandler.parse(tunnelType, buffer);
    if (tunnelIdentifier != null) {
        pmsiTunnelBuilder.setTunnelIdentifier(tunnelIdentifier);
    }
    builder.addAugmentation(PmsiTunnelAugmentation.class,
            new PmsiTunnelAugmentationBuilder().setPmsiTunnel(pmsiTunnelBuilder.build()).build());
}

From source file:org.opendaylight.protocol.bgp.evpn.impl.attributes.tunnel.identifier.MldpP2mpLspParser.java

License:Open Source License

@Override
public TunnelIdentifier parse(final ByteBuf buffer) {
    final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev160812.pmsi.tunnel.pmsi.tunnel.tunnel.identifier.mldp.p2mp.lsp.MldpP2mpLspBuilder mldpP2mpLsp = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pmsi.tunnel.rev160812.pmsi.tunnel.pmsi.tunnel.tunnel.identifier.mldp.p2mp.lsp.MldpP2mpLspBuilder();
    buffer.skipBytes(RESERVED);//from   w  w  w . j  a v  a 2 s . c  om
    final Class<? extends AddressFamily> addressFamily = this.addressFamilyRegistry
            .classForFamily(buffer.readUnsignedShort());
    if (addressFamily == null) {
        LOG.debug("Skipping serialization of TunnelIdentifier {}, address family type  supported",
                ByteBufUtil.hexDump(buffer));
        return null;
    }
    mldpP2mpLsp.setAddressFamily(addressFamily);
    final short rootNodeLength = buffer.readUnsignedByte();
    mldpP2mpLsp.setRootNodeAddress(parseIpAddress(rootNodeLength, buffer.readBytes(rootNodeLength)));
    final int opaqueValueLength = buffer.readUnsignedShort();
    mldpP2mpLsp.setOpaqueValue(OpaqueUtil.parseOpaqueList(buffer.readBytes(opaqueValueLength)));
    return new MldpP2mpLspBuilder().setMldpP2mpLsp(mldpP2mpLsp.build()).build();
}

From source file:org.opendaylight.protocol.bgp.evpn.impl.attributes.tunnel.identifier.OpaqueUtil.java

License:Open Source License

static Opaque parseOpaque(final ByteBuf buffer) {
    final short type = buffer.readUnsignedByte();
    final OpaqueValueBuilder builder = new OpaqueValueBuilder();
    switch (type) {
    case GENERIC_LSP_IDENTIFIER:
        builder.setOpaque(buildOpaqueValue(buffer));
        break;/*from w w  w .j a v a 2 s  . co m*/
    case EXTENDED_TYPE:
        buildExtended(builder, buffer);
        break;
    default:
        final int length = buffer.readUnsignedShort();
        buffer.skipBytes(length);
        LOG.debug("Skipping parsing of Opaque Value {}", buffer);
        return null;
    }
    builder.setOpaqueType(type);
    return builder.build();
}

From source file:org.opendaylight.protocol.bgp.evpn.impl.nlri.EthSegRParser.java

License:Open Source License

public static IpAddress parseOrigRouteIp(final ByteBuf buffer) {
    final int ipLength = buffer.readUnsignedByte();
    if (ipLength == Ipv6Util.IPV6_BITS_LENGTH) {
        return new IpAddress(Ipv6Util.addressForByteBuf(buffer));
    } else if (ipLength == Ipv4Util.IP4_BITS_LENGTH) {
        return new IpAddress(Ipv4Util.addressForByteBuf(buffer));
    }//w w w  .  j a  va  2s.  c  o m
    return null;
}

From source file:org.opendaylight.protocol.bgp.evpn.impl.nlri.EvpnNlriParser.java

License:Open Source License

@Nullable
private List<EvpnDestination> parseNlri(final ByteBuf nlri) {
    if (!nlri.isReadable()) {
        return null;
    }/*from  w  ww  .  j  a  va 2 s  .c  o  m*/
    final List<EvpnDestination> dests = new ArrayList<>();

    while (nlri.isReadable()) {
        final EvpnDestinationBuilder builder = new EvpnDestinationBuilder();
        final NlriType type = NlriType.forValue(nlri.readUnsignedByte());
        final int length = nlri.readUnsignedByte();
        final ByteBuf nlriBuf = nlri.readSlice(length);
        builder.setRouteDistinguisher(parseRouteDistinguisher(nlriBuf));
        builder.setEvpnChoice(SimpleEvpnNlriRegistry.getInstance().parseEvpn(type, nlriBuf));
        dests.add(builder.build());
    }
    return dests;
}

From source file:org.opendaylight.protocol.bgp.evpn.impl.nlri.MACIpAdvRParser.java

License:Open Source License

private static IpAddress parseIp(final ByteBuf buffer) {
    final int ipLength = buffer.readUnsignedByte();
    if (ipLength == Ipv6Util.IPV6_BITS_LENGTH) {
        return new IpAddress(Ipv6Util.addressForByteBuf(buffer));
    } else if (ipLength == Ipv4Util.IP4_BITS_LENGTH) {
        return new IpAddress(Ipv4Util.addressForByteBuf(buffer));
    }//from  ww  w.jav  a 2 s  . c o m
    return null;
}