Remove unused BGP OpenConfig provider implementation
[bgpcep.git] / bgp / rib-impl / src / main / yang / odl-bgp-rib-impl-cfg.yang
index 42e9a6fa010a0b83f6ca3b4327b8a1c04746c823..b5f20f0ba6052dab7cb6c14a72e548d8127b4acb 100644 (file)
@@ -6,18 +6,22 @@ module odl-bgp-rib-impl-cfg {
 
     import bgp-multiprotocol { prefix bgp-mp; revision-date 2013-09-19; }
     import bgp-rib { prefix rib; revision-date 2013-09-25; }
+    import bgp-rib-impl { prefix bgp-rib-impl; revision-date 2016-06-06; }
     import bgp-types { prefix bgp-t; revision-date 2013-09-19; }
     import odl-bgp-rib-cfg { prefix bgprib; revision-date 2013-07-01; }
-    import odl-bgp-parser-spi-cfg { prefix bgpspi; revision-date 2013-11-15; }
     import odl-bgp-rib-spi-cfg { prefix ribspi; revision-date 2013-11-15; }
-    import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
+    import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
+    import ietf-yang-types { prefix yang; revision-date 2013-07-15; }
     import opendaylight-md-sal-binding {prefix mdsb; revision-date 2013-10-28; }
+    import opendaylight-md-sal-dom {prefix sal; revision-date 2013-10-28; }
+    import opendaylight-md-sal-binding-v1-codec { prefix mdsb1; revision-date 2016-07-14; }
     import netty { prefix netty; revision-date 2013-11-19; }
     import config { prefix config; revision-date 2013-04-05; }
-    import protocol-framework { prefix pf; revision-date 2014-03-13; }
-    import odl-tcpmd5-cfg { prefix tcpmd5; revision-date 2014-04-27; }
-    import odl-tcpmd5-netty-cfg { prefix tcpmd5n; revision-date 2014-04-27; }
     import rpc-context { prefix rpcx; revision-date 2013-06-17; }
+    import odl-bgp-path-selection-mode { prefix bps; revision-date 2016-03-01;}
+    import bgp-peer { prefix peer; revision-date 2016-06-06; }
+    import bgp-stats-peer { prefix peer-stats; revision-date 2016-06-06; }
+    import bgp-stats-rib-impl { prefix rib-impl-stats; revision-date 2016-06-06; }
 
     organization "Cisco Systems, Inc.";
 
@@ -34,29 +38,22 @@ module odl-bgp-rib-impl-cfg {
         accompanies this distribution, and is available at
         http://www.eclipse.org/legal/epl-v10.html";
 
+    revision "2016-03-30" {
+        description
+            "Updated to simplify reconnection strategy.";
+    }
     revision "2013-04-09" {
         description
             "Initial revision";
     }
 
-    identity base-bgp-parser {
-        base config:module-type;
-        config:java-name-prefix BaseBGPParser;
-        config:provided-service bgpspi:extension;
-    }
-
-    augment "/config:modules/config:module/config:configuration" {
-        case base-bgp-parser {
-            when "/config:modules/config:module/config:type = 'base-bgp-parser'";
-        }
-    }
-
     identity bgp-dispatcher {
         description
             "Service representing a BGP Dispatcher.";
 
         base "config:service-type";
         config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher";
+        config:disable-osgi-service-registration;
     }
 
     identity bgp-dispatcher-impl {
@@ -68,63 +65,6 @@ module odl-bgp-rib-impl-cfg {
     augment "/config:modules/config:module/config:configuration" {
         case bgp-dispatcher-impl {
             when "/config:modules/config:module/config:type = 'bgp-dispatcher-impl'";
-
-            container bgp-extensions {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity bgpspi:consumer-extensions;
-                    }
-                }
-            }
-
-            container boss-group {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity netty:netty-threadgroup;
-                    }
-                }
-            }
-
-            container worker-group {
-                uses config:service-ref {
-                    refine type {
-                        mandatory true;
-                        config:required-identity netty:netty-threadgroup;
-                    }
-                }
-            }
-
-            container md5-channel-factory {
-                uses config:service-ref {
-                    refine type {
-                        mandatory false;
-                        config:required-identity tcpmd5n:md5-channel-factory;
-                    }
-                }
-            }
-
-            container md5-server-channel-factory {
-                uses config:service-ref {
-                    refine type {
-                        mandatory false;
-                        config:required-identity tcpmd5n:md5-server-channel-factory;
-                    }
-                }
-            }
-        }
-    }
-
-    identity base-bgp-rib {
-        base config:module-type;
-        config:provided-service ribspi:extension;
-        config:java-name-prefix BaseBGPRIB;
-    }
-
-    augment "/config:modules/config:module/config:configuration" {
-        case base-bgp-rib {
-            when "/config:modules/config:module/config:type = 'base-bgp-rib'";
         }
     }
 
