summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang
diff options
context:
space:
mode:
authorYohanPipereau <ypiperea@cisco.com>2019-03-06 14:01:58 +0100
committerYohanPipereau <ypiperea@cisco.com>2019-03-29 14:39:36 +0100
commita760dfb253161911fc3aa3c8b879c461d53ade6e (patch)
tree0e79953f4ed5615879a58f49a74df3f9c6739a42 /src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang
parent2b9b6b9b130b75799a40989c0ebe5040fa3e45fb (diff)
Sweetcomb global cleanup
-Merge IETF and Openconfig to use SCVPP 2 -Move L2 bridge from sc_vpp_interface to sc_vpp_v3po -Implement tav2 dump -Make openconfig-interfaces functions static -Try one more dispatch after failure in VAPI_CALL -Add error return code for scvpp -Remove unused length maccros -Return appropriate error code for interface dump when interface not found -Improve scvpp test suite -Change get_interface_id prototype -Use interface_dump_iface in openconfig_interface. -No more vapi types in openconfig_interfaces.c -Move openconfig_local_routing VAPI operations to sc_vpp_ip -Implement a multiple dump with a stack data structure -Comment out state_cb code from openconfig_local_routing to use new functions later. -Rename YANG model to their fully qualified name : <module>@<revision> -Remove headers almost empty and put registration declaration in sc_model.h -Shorten vapi context global variable name -Reorganize scvpp unit test suite -Add instructions to Makefile to install/uninstall YANG models in sysrepo. -Add this new instructions to README.md. -Reimplement interface_dump_all -Use a common message at INFO Log Level to know when sysrepo callbacks are triggered -Remove old structure to perform dump of all interfaces -Reimplement get_interface_name and add scvpp test for it -Clean sys_util -Use UNUSED maccro everywhere to have lighter prototypes -Have ietf-interfaces:interfaces-state work with new dump function -Add setup and teardown for NAT tests -Remove unused tapv2 dump -Remove useless sysrepo module callback -Remove xpath_find_first_key usage in openconfig-interfaces -Remove xpath_find_first_key in oc_local_routing and in the rest of sweetcomb -Reorganize scvpp include dir and fix scvpp_test new warnings -Fix scvpp tests for ip routes -Factorize scvpp nat and test return code of its function -Correct test_dump_if_all if there is an existing hardware interface -Implement a per-prefix dump in scvpp -free changes iterator in ietf-interfaces -Add new XPATH in oc local-routing -Introduce helper methods for sysrepo config callbacks -Factorize config callback -Refactor the openconfig-local-routing config callback -Use common foreach_change to iterate over changes in all models -Create a sample directory gathering example of configurations supposed to work with sweetcomb -Fix state callback of oc-local-routing -Add new sample for get operation on next-hop -foreach_elt maccro condition forgets to read one element Change-Id: I8e87fce577a00337977588f057a6e095a20f457c Signed-off-by: YohanPipereau <ypiperea@cisco.com>
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang223
1 files changed, 223 insertions, 0 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang b/src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang
new file mode 100644
index 0000000..5aa80bb
--- /dev/null
+++ b/src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang
@@ -0,0 +1,223 @@
+module openconfig-if-aggregate {
+
+ yang-version "1";
+
+ // namespace
+ namespace "http://openconfig.net/yang/interfaces/aggregate";
+
+ prefix "oc-lag";
+
+ // import some basic types
+ import openconfig-interfaces { prefix oc-if; }
+ import openconfig-if-ethernet { prefix oc-eth; }
+ import iana-if-type { prefix ift; }
+ import openconfig-if-types { prefix oc-ift; }
+ import openconfig-extensions { prefix oc-ext; }
+
+ // meta
+ organization "OpenConfig working group";
+
+ contact
+ "OpenConfig working group
+ netopenconfig@googlegroups.com";
+
+ description
+ "Model for managing aggregated (aka bundle, LAG) interfaces.";
+
+ oc-ext:openconfig-version "2.3.1";
+
+ revision "2018-03-23" {
+ description
+ "Fix/cleanup when statements in aggregates model.";
+ reference "2.3.1";
+ }
+
+ revision "2018-01-05" {
+ description
+ "Add logical loopback to interface.";
+ reference "2.3.0";
+ }
+
+ revision "2017-12-22" {
+ description
+ "Add IPv4 proxy ARP configuration.";
+ reference "2.2.0";
+ }
+
+ revision "2017-12-21" {
+ description
+ "Added IPv6 router advertisement configuration.";
+ reference "2.1.0";
+ }
+
+ revision "2017-07-14" {
+ description
+ "Added Ethernet/IP state data; Add dhcp-client;
+ migrate to OpenConfig types modules; Removed or
+ renamed opstate values";
+ reference "2.0.0";
+ }
+
+ revision "2016-12-22" {
+ description
+ "Fixes to Ethernet interfaces model";
+ reference "1.1.0";
+ }
+
+ // extension statements
+
+ // feature statements
+
+ // identity statements
+
+ // typedef statements
+
+
+
+ typedef aggregation-type {
+ type enumeration {
+ enum LACP {
+ description "LAG managed by LACP";
+ }
+ enum STATIC {
+ description "Statically configured bundle / LAG";
+ }
+ }
+ description
+ "Type to define the lag-type, i.e., how the LAG is
+ defined and managed";
+ }
+
+ // grouping statements
+
+
+ grouping aggregation-logical-config {
+ description
+ "Configuration data for aggregate interfaces";
+
+
+ leaf lag-type {
+ type aggregation-type;
+ description
+ "Sets the type of LAG, i.e., how it is
+ configured / maintained";
+ }
+
+ leaf min-links {
+ type uint16;
+ description
+ "Specifies the mininum number of member
+ interfaces that must be active for the aggregate interface
+ to be available";
+ }
+ }
+
+ grouping aggregation-logical-state {
+ description
+ "Operational state data for aggregate interfaces";
+
+ leaf lag-speed {
+ type uint32;
+ units Mbps;
+ description
+ "Reports effective speed of the aggregate interface,
+ based on speed of active member interfaces";
+ }
+
+ leaf-list member {
+ when "../../config/lag-type = 'STATIC'" {
+ description
+ "The simple list of member interfaces is active
+ when the aggregate is statically configured";
+ }
+ type oc-if:base-interface-ref;
+ description
+ "List of current member interfaces for the aggregate,
+ expressed as references to existing interfaces";
+ }
+ }
+
+ grouping aggregation-logical-top {
+ description "Top-level data definitions for LAGs";
+
+ container aggregation {
+
+ description
+ "Options for logical interfaces representing
+ aggregates";
+
+ container config {
+ description
+ "Configuration variables for logical aggregate /
+ LAG interfaces";
+
+ uses aggregation-logical-config;
+ }
+
+ container state {
+
+ config false;
+ description
+ "Operational state variables for logical
+ aggregate / LAG interfaces";
+
+ uses aggregation-logical-config;
+ uses aggregation-logical-state;
+
+ }
+ }
+ }
+
+ grouping ethernet-if-aggregation-config {
+ description
+ "Adds configuration items for Ethernet interfaces
+ belonging to a logical aggregate / LAG";
+
+ leaf aggregate-id {
+ type leafref {
+ path "/oc-if:interfaces/oc-if:interface/oc-if:name";
+ }
+ description
+ "Specify the logical aggregate interface to which
+ this interface belongs";
+ }
+ }
+
+ // data definition statements
+
+ // augment statements
+
+ augment "/oc-if:interfaces/oc-if:interface" {
+
+ description "Adds LAG configuration to the interface module";
+
+ uses aggregation-logical-top {
+ when "oc-if:state/oc-if:type = 'ift:ieee8023adLag' or " +
+ "oc-if:state/oc-if:type = 'oc-ift:IF_AGGREGATE'" {
+ description
+ "active when the interface is set to type LAG";
+ }
+ }
+ }
+
+ augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" +
+ "oc-eth:config" {
+ description
+ "Adds LAG settings to individual Ethernet interfaces";
+
+ uses ethernet-if-aggregation-config;
+ }
+
+ augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" +
+ "oc-eth:state" {
+ description
+ "Adds LAG settings to individual Ethernet interfaces";
+
+ uses ethernet-if-aggregation-config;
+ }
+
+ // rpc statements
+
+ // notification statements
+
+}