summaryrefslogtreecommitdiffstats
path: root/v3po/api/src/main/yang/v3po.yang
diff options
context:
space:
mode:
Diffstat (limited to 'v3po/api/src/main/yang/v3po.yang')
-rw-r--r--v3po/api/src/main/yang/v3po.yang113
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;
}
}