- final Tlv tlv = this.tlvReg.parseTlv(type, tlvBytes);
- LOG.trace("Parsed PCEP TLV {}.", tlv);
- addTlv(builder, tlv);
- bytes.skipBytes(length + TlvUtil.getPadding(TlvUtil.HEADER_SIZE + length, TlvUtil.PADDED_TO));
+
+ if (VendorInformationUtil.isVendorInformationTlv(type)) {
+ final EnterpriseNumber enterpriseNumber = new EnterpriseNumber(tlvBytes.readUnsignedInt());
+ final Optional<VendorInformationTlv> viTlv = this.viTlvReg.parseVendorInformationTlv(enterpriseNumber, tlvBytes);
+ if(viTlv.isPresent()) {
+ LOG.trace("Parsed VENDOR-INFORMATION TLV {}.", viTlv.get());
+ viTlvs.add(viTlv.get());
+ }
+ } else {
+ final Tlv tlv = this.tlvReg.parseTlv(type, tlvBytes);
+ if(tlv != null) {
+ LOG.trace("Parsed PCEP TLV {}.", tlv);
+ addTlv(builder, tlv);
+ }
+ }
+ bytes.skipBytes(TlvUtil.getPadding(TlvUtil.HEADER_SIZE + length, TlvUtil.PADDED_TO));