Bump upstreams to 2022.09
[bgpcep.git] / bgp / rib-impl / src / main / java / org / opendaylight / protocol / bgp / rib / impl / BgpPeerUtil.java
index 732cbc276f3accf0466f90f09731a2f8b2a80dd3..36e51d48fd28474e0b1ffae5528c5d13a8503018 100644 (file)
@@ -9,22 +9,21 @@ package org.opendaylight.protocol.bgp.rib.impl;
 
 import static java.util.Objects.requireNonNull;
 
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.Update;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.UpdateBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.UpdateMessage;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.path.attributes.AttributesBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes1;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes2;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.Attributes2Builder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.update.attributes.MpUnreachNlriBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.Update;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.UpdateBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.UpdateMessage;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.path.attributes.AttributesBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.AttributesReach;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.AttributesUnreach;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.AttributesUnreachBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.attributes.unreach.MpUnreachNlriBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.Ipv4AddressFamily;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.UnicastSubsequentAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.Ipv4AddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.UnicastSubsequentAddressFamily;
 
 public final class BgpPeerUtil {
-
     private BgpPeerUtil() {
-        throw new UnsupportedOperationException();
+        // Hidden on purpose
     }
 
     /**
@@ -34,15 +33,20 @@ public final class BgpPeerUtil {
      * @return UPDATE message with EOR marker
      */
     public static Update createEndOfRib(final TablesKey key) {
-        return key.getAfi() == Ipv4AddressFamily.class && key.getSafi() == UnicastSubsequentAddressFamily.class
-                ? new UpdateBuilder().build() :
-                new UpdateBuilder()
-                        .setAttributes(new AttributesBuilder()
-                                .addAugmentation(Attributes2.class, new Attributes2Builder()
-                                        .setMpUnreachNlri(new MpUnreachNlriBuilder()
-                                                .setAfi(key.getAfi())
-                                                .setSafi(key.getSafi())
-                                                .build()).build()).build()).build();
+        final var builder = new UpdateBuilder();
+        final var afi = key.getAfi();
+        final var safi = key.getSafi();
+        if (!Ipv4AddressFamily.VALUE.equals(afi) || !UnicastSubsequentAddressFamily.VALUE.equals(safi)) {
+            builder.setAttributes(new AttributesBuilder()
+                .addAugmentation(new AttributesUnreachBuilder()
+                    .setMpUnreachNlri(new MpUnreachNlriBuilder()
+                        .setAfi(key.getAfi())
+                        .setSafi(key.getSafi())
+                        .build())
+                    .build())
+                .build());
+        }
+        return builder.build();
     }
 
     /**
@@ -54,8 +58,8 @@ public final class BgpPeerUtil {
     public static boolean isEndOfRib(final UpdateMessage msg) {
         if (msg.getNlri() == null && msg.getWithdrawnRoutes() == null) {
             if (msg.getAttributes() != null) {
-                final Attributes2 pa = msg.getAttributes().augmentation(Attributes2.class);
-                if (pa != null && msg.getAttributes().augmentation(Attributes1.class) == null) {
+                final AttributesUnreach pa = msg.getAttributes().augmentation(AttributesUnreach.class);
+                if (pa != null && msg.getAttributes().augmentation(AttributesReach.class) == null) {
                     //only MP_UNREACH_NLRI allowed in EOR
                     if (pa.getMpUnreachNlri() != null && pa.getMpUnreachNlri().getWithdrawnRoutes() == null) {
                         // EOR message contains only MPUnreach attribute and no NLRI
@@ -71,6 +75,8 @@ public final class BgpPeerUtil {
     }
 
     /**
+     * DTO for transferring LLGR advertizements.
+     *
      * @deprecated This class is deprecated for refactoring.
      */
     // FIXME: there should be no need for this class, as we should be able to efficiently translate TableKey classes
@@ -82,7 +88,7 @@ public final class BgpPeerUtil {
         private final int staleTime;
         private final boolean forwardingFlag;
 
-        public LlGracefulRestartDTO (final TablesKey tableKey, final int staleTime, final boolean forwardingFlag) {
+        public LlGracefulRestartDTO(final TablesKey tableKey, final int staleTime, final boolean forwardingFlag) {
             this.tableKey = requireNonNull(tableKey);
             this.staleTime = staleTime;
             this.forwardingFlag = forwardingFlag;