List of usage examples for io.netty.buffer ByteBuf readSlice
public abstract ByteBuf readSlice(int length);
From source file:org.opendaylight.protocol.rsvp.parser.impl.te.BandwidthObjectParser.java
License:Open Source License
@Override protected RsvpTeObject localParseObject(final ByteBuf byteBuf) throws RSVPParsingException { final BasicBandwidthObjectBuilder builder = new BasicBandwidthObjectBuilder(); final ByteBuf v = byteBuf.readSlice(METRIC_VALUE_F_LENGTH); builder.setBandwidth(new Bandwidth(ByteArray.readAllBytes(v))); return builder.build(); }
From source file:org.opendaylight.protocol.rsvp.parser.impl.te.DetourObjectIpv6Parser.java
License:Open Source License
@Override protected RsvpTeObject localParseObject(final ByteBuf byteBuf) { final ByteBuf plrId = byteBuf.readSlice(byteBuf.capacity() / 2); final Ipv6DetourObjectBuilder ipv6Case = new Ipv6DetourObjectBuilder(); final List<PlrId> plrIdList = new ArrayList<>(); while (plrId.isReadable()) { final PlrIdBuilder plr = new PlrIdBuilder(); plr.setPlrId(Ipv6Util.addressForByteBuf(plrId)); plrIdList.add(plr.build());// w ww . j a v a 2 s. c o m } final List<AvoidNode> avoidNodeList = new ArrayList<>(); while (byteBuf.isReadable()) { final AvoidNodeBuilder plr = new AvoidNodeBuilder(); plr.setAvoidNode(Ipv6Util.addressForByteBuf(byteBuf)); avoidNodeList.add(plr.build()); } return ipv6Case.setPlrId(plrIdList).setAvoidNode(avoidNodeList).build(); }
From source file:org.opendaylight.protocol.rsvp.parser.impl.te.FastRerouteObjectParser.java
License:Open Source License
@Override protected RsvpTeObject localParseObject(final ByteBuf byteBuf) { final BasicFastRerouteObjectBuilder builder = new BasicFastRerouteObjectBuilder(); builder.setSetupPriority(byteBuf.readUnsignedByte()); builder.setHoldPriority(byteBuf.readUnsignedByte()); builder.setHopLimit(byteBuf.readUnsignedByte()); builder.setFlags(FastRerouteFlags.forValue(byteBuf.readUnsignedByte())); final ByteBuf v = byteBuf.readSlice(METRIC_VALUE_F_LENGTH); builder.setBandwidth(new Bandwidth(ByteArray.readAllBytes(v))); builder.setIncludeAny(new AttributeFilter(byteBuf.readUnsignedInt())); builder.setExcludeAny(new AttributeFilter(byteBuf.readUnsignedInt())); builder.setIncludeAll(new AttributeFilter(byteBuf.readUnsignedInt())); return builder.build(); }
From source file:org.opendaylight.protocol.rsvp.parser.impl.te.InformationalFastRerouteObjectParser.java
License:Open Source License
@Override protected RsvpTeObject localParseObject(final ByteBuf byteBuf) throws RSVPParsingException { final LegacyFastRerouteObjectBuilder builder = new LegacyFastRerouteObjectBuilder(); builder.setSetupPriority(byteBuf.readUnsignedByte()); builder.setHoldPriority(byteBuf.readUnsignedByte()); builder.setHopLimit(byteBuf.readUnsignedByte()); //skip reserved byteBuf.skipBytes(ByteBufWriteUtil.ONE_BYTE_LENGTH); final ByteBuf v = byteBuf.readSlice(METRIC_VALUE_F_LENGTH); builder.setBandwidth(new Bandwidth(ByteArray.readAllBytes(v))); builder.setIncludeAny(new AttributeFilter(byteBuf.readUnsignedInt())); builder.setExcludeAny(new AttributeFilter(byteBuf.readUnsignedInt())); return builder.build(); }
From source file:org.opendaylight.protocol.rsvp.parser.impl.te.ReoptimizationBandwidthObjectParser.java
License:Open Source License
@Override protected RsvpTeObject localParseObject(final ByteBuf byteBuf) throws RSVPParsingException { final ReoptimizationBandwidthObjectBuilder builder = new ReoptimizationBandwidthObjectBuilder(); final ByteBuf v = byteBuf.readSlice(METRIC_VALUE_F_LENGTH); builder.setBandwidth(new Bandwidth(ByteArray.readAllBytes(v))); return builder.build(); }
From source file:org.opendaylight.protocol.rsvp.parser.impl.te.RequiredAttributesObjectParser.java
License:Open Source License
@Override protected RsvpTeObject localParseObject(final ByteBuf byteBuf) throws RSVPParsingException { final LspRequiredAttributesObjectBuilder builder = new LspRequiredAttributesObjectBuilder(); final List<SubobjectContainer> subObjectList = new ArrayList<>(); while (byteBuf.isReadable()) { final int type = byteBuf.readUnsignedShort(); final int length = byteBuf.readUnsignedShort(); final ByteBuf value = byteBuf.readSlice(length); final SubobjectContainerBuilder subObj = new SubobjectContainerBuilder(); if (type == AttributesObjectParser.FLAG_TLV_TYPE) { subObj.setLspSubobject(/*from w w w. j a va2 s .co m*/ new FlagsTlvBuilder().setFlagContainer(AttributesObjectParser.parseFlag(value)).build()); } else { LOG.warn("Lsp Attributes Subobject type {} not supported", type); } subObjectList.add(subObj.build()); } return builder.setLspAttributesObject( new LspAttributesObjectBuilder().setSubobjectContainer(subObjectList).build()).build(); }
From source file:org.opendaylight.protocol.rsvp.parser.impl.te.SessionAttributeLspObjectParser.java
License:Open Source License
@Override protected RsvpTeObject localParseObject(final ByteBuf byteBuf) throws RSVPParsingException { final BasicSessionAttributeObjectBuilder builder = new BasicSessionAttributeObjectBuilder(); builder.setSetupPriority(byteBuf.readUnsignedByte()); builder.setHoldPriority(byteBuf.readUnsignedByte()); final BitArray bs = BitArray.valueOf(byteBuf.readByte()); builder.setLocalProtectionDesired(bs.get(LOCAL_PROTECTION)); builder.setLabelRecordingDesired(bs.get(LABEL_RECORDING)); builder.setSeStyleDesired(bs.get(SE_STYLE)); final short nameLenght = byteBuf.readUnsignedByte(); final ByteBuf auxBuf = byteBuf.readSlice(nameLenght); final String name = new String(ByteArray.readAllBytes(auxBuf), StandardCharsets.US_ASCII); builder.setSessionName(name);// ww w .ja va 2 s . c om return builder.build(); }
From source file:org.opendaylight.protocol.rsvp.parser.impl.te.SessionAttributeLspRaObjectParser.java
License:Open Source License
@Override protected RsvpTeObject localParseObject(final ByteBuf byteBuf) throws RSVPParsingException { final SessionAttributeObjectWithResourcesAffinitiesBuilder builder = new SessionAttributeObjectWithResourcesAffinitiesBuilder(); builder.setIncludeAny(new AttributeFilter(byteBuf.readUnsignedInt())); builder.setExcludeAny(new AttributeFilter(byteBuf.readUnsignedInt())); builder.setIncludeAll(new AttributeFilter(byteBuf.readUnsignedInt())); builder.setSetupPriority(byteBuf.readUnsignedByte()); builder.setHoldPriority(byteBuf.readUnsignedByte()); final BitArray bs = BitArray.valueOf(byteBuf.readByte()); builder.setLocalProtectionDesired(bs.get(SessionAttributeLspObjectParser.LOCAL_PROTECTION)); builder.setLabelRecordingDesired(bs.get(SessionAttributeLspObjectParser.LABEL_RECORDING)); builder.setSeStyleDesired(bs.get(SessionAttributeLspObjectParser.SE_STYLE)); final short nameLenght = byteBuf.readUnsignedByte(); final ByteBuf auxBuf = byteBuf.readSlice(nameLenght); final String name = new String(ByteArray.readAllBytes(auxBuf), StandardCharsets.US_ASCII); builder.setSessionName(name);//from w w w . j a va2s. c o m return builder.build(); }
From source file:org.opendaylight.protocol.rsvp.parser.spi.subobjects.EROSubobjectListParser.java
License:Open Source License
public List<SubobjectContainer> parseList(final ByteBuf buffer) throws RSVPParsingException { // Explicit approval of empty ERO Preconditions.checkArgument(buffer != null, "Array of bytes is mandatory. Can't be null."); final List<SubobjectContainer> subs = new ArrayList<>(); while (buffer.isReadable()) { final boolean loose = ((buffer.getUnsignedByte(buffer.readerIndex()) & (1 << Values.FIRST_BIT_OFFSET)) != 0) ? true : false; final int type = (buffer.readUnsignedByte() & Values.BYTE_MAX_VALUE_BYTES) & ~(1 << Values.FIRST_BIT_OFFSET); final int length = buffer.readUnsignedByte() - HEADER_LENGTH; if (length > buffer.readableBytes()) { throw new RSVPParsingException( "Wrong length specified. Passed: " + length + "; Expected: <= " + buffer.readableBytes()); }/*from w w w . j av a 2s. c om*/ LOG.debug("Attempt to parse subobject from bytes: {}", ByteBufUtil.hexDump(buffer)); final SubobjectContainer sub = this.subobjReg.parseSubobject(type, buffer.readSlice(length), loose); if (sub == null) { LOG.warn("Unknown subobject type: {}. Ignoring subobject.", type); } else { LOG.debug("Subobject was parsed. {}", sub); subs.add(sub); } } return subs; }
From source file:org.opendaylight.protocol.rsvp.parser.spi.subobjects.RROSubobjectListParser.java
License:Open Source License
public List<SubobjectContainer> parseList(final ByteBuf buffer) throws RSVPParsingException { Preconditions.checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty."); final List<SubobjectContainer> subs = new ArrayList<>(); while (buffer.isReadable()) { final int type = buffer.readUnsignedByte(); final int length = buffer.readUnsignedByte() - HEADER_LENGTH; if (length > buffer.readableBytes()) { throw new RSVPParsingException( "Wrong length specified. Passed: " + length + "; Expected: <= " + buffer.readableBytes()); }//from w ww . j a v a 2s .c o m LOG.debug("Attempt to parse subobject from bytes: {}", ByteBufUtil.hexDump(buffer)); final SubobjectContainer sub = this.subobjReg.parseSubobject(type, buffer.readSlice(length)); if (sub == null) { LOG.warn("Unknown subobject type: {}. Ignoring subobject.", type); } else { LOG.debug("Subobject was parsed. {}", sub); subs.add(sub); } } return subs; }