Migrate to use yangtools' ByteBufUtils
[bgpcep.git] / bgp / extensions / linkstate / src / main / java / org / opendaylight / protocol / bgp / linkstate / impl / attribute / sr / RangeTlvParser.java
index 333b93d0f33e3695c6b7b49f1b55681155ba4e27..d6a8c4bcb9e5c1169c51e38644a69f5d54dc4866 100644 (file)
@@ -31,8 +31,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segm
 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;
 
@@ -56,7 +61,7 @@ public final class RangeTlvParser {
             range.setInterArea(Boolean.FALSE);
         }
         buffer.skipBytes(RESERVED);
-        range.setRangeSize(buffer.readUnsignedShort());
+        range.setRangeSize(ByteBufUtils.readUint16(buffer));
         range.setSubTlvs(parseRangeSubTlvs(buffer, protocolId));
         return range.build();
     }
@@ -64,18 +69,17 @@ public final class RangeTlvParser {
     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(
@@ -84,14 +88,14 @@ public final class RangeTlvParser {
                 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;
     }
@@ -101,7 +105,7 @@ public final class RangeTlvParser {
         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());
     }
 
@@ -110,7 +114,7 @@ public final class RangeTlvParser {
             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(),
@@ -118,7 +122,7 @@ public final class RangeTlvParser {
                     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) {
@@ -135,5 +139,4 @@ public final class RangeTlvParser {
             }
         }
     }
-
 }