import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.sub.tlvs.range.sub.tlv.PrefixSidTlvCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.sub.tlvs.range.sub.tlv.SidLabelTlvCase;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.sub.tlvs.range.sub.tlv.SidLabelTlvCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.sub.tlvs.range.sub.tlv.ipv6.prefix.sid.tlv._case.Ipv6PrefixSidTlv;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.sub.tlvs.range.sub.tlv.ipv6.prefix.sid.tlv._case.Ipv6PrefixSidTlvBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.sub.tlvs.range.sub.tlv.prefix.sid.tlv._case.PrefixSidTlv;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.sub.tlvs.range.sub.tlv.prefix.sid.tlv._case.PrefixSidTlvBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.tlv.SubTlvs;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev151014.range.tlv.SubTlvsBuilder;
+import org.opendaylight.yangtools.yang.common.netty.ByteBufUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
range.setInterArea(Boolean.FALSE);
}
buffer.skipBytes(RESERVED);
- range.setRangeSize(buffer.readUnsignedShort());
+ range.setRangeSize(ByteBufUtils.readUint16(buffer));
range.setSubTlvs(parseRangeSubTlvs(buffer, protocolId));
return range.build();
}
private static List<SubTlvs> parseRangeSubTlvs(final ByteBuf buffer, final ProtocolId protocolId) {
final List<SubTlvs> subTlvs = new ArrayList<>();
while (buffer.isReadable()) {
- final SubTlvsBuilder subTlv = new SubTlvsBuilder();
final RangeSubTlv subTlvCase;
final int type = buffer.readUnsignedShort();
final int length = buffer.readUnsignedShort();
switch (type) {
case PREFIX_SID:
- subTlvCase = new PrefixSidTlvCaseBuilder(
- SrPrefixAttributesParser.parseSrPrefix(buffer.readSlice(length), protocolId)).build();
+ subTlvCase = new PrefixSidTlvCaseBuilder().setPrefixSidTlv(new PrefixSidTlvBuilder(
+ SrPrefixAttributesParser.parseSrPrefix(buffer.readSlice(length), protocolId)).build()).build();
break;
case IPV6_PREFIX_SID:
- subTlvCase = new Ipv6PrefixSidTlvCaseBuilder(
- Ipv6SrPrefixAttributesParser.parseSrIpv6Prefix(buffer.readSlice(length))).build();
+ subTlvCase = new Ipv6PrefixSidTlvCaseBuilder().setIpv6PrefixSidTlv(new Ipv6PrefixSidTlvBuilder(
+ Ipv6SrPrefixAttributesParser.parseSrIpv6Prefix(buffer.readSlice(length))).build()).build();
break;
case BINDING_SID:
subTlvCase = new BindingSidTlvCaseBuilder(
case SID_TYPE:
subTlvCase = new SidLabelTlvCaseBuilder().setSidLabelIndex(
SidLabelIndexParser.parseSidLabelIndex(Size.forValue(length), buffer.readSlice(length)))
- .build();
+ .build();
break;
default:
LOG.info("Unknown type of range sub-tlv: {}", type);
buffer.skipBytes(length);
continue;
}
- subTlvs.add(subTlv.setRangeSubTlv(subTlvCase).build());
+ subTlvs.add(new SubTlvsBuilder().setRangeSubTlv(subTlvCase).build());
}
return subTlvs;
}
flags.set(INNER_AREA, srRange.isInterArea());
flags.toByteBuf(aggregator);
aggregator.writeZero(RESERVED);
- aggregator.writeShort(srRange.getRangeSize());
+ aggregator.writeShort(srRange.getRangeSize().toJava());
serializeSubTlvs(aggregator, srRange.getSubTlvs());
}
ByteBuf buffer = Unpooled.buffer();
final RangeSubTlv rangeSubTlv = subTlv.getRangeSubTlv();
if (rangeSubTlv instanceof PrefixSidTlvCase) {
- final PrefixSidTlvCase prefixSidTlv = (PrefixSidTlvCase) rangeSubTlv;
+ final PrefixSidTlv prefixSidTlv = ((PrefixSidTlvCase) rangeSubTlv).getPrefixSidTlv();
SrPrefixAttributesParser.serializePrefixAttributes(
prefixSidTlv.getFlags(),
prefixSidTlv.getAlgorithm(),
buffer);
TlvUtil.writeTLV(PREFIX_SID, buffer, aggregator);
} else if (rangeSubTlv instanceof Ipv6PrefixSidTlvCase) {
- final Ipv6PrefixSidTlvCase prefixSidTlv = (Ipv6PrefixSidTlvCase) rangeSubTlv;
+ final Ipv6PrefixSidTlv prefixSidTlv = ((Ipv6PrefixSidTlvCase) rangeSubTlv).getIpv6PrefixSidTlv();
Ipv6SrPrefixAttributesParser.serializePrefixAttributes(prefixSidTlv.getAlgorithm(), buffer);
TlvUtil.writeTLV(IPV6_PREFIX_SID, buffer, aggregator);
} else if (rangeSubTlv instanceof BindingSidTlvCase) {
}
}
}
-
}