417100b7bb3db40418ff4a6089ef7f86296fdcb2
[bgpcep.git] / bgp / l3vpn / src / main / yang / bgp-vpn-ipv4.yang
1 module bgp-vpn-ipv4 {
2     namespace "urn:opendaylight:params:xml:ns:yang:bgp-vpn-ipv4";
3     prefix "bgp-vpn-ipv4";
4
5     import bgp-message { prefix bgp-msg; revision-date 2018-03-29; }
6     import bgp-multiprotocol { prefix bgp-mp; revision-date 2018-03-29; }
7     import bmp-monitor { prefix bmp-mon; revision-date 2018-03-29; }
8     import bgp-rib { prefix bgp-rib; revision-date 2018-03-29; }
9     import bgp-vpn { prefix bgp-vpn; revision-date 2018-03-29; }
10
11     organization "Cisco Systems, Inc.";
12     contact "Iveta Halanova <ihalanov@cisco.com>";
13
14     description
15         "This module contains the base data model of a BGP message.
16         It rolls up the definitions contained in RFC4364.
17
18         Copyright (c)2016 Cisco Systems, Inc. All rights reserved.
19
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";
24
25     revision "2018-03-29" {
26         description "Add support for add-path for all afi/safi.";
27     }
28
29     revision "2017-12-07" {
30         description "Add support for add-path in base BGP NLRI.";
31     }
32
33     revision 2016-02-10 {
34         reference "https://tools.ietf.org/html/rfc4364";
35         description "Initial revision";
36     }
37
38     grouping l3vpn-ipv4-routes {
39         container vpn-ipv4-routes {
40             uses bgp-vpn:l3vpn-ip-route;
41         }
42     }
43
44     grouping l3vpn-ipv4-destination {
45         container vpn-ipv4-destination {
46             uses bgp-vpn:l3vpn-ip-destination-type;
47         }
48     }
49
50     augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-reach-nlri/bgp-mp:advertized-routes/bgp-mp:destination-type" {
51         case destination-vpn-ipv4-case {
52             uses l3vpn-ipv4-destination;
53         }
54     }
55
56     augment "/bgp-msg:update/bgp-msg:attributes/bgp-mp:mp-unreach-nlri/bgp-mp:withdrawn-routes/bgp-mp:destination-type" {
57         case destination-vpn-ipv4-case {
58             uses l3vpn-ipv4-destination;
59         }
60     }
61
62     augment "/bgp-rib:application-rib/bgp-rib:tables/bgp-rib:routes" {
63         case vpn-ipv4-routes-case {
64             uses l3vpn-ipv4-routes;
65         }
66     }
67
68     augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:loc-rib/bgp-rib:tables/bgp-rib:routes" {
69         case vpn-ipv4-routes-case {
70             uses l3vpn-ipv4-routes;
71         }
72     }
73
74     augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-in/bgp-rib:tables/bgp-rib:routes" {
75         case vpn-ipv4-routes-case {
76             uses l3vpn-ipv4-routes;
77         }
78     }
79
80     augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:effective-rib-in/bgp-rib:tables/bgp-rib:routes" {
81         case vpn-ipv4-routes-case {
82             uses l3vpn-ipv4-routes;
83         }
84     }
85
86     augment "/bgp-rib:bgp-rib/bgp-rib:rib/bgp-rib:peer/bgp-rib:adj-rib-out/bgp-rib:tables/bgp-rib:routes" {
87         case vpn-ipv4-routes-case {
88             uses l3vpn-ipv4-routes;
89         }
90     }
91
92     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" {
93         case vpn-ipv4-routes-case {
94             uses l3vpn-ipv4-routes;
95         }
96     }
97
98     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" {
99         case vpn-ipv4-routes-case {
100             uses l3vpn-ipv4-routes;
101         }
102     }
103 }