Bug-2064: Implementation of RFC5492 Error handling.
[bgpcep.git] / bgp / parser-api / src / main / java / org / opendaylight / protocol / bgp / parser / AsNumberUtil.java
index 1cdae9ca3dc00eb012f869b5be98daba2ebae044..f1be584b74a605820d114c26cbb1c4ef999c145b 100644 (file)
@@ -11,9 +11,10 @@ import java.util.List;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.Open;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.BgpParameters;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.bgp.parameters.CParameters;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.bgp.parameters.c.parameters.As4BytesCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.bgp.parameters.c.parameters.as4.bytes._case.As4BytesCapability;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.bgp.parameters.OptionalCapabilities;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.bgp.parameters.optional.capabilities.CParameters;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.bgp.parameters.optional.capabilities.c.parameters.As4BytesCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.open.bgp.parameters.optional.capabilities.c.parameters.as4.bytes._case.As4BytesCapability;
 
 public final class AsNumberUtil {
 
@@ -32,11 +33,13 @@ public final class AsNumberUtil {
         final List<BgpParameters> params = open.getBgpParameters();
         if (params != null) {
             for (final BgpParameters p : params) {
-                final CParameters cp = p.getCParameters();
-                if (cp instanceof As4BytesCase) {
-                    final As4BytesCapability capa = ((As4BytesCase) cp).getAs4BytesCapability();
-                    if (capa != null) {
-                        return capa.getAsNumber();
+                for (final OptionalCapabilities oc : p.getOptionalCapabilities()) {
+                    final CParameters cp = oc.getCParameters();
+                    if (cp instanceof As4BytesCase) {
+                        final As4BytesCapability capa = ((As4BytesCase) cp).getAs4BytesCapability();
+                        if (capa != null) {
+                            return capa.getAsNumber();
+                        }
                     }
                 }
             }