[ONOS-3845] BGP FlowSpec capability handling.
Change-Id: I5368dea5a0d959399550737ccf6eb6742a7510b9
diff --git a/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpCfg.java b/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpCfg.java
index 6f64d2b..70a5c9e 100755
--- a/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpCfg.java
+++ b/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpCfg.java
@@ -61,7 +61,7 @@
/**
* Get the status of the link state support for this BGP speaker.
*
- * @return true if the link state is supported else false
+ * @return true if the link state is supported else false
*/
boolean getLsCapability();
@@ -73,6 +73,20 @@
void setLsCapability(boolean lscapability);
/**
+ * Get the status of the flow specification support for this BGP speaker.
+ *
+ * @return true if the flow specification is supported otherwise false
+ */
+ boolean flowSpecCapability();
+
+ /**
+ * Set the flow specification support to this BGP speaker.
+ *
+ * @param flowSpecCapability BGP flow specification capability support
+ */
+ void setFlowSpecCapability(boolean flowSpecCapability);
+
+ /**
* Get the status of the 32 bit AS support for this BGP speaker.
*
* @return true if the 32 bit AS number is supported else false
@@ -82,7 +96,7 @@
/**
* Set the 32 bit AS support capability to this BGP speaker.
*
- * @param largeAs true value if the 32 bit AS is supported else false
+ * @param largeAs true value if the 32 bit AS is supported else false
*/
void setLargeASCapability(boolean largeAs);
@@ -166,7 +180,7 @@
/**
* Set the Router ID of this BGP speaker.
*
- * @param routerid IP address in string format
+ * @param routerid IP address in string format
*/
void setRouterId(String routerid);
@@ -174,7 +188,7 @@
* Add the BGP peer IP address and the AS number to which it belongs.
*
* @param routerid IP address in string format
- * @param remoteAs AS number to which it belongs
+ * @param remoteAs AS number to which it belongs
*
* @return true if added successfully else false
*/
@@ -197,7 +211,7 @@
* @param remoteAs AS number to which it belongs
* @param holdTime keep alive time for the connection
*
- * @return true if added successfully else false
+ * @return true if added successfully else false
*/
boolean addPeer(String routerid, int remoteAs, short holdTime);
@@ -215,14 +229,14 @@
*
* @param routerid router IP address
*
- * @return true of the configuration is found and able to connect else false
+ * @return true of the configuration is found and able to connect else false
*/
boolean connectPeer(String routerid);
/**
* Disconnect this BGP peer with this IP address.
*
- * @param routerid router IP address in string format
+ * @param routerid router IP address in string format
*
* @return true if the configuration is found and able to disconnect else false
*/
@@ -247,9 +261,9 @@
/**
* Check if this BGP peer is configured.
*
- * @param routerid router IP address in string format
+ * @param routerid router IP address in string format
*
- * @return true if configured exists else false
+ * @return true if configured exists else false
*/
boolean isPeerConfigured(String routerid);
@@ -272,7 +286,7 @@
/**
* Set the current connection state information.
*
- * @param routerid router IP address in string format
+ * @param routerid router IP address in string format
* @param state state information
*/
void setPeerConnState(String routerid, BgpPeerCfg.State state);
@@ -280,9 +294,9 @@
/**
* Check if the peer can be connected or not.
*
- * @param routerid router IP address in string format
+ * @param routerid router IP address in string format
*
- * @return true if the peer can be connected else false
+ * @return true if the peer can be connected else false
*/
boolean isPeerConnectable(String routerid);
diff --git a/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpSessionInfo.java b/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpSessionInfo.java
index a21a23d..eedde14 100755
--- a/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpSessionInfo.java
+++ b/protocols/bgp/api/src/main/java/org/onosproject/bgp/controller/BgpSessionInfo.java
@@ -13,7 +13,10 @@
package org.onosproject.bgp.controller;
+import java.util.List;
+
import org.onosproject.bgpio.protocol.BgpVersion;
+import org.onosproject.bgpio.types.BgpValueType;
/**
* Abstraction of an BGP session info. Maintian session parameters obtained during session creation.
@@ -67,4 +70,11 @@
* @return bgp identifier.
*/
int remoteBgpIdentifier();
+
+ /**
+ * Gets the BGP capabilities for this BGP peer.
+ *
+ * @return BGP peer capabilities.
+ */
+ List<BgpValueType> remoteBgpCapability();
}