BGP flow spec configuration system test issue fix.

Change-Id: Ia912fdb15f584b477ead748aed87e3c4fa003d29
diff --git a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpChannelHandler.java b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpChannelHandler.java
index d2c8098..af229a5 100755
--- a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpChannelHandler.java
+++ b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpChannelHandler.java
@@ -665,14 +665,18 @@
      */
     private void sendHandshakeOpenMessage() throws IOException, BgpParseException {
         int bgpId;
+        BgpCfg.FlowSpec flowSpec = bgpconfig.flowSpecCapability();
         boolean flowSpecStatus = false;
         boolean vpnFlowSpecStatus = false;
 
         bgpId = Ip4Address.valueOf(bgpconfig.getRouterId()).toInt();
-        BgpPeerConfig peerConfig = (BgpPeerConfig) bgpconfig.displayPeers(peerAddr);
-        if (peerConfig.flowSpecStatus() == BgpPeerCfg.FlowSpec.IPV4) {
+
+        if (flowSpec == BgpCfg.FlowSpec.IPV4) {
             flowSpecStatus = true;
-        } else if (peerConfig.flowSpecStatus() == BgpPeerCfg.FlowSpec.VPNV4) {
+        } else if (flowSpec == BgpCfg.FlowSpec.VPNV4) {
+            vpnFlowSpecStatus = true;
+        } else if (flowSpec == BgpCfg.FlowSpec.IPV4_VPNV4) {
+            flowSpecStatus = true;
             vpnFlowSpecStatus = true;
         }
 
@@ -792,9 +796,9 @@
         boolean isMultiProtocolLsCapability = false;
         boolean isMultiProtocolFlowSpecCapability = false;
         boolean isMultiProtocolVpnFlowSpecCapability = false;
+        BgpCfg.FlowSpec flowSpec = h.bgpconfig.flowSpecCapability();
 
-        BgpPeerConfig peerConfig = (BgpPeerConfig) h.bgpconfig.displayPeers(peerAddr);
-        if (peerConfig.flowSpecStatus() != BgpPeerCfg.FlowSpec.NONE) {
+        if (flowSpec != BgpCfg.FlowSpec.NONE) {
             isFlowSpecCapabilityCfg = true;
         }
 
diff --git a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpConfig.java b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpConfig.java
index 1c846eb..5b367a7 100755
--- a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpConfig.java
+++ b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpConfig.java
@@ -51,7 +51,7 @@
     private boolean largeAs = false;
     private int maxConnRetryTime;
     private int maxConnRetryCount;
-
+    private FlowSpec flowSpec = FlowSpec.NONE;
     private Ip4Address routerId = null;
     private TreeMap<String, BgpPeerCfg> bgpPeerTree = new TreeMap<>();
     private BgpConnectPeer connectPeer;
@@ -119,6 +119,16 @@
     }
 
     @Override
+    public FlowSpec flowSpecCapability() {
+        return this.flowSpec;
+    }
+
+    @Override
+    public void setFlowSpecCapability(FlowSpec flowSpec) {
+        this.flowSpec = flowSpec;
+    }
+
+    @Override
     public String getRouterId() {
         if (this.routerId != null) {
             return this.routerId.toString();
@@ -222,7 +232,7 @@
             if (disconnPeer != null) {
                 // TODO: send notification peer deconfigured
                 disconnPeer.disconnectPeer();
-            } else {
+            } else if (lspeer.connectPeer() != null) {
                 lspeer.connectPeer().disconnectPeer();
             }
             lspeer.setState(BgpPeerCfg.State.IDLE);
diff --git a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpPeerConfig.java b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpPeerConfig.java
index 65cd485..a8eaee3 100755
--- a/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpPeerConfig.java
+++ b/protocols/bgp/ctl/src/main/java/org/onosproject/bgp/controller/impl/BgpPeerConfig.java
@@ -30,7 +30,6 @@
     private State state;
     private boolean selfInitiated;
     private BgpConnectPeer connectPeer;
-    private FlowSpec flowSpecStatus = FlowSpec.NONE;
 
     /**
      * Constructor to initialize the values.
@@ -119,14 +118,4 @@
     public void setConnectPeer(BgpConnectPeer connectPeer) {
         this.connectPeer = connectPeer;
     }
-
-    @Override
-    public FlowSpec flowSpecStatus() {
-        return flowSpecStatus;
-    }
-
-    @Override
-    public void setFlowSpecStatus(FlowSpec flowSpecStatus) {
-        this.flowSpecStatus = flowSpecStatus;
-    }
 }