4 Octet AS Path Capability is sent to neighbor.
4 Octet AS in AS_PATH is parsed.
Now BGP can establish 4 Octet AS Path enabled peering with neighbor.
Change-Id: Ibb72e8037554928584ccafe6a14b82ffaca7e2cd
diff --git a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java
index 59d0385..52c6827 100644
--- a/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java
+++ b/apps/sdnip/src/main/java/org/onosproject/sdnip/bgp/BgpSession.java
@@ -66,6 +66,7 @@
private boolean remoteIpv4Multicast; // Peer IPv4/MULTICAST AFI/SAFI
private boolean remoteIpv6Unicast; // Peer IPv6/UNICAST AFI/SAFI
private boolean remoteIpv6Multicast; // Peer IPv6/MULTICAST AFI/SAFI
+ private boolean remoteAs4OctetCapability; // Peer 4 octet AS path capability
//
private SocketAddress localAddress; // Local IP addr/port
private Ip4Address localIp4Address; // Local IPv4 address
@@ -77,6 +78,7 @@
private boolean localIpv4Multicast; // Local IPv4/MULTICAST AFI/SAFI
private boolean localIpv6Unicast; // Local IPv6/UNICAST AFI/SAFI
private boolean localIpv6Multicast; // Local IPv6/MULTICAST AFI/SAFI
+ private boolean localAs4OctetCapability; // Local 4 octet AS path capability
//
private long localKeepaliveInterval; // Keepalive interval
@@ -188,7 +190,7 @@
// In the future the local AS number should be configured as part
// of an explicit BGP peering configuration.
//
- this.localAs = remoteAs;
+ setLocalAs(remoteAs);
}
/**
@@ -330,6 +332,47 @@
}
/**
+ * Gets the BGP session remote 4 octet AS path capability.
+ *
+ * @return true when the BGP session remote has 4 octet AS path capability
+ */
+ public boolean getRemoteAs4OctetCapability() {
+ return remoteAs4OctetCapability;
+ }
+
+ /**
+ * Sets the BGP session remote 4 octet AS path capability.
+ */
+ void setRemoteAs4OctetCapability() {
+ this.remoteAs4OctetCapability = true;
+ }
+
+ /**
+ * Gets the BGP session local 4 octet AS path capability.
+ *
+ * @return true when the BGP session local has 4 octet AS path capability
+ */
+ public boolean getLocalAs4OctetCapability() {
+ return localAs4OctetCapability;
+ }
+
+ /**
+ * Sets the BGP session local 4 octet AS path capability.
+ */
+ void setLocalAs4OctetCapability() {
+ this.localAs4OctetCapability = true;
+ }
+
+ /**
+ * Gets the BGP session 4 octet AS path capability.
+ *
+ * @return true when the BGP session is 4 octet AS path capable
+ */
+ public boolean isAs4OctetCapable() {
+ return getRemoteAs4OctetCapability() && getLocalAs4OctetCapability();
+ }
+
+ /**
* Gets the BGP session local address.
*
* @return the BGP session local address
@@ -366,6 +409,15 @@
}
/**
+ * Sets the BGP session local AS number.
+ *
+ * @param localAs the BGP session local AS number to set
+ */
+ public void setLocalAs(long localAs) {
+ this.localAs = localAs;
+ }
+
+ /**
* Gets the BGP session local Holdtime.
*
* @return the BGP session local Holdtime