use of org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segment.routing.ext.rev200120.range.sub.tlvs.range.sub.tlv.prefix.sid.tlv._case.PrefixSidTlv in project bgpcep by opendaylight.
the class RangeTlvParser method serializeSubTlvs.
private static void serializeSubTlvs(final ByteBuf aggregator, final List<SubTlvs> subTlvs) {
for (final SubTlvs subTlv : subTlvs) {
ByteBuf buffer = Unpooled.buffer();
final RangeSubTlv rangeSubTlv = subTlv.getRangeSubTlv();
if (rangeSubTlv instanceof PrefixSidTlvCase) {
final PrefixSidTlv prefixSidTlv = ((PrefixSidTlvCase) rangeSubTlv).getPrefixSidTlv();
SrPrefixAttributesParser.serializePrefixAttributes(prefixSidTlv.getFlags(), prefixSidTlv.getAlgorithm(), prefixSidTlv.getSidLabelIndex(), buffer);
TlvUtil.writeTLV(PREFIX_SID, buffer, aggregator);
} else if (rangeSubTlv instanceof Ipv6PrefixSidTlvCase) {
final Ipv6PrefixSidTlv prefixSidTlv = ((Ipv6PrefixSidTlvCase) rangeSubTlv).getIpv6PrefixSidTlv();
Ipv6SrPrefixAttributesParser.serializePrefixAttributes(prefixSidTlv.getAlgorithm(), buffer);
TlvUtil.writeTLV(IPV6_PREFIX_SID, buffer, aggregator);
} else if (rangeSubTlv instanceof BindingSidTlvCase) {
final BindingSidTlvCase rangeTlv = (BindingSidTlvCase) rangeSubTlv;
BindingSidLabelParser.serializeBindingSidAttributes(rangeTlv.getWeight(), rangeTlv.getFlags(), rangeTlv.getBindingSubTlvs(), buffer);
TlvUtil.writeTLV(BINDING_SID, buffer, aggregator);
} else if (rangeSubTlv instanceof SidLabelTlvCase) {
buffer = SidLabelIndexParser.serializeSidValue(((SidLabelTlvCase) rangeSubTlv).getSidLabelIndex());
TlvUtil.writeTLV(SID_TYPE, buffer, aggregator);
}
}
}
Aggregations