1 // vi: set smarttab et sw=4 tabstop=4:
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-types { prefix bgp-t; revision-date 2013-09-19; }
10 import config-bgp-rib { prefix bgprib; revision-date 2013-07-01; }
11 import config-bgp-parser-spi { prefix bgpspi; revision-date 2013-11-15; }
12 import config-bgp-rib-spi { prefix ribspi; revision-date 2013-11-15; }
13 import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
14 import opendaylight-md-sal-binding {prefix mdsb; revision-date 2013-10-28; }
15 import netty { prefix netty; revision-date 2013-11-19; }
16 import config { prefix config; revision-date 2013-04-05; }
17 import protocol-framework { prefix pf; revision-date 2014-03-13; }
19 organization "Cisco Systems, Inc.";
21 contact "Robert Varga <rovarga@cisco.com>";
24 "This module contains the base YANG definitions for
25 BGP listener implementation.
27 Copyright (c)2013 Cisco Systems, Inc. All rights reserved.;
29 This program and the accompanying materials are made available
30 under the terms of the Eclipse Public License v1.0 which
31 accompanies this distribution, and is available at
32 http://www.eclipse.org/legal/epl-v10.html";
34 revision "2013-04-09" {
39 identity base-bgp-parser {
40 base config:module-type;
41 config:java-name-prefix BaseBGPParser;
42 config:provided-service bgpspi:extension;
45 augment "/config:modules/config:module/config:configuration" {
46 case base-bgp-parser {
47 when "/config:modules/config:module/config:type = 'base-bgp-parser'";
51 identity bgp-dispatcher {
53 "Service representing a BGP Dispatcher.";
55 base "config:service-type";
56 config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher";
59 identity bgp-dispatcher-impl {
60 base config:module-type;
61 config:provided-service bgp-dispatcher;
62 config:java-name-prefix BGPDispatcherImpl;
65 augment "/config:modules/config:module/config:configuration" {
66 case bgp-dispatcher-impl {
67 when "/config:modules/config:module/config:type = 'bgp-dispatcher-impl'";
69 container bgp-extensions {
70 uses config:service-ref {
73 config:required-identity bgpspi:consumer-extensions;
79 uses config:service-ref {
82 config:required-identity netty:netty-timer;
87 container boss-group {
88 uses config:service-ref {
91 config:required-identity netty:netty-threadgroup;
96 container worker-group {
97 uses config:service-ref {
100 config:required-identity netty:netty-threadgroup;
107 identity base-bgp-rib {
108 base config:module-type;
109 config:provided-service ribspi:extension;
110 config:java-name-prefix BaseBGPRIB;
113 augment "/config:modules/config:module/config:configuration" {
115 when "/config:modules/config:module/config:type = 'base-bgp-rib'";
119 identity rib-instance {
121 "Service representing a RIB instance";
123 base "config:service-type";
124 config:java-class "org.opendaylight.protocol.bgp.rib.impl.spi.RIB";
129 "BGP peer instance.";
131 base config:module-type;
132 config:java-name-prefix BGPPeer;
135 identity bgp-table-type {
137 "Service representing a AFI/SAFI pair";
139 base "config:service-type";
140 config:java-class "org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.BgpTableType";
143 identity bgp-table-type-impl {
145 "Simple provider for bgp-table-type.";
147 config:provided-service bgp-table-type;
148 base config:module-type;
149 config:java-name-prefix BGPTableTypeImpl;
152 augment "/config:modules/config:module/config:configuration" {
153 case bgp-table-type-impl {
154 when "/config:modules/config:module/config:type = 'bgp-table-type-impl'";
158 base bgp-t:address-family;
164 base bgp-t:subsequent-address-family;
171 augment "/config:modules/config:module/config:configuration" {
173 when "/config:modules/config:module/config:type = 'bgp-peer'";
176 description "Remote host IP address";
177 type inet:ip-address;
182 description "Remote host port";
183 type inet:port-number;
192 list advertized-table {
193 uses config:service-ref {
196 config:required-identity bgp-table-type;
203 "Expected remote AS number. If not present, it is assumed
204 to be the same as our local AS number.";
209 uses config:service-ref {
212 config:required-identity rib-instance;
220 base config:module-type;
221 config:provided-service bgprib:rib;
222 config:provided-service rib-instance;
223 config:java-name-prefix RIBImpl;
226 augment "/config:modules/config:module/config:configuration" {
228 when "/config:modules/config:module/config:type = 'rib-impl'";
230 container extensions {
231 uses config:service-ref {
234 config:required-identity ribspi:consumer-extensions;
239 container bgp-dispatcher {
240 uses config:service-ref {
243 config:required-identity bgp-dispatcher;
248 container session-reconnect-strategy {
249 uses config:service-ref {
252 config:required-identity pf:reconnect-strategy-factory;
257 container tcp-reconnect-strategy {
258 uses config:service-ref {
261 config:required-identity pf:reconnect-strategy-factory;
266 container data-provider {
267 uses config:service-ref {
270 config:required-identity mdsb:binding-data-broker;
276 description "Our local AS number. Needed by best selection path attribute.";
282 description "Our local BGP identifier. Needed by best selection path attribute.";
284 type inet:ipv4-address;
288 uses config:service-ref {
291 config:required-identity bgp-table-type;
297 description "Identifier of this RIB in local data store.";