1 // vi: set smarttab et sw=4 tabstop=4:
2 module odl-bgp-rib-impl-cfg {
4 namespace "urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl";
7 import bgp-multiprotocol { prefix bgp-mp; revision-date 2013-09-19; }
8 import bgp-rib { prefix rib; revision-date 2013-09-25; }
9 import bgp-rib-impl { prefix bgp-rib-impl; revision-date 2016-06-06; }
10 import bgp-types { prefix bgp-t; revision-date 2013-09-19; }
11 import odl-bgp-rib-cfg { prefix bgprib; revision-date 2013-07-01; }
12 import odl-bgp-parser-spi-cfg { prefix bgpspi; revision-date 2013-11-15; }
13 import odl-bgp-rib-spi-cfg { prefix ribspi; revision-date 2013-11-15; }
14 import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
15 import ietf-yang-types { prefix yang; revision-date 2013-07-15; }
16 import opendaylight-md-sal-binding {prefix mdsb; revision-date 2013-10-28; }
17 import opendaylight-md-sal-dom {prefix sal; revision-date 2013-10-28; }
18 import netty { prefix netty; revision-date 2013-11-19; }
19 import config { prefix config; revision-date 2013-04-05; }
20 import odl-tcpmd5-cfg { prefix tcpmd5; revision-date 2014-04-27; }
21 import odl-tcpmd5-netty-cfg { prefix tcpmd5n; revision-date 2014-04-27; }
22 import rpc-context { prefix rpcx; revision-date 2013-06-17; }
23 import odl-bgp-openconfig-spi-cfg { prefix bgp-oc-spi; revision-date 2015-09-25; }
24 import odl-bgp-path-selection-mode { prefix bps; revision-date 2016-03-01;}
25 import bgp-peer { prefix peer; revision-date 2016-06-06; }
26 import bgp-stats-peer { prefix peer-stats; revision-date 2016-06-06; }
27 import bgp-stats-rib-impl { prefix rib-impl-stats; revision-date 2016-06-06; }
29 organization "Cisco Systems, Inc.";
31 contact "Robert Varga <rovarga@cisco.com>";
34 "This module contains the base YANG definitions for
35 BGP listener implementation.
37 Copyright (c)2013 Cisco Systems, Inc. All rights reserved.;
39 This program and the accompanying materials are made available
40 under the terms of the Eclipse Public License v1.0 which
41 accompanies this distribution, and is available at
42 http://www.eclipse.org/legal/epl-v10.html";
44 revision "2016-03-30" {
46 "Updated to simplify reconnection strategy.";
48 revision "2013-04-09" {
53 identity bgp-dispatcher {
55 "Service representing a BGP Dispatcher.";
57 base "config:service-type";
58 config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher";
61 identity bgp-dispatcher-impl {
62 base config:module-type;
63 config:provided-service bgp-dispatcher;
64 config:java-name-prefix BGPDispatcherImpl;
67 augment "/config:modules/config:module/config:configuration" {
68 case bgp-dispatcher-impl {
69 when "/config:modules/config:module/config:type = 'bgp-dispatcher-impl'";
71 container bgp-extensions {
72 uses config:service-ref {
75 config:required-identity bgpspi:consumer-extensions;
80 container boss-group {
81 uses config:service-ref {
84 config:required-identity netty:netty-threadgroup;
89 container worker-group {
90 uses config:service-ref {
93 config:required-identity netty:netty-threadgroup;
98 container md5-channel-factory {
99 uses config:service-ref {
102 config:required-identity tcpmd5n:md5-channel-factory;
107 container md5-server-channel-factory {
108 uses config:service-ref {
111 config:required-identity tcpmd5n:md5-server-channel-factory;
118 identity base-bgp-rib {
119 base config:module-type;
120 config:provided-service ribspi:extension;
121 config:java-name-prefix BaseBGPRIB;
124 augment "/config:modules/config:module/config:configuration" {
126 when "/config:modules/config:module/config:type = 'base-bgp-rib'";
130 identity rib-instance {
132 "Service representing a RIB instance";
134 base "config:service-type";
135 config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.RIB";
138 identity bgp-peer-registry {
140 "Registry of BGP peers. Every new BGP in/out connection looks for peers to handle bgp messages in this registry";
142 base "config:service-type";
143 config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry";
146 identity strict-bgp-peer-registry {
148 "Registry of BGP peers that allows only one connection per 2 peers. Uses IP address for Peer identification and BGP Ids to resolve duplicate connections";
150 config:provided-service bgp-peer-registry;
151 base config:module-type;
152 config:java-name-prefix StrictBgpPeerRegistry;
155 augment "/config:modules/config:module/config:configuration" {
156 case strict-bgp-peer-registry {
157 when "/config:modules/config:module/config:type = 'strict-bgp-peer-registry'";
163 "BGP peer instance.";
165 base config:module-type;
166 config:java-name-prefix BGPPeer;
169 identity bgp-peer-acceptor {
171 "BGP peer acceptor that handles incoming bgp connections. Uses BGP peer registry to accept or decline incoming connections";
173 base config:module-type;
174 config:java-name-prefix BGPPeerAcceptor;
177 augment "/config:modules/config:module/config:configuration" {
178 case bgp-peer-acceptor {
179 when "/config:modules/config:module/config:type = 'bgp-peer-acceptor'";
181 leaf binding-address {
182 description "IP address to bind to";
183 type inet:ip-address;
188 description "Port to bind to";
189 type inet:port-number;
193 container accepting-bgp-dispatcher {
194 uses config:service-ref {
197 config:required-identity bgp-dispatcher;
202 container accepting-peer-registry {
203 uses config:service-ref {
206 config:required-identity bgp-peer-registry;
213 identity bgp-application-peer {
215 "Application peer handler which handles translation from custom RIB into local RIB";
217 base config:module-type;
218 config:java-name-prefix BGPApplicationPeer;
221 augment "/config:modules/config:module/config:configuration" {
222 case bgp-application-peer {
223 when "/config:modules/config:module/config:type = 'bgp-application-peer'";
225 container data-broker {
226 uses config:service-ref {
229 config:required-identity sal:dom-async-data-broker;
234 container target-rib {
235 uses config:service-ref {
238 config:required-identity rib-instance;
243 container bgp-peer-registry {
244 description "BGP peer registry where current instance of BGP peer will be registered.";
245 uses config:service-ref {
247 // FIXME backwards compatibility. If not configured, GLOBAL instance is used
249 config:required-identity bgp-peer-registry;
254 leaf application-rib-id {
255 type rib:application-rib-id;
266 identity bgp-table-type {
268 "Service representing a AFI/SAFI pair";
270 base "config:service-type";
271 config:java-class "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType";
275 base "config:service-type";
276 config:java-class "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.mp.capabilities.add.path.capability.AddressFamilies";
279 identity add-path-impl {
280 config:provided-service add-path;
281 base config:module-type;
282 config:java-name-prefix AddPathImpl;
285 identity bgp-table-type-impl {
287 "Simple provider for bgp-table-type.";
289 config:provided-service bgp-table-type;
290 base config:module-type;
291 config:java-name-prefix BGPTableTypeImpl;
294 augment "/config:modules/config:module/config:configuration" {
295 case bgp-table-type-impl {
296 when "/config:modules/config:module/config:type = 'bgp-table-type-impl'";
298 uses bgp-mp:bgp-table-type;
302 augment "/config:modules/config:module/config:configuration" {
304 when "/config:modules/config:module/config:type = 'add-path-impl'";
305 container address-family {
306 uses config:service-ref {
309 config:required-identity bgp-table-type;
314 type bgp-mp:send-receive;
320 augment "/config:modules/config:module/config:configuration" {
322 when "/config:modules/config:module/config:type = 'bgp-peer'";
324 uses peer:bgp-peer-config;
326 list advertized-table {
328 uses config:service-ref {
331 config:required-identity bgp-table-type;
338 uses config:service-ref {
340 config:required-identity add-path;
345 container rpc-registry {
346 uses config:service-ref {
349 config:required-identity mdsb:binding-rpc-registry;
355 uses config:service-ref {
358 config:required-identity rib-instance;
363 container peer-registry {
364 description "BGP peer registry where current instance of BGP peer will be registered.";
365 uses config:service-ref {
367 // FIXME backwards compatibility. If not configured, GLOBAL instance is used
369 config:required-identity bgp-peer-registry;
378 augment "/config:modules/config:module/config:state" {
380 when "/config:modules/config:module/config:type = 'bgp-peer'";
382 rpcx:rpc-context-instance "peer-rpc";
383 uses peer-stats:bgp-peer-stats;
387 when "/config:modules/config:module/config:type = 'rib-impl'";
389 uses rib-impl-stats:bgp-render-stats;
394 description "Restart the session between BGP peers";
396 uses rpcx:rpc-context-ref {
397 refine context-instance {
398 rpcx:rpc-context-instance peer-rpc;
405 description "Reset the BGP peer statistics.";
407 uses rpcx:rpc-context-ref {
408 refine context-instance {
409 rpcx:rpc-context-instance peer-rpc;
415 identity bgp-path-selection-mode {
417 "Service representing an address family + path selection mode.";
419 base "config:service-type";
420 config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.BGPBestPathSelection";
423 identity bgp-psm-impl {
424 base config:module-type;
425 config:provided-service bgp-path-selection-mode;
426 config:java-name-prefix BGPPSMImpl;
429 augment "/config:modules/config:module/config:configuration" {
431 when "/config:modules/config:module/config:type = 'bgp-psm-impl'";
432 container path-address-family {
433 uses config:service-ref {
436 config:required-identity bgp-table-type;
440 container path-selection-mode {
441 uses config:service-ref {
444 config:required-identity bps:path-selection-mode-factory;
452 base config:module-type;
453 config:provided-service bgprib:rib;
454 config:provided-service rib-instance;
455 config:java-name-prefix RIBImpl;
458 augment "/config:modules/config:module/config:configuration" {
460 when "/config:modules/config:module/config:type = 'rib-impl'";
462 uses bgp-rib-impl:bgp-rib-impl-identifiers;
464 container extensions {
465 uses config:service-ref {
468 config:required-identity ribspi:consumer-extensions;
473 container bgp-dispatcher {
474 uses config:service-ref {
477 config:required-identity bgp-dispatcher;
482 container data-provider {
483 uses config:service-ref {
486 config:required-identity mdsb:binding-async-data-broker;
491 container codec-tree-factory {
492 uses config:service-ref {
495 config:required-identity mdsb:binding-codec-tree-factory;
500 container dom-data-provider {
501 uses config:service-ref {
504 config:required-identity sal:dom-async-data-broker;
509 container openconfig-provider {
510 uses config:service-ref {
513 config:required-identity bgp-oc-spi:bgp-openconfig-provider;
519 uses config:service-ref {
522 config:required-identity bgp-table-type;
527 list rib-path-selection-mode {
528 uses config:service-ref {
530 config:required-identity bgp-path-selection-mode;