X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=bgp%2Fextensions%2Flinkstate%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fbgp%2Flinkstate%2Fimpl%2Ftlvs%2FReachTlvParser.java;h=e4e90d89999882b46f107bdaa8b911c47d5737ff;hb=0903ae978349d82e076b999965aaad58f0318393;hp=1ca75ec1c1d8f540b80d7d3ec82b231d9ef1ae51;hpb=a4535e95320c33f50fd6a260a6b88c6eca7f55e7;p=bgpcep.git diff --git a/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/tlvs/ReachTlvParser.java b/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/tlvs/ReachTlvParser.java index 1ca75ec1c1..e4e90d8999 100644 --- a/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/tlvs/ReachTlvParser.java +++ b/bgp/extensions/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/impl/tlvs/ReachTlvParser.java @@ -11,12 +11,12 @@ import com.google.common.annotations.VisibleForTesting; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import org.opendaylight.protocol.bgp.linkstate.spi.LinkstateTlvParser; -import org.opendaylight.protocol.util.ByteBufWriteUtil; import org.opendaylight.protocol.util.Ipv4Util; +import org.opendaylight.protocol.util.Ipv6Util; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefix; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev180329.linkstate.object.type.prefix._case.PrefixDescriptors; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev200120.linkstate.object.type.prefix._case.PrefixDescriptors; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -45,9 +45,9 @@ public final class ReachTlvParser implements LinkstateTlvParser.LinkstateTlvSeri @Override public void serializeTlvBody(final IpPrefix tlv, final ByteBuf body) { if (tlv.getIpv4Prefix() != null) { - ByteBufWriteUtil.writeMinimalPrefix(tlv.getIpv4Prefix(), body); + Ipv4Util.writeMinimalPrefix(tlv.getIpv4Prefix(), body); } else if (tlv.getIpv6Prefix() != null) { - ByteBufWriteUtil.writeMinimalPrefix(tlv.getIpv6Prefix(), body); + Ipv6Util.writeMinimalPrefix(tlv.getIpv6Prefix(), body); } } @@ -57,17 +57,18 @@ public final class ReachTlvParser implements LinkstateTlvParser.LinkstateTlvSeri } public static IpPrefix serializeModel(final ContainerNode prefixDesc) { - if (prefixDesc.getChild(IP_REACH_NID).isPresent()) { - final String prefix = (String) prefixDesc.getChild(IP_REACH_NID).get().getValue(); - try { - final ByteBuf buffer = Unpooled.buffer(5); - ByteBufWriteUtil.writeMinimalPrefix(new Ipv4Prefix(prefix), buffer); - return new IpPrefix(new Ipv4Prefix(prefix)); - } catch (final IllegalArgumentException e) { - LOG.debug("Creating Ipv6 prefix because", e); - return new IpPrefix(new Ipv6Prefix(prefix)); - } - } - return null; + return prefixDesc.findChildByArg(IP_REACH_NID) + .map(child -> { + final String prefix = (String) child.body(); + try { + final ByteBuf buffer = Unpooled.buffer(5); + Ipv4Util.writeMinimalPrefix(new Ipv4Prefix(prefix), buffer); + return new IpPrefix(new Ipv4Prefix(prefix)); + } catch (final IllegalArgumentException e) { + LOG.debug("Creating Ipv6 prefix because", e); + return new IpPrefix(new Ipv6Prefix(prefix)); + } + }) + .orElse(null); } }