3 namespace "urn:opendaylight:params:xml:ns:yang:bgp-inet";
6 import bgp-rib { prefix bgp-rib; revision-date 2018-03-29; }
7 import bgp-multiprotocol { prefix bgp-mp; revision-date 2018-03-29; }
8 import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
9 import bgp-message { prefix bgp-msg; revision-date 2018-03-29; }
10 import bmp-monitor { prefix bmp-mon; revision-date 2018-03-29; }
12 organization "Cisco Systems, Inc.";
13 contact "Dana Kutenicsova <dkutenic@cisco.com>";
16 "This module contains the concept of IPv4 and IPv6 routes,
17 split from bgp-rib and bgp-multiprotocol models.
19 Copyright (c)2015 Cisco Systems, Inc. All rights reserved.
20 This program and the accompanying materials are made available
21 under the terms of the Eclipse Public License v1.0 which
22 accompanies this distribution, and is available at
23 http://www.eclipse.org/legal/epl-v10.html";
25 revision "2018-03-29" {
26 description "Add support for add-path for all afi/safi.";
29 revision "2017-12-07" {
30 description "Add support for add-path in base BGP NLRI.";
33 revision "2015-03-05" {
38 grouping ipv6-prefix {
40 type inet:ipv6-prefix;
44 grouping ipv4-prefixes {
45 container destination-ipv4 {
47 uses bgp-msg:ipv4-prefix-and-path-id;
52 grouping ipv6-prefixes {
53 container destination-ipv6 {
56 uses bgp-msg:path-id-grouping;
61 grouping ipv4-routes {
62 container ipv4-routes {
64 key "route-key path-id";
67 type inet:ipv4-prefix;
73 grouping ipv6-bgp-prefix-sid-tlv {
74 reference "https://tools.ietf.org/html/draft-ietf-idr-bgp-prefix-sid-02#section-4.2";
75 leaf process-ipv6-head-ability {
76 description "S flag position 0. If set then it means that the BGP speaker is capable of processing the
77 IPv6 Segment Routing Header.";
83 grouping ipv6-routes {
84 container ipv6-routes {
86 key "route-key path-id";
90 augment "attributes/bgp-prefix-sid/bgp-prefix-sid-tlvs/bgp-prefix-sid-tlv" {
92 uses ipv6-bgp-prefix-sid-tlv;
100 augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-reach-nlri/bgp-mp:advertized-routes/bgp-mp:destination-type" {
101 case destination-ipv4-case {
102 when "../../afi = ipv4";
105 case destination-ipv6-case {
106 when "../../afi = ipv6";
111 augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-unreach-nlri/bgp-mp:withdrawn-routes/bgp-mp:destination-type" {
112 case destination-ipv4-case {
113 when "../../afi = ipv4";
116 case destination-ipv6-case {
117 when "../../afi = ipv6";
122 augment "/bgp-rib:application-rib/bgp-rib:tables/bgp-rib:routes" {
123 case ipv4-routes-case {
127 case ipv6-routes-case {
132 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:loc-rib/bgp-rib:tables/bgp-rib:routes" {
133 case ipv4-routes-case {
137 case ipv6-routes-case {
142 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-in/bgp-rib:tables/bgp-rib:routes" {
143 case ipv4-routes-case {
147 case ipv6-routes-case {
152 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:effective-rib-in/bgp-rib:tables/bgp-rib:routes" {
153 case ipv4-routes-case {
157 case ipv6-routes-case {
162 augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-out/bgp-rib:tables/bgp-rib:routes" {
163 case ipv4-routes-case {
167 case ipv6-routes-case {
172 augment "/bmp-mon:bmp-monitor/bmp-mon:monitor/bmp-mon:router/bmp-mon:peer/bmp-mon:pre-policy-rib/bmp-mon:tables/bmp-mon:routes" {
173 case ipv4-routes-case {
177 case ipv6-routes-case {
182 augment "/bmp-mon:bmp-monitor/bmp-mon:monitor/bmp-mon:router/bmp-mon:peer/bmp-mon:post-policy-rib/bmp-mon:tables/bmp-mon:routes" {
183 case ipv4-routes-case {
187 case ipv6-routes-case {
192 augment "/bgp-msg:update/bgp-msg:attributes/bgp-msg:bgp-prefix-sid/bgp-msg:bgp-prefix-sid-tlvs/bgp-msg:bgp-prefix-sid-tlv" {
194 uses ipv6-bgp-prefix-sid-tlv;