3 namespace "urn:opendaylight:params:xml:ns:yang:v3po";
6 revision "2015-01-05" {
7 description "Initial revision of v3po model";
13 import ietf-interfaces {
16 import ietf-yang-types {
19 import ietf-inet-types {
29 typedef bridge-domain-ref {
31 path "/vpp/bridge-domains/bridge-domain/name";
34 "This type is used by to reference a bridge domain table";
37 typedef bridged-virtual-interface-ref {
39 path "/if:interfaces/if:interface/l2/bridged-virtual-interface";
42 "This type is used by to reference a bridged virtual interface";
45 identity vxlan-tunnel {
46 base if:interface-type;
50 // FIXME: should be in a vxlan-specific model
51 description "VNI used in a VXLAN tunnel";
57 grouping bridge-domain-attributes {
62 "Enable/disable L2 flooding.";
68 "Enable/disable L2 forwarding.";
74 "Enable/disable L2 learning.";
76 leaf unknown-unicast-flood {
80 leaf arp-termination {
86 augment /if:interfaces/if:interface {
87 ext:augment-identifier "vpp-interface-augmentation";
89 when "../if:type = 'ianaift:ethernetCsmacd'";
97 "The size, in octets, of the largest packet that the
98 hardware interface will send and receive.";
108 // FIXME: this should be in an vxlan-specific extension
109 when "../if:type = 'v3po:vxlan-tunnel'";
112 /* mandatory true; */
113 type inet:ipv4-address;
116 /* mandatory true; */
117 type inet:ipv4-address;
120 /* mandatory true; */
129 "Parameters for configuring Layer2 features on interfaces.";
130 must "(not (../if:ipv4[if:enabled = 'true']/if:address/if:ip) and " +
131 "not (../if:ipv6[if:enabled = 'true']/if:address/if:ip))";
133 choice interconnection {
134 case xconnect-based {
135 leaf xconnect-outgoing-interface {
136 /* Don't allow selection of this interface */
137 must "../../if:name != current()";
138 type if:interface-ref;
145 type bridge-domain-ref;
147 "Interfaces in a bridge-domain forward packets to other
148 interfaces in the same bridge-domain based on
149 destination mac address.";
151 leaf split-horizon-group {
152 when "../bridge-domain";
158 "Interface's split-horizon group. Interfaces in the same
159 bridge-domain and split-horizon group can not forward
160 packets between each other. ";
162 leaf bridged-virtual-interface {
163 when "../bridge-domain";
167 "Interface forward packets in the bridge-domain
168 associated with the BVI.";
179 container bridge-domains {
182 // TODO: where does this come from?
189 uses bridge-domain-attributes;
195 type yang:phys-address;
204 leaf outgoing-interface {
205 type if:interface-ref;
212 augment /if:interfaces-state/if:interface {
213 ext:augment-identifier "vpp-interface-state-augmentation";
219 when "../if:type = 'ianaift:ethernetCsmacd'";
223 leaf manufacturer-description {
234 when "../if:type = 'v3po:vxlan-tunnel'";
237 type inet:ipv4-address;
240 type inet:ipv4-address;
250 choice interconnection {
251 case xconnect-based {
252 leaf xconnect-outgoing-interface {
253 type if:interface-ref;
258 type bridge-domain-ref;
260 leaf split-horizon-group {
263 leaf bridged-virtual-interface {
271 augment /if:interfaces-state/if:interface/if:statistics {
272 ext:augment-identifier "vpp-interface-statistics-augmentation";
273 leaf in-errors-no-buf {
276 leaf in-errors-miss {
279 leaf out-discards-fifo-full {
284 container vpp-state {
288 "VPP operational data";
290 container bridge-domains {
291 // FIXME: Should this live in bridge-domain.yang in a modular fashion ?
299 uses bridge-domain-attributes;
305 type if:interface-state-ref;
308 leaf split-horizon-group {
312 leaf bridged-virtual-interface {
321 type yang:phys-address;
326 leaf outgoing-interface {
327 when "../v3po:action = 'forward'";
328 type if:interface-state-ref;
337 leaf bridged-virtual-interface {
338 when "../v3po:action = 'forward'";
343 "bridge-domain operational data";
351 leaf build-directory {
365 rpc vpp-poll-oper-data {