diff options
Diffstat (limited to 'v3po/api/src/main/yang/v3po.yang')
-rw-r--r-- | v3po/api/src/main/yang/v3po.yang | 113 |
1 files changed, 80 insertions, 33 deletions
diff --git a/v3po/api/src/main/yang/v3po.yang b/v3po/api/src/main/yang/v3po.yang index 7fc1999fa..7ef5d8876 100644 --- a/v3po/api/src/main/yang/v3po.yang +++ b/v3po/api/src/main/yang/v3po.yang @@ -22,6 +22,11 @@ module v3po { - added support for port mirroring"; } + revision "2017-06-07" { + description "Eliminated config leafrefs in operational tree"; + } + + revision "2015-01-05" { description "Initial revision of v3po model"; } @@ -465,7 +470,7 @@ module v3po { } } - grouping l2-base-attributes { + grouping l2-config-attributes { description "Parameters for configuring Layer2 features on interfaces."; @@ -474,43 +479,67 @@ module v3po { leaf xconnect-outgoing-interface { /* Don't allow selection of this interface */ must "../../if:name != current()"; - type if:interface-ref; // todo use interface-state-ref for operational data? + type if:interface-ref; description "L2 xconnect mode"; } } case bridge-based { - leaf bridge-domain { - type bridge-domain-ref; - mandatory true; - description - "Interfaces in a bridge-domain forward packets to other - interfaces in the same bridge-domain based on - destination mac address."; - } - leaf split-horizon-group { - when "../bridge-domain"; - type uint8 { - range "0..255"; - } - default 0; //no split horizon group - description - "Interface's split-horizon group. Interfaces in the same - bridge-domain and split-horizon group can not forward - packets between each other. "; - } - leaf bridged-virtual-interface { - when "../bridge-domain"; - type boolean; - default false; - description - "Interface forward packets in the bridge-domain - associated with the BVI."; - } + uses bridge-based-attributes; } } } + grouping l2-state-attributes { + description + "Parameters for configuring Layer2 features on interfaces."; + + choice interconnection { + case xconnect-based { + leaf xconnect-outgoing-interface { + /* Don't allow selection of this interface */ + must "../../if:name != current()"; + type if:interface-state-ref; + description + "L2 xconnect mode"; + } + } + case bridge-based { + uses bridge-based-attributes; + } + } + } + + grouping bridge-based-attributes { + leaf bridge-domain { + type bridge-domain-ref; + mandatory true; + description + "Interfaces in a bridge-domain forward packets to other + interfaces in the same bridge-domain based on + destination mac address."; + } + leaf split-horizon-group { + when "../bridge-domain"; + type uint8 { + range "0..255"; + } + default 0; //no split horizon group + description + "Interface's split-horizon group. Interfaces in the same + bridge-domain and split-horizon group can not forward + packets between each other. "; + } + leaf bridged-virtual-interface { + when "../bridge-domain"; + type boolean; + default false; + description + "Interface forward packets in the bridge-domain + associated with the BVI."; + } + } + grouping span-attributes { description "Parameters of the SPAN feature"; @@ -518,7 +547,7 @@ module v3po { list mirrored-interface { key "iface-ref"; leaf iface-ref { - type if:interface-ref; // todo use interface-state-ref for operational data? + type if:interface-ref; } leaf state { @@ -529,6 +558,24 @@ module v3po { } } + grouping span-state-attributes { + description "Parameters of the SPAN feature"; + + container mirrored-interfaces { + list mirrored-interface { + key "iface-ref"; + leaf iface-ref { + type if:interface-state-ref; + } + + leaf state { + type span-state; + mandatory true; + } + } + } + } + augment /if:interfaces/if:interface { ext:augment-identifier "vpp-interface-augmentation"; @@ -579,7 +626,7 @@ module v3po { "(not (../if:ipv4[if:enabled = 'true']/if:address/if:ip) and " + "not (../if:ipv6[if:enabled = 'true']/if:address/if:ip))"; - uses l2-base-attributes; + uses l2-config-attributes; } container vxlan-gpe { @@ -658,11 +705,11 @@ module v3po { "(not (../if:ipv4[if:enabled = 'true']/if:address/if:ip) and " + "not (../if:ipv6[if:enabled = 'true']/if:address/if:ip))"; - uses l2-base-attributes; + uses l2-state-attributes; } container span { - uses span-attributes; + uses span-state-attributes; } } |