@@ -134,6 +74,7 @@ module odl-bgp-rib-impl-cfg {
 
         base "config:service-type";
         config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.RIB";
+        config:disable-osgi-service-registration;
     }
 
     identity bgp-peer-registry {
@@ -142,6 +83,7 @@ module odl-bgp-rib-impl-cfg {
 
         base "config:service-type";
         config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry";
+        config:disable-osgi-service-registration;
     }
 
     identity strict-bgp-peer-registry {
@@ -153,8 +95,7 @@ module odl-bgp-rib-impl-cfg {
         config:java-name-prefix StrictBgpPeerRegistry;
     }
 
-
-     augment "/config:modules/config:module/config:configuration" {
+    augment "/config:modules/config:module/config:configuration" {
         case strict-bgp-peer-registry {
             when "/config:modules/config:module/config:type = 'strict-bgp-peer-registry'";
         }
@@ -170,7 +111,7 @@ module odl-bgp-rib-impl-cfg {
 
     identity bgp-peer-acceptor {
         description
-            "BGP peer acceptor that handles incomming bgp connections. Uses BGP peer registry to accept or decline incomming connections";
+            "BGP peer acceptor that handles incoming bgp connections. Uses BGP peer registry to accept or decline incoming connections";
 
         base config:module-type;
         config:java-name-prefix BGPPeerAcceptor;
@@ -228,7 +169,7 @@ module odl-bgp-rib-impl-cfg {
                 uses config:service-ref {
                     refine type {
                         mandatory true;
-                        config:required-identity mdsb:binding-async-data-broker;
+                        config:required-identity sal:dom-async-data-broker;
                     }
                 }
             }
@@ -242,13 +183,24 @@ module odl-bgp-rib-impl-cfg {
                 }
             }
 
+            container bgp-peer-registry {
+                description "BGP peer registry where current instance of BGP peer will be registered.";
+                uses config:service-ref {
+                    refine type {
+                        // FIXME backwards compatibility. If not configured, GLOBAL instance is used
+                        mandatory false;
+                        config:required-identity bgp-peer-registry;
+                    }
+                }
+            }
+
             leaf application-rib-id {
                 type rib:application-rib-id;
                 mandatory true;
             }
 
             leaf bgp-peer-id {
-                type inet:ipv4-address;
+                type bgp-t:bgp-id;
                 mandatory true;
             }
         }
@@ -262,6 +214,17 @@ module odl-bgp-rib-impl-cfg {
         config:java-class "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType";
     }
 
+    identity add-path {
+        base "config:service-type";
+        config:java-class "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.add.path.capability.AddressFamilies";
+    }
+
+    identity add-path-impl {
+        config:provided-service add-path;
+        base config:module-type;
+        config:java-name-prefix AddPathImpl;
+    }
+
     identity bgp-table-type-impl {
         description
             "Simple provider for bgp-table-type.";
@@ -275,16 +238,23 @@ module odl-bgp-rib-impl-cfg {
         case bgp-table-type-impl {
             when "/config:modules/config:module/config:type = 'bgp-table-type-impl'";
 
-            leaf afi {
-                type identityref {
-                    base bgp-t:address-family;
+            uses bgp-mp:bgp-table-type;
+        }
+    }
+
+    augment "/config:modules/config:module/config:configuration" {
+        case add-path-impl {
+            when "/config:modules/config:module/config:type = 'add-path-impl'";
+            container address-family {
+                uses config:service-ref {
+                    refine type {
+                        mandatory true;
+                        config:required-identity bgp-table-type;
+                    }
                 }
-                mandatory true;
             }
-            leaf safi {
-                type identityref {
-                    base bgp-t:subsequent-address-family;
-                }
+            leaf send-receive {
+                type bgp-mp:send-receive;
                 mandatory true;
             }
         }
@@ -294,31 +264,10 @@ module odl-bgp-rib-impl-cfg {
         case bgp-peer {
             when "/config:modules/config:module/config:type = 'bgp-peer'";
 
-            leaf host {
-                description "Remote host IP address";
-                type inet:ip-address;
-                mandatory true;
-            }
-
-            leaf port {
-                description "Remote host port";
-                type inet:port-number;
-                default 179;
-            }
-
-            leaf holdtimer {
-                type int16;
-                default 180;
-            }
-
-            leaf initiate-connection {
-                description "If true, connection will be initiated right away from current device.
-                    If not, the peer will only be registered to peer registry and available for incomming bgp connections.";
-                type boolean;
-                default true;
-            }
+            uses peer:bgp-peer-config;
 
             list advertized-table {
+                key "type name";
                 uses config:service-ref {
                     refine type {
                         mandatory true;
@@ -327,16 +276,22 @@ module odl-bgp-rib-impl-cfg {
                 }
             }
 
-            leaf remote-as {
-                description
-                    "Expected remote AS number. If not present, it is assumed
-                    to be the same as our local AS number.";
-                type uint32;
+            list add-path {
+                key "type name";
+                uses config:service-ref {
+                    refine type {
+                        config:required-identity add-path;
+                    }
+                }
             }
 
-            leaf password {
-                type tcpmd5:rfc2385-key;
-                description "RFC2385 shared secret";
+            container rpc-registry {
+                uses config:service-ref {
+                    refine type {
+                        mandatory false;
+                        config:required-identity mdsb:binding-rpc-registry;
+                    }
+                }
             }
 
             container rib {
@@ -361,98 +316,6 @@ module odl-bgp-rib-impl-cfg {
         }
     }
 
-    grouping message-state {
-        leaf count {
-            description "Total number of BGP messages.";
-            type uint32;
-            default 0;
-        }
-
-        leaf timestamp {
-            description "The BGP message timestamp (seconds).";
-            type uint32;
-            default 0;
-        }
-    }
-
-    grouping message-stats {
-        container received {
-            description "The received BGP messages statistics.";
-            uses message-state;
-        }
-
-        container sent {
-            description "The sent BGP messages statistics.";
-            uses message-state;
-        }
-    }
-
-    grouping error {
-        leaf code {
-            description "The BGP error code.";
-            type uint8;
-            default 0;
-        }
-
-        leaf sub-code {
-            description "The BGP error sub-code.";
-            type uint8;
-            default 0;
-        }
-    }
-
-    grouping preferences {
-        leaf bgp-id {
-            description "The BGP Identifier.";
-            type string;
-            default "";
-        }
-
-        leaf address {
-            description "The IP address of BGP connection.";
-            type string;
-            default "";
-        }
-
-        leaf port {
-            description "The port for connection between the BGP peers.";
-            type uint16;
-            default 0;
-        }
-
-        leaf as {
-            description "Autonomous system number.";
-            type uint32;
-            default 0;
-        }
-
-        leaf holdtime {
-            description "Time interval (in seconds) for HoldTimer proposed by the peer.";
-            type uint16;
-            default 0;
-        }
-
-        leaf four-octet-as-capability {
-            description "The BGP peer 4 byte AS numbers support capability.";
-            type boolean;
-            default "false";
-        }
-
-        list advertized-table-types {
-            description "The BGP Table-type capabilities advertized by the BGP peer.";
-            leaf afi {
-                description "Address Family Identifier.";
-                type string;
-                default "";
-            }
-            leaf safi {
-                description "Subsequent Address Family Identifier.";
-                type string;
-                default "";
-            }
-        }
-    }
-
     identity peer-rpc;
 
     augment "/config:modules/config:module/config:state" {
@@ -460,95 +323,13 @@ module odl-bgp-rib-impl-cfg {
             when "/config:modules/config:module/config:type = 'bgp-peer'";
 
             rpcx:rpc-context-instance "peer-rpc";
+            uses peer-stats:bgp-peer-stats;
+        }
 
-            container bgp-peer-state {
-                list route-table {
-
-                    leaf table-type {
-                        description "The table name - composed of AFI and SAFI.";
-                        type string;
-                    }
-
-                    leaf routes-count {
-                        description "The total number of routes in table.";
-                        type uint32;
-                        default 0;
-                    }
-                }
-
-                leaf session-established-count {
-                    description "The total number of time the BGP session was transitioned to Up state.";
-                    type uint32;
-                    default 0;
-                }
-            }
-
-            container bgp-session-state {
-
-                leaf session-state {
-                    description "The BGP peer connection state.";
-                    type string;
-                }
-
-                leaf session-duration {
-                    description "The session duration (time formated d:HH:mm:ss).";
-                    type string;
-                }
-
-                leaf holdtime-current {
-                    description "Time interval (in seconds) for HoldTimer established with the peer.";
-                    type uint16;
-                    default 0;
-                }
-
-                leaf keepalive-current {
-                    description "Time interval (in seconds) for KeepAlive established with the peer.";
-                    type uint16;
-                    default 0;
-                }
-
-                container speaker-preferences {
-                    description "The BGP speaker preferences, to which this BGP peer is connected.";
-                    uses preferences;
-                }
-
-                container peer-preferences {
-                    description "The BGP peer preferences.";
-                    uses preferences;
-                }
-
-                container messages-stats {
-                    description "The BGP messages statistics.";
-                    container total-msgs {
-                        description "The statistics for all received/sent BGP messages.";
-                        uses message-stats;
-                    }
-
-                    container keep-alive-msgs {
-                        description "The statistics for received/sent BGP Keep-Alive messages.";
-                        uses message-stats;
-                    }
-
-                    container update-msgs {
-                        description "The statistics for received/sent BGP Update messages.";
-                        uses message-stats;
-                    }
+        case rib-impl {
+            when "/config:modules/config:module/config:type = 'rib-impl'";
 
-                    container error-msgs {
-                        container error-received {
-                            description "The received BGP Error (notification) messages statistics.";
-                            uses message-state;
-                            uses error;
-                        }
-
-                        container error-sent {
-                            description "The sent BGP Error (notification) messages statistics.";
-                            uses message-state;
-                            uses error;
-                        }
-                    }
-                }
-            }
+            uses rib-impl-stats:bgp-render-stats;
         }
     }
 
@@ -561,9 +342,9 @@ module odl-bgp-rib-impl-cfg {
                 }
             }
         }
-     }
+    }
 
-     rpc reset-stats {
+    rpc reset-stats {
         description "Reset the BGP peer statistics.";
         input {
             uses rpcx:rpc-context-ref {
@@ -572,7 +353,43 @@ module odl-bgp-rib-impl-cfg {
                 }
             }
         }
-     }
+    }
+
+    identity bgp-path-selection-mode {
+        description
+            "Service representing an address family + path selection mode.";
+
+        base "config:service-type";
+        config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.BGPBestPathSelection";
+    }
+
+    identity bgp-psm-impl {
+        base config:module-type;
+        config:provided-service bgp-path-selection-mode;
+        config:java-name-prefix BGPPSMImpl;
+    }
+
+    augment "/config:modules/config:module/config:configuration" {
+        case bgp-psm-impl {
+            when "/config:modules/config:module/config:type = 'bgp-psm-impl'";
+            container path-address-family {
+                uses config:service-ref {
+                    refine type {
+                        mandatory true;
+                        config:required-identity bgp-table-type;
+                    }
+                }
+            }
+            container path-selection-mode {
+                uses config:service-ref {
+                    refine type {
+                        mandatory true;
+                        config:required-identity bps:path-selection-mode-factory;
+                    }
+                }
+            }
+        }
+    }
 
     identity rib-impl {
         base config:module-type;
@@ -585,6 +402,8 @@ module odl-bgp-rib-impl-cfg {
         case rib-impl {
             when "/config:modules/config:module/config:type = 'rib-impl'";
 
+            uses bgp-rib-impl:bgp-rib-impl-identifiers;
+
             container extensions {
                 uses config:service-ref {
                     refine type {
@@ -603,45 +422,33 @@ module odl-bgp-rib-impl-cfg {
                 }
             }
 
-            container session-reconnect-strategy {
+            container data-provider {
                 uses config:service-ref {
                     refine type {
                         mandatory true;
-                        config:required-identity pf:reconnect-strategy-factory;
+                        config:required-identity mdsb:binding-async-data-broker;
                     }
                 }
             }
 
-            container tcp-reconnect-strategy {
+            container codec-tree-factory {
                 uses config:service-ref {
                     refine type {
                         mandatory true;
-                        config:required-identity pf:reconnect-strategy-factory;
+                        config:required-identity mdsb1:binding-v1-codec-tree-factory;
                     }
                 }
             }
 
-            container data-provider {
+            container dom-data-provider {
                 uses config:service-ref {
                     refine type {
                         mandatory true;
-                        config:required-identity mdsb:binding-async-data-broker;
+                        config:required-identity sal:dom-async-data-broker;
                     }
                 }
             }
 
-            leaf local-as {
-                description "Our local AS number. Needed by best selection path attribute.";
-                type uint32;
-                mandatory true;
-            }
-
-            leaf bgp-rib-id {
-                description "Our local BGP identifier. Needed by best selection path attribute.";
-                mandatory true;
-                type inet:ipv4-address;
-            }
-
             list local-table {
                 uses config:service-ref {
                     refine type {
@@ -651,10 +458,12 @@ module odl-bgp-rib-impl-cfg {
                 }
             }
 
-            leaf rib-id {
-                description "Identifier of this RIB in local data store.";
-                type rib:rib-id;
-                mandatory true;
+            list rib-path-selection-mode {
+                uses config:service-ref {
+                    refine type {
+                        config:required-identity bgp-path-selection-mode;
+                    }
+                }
             }
         }
     }