Bug 3117 - Capability Parameter Parse Issue
[bgpcep.git] / bgp / parser-api / src / main / yang / bgp-multiprotocol.yang
1 module bgp-multiprotocol {
2     yang-version 1;
3     namespace "urn:opendaylight:params:xml:ns:yang:bgp-multiprotocol";
4     prefix "bgp-mp";
5
6     import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
7     import bgp-message { prefix bgp-msg; revision-date 2013-09-19; }
8     import bgp-types { prefix bgp-t; revision-date 2013-09-19; }
9
10     organization "Cisco Systems, Inc.";
11     contact "Dana Kutenicsova <dkutenic@cisco.com>";
12
13     description
14         "This module contains the base data model of a BGP message.
15         It rolls up the definitions contained in RFC4271
16         and draft-ietf-idr-ls-distribution-03.
17
18         Copyright (c)2013 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 "2013-09-19" {
26         description
27             "Split off basic types";
28     }
29
30     revision "2013-09-18" {
31         description
32             "Initial revision.";
33         reference "RFC4760";
34     }
35
36     grouping bgp-table-type {
37         leaf afi {
38             type identityref {
39                 base bgp-t:address-family;
40             }
41         }
42         leaf safi {
43             type identityref {
44                 base bgp-t:subsequent-address-family;
45             }
46         }
47     }
48
49     grouping destination {
50         choice destination-type {
51             // to be augmented
52         }
53     }
54
55     augment "/bgp-msg:open/bgp-msg:bgp-parameters/bgp-msg:optional-capabilities/bgp-msg:c-parameters" {
56         container multiprotocol-capability {
57             reference "http://tools.ietf.org/html/rfc4760#section-8";
58             uses bgp-table-type;
59         }
60         container graceful-restart-capability {
61             reference "http://tools.ietf.org/html/rfc4724#section-3";
62
63             leaf restart-flags {
64                 type bits {
65                     bit restart-state {
66                         position 0;
67                         }
68                     }
69                 mandatory true;
70             }
71
72             leaf restart-time {
73                 type uint16 {
74                     range 0..4095;
75                 }
76                 units seconds;
77                 mandatory true;
78             }
79
80             list tables {
81                 uses bgp-table-type;
82                 key "afi safi";
83
84                 leaf afi-flags {
85                     type bits {
86                         bit forwarding-state {
87                             position 0;
88                         }
89                     }
90                     mandatory true;
91                 }
92             }
93         }
94     }
95
96     augment "/bgp-msg:update/bgp-msg:attributes" {
97         container mp-reach-nlri {
98             reference "http://tools.ietf.org/html/rfc4760#section-3";
99
100             uses bgp-table-type;
101             uses bgp-t:next-hop;
102
103             container advertized-routes {
104                 uses destination;
105             }
106         }
107     }
108
109     augment "/bgp-msg:update/bgp-msg:attributes" {
110         container mp-unreach-nlri {
111             reference "http://tools.ietf.org/html/rfc4760#section-4";
112
113             uses bgp-table-type;
114
115             container withdrawn-routes {
116                 uses destination;
117             }
118         }
119     }
120 }