Split out yang-data-tree-impl
[yangtools.git] / data / yang-data-tree-ri / src / test / resources / yt892 / test-bgp.yang
1 module test-bgp {
2     yang-version "1";
3     namespace "urn:opendaylight:params:xml:ns:yang:test:bgp";
4     prefix "bgp";
5
6     import test-bgp-multiprotocol { prefix bgp-mp; }
7     import test-bgp-types { prefix bgp-types; }
8
9     revision "2018-08-14";
10
11     grouping bgp-neighbor_config {
12         leaf peer-type {
13             type bgp-types:peer-type;
14         }
15     }
16
17     grouping bgp-neighbor-add-paths_config {
18         leaf receive {
19             type boolean;
20             default false;
21         }
22
23         leaf send-max {
24             type uint8;
25         }
26     }
27
28     grouping bgp-neighbor-peer-group_config {
29         leaf peer-group {
30             type leafref {
31                 path "/bgp/peer-groups/peer-group/peer-group-name";
32             }
33         }
34     }
35
36     grouping bgp-neighbors {
37         list neighbor {
38             key "neighbor-address";
39
40             leaf neighbor-address {
41                 type string;
42             }
43
44             uses bgp-neighbor-group;
45         }
46     }
47
48     grouping bgp-peer-group {
49         list peer-group {
50             key "peer-group-name";
51
52             leaf peer-group-name {
53                 type string;
54             }
55
56             uses bgp-neighbor-group;
57
58         }
59     }
60
61     grouping bgp-neighbor-group {
62         container config {
63             uses bgp-neighbor_config;
64         }
65
66         container afi-safis {
67             uses bgp-mp:bgp-common-afi-safi-list;
68         }
69     }
70
71     grouping bgp-neighbor-neighbor-address_config {
72         leaf neighbor-address {
73             type string;
74         }
75     }
76
77     grouping bgp-peer-group-peer-group-name_config {
78         leaf peer-group-name {
79             type string;
80         }
81     }
82
83     augment /bgp/neighbors/neighbor/config {
84         uses bgp-neighbor-peer-group_config;
85     }
86
87     augment /bgp/neighbors/neighbor/config {
88         uses bgp-neighbor-neighbor-address_config;
89     }
90
91     augment /bgp/peer-groups/peer-group/config {
92         uses bgp-peer-group-peer-group-name_config;
93     }
94
95     grouping bgp-top {
96         container bgp {
97             presence "Container for BGP protocol hierarchy";
98
99             container neighbors {
100                 uses bgp-neighbors;
101             }
102
103             container peer-groups {
104                 uses bgp-peer-group;
105             }
106         }
107     }
108
109     uses bgp-top;
110 }
111