OpenConfig BGP more defensive
[bgpcep.git] / bgp / openconfig-spi / src / main / java / org / opendaylight / protocol / bgp / openconfig / spi / pojo / BGPPeerInstanceConfiguration.java
index 8d998e711d6d68eb16c40384f11842499ef51798..abba9ef2d11ab3946e759fd374c28405699a7ccf 100644 (file)
@@ -12,12 +12,13 @@ import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import java.util.List;
 import org.opendaylight.protocol.bgp.openconfig.spi.InstanceConfigurationIdentifier;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.AsNumber;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.add.path.capability.AddressFamilies;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.PeerRole;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.tcpmd5.cfg.rev140427.Rfc2385Key;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.rfc2385.cfg.rev160324.Rfc2385Key;
 
 /**
  * POJO for holding BGP Peer module instance configuration
@@ -27,16 +28,19 @@ public final class BGPPeerInstanceConfiguration extends AbstractInstanceConfigur
 
     private final IpAddress host;
     private final PortNumber port;
-    private final short holdTimer;
+    private final int holdTimer;
     private final PeerRole peerRole;
     private final boolean active;
     private final List<BgpTableType> advertizedTables;
     private final AsNumber asNumber;
-    private final Rfc2385Key password;
+    private final Optional<Rfc2385Key> password;
+    private final List<AddressFamilies> addPathCapabilities;
 
-    public BGPPeerInstanceConfiguration(final InstanceConfigurationIdentifier identifier, final IpAddress host, final PortNumber port, final short holdTimer, final PeerRole peerRole,
-            final boolean active, final List<BgpTableType> advertizedTables, final AsNumber asNumber, final Rfc2385Key password) {
+    public BGPPeerInstanceConfiguration(final InstanceConfigurationIdentifier identifier, final IpAddress host, final PortNumber port, final int holdTimer, final PeerRole peerRole,
+            final boolean active, final List<BgpTableType> advertizedTables, final AsNumber asNumber, final Optional<Rfc2385Key> password,
+            final List<AddressFamilies> addPathCapabilities) {
         super(identifier);
+        this.addPathCapabilities = addPathCapabilities;
         this.host = Preconditions.checkNotNull(host);
         this.port = Preconditions.checkNotNull(port);
         this.holdTimer = Preconditions.checkNotNull(holdTimer);
@@ -44,7 +48,7 @@ public final class BGPPeerInstanceConfiguration extends AbstractInstanceConfigur
         this.active = Preconditions.checkNotNull(active);
         this.advertizedTables = Preconditions.checkNotNull(advertizedTables);
         this.asNumber = Preconditions.checkNotNull(asNumber);
-        this.password = password;
+        this.password = Preconditions.checkNotNull(password);
     }
 
     public IpAddress getHost() {
@@ -55,7 +59,7 @@ public final class BGPPeerInstanceConfiguration extends AbstractInstanceConfigur
         return port;
     }
 
-    public short getHoldTimer() {
+    public int getHoldTimer() {
         return holdTimer;
     }
 
@@ -76,7 +80,11 @@ public final class BGPPeerInstanceConfiguration extends AbstractInstanceConfigur
     }
 
     public Optional<Rfc2385Key> getPassword() {
-        return Optional.fromNullable(password);
+        return password;
+    }
+
+    public List<AddressFamilies> getAddPathCapabilities() {
+        return addPathCapabilities;
     }
 
 }