aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrej Kozemcak <andrej.kozemcak@pantheon.tech>2019-01-11 07:45:19 +0100
committerAndrej Kozemcak <andrej.kozemcak@pantheon.tech>2019-01-11 07:46:46 +0100
commit8a72578cec9ffe5bf815e38918fd82b190f8af38 (patch)
tree38fc04ef4dab6431861119e63f4559d5ad59bd10
parentb70c4a3f70c08d93afb52ecb1bdd50a50feb1e1f (diff)
Remove not supported openconfig yang modules.
Change-Id: I721def08356e64918424fdb889f545b64daeea88 Signed-off-by: Andrej Kozemcak <andrej.kozemcak@pantheon.tech>
-rw-r--r--src/plugins/yang/openconfig/openconfig-aaa-radius.yang180
-rw-r--r--src/plugins/yang/openconfig/openconfig-aaa-tacacs.yang136
-rw-r--r--src/plugins/yang/openconfig/openconfig-aaa-types.yang162
-rw-r--r--src/plugins/yang/openconfig/openconfig-aaa.yang811
-rw-r--r--src/plugins/yang/openconfig/openconfig-access-points.yang168
-rw-r--r--src/plugins/yang/openconfig/openconfig-acl.yang837
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft-common.yang385
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft-ethernet.yang93
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft-ipv4.yang94
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft-ipv6.yang94
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft-mpls.yang111
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft-network-instance.yang98
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft-pf.yang172
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft-types.yang58
-rw-r--r--src/plugins/yang/openconfig/openconfig-aft.yang144
-rw-r--r--src/plugins/yang/openconfig/openconfig-alarm-types.yang139
-rw-r--r--src/plugins/yang/openconfig/openconfig-alarms.yang221
-rw-r--r--src/plugins/yang/openconfig/openconfig-ap-manager.yang220
-rw-r--r--src/plugins/yang/openconfig/openconfig-bfd.yang738
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-common-multiprotocol.yang518
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-common-structure.yang196
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-common.yang665
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-errors.yang421
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-global.yang389
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang704
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-peer-group.yang271
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-policy.yang1210
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp-types.yang604
-rw-r--r--src/plugins/yang/openconfig/openconfig-bgp.yang155
-rw-r--r--src/plugins/yang/openconfig/openconfig-catalog-types.yang242
-rw-r--r--src/plugins/yang/openconfig/openconfig-channel-monitor.yang330
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-ethernet-ext.yang106
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-ip-ext.yang169
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-poe.yang99
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-tunnel.yang109
-rw-r--r--src/plugins/yang/openconfig/openconfig-igmp-types.yang53
-rw-r--r--src/plugins/yang/openconfig/openconfig-igmp.yang356
-rw-r--r--src/plugins/yang/openconfig/openconfig-isis-lsdb-types.yang686
-rw-r--r--src/plugins/yang/openconfig/openconfig-isis-lsp.yang3592
-rw-r--r--src/plugins/yang/openconfig/openconfig-isis-policy.yang189
-rw-r--r--src/plugins/yang/openconfig/openconfig-isis-routing.yang384
-rw-r--r--src/plugins/yang/openconfig/openconfig-isis-types.yang339
-rw-r--r--src/plugins/yang/openconfig/openconfig-isis.yang2059
-rw-r--r--src/plugins/yang/openconfig/openconfig-lacp.yang461
-rw-r--r--src/plugins/yang/openconfig/openconfig-lldp-types.yang296
-rw-r--r--src/plugins/yang/openconfig/openconfig-lldp.yang650
-rw-r--r--src/plugins/yang/openconfig/openconfig-module-catalog.yang786
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-igp.yang129
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-ldp.yang873
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-rsvp.yang1446
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-sr.yang138
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-static.yang312
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-te.yang1381
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls-types.yang426
-rw-r--r--src/plugins/yang/openconfig/openconfig-mpls.yang746
-rw-r--r--src/plugins/yang/openconfig/openconfig-network-instance-l2.yang339
-rw-r--r--src/plugins/yang/openconfig/openconfig-network-instance-l3.yang234
-rw-r--r--src/plugins/yang/openconfig/openconfig-network-instance-policy.yang115
-rw-r--r--src/plugins/yang/openconfig/openconfig-network-instance-types.yang261
-rw-r--r--src/plugins/yang/openconfig/openconfig-network-instance.yang1093
-rw-r--r--src/plugins/yang/openconfig/openconfig-openflow-types.yang93
-rw-r--r--src/plugins/yang/openconfig/openconfig-openflow.yang314
-rw-r--r--src/plugins/yang/openconfig/openconfig-optical-amplifier.yang474
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospf-policy.yang188
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospf-types.yang784
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospfv2-area-interface.yang472
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospfv2-area.yang169
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospfv2-common.yang91
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospfv2-global.yang509
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang2355
-rw-r--r--src/plugins/yang/openconfig/openconfig-ospfv2.yang98
-rw-r--r--src/plugins/yang/openconfig/openconfig-packet-match-types.yang297
-rw-r--r--src/plugins/yang/openconfig/openconfig-packet-match.yang360
-rw-r--r--src/plugins/yang/openconfig/openconfig-pf-forwarding-policies.yang385
-rw-r--r--src/plugins/yang/openconfig/openconfig-pf-interfaces.yang121
-rw-r--r--src/plugins/yang/openconfig/openconfig-pf-path-groups.yang125
-rw-r--r--src/plugins/yang/openconfig/openconfig-pf-srte.yang280
-rw-r--r--src/plugins/yang/openconfig/openconfig-pim-types.yang74
-rw-r--r--src/plugins/yang/openconfig/openconfig-pim.yang464
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-cpu.yang61
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-ext.yang72
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-fan.yang65
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-linecard.yang118
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-port.yang149
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-psu.yang135
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-transceiver.yang492
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform-types.yang271
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform.yang762
-rw-r--r--src/plugins/yang/openconfig/openconfig-policy-forwarding.yang119
-rw-r--r--src/plugins/yang/openconfig/openconfig-probes-types.yang75
-rw-r--r--src/plugins/yang/openconfig/openconfig-probes.yang569
-rw-r--r--src/plugins/yang/openconfig/openconfig-procmon.yang165
-rw-r--r--src/plugins/yang/openconfig/openconfig-qos-elements.yang1304
-rw-r--r--src/plugins/yang/openconfig/openconfig-qos-interfaces.yang660
-rw-r--r--src/plugins/yang/openconfig/openconfig-qos-types.yang148
-rw-r--r--src/plugins/yang/openconfig/openconfig-qos.yang90
-rw-r--r--src/plugins/yang/openconfig/openconfig-relay-agent.yang815
-rw-r--r--src/plugins/yang/openconfig/openconfig-rib-bgp-attributes.yang907
-rw-r--r--src/plugins/yang/openconfig/openconfig-rib-bgp-ext.yang166
-rw-r--r--src/plugins/yang/openconfig/openconfig-rib-bgp-shared-attributes.yang171
-rw-r--r--src/plugins/yang/openconfig/openconfig-rib-bgp-table-attributes.yang113
-rw-r--r--src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang883
-rw-r--r--src/plugins/yang/openconfig/openconfig-rib-bgp-types.yang244
-rw-r--r--src/plugins/yang/openconfig/openconfig-rib-bgp.yang209
-rw-r--r--src/plugins/yang/openconfig/openconfig-routing-policy.yang1097
-rw-r--r--src/plugins/yang/openconfig/openconfig-rsvp-sr-ext.yang400
-rw-r--r--src/plugins/yang/openconfig/openconfig-segment-routing.yang780
-rw-r--r--src/plugins/yang/openconfig/openconfig-spanning-tree-types.yang225
-rw-r--r--src/plugins/yang/openconfig/openconfig-spanning-tree.yang823
-rw-r--r--src/plugins/yang/openconfig/openconfig-system-logging.yang492
-rw-r--r--src/plugins/yang/openconfig/openconfig-system-management.yang126
-rw-r--r--src/plugins/yang/openconfig/openconfig-system-terminal.yang239
-rw-r--r--src/plugins/yang/openconfig/openconfig-system.yang978
-rw-r--r--src/plugins/yang/openconfig/openconfig-telemetry-types.yang115
-rw-r--r--src/plugins/yang/openconfig/openconfig-telemetry.yang771
-rw-r--r--src/plugins/yang/openconfig/openconfig-terminal-device.yang1370
-rw-r--r--src/plugins/yang/openconfig/openconfig-transport-line-common.yang317
-rw-r--r--src/plugins/yang/openconfig/openconfig-transport-line-protection.yang612
-rw-r--r--src/plugins/yang/openconfig/openconfig-transport-types.yang834
-rw-r--r--src/plugins/yang/openconfig/openconfig-wavelength-router.yang360
-rw-r--r--src/plugins/yang/openconfig/openconfig-wifi-mac.yang1482
-rw-r--r--src/plugins/yang/openconfig/openconfig-wifi-phy.yang393
-rw-r--r--src/plugins/yang/openconfig/openconfig-wifi-types.yang295
123 files changed, 0 insertions, 56518 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-aaa-radius.yang b/src/plugins/yang/openconfig/openconfig-aaa-radius.yang
deleted file mode 100644
index 8f82bd4..0000000
--- a/src/plugins/yang/openconfig/openconfig-aaa-radius.yang
+++ /dev/null
@@ -1,180 +0,0 @@
-submodule openconfig-aaa-radius {
-
- yang-version "1";
-
- belongs-to "openconfig-aaa" {
- prefix "oc-aaa";
- }
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-aaa-types { prefix oc-aaa-types; }
- import openconfig-types { prefix oc-types; }
- import openconfig-yang-types { prefix oc-yang; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- related to the RADIUS protocol for authentication,
- authorization, and accounting.";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2017-09-18" {
- description
- "Updated to use OpenConfig types modules";
- reference "0.3.0";
- }
-
- revision "2017-07-06" {
- description
- "Move to oc-inet types, add IETF attribution, add RADIUS
- counters, changed password leaf names to indicate hashed";
- reference "0.2.0";
- }
-
- revision "2017-01-29" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity RADIUS {
- base oc-aaa-types:AAA_SERVER_TYPE;
- description
- "Remote Authentication Dial In User Service (RADIUS) AAA
- server";
- reference
- "RFC 2865 - Remote Authentication Dial In User Service
- (RADIUS)";
- }
-
- // typedef statements
-
- // grouping statements
-
- grouping aaa-radius-server-config {
- description
- "Configuration data for a RADIUS server";
-
- leaf auth-port {
- type oc-inet:port-number;
- default 1812;
- description
- "Port number for authentication requests";
- }
-
- leaf acct-port {
- type oc-inet:port-number;
- default 1813;
- description
- "Port number for accounting requests";
- }
-
- leaf secret-key {
- type oc-types:routing-password;
- description
- "The unencrypted shared key used between the authentication
- server and the device.";
- }
-
- leaf source-address {
- type oc-inet:ip-address;
- description
- "Source IP address to use in messages to the RADIUS server";
- }
-
- leaf retransmit-attempts {
- type uint8;
- description
- "Number of times the system may resend a request to the
- RADIUS server when it is unresponsive";
- }
- }
-
- grouping aaa-radius-server-state {
- description
- "Operational state data for a RADIUS server";
-
- container counters {
- description
- "A collection of RADIUS related state objects.";
-
- leaf retried-access-requests {
- type oc-yang:counter64;
- description
- "Retransmitted Access-Request messages.";
- }
-
- leaf access-accepts {
- type oc-yang:counter64;
- description
- "Received Access-Accept messages.";
- }
-
- leaf access-rejects {
- type oc-yang:counter64;
- description
- "Received Access-Reject messages.";
- }
-
- leaf timeout-access-requests {
- type oc-yang:counter64;
- description
- "Access-Request messages that have timed-out,
- requiring retransmission.";
- }
- }
- }
-
- grouping aaa-radius-server-top {
- description
- "Top-level grouping for RADIUS server data";
-
- container radius {
- description
- "Top-level container for RADIUS server data";
-
- container config {
- description
- "Configuration data for RADIUS servers";
-
- uses aaa-radius-server-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for RADIUS servers";
-
- uses aaa-radius-server-config;
- uses aaa-radius-server-state;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aaa-tacacs.yang b/src/plugins/yang/openconfig/openconfig-aaa-tacacs.yang
deleted file mode 100644
index 21d0f4a..0000000
--- a/src/plugins/yang/openconfig/openconfig-aaa-tacacs.yang
+++ /dev/null
@@ -1,136 +0,0 @@
-submodule openconfig-aaa-tacacs {
-
- yang-version "1";
-
- belongs-to "openconfig-aaa" {
- prefix "oc-aaa";
- }
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-aaa-types { prefix oc-aaa-types; }
- import openconfig-types { prefix oc-types; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- related to the TACACS+ protocol for authentication,
- authorization, and accounting.";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2017-09-18" {
- description
- "Updated to use OpenConfig types modules";
- reference "0.3.0";
- }
-
- revision "2017-07-06" {
- description
- "Move to oc-inet types, add IETF attribution, add RADIUS
- counters, changed password leaf names to indicate hashed";
- reference "0.2.0";
- }
-
- revision "2017-01-29" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity TACACS {
- base oc-aaa-types:AAA_SERVER_TYPE;
- description
- "Terminal Access Controller Access Control System (TACACS+)
- AAA server";
- reference
- "The TACACS+ Protocol (draft-ietf-opsawg-tacacs-05)
- RFC 1492 - An Access Control Protocol, Sometimes Called
- TACACS";
- }
-
- // typedef statements
-
- // grouping statements
-
- grouping aaa-tacacs-server-config {
- description
- "Configuration data for a TACACS+ server";
-
- leaf port {
- type oc-inet:port-number;
- default 49;
- description
- "The port number on which to contact the TACACS server";
- }
-
- leaf secret-key {
- type oc-types:routing-password;
- description
- "The unencrypted shared key used between the authentication
- server and the device.";
- }
-
- leaf source-address {
- type oc-inet:ip-address;
- description
- "Source IP address to use in messages to the TACACS server";
- }
- }
-
- grouping aaa-tacacs-server-state {
- description
- "Operational state data for a TACACS+ server";
- }
-
- grouping aaa-tacacs-server-top {
- description
- "Top-level grouping for TACACS+ sever data";
-
- container tacacs {
- description
- "Top-level container for TACACS+ server data";
-
- container config {
- description
- "Configuration data for TACACS+ server";
-
- uses aaa-tacacs-server-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for TACACS+ server";
-
- uses aaa-tacacs-server-config;
- uses aaa-tacacs-server-state;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-aaa-types.yang b/src/plugins/yang/openconfig/openconfig-aaa-types.yang
deleted file mode 100644
index 41bd5d9..0000000
--- a/src/plugins/yang/openconfig/openconfig-aaa-types.yang
+++ /dev/null
@@ -1,162 +0,0 @@
-module openconfig-aaa-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/aaa/types";
-
- prefix "oc-aaa-types";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines shared types for data related to AAA
- (authentication, authorization, accounting).";
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2018-04-12" {
- description
- "Add when conditions, correct identities";
- reference "0.4.0";
- }
-
- revision "2017-09-18" {
- description
- "Updated to use OpenConfig types modules";
- reference "0.3.0";
- }
-
- revision "2017-07-06" {
- description
- "Move to oc-inet types, add IETF attribution, add RADIUS
- counters, changed password leaf names to indicate hashed";
- reference "0.2.0";
- }
-
- revision "2017-01-29" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
-
- // identity statements
-
- identity AAA_SERVER_TYPE {
- description
- "Base identity for types of AAA servers";
- }
-
-
- identity SYSTEM_DEFINED_ROLES {
- description
- "Base identity for system_defined roles that can be assigned
- to users.";
- }
-
- identity SYSTEM_ROLE_ADMIN {
- base SYSTEM_DEFINED_ROLES;
- description
- "Built-in role that allows the equivalent of superuser
- permission for all configuration and operational commands
- on the device.";
- }
-
- identity AAA_ACCOUNTING_EVENT_TYPE {
- description
- "Base identity for specifying events types that should be
- sent to AAA server for accounting";
- }
-
- identity AAA_ACCOUNTING_EVENT_COMMAND {
- base AAA_ACCOUNTING_EVENT_TYPE;
- description
- "Specifies interactive command events for AAA accounting";
- }
-
- identity AAA_ACCOUNTING_EVENT_LOGIN {
- base AAA_ACCOUNTING_EVENT_TYPE;
- description
- "Specifies login events for AAA accounting";
- }
-
- identity AAA_AUTHORIZATION_EVENT_TYPE {
- description
- "Base identity for specifying activities that should be
- sent to AAA server for authorization";
- }
-
- identity AAA_AUTHORIZATION_EVENT_COMMAND {
- base AAA_AUTHORIZATION_EVENT_TYPE;
- description
- "Specifies interactive command events for AAA authorization";
- }
-
- identity AAA_AUTHORIZATION_EVENT_CONFIG {
- base AAA_AUTHORIZATION_EVENT_TYPE;
- description
- "Specifies configuration (e.g., EXEC) events for AAA
- authorization";
- }
-
- identity AAA_METHOD_TYPE {
- description
- "Base identity to define well-known methods for AAA
- operations";
- }
-
- identity TACACS_ALL {
- base AAA_METHOD_TYPE;
- description
- "The group of all TACACS+ servers.";
- }
-
- identity RADIUS_ALL {
- base AAA_METHOD_TYPE;
- description
- "The group of all RADIUS servers.";
- }
-
- identity LOCAL {
- base AAA_METHOD_TYPE;
- description
- "Locally configured method for AAA operations.";
- }
-
-
- // typedef statements
-
- typedef crypt-password-type {
- type string;
- description
- "A password that is hashed based on the hash algorithm
- indicated by the prefix in the string. The string
- takes the following form, based on the Unix crypt function:
-
- $<id>[$<param>=<value>(,<param>=<value>)*][$<salt>[$<hash>]]
-
- Common hash functions include:
-
- id | hash function
- ---+---------------
- 1 | MD5
- 2a| Blowfish
- 2y| Blowfish (correct handling of 8-bit chars)
- 5 | SHA-256
- 6 | SHA-512
-
- These may not all be supported by a target device.";
- }
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aaa.yang b/src/plugins/yang/openconfig/openconfig-aaa.yang
deleted file mode 100644
index 18a00c5..0000000
--- a/src/plugins/yang/openconfig/openconfig-aaa.yang
+++ /dev/null
@@ -1,811 +0,0 @@
-module openconfig-aaa {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/aaa";
-
- prefix "oc-aaa";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-aaa-types { prefix oc-aaa-types; }
-
- include openconfig-aaa-tacacs;
- include openconfig-aaa-radius;
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- related to authorization, authentication, and accounting (AAA)
- management.
-
- Portions of this model reuse data definitions or structure from
- RFC 7317 - A YANG Data Model for System Management";
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2018-04-12" {
- description
- "Add when conditions, correct identities";
- reference "0.4.0";
- }
-
- revision "2017-09-18" {
- description
- "Updated to use OpenConfig types modules";
- reference "0.3.0";
- }
-
- revision "2017-07-06" {
- description
- "Move to oc-inet types, add IETF attribution, add RADIUS
- counters, changed password leaf names to indicate hashed";
- reference "0.2.0";
- }
-
- revision "2017-01-29" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
- // identity statements
-
- // grouping statements
- grouping aaa-servergroup-common-config {
- description
- "Configuration data for AAA server groups";
-
- leaf name {
- type string;
- description
- "Name for the server group";
- }
-
- leaf type {
- type identityref {
- base oc-aaa-types:AAA_SERVER_TYPE;
- }
- description
- "AAA server type -- all servers in the group must be of this
- type";
- }
- }
-
- grouping aaa-servergroup-common-state {
- description
- "Operational state data for AAA server groups";
-
- //TODO: add list of group members as opstate
- }
-
- grouping aaa-servergroup-common-top {
- description
- "Top-level grouping for AAA server groups";
-
- container server-groups {
- description
- "Enclosing container for AAA server groups";
-
- list server-group {
- key "name";
- description
- "List of AAA server groups. All servers in a group
- must have the same type as indicated by the server
- type.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to configured name of the server group";
- }
-
- container config {
- description
- "Configuration data for each server group";
-
- uses aaa-servergroup-common-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for each server group";
-
- uses aaa-servergroup-common-config;
- uses aaa-servergroup-common-state;
- }
-
- uses aaa-server-top;
- }
- }
- }
-
- grouping aaa-server-config {
- description
- "Common configuration data for AAA servers";
-
- leaf name {
- type string;
- description
- "Name assigned to the server";
- }
-
-
- leaf address {
- type oc-inet:ip-address;
- description "Address of the authentication server";
- }
-
- leaf timeout {
- type uint16;
- units seconds;
- description
- "Set the timeout in seconds on responses from the AAA
- server";
- }
- }
-
- grouping aaa-server-state {
- description
- "Common operational state data for AAA servers";
-
- leaf connection-opens {
- type oc-yang:counter64;
- description
- "Number of new connection requests sent to the server, e.g.
- socket open";
- }
-
- leaf connection-closes {
- type oc-yang:counter64;
- description
- "Number of connection close requests sent to the server, e.g.
- socket close";
- }
-
- leaf connection-aborts {
- type oc-yang:counter64;
- description
- "Number of aborted connections to the server. These do
- not include connections that are close gracefully.";
- }
-
- leaf connection-failures {
- type oc-yang:counter64;
- description
- "Number of connection failures to the server";
- }
-
- leaf connection-timeouts {
- type oc-yang:counter64;
- description
- "Number of connection timeouts to the server";
- }
-
- leaf messages-sent {
- type oc-yang:counter64;
- description
- "Number of messages sent to the server";
- }
-
- leaf messages-received {
- type oc-yang:counter64;
- description
- "Number of messages received by the server";
- }
-
- leaf errors-received {
- type oc-yang:counter64;
- description
- "Number of error messages received from the server";
- }
-
- }
-
- grouping aaa-server-top {
- description
- "Top-level grouping for list of AAA servers";
-
- container servers {
- description
- "Enclosing container the list of servers";
-
- list server {
- key "address";
- description
- "List of AAA servers";
-
- leaf address {
- type leafref {
- path "../config/address";
- }
- description
- "Reference to the configured address of the AAA server";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses aaa-server-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data ";
-
- uses aaa-server-config;
- uses aaa-server-state;
- }
-
- uses aaa-tacacs-server-top {
- when "../../config/type = 'oc-aaa-types:TACACS'";
- }
-
- uses aaa-radius-server-top {
- when "../../config/type = 'oc-aaa-types:RADIUS'";
- }
- }
- }
- }
-
- grouping aaa-admin-config {
- description
- "Configuration data for the system built-in
- administrator / root user account";
-
- leaf admin-password {
- type string;
- oc-ext:openconfig-hashed-value;
- description
- "The admin/root password, supplied as a cleartext string.
- The system should hash and only store the password as a
- hashed value.";
- }
-
- leaf admin-password-hashed {
- type oc-aaa-types:crypt-password-type;
- description
- "The admin/root password, supplied as a hashed value
- using the notation described in the definition of the
- crypt-password-type.";
- }
- }
-
- grouping aaa-admin-state {
- description
- "Operational state data for the root user";
-
- leaf admin-username {
- type string;
- description
- "Name of the administrator user account, e.g., admin, root,
- etc.";
- }
- }
-
- grouping aaa-authentication-admin-top {
- description
- "Top-level grouping for root user configuration and state
- data";
-
- container admin-user {
- description
- "Top-level container for the system root or admin user
- configuration and operational state";
-
- container config {
- description
- "Configuration data for the root user account";
-
- uses aaa-admin-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for the root user account";
-
- uses aaa-admin-config;
- uses aaa-admin-state;
- }
- }
- }
- grouping aaa-authentication-user-config {
- description
- "Configuration data for local users";
-
- leaf username {
- type string;
- description
- "Assigned username for this user";
- }
-
- leaf password {
- type string;
- oc-ext:openconfig-hashed-value;
- description
- "The user password, supplied as cleartext. The system
- must hash the value and only store the hashed value.";
- }
-
- leaf password-hashed {
- type oc-aaa-types:crypt-password-type;
- description
- "The user password, supplied as a hashed value
- using the notation described in the definition of the
- crypt-password-type.";
- }
-
- leaf ssh-key {
- type string;
- description
- "SSH public key for the user (RSA or DSA)";
- }
-
- leaf role {
- type union {
- type string;
- type identityref {
- base oc-aaa-types:SYSTEM_DEFINED_ROLES;
- }
- }
- description
- "Role assigned to the user. The role may be supplied
- as a string or a role defined by the SYSTEM_DEFINED_ROLES
- identity.";
- }
- }
-
- grouping aaa-authentication-user-state {
- description
- "Operational state data for local users";
- }
-
- grouping aaa-authentication-user-top {
- description
- "Top-level grouping for local users";
-
- container users {
- description
- "Enclosing container list of local users";
-
- list user {
- key "username";
- description
- "List of local users on the system";
-
- leaf username {
- type leafref {
- path "../config/username";
- }
- description
- "References the configured username for the user";
- }
-
- container config {
- description
- "Configuration data for local users";
-
- uses aaa-authentication-user-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for local users";
-
- uses aaa-authentication-user-config;
- uses aaa-authentication-user-state;
- }
- }
-
- }
- }
-
- grouping aaa-accounting-methods-common {
- description
- "Common definitions for accounting methods";
-
- leaf-list accounting-method {
- type union {
- type identityref {
- base oc-aaa-types:AAA_METHOD_TYPE;
- }
- type string;
- //TODO: in YANG 1.1 this should be converted to a leafref to
- //point to the server group name.
- }
- ordered-by user;
- description
- "An ordered list of methods used for AAA accounting for this
- event type. The method is defined by the destination for
- accounting data, which may be specified as the group of
- all TACACS+/RADIUS servers, a defined server group, or
- the local system.";
- }
- }
-
-
- grouping aaa-accounting-events-config {
- description
- "Configuration data for AAA accounting events";
-
- leaf event-type {
- type identityref {
- base oc-aaa-types:AAA_ACCOUNTING_EVENT_TYPE;
- }
- description
- "The type of activity to record at the AAA accounting
- server";
- }
-
- leaf record {
- type enumeration {
- enum START_STOP {
- description
- "Send START record to the accounting server at the
- beginning of the activity, and STOP record at the
- end of the activity.";
- }
- enum STOP {
- description
- "Send STOP record to the accounting server when the
- user activity completes";
- }
- }
- description
- "Type of record to send to the accounting server for this
- activity type";
- }
- }
-
- grouping aaa-accounting-events-state {
- description
- "Operational state data for accounting events";
- }
-
- grouping aaa-accounting-events-top {
- description
- "Top-level grouping for accounting events";
-
- container events {
- description
- "Enclosing container for defining handling of events
- for accounting";
-
- list event {
- key "event-type";
- description
- "List of events subject to accounting";
-
- leaf event-type {
- type leafref {
- path "../config/event-type";
- }
- description
- "Reference to the event-type being logged at the
- accounting server";
- }
-
- container config {
- description
- "Configuration data for accounting events";
-
- uses aaa-accounting-events-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for accounting events";
-
- uses aaa-accounting-events-config;
- uses aaa-accounting-events-state;
- }
- }
- }
- }
-
- grouping aaa-accounting-config {
- description
- "Configuration data for event accounting";
-
- uses aaa-accounting-methods-common;
-
- }
-
- grouping aaa-accounting-state {
- description
- "Operational state data for event accounting services";
- }
-
- grouping aaa-accounting-top {
- description
- "Top-level grouping for user activity accounting";
-
- container accounting {
- description
- "Top-level container for AAA accounting";
-
- container config {
- description
- "Configuration data for user activity accounting.";
-
- uses aaa-accounting-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for user accounting.";
-
- uses aaa-accounting-config;
- uses aaa-accounting-state;
- }
-
- uses aaa-accounting-events-top;
-
- }
- }
-
- grouping aaa-authorization-methods-config {
- description
- "Common definitions for authorization methods for global
- and per-event type";
-
- leaf-list authorization-method {
- type union {
- type identityref {
- base oc-aaa-types:AAA_METHOD_TYPE;
- }
- type string;
- }
- ordered-by user;
- description
- "Ordered list of methods for authorizing commands. The first
- method that provides a response (positive or negative) should
- be used. The list may contain a well-defined method such
- as the set of all TACACS or RADIUS servers, or the name of
- a defined AAA server group. The system must validate
- that the named server group exists.";
- }
- }
-
- grouping aaa-authorization-events-config {
- description
- "Configuration data for AAA authorization events";
-
- leaf event-type {
- type identityref {
- base oc-aaa-types:AAA_AUTHORIZATION_EVENT_TYPE;
- }
- description
- "The type of event to record at the AAA authorization
- server";
- }
- }
-
- grouping aaa-authorization-events-state {
- description
- "Operational state data for AAA authorization events";
- }
-
- grouping aaa-authorization-events-top {
- description
- "Top-level grouping for authorization events";
-
- container events {
- description
- "Enclosing container for the set of events subject
- to authorization";
-
- list event {
- key "event-type";
- description
- "List of events subject to AAA authorization";
-
- leaf event-type {
- type leafref {
- path "../config/event-type";
- }
- description
- "Reference to the event-type list key";
- }
-
- container config {
- description
- "Configuration data for each authorized event";
-
- uses aaa-authorization-events-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for each authorized activity";
-
- uses aaa-authorization-events-config;
- uses aaa-authorization-events-state;
- }
- }
- }
- }
-
- grouping aaa-authorization-config {
- description
- "Configuration data for AAA authorization";
-
- uses aaa-authorization-methods-config;
- }
-
- grouping aaa-authorization-state {
- description
- "Operational state data for AAA authorization";
- }
-
- grouping aaa-authorization-top {
- description
- "Top-level grouping for AAA authorization";
-
- container authorization {
- description
- "Top-level container for AAA authorization configuration
- and operational state data";
-
- container config {
- description
- "Configuration data for authorization based on AAA
- methods";
-
- uses aaa-authorization-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for authorization based on AAA";
-
- uses aaa-authorization-config;
- uses aaa-authorization-state;
- }
-
- uses aaa-authorization-events-top;
-
- }
- }
-
- grouping aaa-authentication-config {
- description
- "Configuration data for global authentication";
-
- leaf-list authentication-method {
- type union {
- type identityref {
- base oc-aaa-types:AAA_METHOD_TYPE;
- }
- type string;
- //TODO: string should be a leafref to a defined
- //server group. this will be possible in YANG 1.1
- //type leafref {
- //path "/aaa/server-groups/server-group/config/name";
- //}
- }
- ordered-by user;
- description
- "Ordered list of authentication methods for users. This
- can be either a reference to a server group, or a well-
- defined designation in the AAA_METHOD_TYPE identity. If
- authentication fails with one method, the next defined
- method is tried -- failure of all methods results in the
- user being denied access.";
- }
- }
-
- grouping aaa-authentication-state {
- description
- "Operational state data for global authentication";
- }
-
- grouping aaa-authentication-top {
- description
- "Top-level grouping for top-level authentication";
-
- container authentication {
- description
- "Top-level container for global authentication data";
-
- container config {
- description
- "Configuration data for global authentication services";
-
- uses aaa-authentication-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for global authentication
- services";
-
- uses aaa-authentication-config;
- uses aaa-authentication-state;
- }
-
- uses aaa-authentication-admin-top;
- uses aaa-authentication-user-top;
- }
- }
-
- grouping aaa-config {
- description
- "Configuration data for top level AAA";
- }
-
- grouping aaa-state {
- description
- "Operational state data for top level AAA";
- }
-
- grouping aaa-top {
- description
- "Top-level grouping for AAA services";
-
- container aaa {
- description
- "Top-level container for AAA services";
-
- container config {
- description
- "Configuration data for top level AAA services";
-
- uses aaa-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for top level AAA services ";
-
- uses aaa-config;
- uses aaa-state;
- }
-
- uses aaa-authentication-top;
- uses aaa-authorization-top;
- uses aaa-accounting-top;
- uses aaa-servergroup-common-top;
-
- }
- }
-
-
-
- // data definition statements
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-access-points.yang b/src/plugins/yang/openconfig/openconfig-access-points.yang
deleted file mode 100644
index 7665814..0000000
--- a/src/plugins/yang/openconfig/openconfig-access-points.yang
+++ /dev/null
@@ -1,168 +0,0 @@
-module openconfig-access-points {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/wifi/access-points";
-
- // Assign this module a prefix to be used by other modules, when imported.
- prefix "access-points";
-
- // Imports
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-wifi-phy { prefix wifi-phy; }
- import openconfig-wifi-mac { prefix wifi-mac; }
- import openconfig-system { prefix oc-sys; }
-
- // Meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines the top level WiFi Configurations for a list of
- Access Points.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-02-14" {
- description
- "Initial version";
- reference "0.1.0";
- }
-
- grouping assigned-ap-managers-config {
- description
- "AP Manager(s) an AP may join. If cloud manager, this will be
- the cloud instance(s). This is often referred to as 'Controller'.";
-
- leaf id {
- type string;
- description
- "The unique reference for the AP manager described in the list entry.";
- }
-
- leaf fqdn {
- type oc-inet:domain-name;
- description
- "The FQDN of a manager this AP is assigned to. The list should be
- ordered, according to priority. eg Primary first,
- Secondary second, Tertiary third etc.";
- }
-
- leaf ap-manager-ipv4-address {
- type oc-inet:ipv4-address;
- description
- "IPv4 address of a manager for this AP. The list should be
- ordered, according to priority. eg. Primary first, Secondary second,
- Tertiary third etc.";
- }
-
- leaf-list ap-manager-ipv6-address {
- type oc-inet:ipv6-address;
- description
- "IPv6 address of a manager for this AP. The list should be
- ordered, according to priority. eg. Primary first, Secondary second,
- Tertiary third etc.";
- }
- }
-
- grouping assigned-ap-managers-state {
- description
- "Manager(s) an AP may join. If cloud manager, this will be
- the cloud instance(s).";
-
- leaf joined {
- type boolean;
- description
- "True only if this AP is currently joined to a manager. If this AP
- is configured to join manager(s), however is not currently joined
- to any manager, this MUST return False.";
- }
- }
-
- grouping manager-ap-parameters-top {
- description
- "Top-level grouping for assigning AP's to manager(s).";
-
- container assigned-ap-managers {
- description
- "Wireless manager(s) this AP is assigned to. eg. Primary
- Secondary, Tertiary etc.";
-
- list ap-manager {
- key "id";
- description
- "Manager(s) this AP is assinged to, referenced by id.";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "id serves as a reference point to the [1-n] manager(s) this AP
- is assigned to.";
- }
-
- container config {
- description
- "Config. container for assigning APs to managers.";
-
- uses assigned-ap-managers-config;
- }
-
- container state {
- config false;
- description
- "State container for APs assigned to managers.";
-
- uses assigned-ap-managers-config;
- uses assigned-ap-managers-state;
- }
- }
- }
- }
-
- grouping access-points-top {
- description
- "Top-level grouping for AP configuration & state data.";
-
- container access-points {
- description
- "Top most container for configuration and state data for Access
- Points.";
-
- list access-point {
- key "hostname";
- description
- "Configuration and state data for the access point referenced in the
- list entry.";
-
- leaf hostname {
- type oc-inet:domain-name;
- description
- "AP FQDN";
- }
-
- uses wifi-phy:radio-top;
- uses wifi-mac:ssid-top;
- uses wifi-mac:bssid-counters-top;
- uses oc-sys:system-top;
- uses manager-ap-parameters-top;
- }
- }
- }
- uses access-points-top;
-
- // hostname is set using openconfig-wifi-aps model.
- deviation /oc-sys:system/oc-sys:config/oc-sys:hostname {
- deviate not-supported;
- }
-
- deviation /oc-sys:system/oc-sys:state/oc-sys:hostname {
- deviate not-supported;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-acl.yang b/src/plugins/yang/openconfig/openconfig-acl.yang
deleted file mode 100644
index aa069cd..0000000
--- a/src/plugins/yang/openconfig/openconfig-acl.yang
+++ /dev/null
@@ -1,837 +0,0 @@
-module openconfig-acl {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/acl";
-
- prefix "oc-acl";
-
- import openconfig-packet-match { prefix oc-match; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state
- data for network access control lists (i.e., filters, rules,
- etc.). ACLs are organized into ACL sets, with each set
- containing one or more ACL entries. ACL sets are identified
- by a unique name, while each entry within a set is assigned
- a sequence-id that determines the order in which the ACL
- rules are applied to a packet. Note that ACLs are evaluated
- in ascending order based on the sequence-id (low to high).
-
- Individual ACL rules specify match criteria based on fields in
- the packet, along with an action that defines how matching
- packets should be handled. Entries have a type that indicates
- the type of match criteria, e.g., MAC layer, IPv4, IPv6, etc.";
-
- oc-ext:openconfig-version "1.0.1";
-
- revision "2018-04-24" {
- description
- "Clarified order of ACL evaluation";
- reference "1.0.1";
- }
-
- revision "2017-05-26" {
- description
- "Separated ACL entries by type";
- reference "1.0.0";
- }
-
- revision "2016-08-08" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
- revision "2016-01-22" {
- description
- "Initial revision";
- reference "TBD";
- }
-
-
- identity ACL_TYPE {
- description
- "Base identity for types of ACL sets";
- }
-
- identity ACL_IPV4 {
- base ACL_TYPE;
- description
- "IP-layer ACLs with IPv4 addresses";
- }
-
- identity ACL_IPV6 {
- base ACL_TYPE;
- description
- "IP-layer ACLs with IPv6 addresses";
- }
-
- identity ACL_L2 {
- base ACL_TYPE;
- description
- "MAC-layer ACLs";
- }
-
- identity ACL_MIXED {
- base ACL_TYPE;
- description
- "Mixed-mode ACL that specifies L2 and L3 protocol
- fields. This ACL type is not implemented by many
- routing/switching devices.";
- }
-
- // ACL action type
-
- identity FORWARDING_ACTION {
- description
- "Base identity for actions in the forwarding category";
- }
-
- identity ACCEPT {
- base FORWARDING_ACTION;
- description
- "Accept the packet";
- }
-
- identity DROP {
- base FORWARDING_ACTION;
- description
- "Drop packet without sending any ICMP error message";
- }
-
- identity REJECT {
- base FORWARDING_ACTION;
- description
- "Drop the packet and send an ICMP error message to the source";
- }
-
- identity LOG_ACTION {
- description
- "Base identity for defining the destination for logging
- actions";
- }
-
- identity LOG_SYSLOG {
- base LOG_ACTION;
- description
- "Log the packet in Syslog";
- }
-
- identity LOG_NONE {
- base LOG_ACTION;
- description
- "No logging";
- }
-
- identity ACL_COUNTER_CAPABILITY {
- description
- "Base identity for system to indicate how it is able to report
- counters";
- }
-
- identity INTERFACE_ONLY {
- base ACL_COUNTER_CAPABILITY;
- description
- "ACL counters are available and reported only per interface";
- }
-
- identity AGGREGATE_ONLY {
- base ACL_COUNTER_CAPABILITY;
- description
- "ACL counters are aggregated over all interfaces, and reported
- only per ACL entry";
- }
-
- identity INTERFACE_AGGREGATE {
- base ACL_COUNTER_CAPABILITY;
- description
- "ACL counters are reported per interface, and also aggregated
- and reported per ACL entry.";
- }
-
- // grouping statements
-
- // input interface
- grouping input-interface-config {
- description
- "Config of interface";
-
- }
-
- grouping input-interface-state {
- description
- "State information of interface";
- }
-
- grouping input-interface-top {
- description
- "Input interface top level container";
-
- container input-interface {
- description
- "Input interface container";
-
- container config {
- description
- "Config data";
- uses input-interface-config;
- }
-
- container state {
- config false;
- description
- "State information";
- uses input-interface-config;
- uses input-interface-state;
- }
-
- uses oc-if:interface-ref;
-
- }
- }
-
- // Action Type
- grouping action-config {
- description
- "Config of action type";
-
-
- leaf forwarding-action {
- type identityref {
- base FORWARDING_ACTION;
- }
- mandatory true;
- description
- "Specifies the forwarding action. One forwarding action
- must be specified for each ACL entry";
- }
-
- leaf log-action {
- type identityref {
- base LOG_ACTION;
- }
- default LOG_NONE;
- description
- "Specifies the log action and destination for
- matched packets. The default is not to log the
- packet.";
- }
-
-
- }
-
- grouping action-state {
- description
- "State information of action type";
-
- }
-
- grouping action-top {
- description
- "ACL action type top level container";
-
- container actions {
- description
- "Enclosing container for list of ACL actions associated
- with an entry";
-
- container config {
- description
- "Config data for ACL actions";
- uses action-config;
- }
-
- container state {
- config false;
- description
- "State information for ACL actions";
- uses action-config;
- uses action-state;
- }
- }
- }
-
- grouping acl-counters-state {
- description
- "Common grouping for ACL counters";
-
- leaf matched-packets {
- type oc-yang:counter64;
- description
- "Count of the number of packets matching the current ACL
- entry.
-
- An implementation should provide this counter on a
- per-interface per-ACL-entry if possible.
-
- If an implementation only supports ACL counters per entry
- (i.e., not broken out per interface), then the value
- should be equal to the aggregate count across all interfaces.
-
- An implementation that provides counters per entry per
- interface is not required to also provide an aggregate count,
- e.g., per entry -- the user is expected to be able implement
- the required aggregation if such a count is needed.";
- }
-
- leaf matched-octets {
- type oc-yang:counter64;
- description
- "Count of the number of octets (bytes) matching the current
- ACL entry.
-
- An implementation should provide this counter on a
- per-interface per-ACL-entry if possible.
-
- If an implementation only supports ACL counters per entry
- (i.e., not broken out per interface), then the value
- should be equal to the aggregate count across all interfaces.
-
- An implementation that provides counters per entry per
- interface is not required to also provide an aggregate count,
- e.g., per entry -- the user is expected to be able implement
- the required aggregation if such a count is needed.";
- }
-
- }
-
- // Access List Entries
- grouping access-list-entries-config {
- description
- "Access List Entries (ACE) config.";
-
- leaf sequence-id {
- type uint32;
- description
- "The sequence id determines the order in which ACL entries
- are applied. The sequence id must be unique for each entry
- in an ACL set. Target devices should apply the ACL entry
- rules in ascending order determined by sequence id (low to
- high), rather than the relying only on order in the list.";
- }
-
- leaf description {
- type string;
- description
- "A user-defined description, or comment, for this Access List
- Entry.";
- }
-
- }
-
- grouping access-list-entries-state {
- description
- "Access List Entries state.";
-
- uses acl-counters-state;
-
- }
-
- grouping access-list-entries-top {
- description
- "Access list entries to level container";
-
- container acl-entries {
- description
- "Access list entries container";
-
- list acl-entry {
- key "sequence-id";
- description
- "List of ACL entries comprising an ACL set";
-
- leaf sequence-id {
- type leafref {
- path "../config/sequence-id";
- }
- description
- "references the list key";
- }
-
- container config {
- description
- "Access list entries config";
- uses access-list-entries-config;
- }
-
- container state {
- config false;
- description
- "State information for ACL entries";
- uses access-list-entries-config;
- uses access-list-entries-state;
- }
-
- uses oc-match:ethernet-header-top {
- when "../../config/type='ACL_L2'" {
- description
- "MAC-layer fields are valid when the ACL type is L2";
- }
- }
- uses oc-match:ipv4-protocol-fields-top {
- when "../../config/type='ACL_IPV4'" {
- description
- "IPv4-layer fields are valid when the ACL type is
- IPv4";
- }
- }
- uses oc-match:ipv6-protocol-fields-top {
- when "../../config/type='ACL_IPV6'" {
- description
- "IPv6-layer fields are valid when the ACL type is
- IPv6";
- }
- }
- uses oc-match:transport-fields-top {
- when "../../config/type='ACL_IPV6' or " +
- "../../config/type='ACL_IPV4'" {
- description
- "Transport-layer fields are valid when specifying
- L3 ACL types";
- }
- }
- uses input-interface-top;
-
- uses action-top;
- }
- }
- }
-
- grouping acl-set-config {
- description
- "Access Control List config";
-
- leaf name {
- type string;
- description
- "The name of the access-list set";
- }
-
- leaf type {
- type identityref {
- base ACL_TYPE;
- }
- description
- "The type determines the fields allowed in the ACL entries
- belonging to the ACL set (e.g., IPv4, IPv6, etc.)";
- }
-
- leaf description {
- type string;
- description
- "Description, or comment, for the ACL set";
- }
-
- }
-
- grouping acl-set-state {
- description
- "Access Control List state";
- }
-
- grouping acl-set-top {
- description
- "Access list entries variables top level container";
-
- container acl-sets {
- description
- "Access list entries variables enclosing container";
-
- list acl-set {
- key "name type";
- description
- "List of ACL sets, each comprising of a list of ACL
- entries";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the name list key";
- }
-
- leaf type {
- type leafref {
- path "../config/type";
- }
- description
- "Reference to the type list key";
- }
-
- container config {
- description
- "Access list config";
- uses acl-set-config;
- }
-
- container state {
- config false;
- description
- "Access list state information";
- uses acl-set-config;
- uses acl-set-state;
- }
- uses access-list-entries-top;
- }
- }
- }
-
- grouping interface-acl-entries-config {
- description
- "Configuration data for per-interface ACLs";
-
- }
-
- grouping interface-acl-entries-state {
- description
- "Operational state data for per-interface ACL entries";
-
- leaf sequence-id {
- type leafref {
- path "/acl/acl-sets/" +
- "acl-set[name=current()/../../../../set-name]" +
- "[type=current()/../../../../type]/" +
- "acl-entries/acl-entry/sequence-id";
- }
- description
- "Reference to an entry in the ACL set applied to an
- interface";
- }
-
- uses acl-counters-state;
-
- }
-
- grouping interface-acl-entries-top {
- description
- "Top-level grouping for per-interface ACL entries";
-
- container acl-entries {
- config false;
- description
- "Enclosing container for list of references to ACLs";
-
- list acl-entry {
- key "sequence-id";
- description
- "List of ACL entries assigned to an interface";
-
- leaf sequence-id {
- type leafref {
- path "../state/sequence-id";
- }
- description
- "Reference to per-interface acl entry key";
- }
-
- // no config container since the enclosing container is
- // read-only
-
- container state {
-
- config false;
-
- description
- "Operational state data for per-interface ACL entries";
-
- uses interface-acl-entries-config;
- uses interface-acl-entries-state;
- }
- }
- }
- }
-
- grouping interface-ingress-acl-config {
- description
- "Configuration data for per-interface ingress ACLs";
-
- leaf set-name {
- type leafref {
- path "../../../../../../acl-sets/acl-set/config/name";
- }
- description
- "Reference to the ACL set name applied on ingress";
- }
-
- leaf type {
- type leafref {
- path "../../../../../../acl-sets/acl-set[name=current()/../set-name]" +
- "/config/type";
- }
- description
- "Reference to the ACL set type applied on ingress";
- }
- }
-
- grouping interface-ingress-acl-state {
- description
- "Operational state data for the per-interface ingress ACL";
- }
-
- grouping interface-ingress-acl-top {
- description
- "Top-level grouping for per-interface ingress ACL data";
-
- container ingress-acl-sets {
- description
- "Enclosing container the list of ingress ACLs on the
- interface";
-
- list ingress-acl-set {
- key "set-name type";
- description
- "List of ingress ACLs on the interface";
-
- leaf set-name {
- type leafref {
- path "../config/set-name";
- }
- description
- "Reference to set name list key";
- }
-
- leaf type {
- type leafref {
- path "../config/type";
- }
- description
- "Reference to type list key";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses interface-ingress-acl-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for interface ingress ACLs";
-
- uses interface-ingress-acl-config;
- uses interface-ingress-acl-state;
- }
-
- uses interface-acl-entries-top;
- }
- }
- }
-
- grouping interface-egress-acl-config {
- description
- "Configuration data for per-interface egress ACLs";
-
- leaf set-name {
- type leafref {
- path "../../../../../../acl-sets/acl-set/config/name";
- }
- description
- "Reference to the ACL set name applied on egress";
- }
-
- leaf type {
- type leafref {
- path "../../../../../../acl-sets/acl-set[name=current()/../set-name]" +
- "/config/type";
- }
- description
- "Reference to the ACL set type applied on egress.";
- }
- }
-
- grouping interface-egress-acl-state {
- description
- "Operational state data for the per-interface egress ACL";
- }
-
- grouping interface-egress-acl-top {
- description
- "Top-level grouping for per-interface egress ACL data";
-
- container egress-acl-sets {
- description
- "Enclosing container the list of egress ACLs on the
- interface";
-
- list egress-acl-set {
- key "set-name type";
- description
- "List of egress ACLs on the interface";
-
- leaf set-name {
- type leafref {
- path "../config/set-name";
- }
- description
- "Reference to set name list key";
- }
-
- leaf type {
- type leafref {
- path "../config/type";
- }
- description
- "Reference to type list key";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses interface-egress-acl-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for interface egress ACLs";
-
- uses interface-egress-acl-config;
- uses interface-egress-acl-state;
- }
-
- uses interface-acl-entries-top;
- }
- }
- }
-
- grouping acl-interfaces-config {
- description
- "Configuration data for interface references";
-
- leaf id {
- type oc-if:interface-id;
- description
- "User-defined identifier for the interface -- a common
- convention could be '<if name>.<subif index>'";
- }
- }
-
- grouping acl-interfaces-state {
- description
- "Operational state data for interface references";
- }
-
- grouping acl-interfaces-top {
- description
- "Top-level grouping for interface-specific ACL data";
-
- container interfaces {
- description
- "Enclosing container for the list of interfaces on which
- ACLs are set";
-
- list interface {
- key "id";
- description
- "List of interfaces on which ACLs are set";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "Reference to the interface id list key";
- }
-
- container config {
- description
- "Configuration for ACL per-interface data";
-
- uses acl-interfaces-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state for ACL per-interface data";
-
- uses acl-interfaces-config;
- uses acl-interfaces-state;
- }
-
- uses oc-if:interface-ref;
- uses interface-ingress-acl-top;
- uses interface-egress-acl-top;
- }
- }
- }
-
- grouping acl-config {
- description
- "Global configuration data for ACLs";
- }
-
- grouping acl-state {
- description
- "Global operational state data for ACLs";
-
- leaf counter-capability {
- type identityref {
- base ACL_COUNTER_CAPABILITY;
- }
- description
- "System reported indication of how ACL counters are reported
- by the target";
- }
- }
- grouping acl-top {
- description
- "Top level grouping for ACL data and structure";
-
- container acl {
- description
- "Top level enclosing container for ACL model config
- and operational state data";
-
- container config {
- description
- "Global config data for ACLs";
-
- uses acl-config;
- }
-
- container state {
-
- config false;
-
- description
- "Global operational state data for ACLs";
-
- uses acl-config;
- uses acl-state;
- }
-
- uses acl-set-top;
- uses acl-interfaces-top;
- }
- }
-
- // data definition statements
- uses acl-top;
-
- // augment statements
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft-common.yang b/src/plugins/yang/openconfig/openconfig-aft-common.yang
deleted file mode 100644
index c2b884f..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft-common.yang
+++ /dev/null
@@ -1,385 +0,0 @@
-submodule openconfig-aft-common {
- belongs-to "openconfig-aft" {
- prefix "oc-aft";
- }
-
- import openconfig-interfaces { prefix "oc-if"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-yang-types { prefix "oc-yang"; }
- import openconfig-inet-types { prefix "oc-inet"; }
- import openconfig-mpls-types { prefix "oc-mplst"; }
- import openconfig-policy-types { prefix "oc-pol-types"; }
- import openconfig-aft-types { prefix "oc-aftt"; }
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Submodule containing definitions of groupings that are re-used
- across multiple contexts within the AFT model.";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.3.1";
- }
-
- revision 2017-05-10 {
- description
- "Refactor to provide concretised per-AF schemas per AFT.";
- reference "0.3.0";
- }
-
- grouping aft-nhop-structural {
- description
- "Structural grouping describing a next-hop entry.";
-
- container next-hops {
- description
- "The list of next-hops that are to be used for entry within
- the AFT table. The structure of each next-hop is address
- family independent, such that it is possible to resolve fully
- how the next-hop is treated. For example:
-
- - Where ingress IPv4 unicast packets are to be forwarded via
- an MPLS LSP, the next-hop list should indicate the MPLS
- label stack that is used to the next-hop.
- - Where ingress MPLS labelled packets are to be forwarded to
- an IPv6 nexthop (for example, a CE within a VPN, then the
- popped label stack, and IPv6 next-hop address should be
- indicated).";
-
- list next-hop {
- key "index";
-
- description
- "A next-hop associated with the forwarding instance.";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "A unique index identifying the next-hop entry for the
- AFT entry";
-
- }
-
- container config {
- description
- "Configuration parameters relating to the AFT next-hop
- entry";
-
- uses aft-common-entry-nexthop-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the AFT
- next-hop entry";
-
- uses aft-common-entry-nexthop-config;
- uses aft-common-entry-nexthop-state;
- }
-
- uses oc-if:interface-ref;
- }
- }
- }
-
- grouping aft-common-entry-state {
- description
- "Operational state parameters relating to a forwarding entry";
-
- leaf packets-forwarded {
- type oc-yang:counter64;
- description
- "The number of packets which have matched, and been forwarded,
- based on the AFT entry.";
- }
-
- leaf octets-forwarded {
- type oc-yang:counter64;
- description
- "The number of octets which have matched, and been forwarded,
- based on the AFT entry";
- }
-
- // We are at $afi/$entry/state/next-hop-group
- leaf next-hop-group {
- type leafref {
- path "../../../../next-hop-groups/next-hop-group/state/id";
- }
- description
- "A reference to the next-hop-group that is in use for the entry
- within the AFT. Traffic is distributed across the set of next-hops
- within the next-hop group according to the weight.";
- }
- }
-
- grouping aft-common-entry-nexthop-config {
- description
- "Configuration parameters relating to a next-hop entry for a AFT
- entry";
-
- leaf index {
- type uint64;
- description
- "A unique entry for the next-hop.";
- }
- }
-
- grouping aft-common-entry-nexthop-state {
- description
- "Parameters relating to a next-hop.";
-
- leaf ip-address {
- type oc-inet:ip-address;
- description
- "The IP address of the next-hop system.";
- }
-
- leaf mac-address {
- type oc-yang:mac-address;
- description
- "The MAC address of the next-hop if resolved by the local
- network instance.";
- }
-
- leaf-list pushed-mpls-label-stack {
- type oc-mplst:mpls-label;
- ordered-by user;
- description
- "The MPLS label stack imposed when forwarding packets to the
- next-hop
- - the stack is encoded as a leaf list whereby the order of the
- entries is such that the first entry in the list is the
- label at the bottom of the stack to be pushed.
-
- To this end, a packet which is to forwarded to a device using
- a service label of 42, and a transport label of 8072 will be
- represented with a label stack list of [42, 8072].
-
- The MPLS label stack list is ordered by the user, such that no
- system re-ordering of leaves is permitted by the system.
-
- A swap operation is reflected by entries in the
- popped-mpls-label-stack and pushed-mpls-label-stack nodes.";
-
- }
-
- leaf encapsulate-header {
- type oc-aftt:encapsulation-header-type;
- description
- "When forwarding a packet to the specified next-hop the local
- system performs an encapsulation of the packet - adding the
- specified header type.";
- }
-
- leaf origin-protocol {
- type identityref {
- base "oc-pol-types:INSTALL_PROTOCOL_TYPE";
- }
- description
- "The protocol from which the AFT entry was learned.";
- }
- }
-
- grouping aft-common-ip-state {
- description
- "Common parameters across IP address families";
-
- leaf decapsulate-header {
- type oc-aftt:encapsulation-header-type;
- description
- "When forwarding a packet to the specified next-hop, the local
- system performs a decapsulation of the packet - removing the
- specified header type. In the case that no next-hop is
- specified, the packet header is removed, and a subsequent
- forwarding lookup is performed on the packet encapsulated
- within the header, matched within the relevant AFT within the
- specified network-instance.";
- }
- }
-
- grouping aft-next-hop-groups-structural {
- description
- "Logical grouping for groups of next-hops.";
-
- container next-hop-groups {
- description
- "Surrounding container for groups of next-hops.";
-
- list next-hop-group {
- key "id";
-
- description
- "An individual set of next-hops grouped into a common group.
- Each entry within an abstract forwarding table points to a
- next-hop-group. Entries in the next-hop-group are forwarded to
- according to the weights specified for each next-hop group.
-
- If an entry within the next-hop group becomes unusable, for
- example due to an interface failure, the remaining entries
- are used until all entries become unusable - at which point
- the backup next-hop-group (if specified) is used.";
-
- leaf id {
- description
- "A reference to a unique identifier for the next-hop-group.";
-
- type leafref {
- path "../config/id";
- }
- }
-
- container config {
- description
- "Configuration parameters related to the next-hop-group.";
- uses aft-nhg-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to next-hop-groups.";
- uses aft-nhg-config;
- uses aft-nhg-state;
- }
-
- container next-hops {
- description
- "Surrounding container for the list of next-hops within
- the next-hop-group.";
-
- list next-hop {
- key "index";
-
- description
- "An individual next-hop within the next-hop-group. Each
- next-hop is a reference to an entry within the next-hop
- list.";
-
- leaf index {
- description
- "A reference to the index for the next-hop within the
- the next-hop-group.";
- type leafref {
- path "../config/index";
- }
- }
-
- container config {
- description
- "Configuration parameters related to a next-hop within
- the next-hop-group.";
- uses aft-nhg-nh-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters related to a next-hop
- within the next-hop-group.";
- uses aft-nhg-nh-config;
- uses aft-nhg-nh-state;
- }
- }
- }
- }
- }
- }
-
- grouping aft-nhg-config {
- description
- "Configuration parameters related to a next-hop-group.";
-
- leaf id {
- type uint64;
- description
- "A unique identifier for the next-hop-group. This index
- is not expected to be consistent across reboots, or
- reprogramming of the next-hop-group. When updating
- a next-hop-group, if the group is removed by the system
- or assigned an alternate identifier, the system should
- send telemetry notifications deleting the previous
- identifier. If the identifier of the next-hop-group
- is changed, all AFT entries that reference it must
- also be updated.";
- }
- }
-
- grouping aft-nhg-state {
- description
- "Operational state parameters related to a next-hop-group.";
-
- leaf color {
- type uint64;
- description
-
- "An arbitrary colour that is used as an identifier for the next-hop
- group. Some next-hop resolutions may utilise the colour to select
- the particular next-hop-group that a routing entry should be resolved
- to. In this case, next-hop-group selection may be based on colour
- matches rather than the protocol specified next-hop.
-
- Regardless of whether the next-hop-group's specified colour is
- used to select an AFT's active forwarding entry, the next-hop-group
- referenced by an entry should be the currently active value.
-
- Next-hop-groups that are installed on the system through a protocol
- that allows injection of such entries (e.g., BGP using the SR-TE
- Policy SAFI, or gRPC-based RIB programming) should have the colour
- specified in the injecting protocol within this leaf.";
- }
-
- leaf backup-next-hop-group {
- // We are at afts/next-hop-groups/next-hop-group/config/backup-next-hop-group
- type leafref {
- path "../../../next-hop-group/state/id";
- }
- description
- "The backup next-hop-group for the current group. When all
- entries within the next-hop group become unusable, the backup
- next-hop group is used if specified.";
- }
- }
-
- grouping aft-nhg-nh-config {
- description
- "Configuration parameters relating to an individual next-hop within
- a next-hop-group.";
-
- leaf index {
- type leafref {
- // We are at afts/next-hop-groups/next-hop-group/next-hops/next-hop/config/id
- path "../../../../../../next-hops/next-hop/config/index";
- }
- description
- "A reference to the identifier for the next-hop to which
- the entry in the next-hop group corresponds.";
- }
- }
-
- grouping aft-nhg-nh-state {
- description
- "Operational state parameters relating to an individual next-hop
- within the next-hop-group.";
-
- leaf weight {
- type uint64;
- description
- "The weight applied to the next-hop within the group. Traffic
- is balanced across the next-hops within the group in the
- proportion of weight/(sum of weights of the next-hops within
- the next-hop group).";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft-ethernet.yang b/src/plugins/yang/openconfig/openconfig-aft-ethernet.yang
deleted file mode 100644
index 714a059..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft-ethernet.yang
+++ /dev/null
@@ -1,93 +0,0 @@
-submodule openconfig-aft-ethernet {
- belongs-to "openconfig-aft" {
- prefix "oc-aft";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-yang-types { prefix "oc-yang"; }
-
- // Include common cross-AFT groupings from the common submodule.
- include openconfig-aft-common;
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Submodule containing definitions of groupings for the abstract
- forwarding tables for Ethernet.";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.3.1";
- }
-
- revision 2017-05-10 {
- description
- "Refactor to provide concretised per-AF schemas per AFT.";
- reference "0.3.0";
- }
-
- grouping aft-ethernet-structural {
- description
- "Structural grouping defining the schema for the Ethernet
- abstract forwarding table.";
-
- list mac-entry {
- key "mac-address";
-
- description
- "List of the Ethernet entries within the abstract
- forwarding table. This list is keyed by the outer MAC address
- of the Ethernet frame.";
-
- leaf mac-address {
- type leafref {
- path "../config/mac-address";
- }
- description
- "Reference to the outer MAC address matched by the
- entry.";
- }
-
- container config {
- description
- "Configuration parameters for the Ethernet AFT entry.";
- uses aft-ethernet-entry-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the Ethernet AFT
- entry.";
- uses aft-ethernet-entry-config;
- uses aft-ethernet-entry-state;
- }
- }
- }
-
- grouping aft-ethernet-entry-config {
- description
- "Configuration parameters for the Ethernet AFT entry.";
-
- leaf mac-address {
- type oc-yang:mac-address;
- description
- "The outer MAC address of the Ethernet frame that must
- be matched for the AFT entry to be utilised.";
- }
- }
-
- grouping aft-ethernet-entry-state {
- description
- "Operational state parameters for the Ethernet AFT entry.";
- uses aft-common-entry-state;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft-ipv4.yang b/src/plugins/yang/openconfig/openconfig-aft-ipv4.yang
deleted file mode 100644
index 20f8992..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft-ipv4.yang
+++ /dev/null
@@ -1,94 +0,0 @@
-submodule openconfig-aft-ipv4 {
- belongs-to "openconfig-aft" {
- prefix "oc-aft";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-inet-types { prefix "oc-inet"; }
-
- // Include common cross-AFT groupings from the common submodule.
- include openconfig-aft-common;
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Submodule containing definitions of groupings for the abstract
- forwarding tables for IPv4.";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.3.1";
- }
-
- revision 2017-05-10 {
- description
- "Refactor to provide concretised per-AF schemas per AFT.";
- reference "0.3.0";
- }
-
- grouping aft-ipv4-unicast-structural {
- description
- "Structural grouping defining the schema for the IPv4 unicast
- abstract forwarding table.";
-
- list ipv4-entry {
- key "prefix";
-
- description
- "List of the IPv4 unicast entries within the abstract
- forwarding table. This list is keyed by the destination IPv4
- prefix.";
-
- leaf prefix {
- type leafref {
- path "../config/prefix";
- }
- description
- "Reference to the IPv4 unicast destination prefix which
- must be matched to utilise the AFT entry.";
- }
-
- container config {
- description
- "Configuration parameters for the IPv4 unicast AFT entry.";
- uses aft-ipv4-unicast-entry-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the IPv4 unicast AFT
- entry.";
- uses aft-ipv4-unicast-entry-config;
- uses aft-ipv4-unicast-entry-state;
- }
- }
- }
-
- grouping aft-ipv4-unicast-entry-config {
- description
- "Configuration parameters for the IPv4 unicast entry.";
-
- leaf prefix {
- type oc-inet:ipv4-prefix;
- description
- "The IPv4 destination prefix that should be matched to
- utilise the AFT entry.";
- }
- }
-
- grouping aft-ipv4-unicast-entry-state {
- description
- "Operational state parameters for the IPv4 unicast entry.";
- uses aft-common-entry-state;
- uses aft-common-ip-state;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft-ipv6.yang b/src/plugins/yang/openconfig/openconfig-aft-ipv6.yang
deleted file mode 100644
index 3a8f934..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft-ipv6.yang
+++ /dev/null
@@ -1,94 +0,0 @@
-submodule openconfig-aft-ipv6 {
- belongs-to "openconfig-aft" {
- prefix "oc-aft";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-inet-types { prefix "oc-inet"; }
-
- // Include common cross-AFT groupings from the common submodule.
- include openconfig-aft-common;
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Submodule containing definitions of groupings for the abstract
- forwarding tables for IPv6.";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.3.1";
- }
-
- revision 2017-05-10 {
- description
- "Refactor to provide concretised per-AF schemas per AFT.";
- reference "0.3.0";
- }
-
- grouping aft-ipv6-unicast-structural {
- description
- "Structural grouping defining the schema for the IPv6 unicast
- abstract forwarding table.";
-
- list ipv6-entry {
- key "prefix";
-
- description
- "List of the IPv6 unicast entries within the abstract
- forwarding table. This list is keyed by the destination IPv6
- prefix.";
-
- leaf prefix {
- type leafref {
- path "../config/prefix";
- }
- description
- "Reference to the IPv6 unicast destination prefix which
- must be matched to utilise the AFT entry.";
- }
-
- container config {
- description
- "Configuration parameters for the IPv6 unicast AFT entry.";
- uses aft-ipv6-unicast-entry-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the IPv6 unicast AFT
- entry.";
- uses aft-ipv6-unicast-entry-config;
- uses aft-ipv6-unicast-entry-state;
- }
- }
- }
-
- grouping aft-ipv6-unicast-entry-config {
- description
- "Configuration parameters for the IPv6 unicast entry.";
-
- leaf prefix {
- type oc-inet:ipv6-prefix;
- description
- "The IPv6 destination prefix that should be matched to
- utilise the AFT entry.";
- }
- }
-
- grouping aft-ipv6-unicast-entry-state {
- description
- "Operational state parameters for the IPv6 unicast entry.";
- uses aft-common-entry-state;
- uses aft-common-ip-state;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft-mpls.yang b/src/plugins/yang/openconfig/openconfig-aft-mpls.yang
deleted file mode 100644
index 1772fe0..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft-mpls.yang
+++ /dev/null
@@ -1,111 +0,0 @@
-submodule openconfig-aft-mpls {
- belongs-to "openconfig-aft" {
- prefix "oc-aft";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-mpls-types { prefix "oc-mplst"; }
-
- // Include common cross-AFT groupings from the common submodule.
- include openconfig-aft-common;
-
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Submodule containing definitions of groupings for the abstract
- forwarding table for MPLS label forwarding.";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.3.1";
- }
-
- revision 2017-05-10 {
- description
- "Refactor to provide concretised per-AF schemas per AFT.";
- reference "0.3.0";
- }
-
- grouping aft-mpls-structural {
- description
- "Structural grouping defining the schema for the MPLS
- abstract forwarding table.";
-
- list label-entry {
- key "label";
-
- description
- "List of the MPLS entries within the abstract
- forwarding table. This list is keyed by the top-most MPLS
- label.";
-
- leaf label {
- type leafref {
- path "../config/label";
- }
- description
- "Reference to the top-most MPLS label matched by the
- entry.";
- }
-
- container config {
- description
- "Configuration parameters for the MPLS AFT entry.";
- uses aft-mpls-entry-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the MPLS AFT
- entry.";
- uses aft-mpls-entry-config;
- uses aft-mpls-entry-state;
- }
- }
- }
-
- grouping aft-mpls-entry-config {
- description
- "Configuration parameters for the MPLS entry.";
-
- leaf label {
- type oc-mplst:mpls-label;
- description
- "The top-most MPLS label that should be matched to
- utilise the AFT entry.";
- }
- }
-
- grouping aft-mpls-entry-state {
- description
- "Operational state parameters for the MPLS entry.";
- uses aft-common-entry-state;
-
- leaf-list popped-mpls-label-stack {
- type oc-mplst:mpls-label;
- description
- "The MPLS label stack to be popped from the packet when
- switched by the system. The stack is encoded as a leaf-list
- such that the first entry is the label that is outer-most (i.e.,
- furthest from the bottom of the stack).
-
- If the local system pops the outer-most label 400, then the
- value of this list is [400,]. If the local system removes two
- labels, the outer-most being 500, and the second of which is
- 400, then the value of the list is [500, 400].
-
- A swap operation is reflected by entries in the
- popped-mpls-label-stack and pushed-mpls-label-stack nodes.";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft-network-instance.yang b/src/plugins/yang/openconfig/openconfig-aft-network-instance.yang
deleted file mode 100644
index aed74cf..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft-network-instance.yang
+++ /dev/null
@@ -1,98 +0,0 @@
-module openconfig-aft-network-instance {
- yang-version "1";
-
- namespace "http://openconfig.net/yang/aft/ni";
- prefix "oc-aftni";
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-network-instance { prefix "oc-ni"; }
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module provides augmentations that are utilized
- when building the OpenConfig network instance model to
- add per-NI AFTs.";
-
- oc-ext:openconfig-version "0.2.2";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.2.2";
- }
-
- revision 2017-01-13 {
- description
- "Updated revision for external review";
- reference "0.2.1";
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:afts/oc-ni:next-hops/oc-ni:next-hop/oc-ni:state" {
-
- description
- "Add leaves that require referencing of a network instance to the
- operational state parameters of a next-hop within the AFT for IPv4
- unicast.";
-
- uses aft-nexthop-ni-state;
- }
-
- grouping aft-nexthop-ni-state {
- description
- "Operational state parameters relating to a next-hop which reference a
- network instance.";
-
- leaf network-instance {
- type oc-ni:network-instance-ref;
- description
- "The network-instance within which the next-hop should be resolved.
- When this leaf is unspecified, the next-hop is resolved within
- the local instance.";
- }
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:afts/oc-ni:ipv4-unicast/oc-ni:ipv4-entry/oc-ni:state" {
- description
- "Add leaves that require referencing of a network instance to the
- operational state parameters of an entry within the IPv4 unicast AFT.";
-
- uses aft-entry-ni-state;
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:afts/oc-ni:ipv6-unicast/oc-ni:ipv6-entry/oc-ni:state" {
- description
- "Add leaves that require referencing of a network instance to the
- operational state parameters of an entry within the IPv6 unicast AFT.";
-
- uses aft-entry-ni-state;
- }
-
- grouping aft-entry-ni-state {
- description
- "Operational state parameters relating to an AFT entry which reference
- a network instance.";
-
- leaf origin-network-instance {
- type oc-ni:network-instance-ref;
- description
- "If the AFT entry was imported from another network instance (e.g., it
- corresponds to a L3 forwarding entry which was learned within another
- network-instance), the value of this leaf reflects the network-instance
- from which it was learned.
-
- For example, if the local network-instance corresponds to a L3VRF, and
- routes are imported from the VPNv4 address-family of the BGP instance
- in the DEFAULT_INSTANCE, then this value would reflect the
- DEFAULT_INSTANCE as the origin-network-instance.";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft-pf.yang b/src/plugins/yang/openconfig/openconfig-aft-pf.yang
deleted file mode 100644
index 839f9e5..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft-pf.yang
+++ /dev/null
@@ -1,172 +0,0 @@
-submodule openconfig-aft-pf {
- belongs-to "openconfig-aft" {
- prefix "oc-aft";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-inet-types { prefix "oc-inet"; }
- import openconfig-yang-types { prefix "oc-yang"; }
- import openconfig-mpls-types { prefix "oc-mplst"; }
- import openconfig-packet-match-types {
- prefix "oc-pkt-match-types";
- }
-
- // Include common cross-AFT groupings from the common submodule.
- include openconfig-aft-common;
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Submodule containing definitions of groupings for the abstract
- forwarding table(s) for policy forwarding entries. These are
- defined to be forwarding tables that allow matches on
- fields other than the destination address that is used in
- other forwarding tables.";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.3.1";
- }
-
- revision 2017-05-10 {
- description
- "Refactor to provide concretised per-AF schemas per AFT.";
- reference "0.3.0";
- }
-
- grouping aft-pf-structural {
- description
- "Structural grouping defining the schema for the policy
- forwarding abstract forwarding table.";
-
- list policy-forwarding-entry {
- key "index";
-
- description
- "List of the policy forwarding entries within the abstract
- forwarding table. Each entry is uniquely identified by an
- index on the system, due to the arbitrary match conditions
- that may be implemented within the policy forwarding AFT.
- The index may change upon changes of the entry if, and only
- if, the device exporting the AFT replaces the entire entry
- by removing the previous entry and replacing it with a
- subsequent updated version.";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the arbitary index for the policy forwarding
- AFT entry.";
- }
-
- container config {
- description
- "Configuration parameters for the Policy forwarding
- AFT entry.";
- uses aft-pf-entry-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the Policy Forwarding
- AFT entry.";
- uses aft-pf-entry-config;
- uses aft-pf-entry-state;
- }
- }
- }
-
- grouping aft-pf-entry-config {
- description
- "Configuration parameters for the Policy Forwarding
- AFT entry.";
-
- leaf index {
- type uint64;
- description
- "An arbitrary 64-bit index identifying the policy forwarding
- AFT entry.";
- }
-
- leaf ip-prefix {
- type oc-inet:ip-prefix;
- description
- "The IP prefix that the forwarding entry matches.";
- }
-
- leaf mac-address {
- type oc-yang:mac-address;
- description
- "The MAC address that the forwarding entry matches. Used for
- Layer 2 forwarding entries, e.g., within a VSI instance.";
- }
-
- leaf mpls-label {
- type oc-mplst:mpls-label;
- description
- "The MPLS label that the forwarding entry matches. Used for
- MPLS forwarding entries, whereby the local device acts as an
- LSR.";
- }
-
- leaf mpls-tc {
- type oc-mplst:mpls-tc;
- description
- "The value of the MPLS Traffic Class bits (formerly known as
- the MPLS experimental bits) that are to be matched by the AFT
- entry.";
- reference
- "RFC5462: Multiprotocol Label Switching (MPLS) Label Stack
- Entry: 'EXP' Field Renamed to 'Traffic Class' Field"; }
-
- leaf ip-dscp {
- type oc-inet:dscp;
- description
- "The value of the differentiated services code point (DSCP) to
- be matched for the forwarding entry. The value is specified in
- cases where specific class-based forwarding based on IP is
- implemented by the device.";
- }
-
- leaf ip-protocol {
- type oc-pkt-match-types:ip-protocol-type;
- description
- "The value of the IP protocol field of an IPv4 packet, or the
- next-header field of an IPv6 packet which is to be matched by
- the AFT entry. This field is utilised where forwarding is
- performed based on L4 information.";
- }
-
- leaf l4-src-port {
- type oc-inet:port-number;
- description
- "The value of the source port field of the transport header
- that is to be matched by the AFT entry.";
- }
-
- leaf l4-dst-port {
- type oc-inet:port-number;
- description
- "The value of the destination port field of the transport
- header that is to be matched by the AFT entry.";
- }
- }
-
- grouping aft-pf-entry-state {
- description
- "Operational state parameters for the Policy Forwarding
- AFT entry.";
- uses aft-common-entry-state;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft-types.yang b/src/plugins/yang/openconfig/openconfig-aft-types.yang
deleted file mode 100644
index 7af2744..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft-types.yang
+++ /dev/null
@@ -1,58 +0,0 @@
-module openconfig-aft-types {
-
- namespace "http://openconfig.net/yang/fib-types";
- prefix "oc-aftt";
-
- import openconfig-extensions { prefix "oc-ext"; }
-
- organization
- "OpenConfig Working Group";
-
- contact
- "OpenConfig Working Group
- www.openconfig.net";
-
- description
- "Types related to the OpenConfig Abstract Forwarding
- Table (AFT) model";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.3.1";
- }
-
- revision 2017-05-10 {
- description
- "Refactor to provide concretised per-AF schemas per AFT.";
- reference "0.3.0";
- }
-
- typedef encapsulation-header-type {
- type enumeration {
- enum GRE {
- description
- "The encapsulation header is a Generic Routing Encapsulation
- header.";
- }
- enum IPV4 {
- description
- "The encapsulation header is an IPv4 packet header";
- }
- enum IPV6 {
- description
- "The encapsulation header is an IPv6 packet header";
- }
- enum MPLS {
- description
- "The encapsulation header is one or more MPLS labels indicated
- by the pushed and popped label stack lists.";
- }
- }
- description
- "Types of tunnel encapsulation that are supported by systems as either
- head- or tail-end.";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-aft.yang b/src/plugins/yang/openconfig/openconfig-aft.yang
deleted file mode 100644
index ef3374d..0000000
--- a/src/plugins/yang/openconfig/openconfig-aft.yang
+++ /dev/null
@@ -1,144 +0,0 @@
-module openconfig-aft {
-
- yang-version "1";
-
- namespace "http://openconfig.net/yang/aft";
-
- prefix "oc-aft";
-
- import openconfig-extensions { prefix "oc-ext"; }
-
- // Include IPv4 AFT submodule.
- include openconfig-aft-ipv4;
- // Include IPv6 AFT submodule.
- include openconfig-aft-ipv6;
- // Include MPLS AFT submodule.
- include openconfig-aft-mpls;
- // Include policy forwarding AFT submodule.
- include openconfig-aft-pf;
- // Include the ethernet AFT submodule.
- include openconfig-aft-ethernet;
- // Include the common cross-AFT entities.
- include openconfig-aft-common;
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "A model describing the forwarding entries installed on a network
- element. It should be noted that this model is not expected to
- align 1:1 with the underlying structure used directly by a
- forwarding element (e.g., linecard), but rather provide an
- abstraction that can be consumed by an NMS to observe, and in some
- cases manipulate, the internal forwarding database in a simplified
- manner. Since the underlying model of the forwarding table is not
- expected to align with this model, the structure described herein
- is referred to as an Abstract Forwarding Table (AFT), rather than
- the FIB.";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision 2017-08-24 {
- description
- "Formatting fixes";
- reference "0.3.1";
- }
-
- revision 2017-05-10 {
- description
- "Refactor to provide concretised per-AF schemas per AFT.";
- reference "0.3.0";
- }
-
- // config + state groupings
-
- // structural groupings
-
- grouping aft-top {
- description
- "Top-level grouping allowing per-protocol instantiation of the
- AFT.";
-
- container afts {
- description
- "The abstract forwarding tables (AFTs) that are associated
- with the network instance. An AFT is instantiated per-protocol
- running within the network-instance - such that one exists for
- IPv4 Unicast, IPv6 Unicast, MPLS, L2 forwarding entries, etc.
- A forwarding entry within the FIB has a set of next-hops,
- which may be a reference to an entry within another table -
- e.g., where a Layer 3 next-hop has an associated Layer 2
- forwarding entry.";
-
- container ipv4-unicast {
- description
- "The abstract forwarding table for IPv4 unicast. Entries
- within this table are uniquely keyed on the IPv4 unicast
- destination prefix which is matched by ingress packets.
-
- The data set represented by the IPv4 Unicast AFT is the set
- of entries from the IPv4 unicast RIB that have been selected
- for installation into the FIB of the device exporting the
- data structure.";
-
- uses aft-ipv4-unicast-structural;
- }
-
- container ipv6-unicast {
- description
- "The abstract forwarding table for IPv6 unicast. Entries
- within this table are uniquely keyed on the IPv6 unicast
- destination prefix which is matched by ingress packets.
-
- The data set represented by the IPv6 Unicast AFTis the set
- of entries within the IPv6 RIB that ";
-
- uses aft-ipv6-unicast-structural;
-
- }
-
- container policy-forwarding {
- description
- "The abstract forwarding table for policy-based forwarding
- entries. Since multiple match criteria can be utilised
- within a policy-based forwarding rule, this AFT provides a
- flexible match criteria, and is indexed based on an
- arbitrary 64-bit index. Entries within the AFT may match on
- multiple field types (e.g., L4 header fields, as well as L2
- fields).
-
- Examples of entries within this table are:
- - IPv4 policy-based routing based on DSCP.
- - MPLS policy-based forwarding entries.";
-
- uses aft-pf-structural;
- }
-
- container mpls {
- description
- "The abstract forwarding table for MPLS label based
- forwarding entries. Entries within the table are keyed based
- on the top-most MPLS label in the stack on the ingress
- packet.";
-
- uses aft-mpls-structural;
- }
-
- container ethernet {
- description
- "The abstract forwarding table for Ethernet based forwarding
- entries. Entries within the table are keyed based on the
- destination MAC address on the ingress packet.";
-
- uses aft-ethernet-structural;
- }
-
- uses aft-next-hop-groups-structural;
- uses aft-nhop-structural;
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-alarm-types.yang b/src/plugins/yang/openconfig/openconfig-alarm-types.yang
deleted file mode 100644
index 7ec8665..0000000
--- a/src/plugins/yang/openconfig/openconfig-alarm-types.yang
+++ /dev/null
@@ -1,139 +0,0 @@
-module openconfig-alarm-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/alarms/types";
-
- prefix "oc-alarm-types";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines operational state data related to alarms
- that the device is reporting.
-
- This model reuses some data items defined in the draft IETF
- YANG Alarm Module:
- https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
- Portions of this code were derived from the draft IETF YANG Alarm
- Module. Please reproduce this note if possible.
-
- IETF code is subject to the following copyright and license:
- Copyright (c) IETF Trust and the persons identified as authors of
- the code.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, is permitted pursuant to, and subject to the license
- terms contained in, the Simplified BSD License set forth in
- Section 4.c of the IETF Trust's Legal Provisions Relating
- to IETF Documents (http://trustee.ietf.org/license-info).";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2018-01-16" {
- description
- "Moved alarm identities into separate types module";
- reference "0.2.0";
- }
-
- // identity statements
- identity OPENCONFIG_ALARM_TYPE_ID {
- description
- "Base identity for alarm type ID profiles";
- }
-
- identity AIS {
- base OPENCONFIG_ALARM_TYPE_ID;
- description
- "Defines an alarm indication signal type of alarm";
- }
-
- identity EQPT {
- base OPENCONFIG_ALARM_TYPE_ID;
- description
- "Defines an equipment related type of alarm that is specific
- to the physical hardware";
- }
-
- identity LOS {
- base OPENCONFIG_ALARM_TYPE_ID;
- description
- "Defines a loss of signal type of alarm";
- }
-
- identity OTS {
- base OPENCONFIG_ALARM_TYPE_ID;
- description
- "Defines a optical transport signal type of alarm";
- }
-
- identity OPENCONFIG_ALARM_SEVERITY {
- description
- "Base identity for alarm severity profiles. Derived
- identities are based on contents of the draft
- IETF YANG Alarm Module";
- reference
- "IETF YANG Alarm Module: Draft - typedef severity
- https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
-
- }
-
- identity UNKNOWN {
- base OPENCONFIG_ALARM_SEVERITY;
- description
- "Indicates that the severity level could not be determined.
- This level SHOULD be avoided.";
- }
-
- identity MINOR {
- base OPENCONFIG_ALARM_SEVERITY;
- description
- "Indicates the existence of a non-service affecting fault
- condition and that corrective action should be taken in
- order to prevent a more serious (for example, service
- affecting) fault. Such a severity can be reported, for
- example, when the detected alarm condition is not currently
- degrading the capacity of the resource";
- }
-
- identity WARNING {
- base OPENCONFIG_ALARM_SEVERITY;
- description
- "Indicates the detection of a potential or impending service
- affecting fault, before any significant effects have been felt.
- Action should be taken to further diagnose (if necessary) and
- correct the problem in order to prevent it from becoming a more
- serious service affecting fault.";
- }
-
- identity MAJOR {
- base OPENCONFIG_ALARM_SEVERITY;
- description
- "Indicates that a service affecting condition has developed
- and an urgent corrective action is required. Such a severity
- can be reported, for example, when there is a severe
- degradation in the capability of the resource and its full
- capability must be restored.";
- }
-
- identity CRITICAL {
- base OPENCONFIG_ALARM_SEVERITY;
- description
- "Indicates that a service affecting condition has occurred
- and an immediate corrective action is required. Such a
- severity can be reported, for example, when a resource becomes
- totally out of service and its capability must be restored.";
- }
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-alarms.yang b/src/plugins/yang/openconfig/openconfig-alarms.yang
deleted file mode 100644
index f1ca587..0000000
--- a/src/plugins/yang/openconfig/openconfig-alarms.yang
+++ /dev/null
@@ -1,221 +0,0 @@
-module openconfig-alarms {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/alarms";
-
- prefix "oc-alarms";
-
- // import some basic types
- import openconfig-alarm-types { prefix oc-alarm-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-types { prefix oc-types; }
- import openconfig-platform { prefix oc-platform; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines operational state data related to alarms
- that the device is reporting.
-
- This model reuses some data items defined in the draft IETF
- YANG Alarm Module:
- https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02
-
- Portions of this code were derived from the draft IETF YANG Alarm
- Module. Please reproduce this note if possible.
-
- IETF code is subject to the following copyright and license:
- Copyright (c) IETF Trust and the persons identified as authors of
- the code.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, is permitted pursuant to, and subject to the license
- terms contained in, the Simplified BSD License set forth in
- Section 4.c of the IETF Trust's Legal Provisions Relating
- to IETF Documents (http://trustee.ietf.org/license-info).";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2018-01-16" {
- description
- "Moved alarm identities into separate types module";
- reference "0.3.0";
- }
-
- revision "2018-01-10" {
- description
- "Make alarms list read only";
- reference "0.2.0";
- }
-
- revision "2017-08-24" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
-
- // grouping statements
-
- grouping alarm-state {
- description
- "Operational state data for device alarms";
-
- leaf id {
- type string;
- description
- "Unique ID for the alarm -- this will not be a
- configurable parameter on many implementations";
- }
-
- leaf resource {
- type string;
- description
- "The item that is under alarm within the device. The
- resource may be a reference to an item which is
- defined elsewhere in the model. For example, it
- may be a platform/component, interfaces/interface,
- terminal-device/logical-channels/channel, etc. In this
- case the system should match the name of the referenced
- item exactly. The referenced item could alternatively be
- the path of the item within the model.";
- reference
- "IETF YANG Alarm Module: Draft - typedef resource
- https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
- }
-
- leaf text {
- type string;
- description
- "The string used to inform operators about the alarm. This
- MUST contain enough information for an operator to be able
- to understand the problem. If this string contains structure,
- this format should be clearly documented for programs to be
- able to parse that information";
- reference
- "IETF YANG Alarm Module: Draft - typedef alarm-text
- https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
- }
-
- leaf time-created {
- type oc-types:timeticks64;
- description
- "The time at which the alarm was raised by the system.
- This value is expressed as nanoseconds since the Unix Epoch";
- }
-
- leaf severity {
- type identityref {
- base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
- }
- description
- "The severity level indicating the criticality and impact
- of the alarm";
- reference
- "IETF YANG Alarm Module: Draft - typedef severity
- https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
- }
-
- leaf type-id {
- type union {
- type string;
- type identityref {
- base oc-alarm-types:OPENCONFIG_ALARM_TYPE_ID;
- }
- }
- description
- "The abbreviated name of the alarm, for example LOS,
- EQPT, or OTS. Also referred to in different systems as
- condition type, alarm identifier, or alarm mnemonic. It
- is recommended to use the OPENCONFIG_ALARM_TYPE_ID
- identities where possible and only use the string type
- when the desired identityref is not yet defined";
- reference
- "IETF YANG Alarm Module: Draft - typedef alarm-type-id
- https://tools.ietf.org/html/draft-vallin-netmod-alarm-module-02";
- }
- }
-
- grouping alarm-config {
- description
- "Configuration data for device alarms";
- }
-
- grouping alarms-top {
- description
- "Top-level grouping for device alarms";
-
- container alarms {
- description
- "Top-level container for device alarms";
-
- config false;
-
- list alarm {
- key "id";
- description
- "List of alarms, keyed by a unique id";
-
- leaf id {
- type leafref {
- path "../state/id";
- }
-
- description
- "References the unique alarm id";
- }
-
- container config {
- description
- "Configuration data for each alarm";
-
- uses alarm-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for a device alarm";
-
- uses alarm-config;
- uses alarm-state;
- }
- }
- }
- }
-
-
- // augments
-
- augment "/oc-platform:components/oc-platform:component/oc-platform:state" {
- description
- "Adds specific alarms related to a component.";
-
- leaf equipment-failure {
- type boolean;
- default "false";
- description
- "If true, the hardware indicates that the component's physical equipment
- has failed";
- }
-
- leaf equipment-mismatch {
- type boolean;
- default "false";
- description
- "If true, the hardware indicates that the component inserted into the
- affected component's physical location is of a different type than what
- is configured";
- }
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-ap-manager.yang b/src/plugins/yang/openconfig/openconfig-ap-manager.yang
deleted file mode 100644
index 6fb3f8f..0000000
--- a/src/plugins/yang/openconfig/openconfig-ap-manager.yang
+++ /dev/null
@@ -1,220 +0,0 @@
-module openconfig-ap-manager {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/wifi/ap-manager";
-
- // Assign this module a prefix to be used by other modules, when imported.
- prefix "ap-manager";
-
- // Imports
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-wifi-types { prefix oc-wifi; }
-
- // Meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines the top level configuration and state data for a
- system which manages Access Points.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-02-14" {
- description
- "Initial version";
- reference "0.1.0";
- }
-
- grouping provision-aps-config {
- description
- "Assignment of hostname to an Access Point.";
-
- leaf mac {
- type oc-yang:mac-address;
- description
- "MAC address of the AP primary Ethernet interface. If AP
- has multiple Ethernet interfaces, this would be the MAC printed
- on the unit label and referenced within the management system.
- Vendors MUST reject attempts to configure this leaf.";
- }
-
- leaf hostname {
- type oc-inet:domain-name;
- description
- "Hostname of the Access Point.";
- }
-
- leaf country-code {
- type string {
- pattern '[A-Z]{2}';
- }
- description
- "Country code where the AP operates in ISO 3166-1 alpha-2
- format.";
- }
- }
-
- grouping controller-aps-system-state {
- description
- "Grouping for a Controller & AP system state data.";
-
- leaf mac {
- type oc-yang:mac-address;
- description
- "MAC address of the AP primary Ethernet interface. If AP
- has multiple Ethernet interfaces, this would be the MAC printed
- on the unit label and referenced within the management system.
- Vendors MUST reject attempts to configure this leaf.";
- }
-
- leaf hostname {
- type oc-inet:domain-name;
- description
- "Hostname of the Access Point.";
- }
-
- leaf opstate {
- type identityref {
- base oc-wifi:AP_STATE;
- }
- description
- "The current operational state of the AP.";
- }
-
- leaf uptime {
- type uint32;
- units seconds;
- description
- "Seconds this AP has been in the op-state of 'UP'.";
- }
-
- leaf enabled {
- type boolean;
- description
- "Wheather the AP is enabled or disabled.";
- }
-
- leaf serial {
- type string;
- description
- "Serial number of the Access Point.";
- }
-
- leaf model {
- type string;
- description
- "Model number of the Access Point.";
- }
-
- leaf ipv4 {
- type oc-inet:ipv4-address;
- description
- "The IPv4 address of the Access Point.";
- }
-
- leaf ipv6 {
- type oc-inet:ipv6-address;
- description
- "The IPv6 address of the Access Point.";
- }
-
- leaf power-source {
- type enumeration {
- enum AT {
- description "Powered using 802.3at.";
- }
- enum AF {
- description "Powered using 802.3af.";
- }
- enum PLUG {
- description "Powered using local source, not PoE.";
- }
- }
- description
- "Enumerate how the AP is being powered.";
- }
- }
-
- grouping provision-ap-top {
- description
- "Top-level grouping for assigning hostnames to APs.";
-
- container provision-aps {
- description
- "Top most container for assigning hostnames to APs.";
-
- list provision-ap {
- key "mac";
- description
- "List of MAC addresses that will have hostnames assigned.";
-
- leaf mac {
- type leafref {
- path "../config/mac";
- }
- description
- "Reference to the MAC address list key. This leaf is a reference
- only and not to be configured.";
- }
-
- container config {
- description
- "Config container for assigning hostnames to APs.";
-
- uses provision-aps-config;
- }
-
- container state {
- config false;
- description
- "State container for assigning hostnames to APs.";
-
- uses provision-aps-config;
- }
- }
- }
- }
-
- grouping joined-aps-top {
- description
- "Top-level grouping for APs assigned to controller(s).";
-
- container joined-aps {
- description
- "Top most container for joined-aps.";
-
- list joined-ap {
- key "hostname";
- config false;
- description
- "List of access points that have joined the controller.";
-
- leaf hostname {
- type leafref {
- path "../state/hostname";
- }
- description
- "Reference to the MAC address list key.";
- }
-
- container state {
- config false;
- description
- "State container for Joined APs.";
-
- uses controller-aps-system-state;
- }
- }
- }
- }
- uses provision-ap-top;
- uses joined-aps-top;
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bfd.yang b/src/plugins/yang/openconfig/openconfig-bfd.yang
deleted file mode 100644
index fc573e5..0000000
--- a/src/plugins/yang/openconfig/openconfig-bfd.yang
+++ /dev/null
@@ -1,738 +0,0 @@
-module openconfig-bfd {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/bfd";
-
- prefix "oc-bfd";
-
- // import some basic types
- import openconfig-extensions { prefix "ocext"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-interfaces { prefix "oc-if"; }
- import openconfig-inet-types { prefix "oc-inet"; }
- import openconfig-if-types { prefix "oc-ift"; }
- import openconfig-network-instance { prefix "oc-ni"; }
- import openconfig-policy-types { prefix "oc-pol-types"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "An OpenConfig model of Bi-Directional Forwarding Detection (BFD)
- configuration and operational state.";
-
- ocext:openconfig-version "0.1.0";
-
- revision "2017-11-17" {
- description
- "Update version number for initial sharing.";
- reference "0.1.0";
- }
-
- revision "2017-10-19" {
- description
- "Adopt OpenConfig types models, type corrections";
- reference "0.0.2";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- typedef bfd-session-state {
- type enumeration {
- enum UP {
- description
- "The BFD session is perceived to be up by the system.";
- }
- enum DOWN {
- description
- "The BFD session is perceived to be down by the system.";
- }
- enum ADMIN_DOWN {
- description
- "The BFD session is administratively disabled.";
- }
- enum INIT {
- description
- "The BFD session is perceived to be initialising by the
- system.";
- }
- }
- description
- "The state of the BFD session according to the system referred
- to by the context of the leaf.";
- reference
- "RFC5880 - Bidirectional Forwarding Detection, Section
- 4.1";
- }
-
- typedef bfd-diagnostic-code {
- type enumeration {
- enum NO_DIAGNOSTIC {
- value 0;
- description
- "No diagnostic code was specified, or the session has not
- changed state.";
- }
- enum DETECTION_TIMEOUT {
- value 1;
- description
- "The control detection time expired: no BFD packet was
- received within the required period.";
- }
- enum ECHO_FAILED {
- value 2;
- description
- "The BFD echo function failed - echo packets have not been
- received for the required period of time.";
- }
- enum FORWARDING_RESET {
- value 3;
- description
- "The forwarding plane in the local system was reset - such
- that the remote system cannot rely on the forwarding state of
- the device specifying this error code.";
- }
- enum PATH_DOWN {
- value 4;
- description
- "Signalling outside of BFD specified that the path underlying
- this session has failed.";
- }
- enum CONCATENATED_PATH_DOWN {
- value 5;
- description
- "When a BFD session runs over a series of path segments, this
- error code indicates that a subsequent path segment (i.e.,
- one in the transmit path between the source and destination
- of the session) has failed.";
- }
- enum ADMIN_DOWN {
- value 6;
- description
- "The BFD session has been administratively disabled by the
- peer.";
- }
- enum REVERSE_CONCATENATED_PATH_DOWN {
- value 7;
- description
- "In the case that a BFD session is running over a series of
- path segments, this error code indicates that a path segment
- on the reverse path (i.e., in the transmit direction from the
- destination to the source of the session) has failed.";
- }
- }
- description
- "Diagnostic codes defined by BFD. These typically indicate the
- reason for a change of session state.";
- reference
- "RFC5880 - Bidirectional Forwarding Detection, Section
- 4.1";
- }
-
-
- grouping bfd-interface-config {
- description
- "Top-level per-interface configuration parameters for BFD.";
-
- leaf id {
- type string;
- description
- "A unique identifier for the interface.";
- }
-
- leaf enabled {
- type boolean;
- description
- "When this leaf is set to true then the BFD session is enabled
- on the specified interface - if it is set to false, it is
- administratively disabled.";
- }
-
- leaf local-address {
- type oc-inet:ip-address;
- description
- "The source IP address to be used for BFD sessions over this
- interface.";
- }
-
- leaf desired-minimum-tx-interval {
- type uint32;
- units microseconds;
- description
- "The minimum interval between transmission of BFD control
- packets that the operator desires. This value is advertised to
- the peer, however the actual interval used is specified by
- taking the maximum of desired-minimum-tx-interval and the
- value of the remote required-minimum-receive interval value.
-
- This value is specified as an integer number of microseconds.";
- }
-
- leaf required-minimum-receive {
- type uint32;
- units microseconds;
- description
- "The minimum interval between received BFD control packets that
- this system should support. This value is advertised to the
- remote peer to indicate the maximum frequency (i.e., minimum
- inter-packet interval) between BFD control packets that is
- acceptable to the local system.";
- }
-
- // rjs: Could have required-minimum-echo-receive here, but this is
- // generally not configurable.
-
- leaf detection-multiplier {
- type uint16 {
- range "1..max";
- }
- description
- "The number of packets that must be missed to declare this
- session as down. The detection interval for the BFD session
- is calculated by multiplying the value of the negotiated
- transmission interval by this value.";
- }
-
- leaf enable-per-member-link {
- type boolean;
- default false;
- description
- "When this leaf is set to true - BFD will be enabled on
- each member interface of the aggregated Ethernet bundle.";
-
- when "/oc-if:interfaces/oc-if:interface" +
- "[name=current()/../../interface-ref/config/interface]/" +
- "oc-if:state/oc-if:type = 'oc-ift:IF_AGGREGATE'" {
- description
- "Include per-member link BFD only when the type of
- interface is a link aggregate.";
- }
- }
- }
-
- grouping bfd-interface-state {
- // placeholder
- description
- "Operational state parameters relating to BFD running on an
- interface.";
- }
-
- grouping bfd-session-state-mode-timers-common {
- description
- "Common operational state parameters that are re-used across
- both asynchronous and echo modes of BFD.";
-
- leaf last-packet-transmitted {
- type uint64;
- description
- "The date and time at which the last BFD packet
- was transmitted for this session, expressed as the number
- of nanoseconds since the Unix Epoch (January 1, 1970,
- 00:00 UTC).";
- }
-
- leaf last-packet-received {
- type uint64;
- description
- "The date and time at which the last BFD packet
- was received for this session, expressed as the number
- of nanoseconds since the Unix Epoch (January 1, 1970,
- 00:00 UTC).";
- }
-
- leaf transmitted-packets {
- // TODO: looks to be unsupported on JUNOS
- type uint64;
- description
- "The number of packets that have been transmitted
- by the local system.";
- }
-
- leaf received-packets {
- // TODO: looks to be unsupported on JUNOS
- type uint64;
- description
- "The number of packets that have been received by the
- local system from the remote neighbour.";
- }
-
- leaf up-transitions {
- // TODO: looks to only be supported in SROS
- type uint64;
- description
- "The number of times that the adjacency with the neighbor
- has transitioned into the up state.";
- }
- }
-
- grouping bfd-session-state-sessiondetails-common {
- description
- "Common session details for a BFD session.";
-
- leaf session-state {
- type bfd-session-state;
- description
- "The state of the BFD session perceived by the local system.";
-
- }
-
- leaf remote-session-state {
- type bfd-session-state;
- description
- "The reported state of the BFD session according to the remote
- system. This state reflects the last state reported in a BFD
- control packet.";
- }
-
- leaf last-failure-time {
- type oc-types:timeticks64;
- description
- "The time of the last transition of the BFD session out of
- the UP state, expressed as the number of nanoseconds since
- the Unix epoch.";
- }
-
- leaf failure-transitions {
- type uint64;
- description
- "The number of times that the BFD session has transitioned
- out of the UP state.";
- }
-
- leaf local-discriminator {
- type string;
- description
- "A unique identifier used by the local system to identify this
- BFD session.";
- }
-
- leaf remote-discriminator {
- type string;
- description
- "A unique identified used by the remote system to identify this
- BFD session.";
- }
-
- leaf local-diagnostic-code {
- type bfd-diagnostic-code;
- description
- "The local BFD diagnostic code indicating the most recent
- reason for failure of this BFD session.";
- }
-
- leaf remote-diagnostic-code {
- type bfd-diagnostic-code;
- description
- "The remote BFD diagnostic code indicating the remote system's
- reason for failure of the BFD session";
- }
-
- leaf remote-minimum-receive-interval {
- type uint32;
- description
- "The value of the minimum receive interval that was specified
- in the most recent BFD control packet received from the peer.";
- }
-
- leaf demand-mode-requested {
- type boolean;
- description
- "This leaf is set to true when the remote system has requested
- demand mode be run for this session.";
- }
-
- leaf remote-authentication-enabled {
- type boolean;
- description
- "This leaf is set to true when the remote system has specified
- that authentication is present for the BFD session.";
- }
-
- leaf remote-control-plane-independent {
- type boolean;
- description
- "This leaf is set to true when the remote system has specified
- that the hardware implementing this BFD session is independent
- of the control plane's liveliness.";
- }
- }
-
-
- grouping bfd-session-state-async-common {
- description
- "Common parameters for asynchronous BFD sessions";
-
- container async {
- description
- "Operational state parameters specifically relating to
- asynchronous mode of BFD.";
-
- uses bfd-session-state-mode-timers-common;
- }
- }
-
- grouping bfd-session-state-echo-common {
- description
- "Common parameters for echo-mode BFD sessions.";
-
- container echo {
- description
- "Operational state parameters specifically relating to the
- echo mode of BFD.";
-
- leaf active {
- type boolean;
- description
- "This leaf is set to true when echo mode is running between
- the local and remote system. When it is set to false, solely
- asynchronous mode is active.";
- }
-
- uses bfd-session-state-mode-timers-common;
- }
- }
-
-
- grouping bfd-session-state-common {
- description
- "Common operational state parameters that may be re-used across
- multiple BFD session contexts.";
-
- leaf local-address {
- type oc-inet:ip-address;
- description
- "The IP address used by the local system for this BFD session.";
- }
-
- leaf remote-address {
- type oc-inet:ip-address;
- description
- "The IP address used by the remote system for this BFD session.";
- }
-
- leaf-list subscribed-protocols {
- type identityref {
- base "oc-pol-types:INSTALL_PROTOCOL_TYPE";
- }
- description
- "Indicates the set of protocols that currently use
- this BFD session for liveliness detection.";
- }
-
- uses bfd-session-state-sessiondetails-common;
- uses bfd-session-state-echo-common;
- uses bfd-session-state-async-common;
- }
-
- grouping bfd-session-microbfd-common {
- description
- "BFD session parameters utilised only for micro-BFD sessions.";
-
- uses bfd-session-state-sessiondetails-common;
- uses bfd-session-state-async-common;
- }
-
- grouping bfd-interface-peer-state {
- description
- "Per-peer, per-interface operational state parameters for BFD.";
-
- uses bfd-session-state-common;
- }
-
- grouping bfd-interface-microbfd-config {
- description
- "Configuration parameters for a microBFD session on an
- interface.";
-
- leaf local-address {
- type oc-inet:ip-address;
- description
- "The local IP address used by the system for the micro-BFD session
- specified.";
- }
-
- leaf remote-address {
- type oc-inet:ip-address;
- description
- "The remote IP destination that should be used by the system for
- the micro-BFD session specified.";
- }
-
- leaf member-interface {
- type leafref {
- path "/oc-if:interfaces/" +
- "oc-if:interface/oc-if:config/oc-if:name";
- }
- // rjs: Note that this does not restrict to only interfaces that
- // are part of the current LAG. An implementation should return
- // NOK if such an interface is specified.
- description
- "Reference to a member link of the aggregate interface being
- described.";
- }
- }
-
- grouping bfd-interface-microbfd-state {
- description
- "Operational state parameters relating to a micro-BFD session on
- an interface.";
-
- uses bfd-session-microbfd-common;
- }
-
- grouping bfd-interface-microbfd-structural {
- description
- "Structural grouping for micro-bfd configuration and state
- parameters.";
-
- container micro-bfd-sessions {
- description
- "Parameters relating to micro-BFD sessions associated
- with the interface.";
-
- list micro-bfd-session {
- description
- "This list contains configuration and state parameters
- relating to micro-BFD session.";
- reference
- "RFC7130 - Bidirectional Forwarding Detection (BFD)
- on Link Aggregation Group (LAG) Interfaces.";
-
- key "member-interface";
-
- leaf member-interface {
- type leafref {
- path "../config/member-interface";
- }
- description
- "A reference to the member interface of the link
- aggregate.";
- }
-
- container config {
- description
- "Configuration parameters for the micro-BFD session.";
- uses bfd-interface-microbfd-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the micro-BFD session.";
- uses bfd-interface-microbfd-config;
- uses bfd-interface-microbfd-state;
- }
- }
- when "/oc-if:interfaces/oc-if:interface" +
- "[name=current()/../interface-ref/config/interface]/" +
- "oc-if:state/oc-if:type = 'oc-ift:IF_AGGREGATE'" {
- description
- "Include per-member link BFD only when the type of
- interface is a link aggregate.";
- }
- }
- }
-
- grouping bfd-interface-peer-structural {
- description
- "Structural grouping for BFD peers (in the context of an interface).";
-
- container peers {
- description
- "Parameters relating to the BFD peers which are seen
- over this interface.";
-
- list peer {
- key "local-discriminator";
- config false;
-
- description
- "Parameters relating to the BFD peer specified by the
- remote address.";
-
- leaf local-discriminator {
- type leafref {
- path "../state/local-discriminator";
- }
- description
- "The local discriminator, which is unique for the
- session on the system.";
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the BFD session.";
-
- uses bfd-interface-peer-state;
- }
- }
- }
- }
-
- grouping bfd-top {
- description
- "Structural grouping for Bidirectional Forwarding Detection (BFD).";
-
- container bfd {
- description
- "Configuration and operational state parameters for BFD.";
- reference "RFC5880, RFC5881";
-
- container interfaces {
- description
- "Interfaces on which BFD sessions are to be enabled.";
-
- list interface {
- key "id";
-
- description
- "Per-interface configuration and state parameters for BFD.";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "A reference to an identifier for the interface on which
- BFD is enabled.";
- }
-
- container config {
- description
- "Configuration parameters for BFD on the specified
- interface.";
- uses bfd-interface-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for BFD on the specified
- interface.";
- uses bfd-interface-config;
- uses bfd-interface-state;
- }
-
- uses oc-if:interface-ref;
-
- uses bfd-interface-microbfd-structural;
- uses bfd-interface-peer-structural;
- }
- }
- }
- }
-
- grouping enable-bfd-config {
- description
- "Configuration parameters relating to enabling BFD.";
-
- leaf enabled {
- type boolean;
- description
- "When this leaf is set to true, BFD is used to detect the
- liveliness of the remote peer or next-hop.";
- }
- }
-
- grouping enable-bfd-state {
- description
- "Operational state parameters relating to enabling BFD.";
-
- leaf associated-session {
- // TODO: this is a leafref to something unique, but seems
- // like it might be expensive for the NMS to find out since
- // it will need to cycle through all interfaces looking for
- // the associated local-discriminator.
- type leafref {
- path "/bfd/interfaces/interface/peers/peer/local-discriminator";
- }
- description
- "A reference to the BFD session that is tracking the liveliness
- of the remote entity.";
- }
-
- //
- // A fix to the above is to have the following leaf to show which
- // interface is associated.
- //
- // leaf associated-interface {
- // type leafref {
- // path "/bfd/interfaces/interface/config/id";
- // }
- // }
- }
-
- grouping bfd-enable {
- description
- "Grouping which can be included in a protocol wishing to enable
- BFD.";
-
- container enable-bfd {
- description
- "Enable BFD for liveliness detection to the next-hop or
- neighbour.";
-
- container config {
- description
- "Configuration parameters relating to enabling BFD.";
-
- uses enable-bfd-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to enabing BFD.";
-
- uses enable-bfd-config;
- uses enable-bfd-state;
- }
- }
- }
-
- // rjs - TODO - should these be specified within each model? The
- // answer here is probably yes, since otherwise openconfig
- // network-instance ends up with a circular reference.
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:protocols/oc-ni:protocol/oc-ni:bgp/" +
- "oc-ni:neighbors/oc-ni:neighbor" {
- description
- "Augment the BGP routing protocol to add a link to BFD for
- neighbour detection.";
-
- uses bfd-enable;
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:protocols/oc-ni:protocol/oc-ni:bgp/" +
- "oc-ni:peer-groups/oc-ni:peer-group" {
- description
- "Augment the BGP routing protocol to add a link to BFD for
- neighbor detection when specified within a peer-group.";
-
- uses bfd-enable;
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:protocols/oc-ni:protocol/oc-ni:static-routes/" +
- "oc-ni:static/oc-ni:next-hops/oc-ni:next-hop" {
- description
- "Augment the static route configuration to allow a next-hop
- to be tracked by BFD.";
-
- uses bfd-enable;
- }
-
- uses bfd-top;
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-common-multiprotocol.yang b/src/plugins/yang/openconfig/openconfig-bgp-common-multiprotocol.yang
deleted file mode 100644
index 6149a7c..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-common-multiprotocol.yang
+++ /dev/null
@@ -1,518 +0,0 @@
-submodule openconfig-bgp-common-multiprotocol {
-
- belongs-to openconfig-bgp {
- prefix "oc-bgp";
- }
-
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-bgp-types { prefix oc-bgp-types; }
- import openconfig-routing-policy { prefix oc-rpol; }
- import openconfig-types { prefix oc-types; }
-
- include openconfig-bgp-common;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This sub-module contains groupings that are related to support
- for multiple protocols in BGP. The groupings are common across
- multiple contexts.";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-30" {
- description
- "Clarification of add-paths send-max leaf";
- reference "4.0.1";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
- grouping bgp-common-mp-afi-safi-graceful-restart-config {
- description
- "BGP graceful restart parameters that apply on a per-AFI-SAFI
- basis";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "This leaf indicates whether graceful-restart is enabled for
- this AFI-SAFI";
- }
- }
-
- grouping bgp-common-mp-afi-safi-config {
- description
- "Configuration parameters used for all BGP AFI-SAFIs";
-
- leaf afi-safi-name {
- type identityref {
- base oc-bgp-types:AFI_SAFI_TYPE;
- }
- description "AFI,SAFI";
- }
-
- leaf enabled {
- type boolean;
- default false;
- description
- "This leaf indicates whether the AFI-SAFI is
- enabled for the neighbour or group";
- }
- }
-
- grouping bgp-common-mp-all-afi-safi-list-contents {
- description
- "A common grouping used for contents of the list that is used
- for AFI-SAFI entries";
-
- // import and export policy included for the afi/safi
- uses oc-rpol:apply-policy-group;
-
- uses bgp-common-mp-ipv4-unicast-group;
- uses bgp-common-mp-ipv6-unicast-group;
- uses bgp-common-mp-ipv4-labeled-unicast-group;
- uses bgp-common-mp-ipv6-labeled-unicast-group;
- uses bgp-common-mp-l3vpn-ipv4-unicast-group;
- uses bgp-common-mp-l3vpn-ipv6-unicast-group;
- uses bgp-common-mp-l3vpn-ipv4-multicast-group;
- uses bgp-common-mp-l3vpn-ipv6-multicast-group;
- uses bgp-common-mp-l2vpn-vpls-group;
- uses bgp-common-mp-l2vpn-evpn-group;
- uses bgp-common-mp-srte-policy-ipv4-group;
- uses bgp-common-mp-srte-policy-ipv6-group;
- }
-
- // Groupings relating to each address family
- grouping bgp-common-mp-ipv4-unicast-group {
- description
- "Group for IPv4 Unicast configuration options";
-
- container ipv4-unicast {
- when "../afi-safi-name = 'oc-bgp-types:IPV4_UNICAST'" {
- description
- "Include this container for IPv4 Unicast specific
- configuration";
- }
-
- description "IPv4 unicast configuration options";
-
- // include common IPv[46] unicast options
- uses bgp-common-mp-ipv4-ipv6-unicast-common;
-
- // placeholder for IPv4 unicast specific configuration
- }
- }
-
- grouping bgp-common-mp-ipv6-unicast-group {
- description
- "Group for IPv6 Unicast configuration options";
-
- container ipv6-unicast {
- when "../afi-safi-name = 'oc-bgp-types:IPV6_UNICAST'" {
- description
- "Include this container for IPv6 Unicast specific
- configuration";
- }
-
- description "IPv6 unicast configuration options";
-
- // include common IPv[46] unicast options
- uses bgp-common-mp-ipv4-ipv6-unicast-common;
-
- // placeholder for IPv6 unicast specific configuration
- // options
- }
- }
-
- grouping bgp-common-mp-ipv4-labeled-unicast-group {
- description
- "Group for IPv4 Labeled Unicast configuration options";
-
- container ipv4-labeled-unicast {
- when "../afi-safi-name = 'oc-bgp-types:IPV4_LABELED_UNICAST'" {
- description
- "Include this container for IPv4 Labeled Unicast specific
- configuration";
- }
-
- description "IPv4 Labeled Unicast configuration options";
-
- uses bgp-common-mp-all-afi-safi-common;
-
- // placeholder for IPv4 Labeled Unicast specific config
- // options
- }
- }
-
- grouping bgp-common-mp-ipv6-labeled-unicast-group {
- description
- "Group for IPv6 Labeled Unicast configuration options";
-
- container ipv6-labeled-unicast {
- when "../afi-safi-name = 'oc-bgp-types:IPV6_LABELED_UNICAST'" {
- description
- "Include this container for IPv6 Labeled Unicast specific
- configuration";
- }
-
- description "IPv6 Labeled Unicast configuration options";
-
- uses bgp-common-mp-all-afi-safi-common;
-
- // placeholder for IPv6 Labeled Unicast specific config
- // options.
- }
- }
-
- grouping bgp-common-mp-l3vpn-ipv4-unicast-group {
- description
- "Group for IPv4 Unicast L3VPN configuration options";
-
- container l3vpn-ipv4-unicast {
- when "../afi-safi-name = 'oc-bgp-types:L3VPN_IPV4_UNICAST'" {
- description
- "Include this container for IPv4 Unicast L3VPN specific
- configuration";
- }
-
- description "Unicast IPv4 L3VPN configuration options";
-
- // include common L3VPN configuration options
- uses bgp-common-mp-l3vpn-ipv4-ipv6-unicast-common;
-
- // placeholder for IPv4 Unicast L3VPN specific config options.
- }
- }
-
- grouping bgp-common-mp-l3vpn-ipv6-unicast-group {
- description
- "Group for IPv6 Unicast L3VPN configuration options";
-
- container l3vpn-ipv6-unicast {
- when "../afi-safi-name = 'oc-bgp-types:L3VPN_IPV6_UNICAST'" {
- description
- "Include this container for unicast IPv6 L3VPN specific
- configuration";
- }
-
- description "Unicast IPv6 L3VPN configuration options";
-
- // include common L3VPN configuration options
- uses bgp-common-mp-l3vpn-ipv4-ipv6-unicast-common;
-
- // placeholder for IPv6 Unicast L3VPN specific configuration
- // options
- }
- }
-
- grouping bgp-common-mp-l3vpn-ipv4-multicast-group {
- description
- "Group for IPv4 L3VPN multicast configuration options";
-
- container l3vpn-ipv4-multicast {
- when "../afi-safi-name = 'oc-bgp-types:L3VPN_IPV4_MULTICAST'" {
- description
- "Include this container for multicast IPv6 L3VPN specific
- configuration";
- }
-
- description "Multicast IPv4 L3VPN configuration options";
-
- // include common L3VPN multicast options
- uses bgp-common-mp-l3vpn-ipv4-ipv6-multicast-common;
-
- // placeholder for IPv4 Multicast L3VPN specific configuration
- // options
- }
- }
-
- grouping bgp-common-mp-l3vpn-ipv6-multicast-group {
- description
- "Group for IPv6 L3VPN multicast configuration options";
-
- container l3vpn-ipv6-multicast {
- when "../afi-safi-name = 'oc-bgp-types:L3VPN_IPV6_MULTICAST'" {
- description
- "Include this container for multicast IPv6 L3VPN specific
- configuration";
- }
-
- description "Multicast IPv6 L3VPN configuration options";
-
- // include common L3VPN multicast options
- uses bgp-common-mp-l3vpn-ipv4-ipv6-multicast-common;
-
- // placeholder for IPv6 Multicast L3VPN specific configuration
- // options
- }
- }
-
- grouping bgp-common-mp-l2vpn-vpls-group {
- description
- "Group for BGP-signalled VPLS configuration options";
-
- container l2vpn-vpls {
- when "../afi-safi-name = 'oc-bgp-types:L2VPN_VPLS'" {
- description
- "Include this container for BGP-signalled VPLS specific
- configuration";
- }
-
- description "BGP-signalled VPLS configuration options";
-
- // include common L2VPN options
- uses bgp-common-mp-l2vpn-common;
-
- // placeholder for BGP-signalled VPLS specific configuration
- // options
- }
- }
-
- grouping bgp-common-mp-l2vpn-evpn-group {
- description
- "Group for BGP EVPN configuration options";
-
- container l2vpn-evpn {
- when "../afi-safi-name = 'oc-bgp-types:L2VPN_EVPN'" {
- description
- "Include this container for BGP EVPN specific
- configuration";
- }
-
- description "BGP EVPN configuration options";
-
- // include common L2VPN options
- uses bgp-common-mp-l2vpn-common;
-
- // placeholder for BGP EVPN specific configuration options
- }
- }
-
- // Common groupings across multiple AFI,SAFIs
- grouping bgp-common-mp-all-afi-safi-common {
- description
- "Grouping for configuration common to all AFI,SAFI";
-
- container prefix-limit {
- description
- "Configure the maximum number of prefixes that will be
- accepted from a peer";
-
- container config {
- description
- "Configuration parameters relating to the prefix
- limit for the AFI-SAFI";
- uses bgp-common-mp-all-afi-safi-common-prefix-limit-config;
- }
-
- container state {
- config false;
- description
- "State information relating to the prefix-limit for the
- AFI-SAFI";
- uses bgp-common-mp-all-afi-safi-common-prefix-limit-config;
- }
- }
- }
-
- grouping bgp-common-mp-ipv4-ipv6-unicast-common {
- description
- "Common configuration that is applicable for IPv4 and IPv6
- unicast";
-
- // include common afi-safi options.
- uses bgp-common-mp-all-afi-safi-common;
-
- // configuration options that are specific to IPv[46] unicast
- container config {
- description
- "Configuration parameters for common IPv4 and IPv6 unicast
- AFI-SAFI options";
- uses bgp-common-mp-ipv4-ipv6-unicast-common-config;
- }
- container state {
- config false;
- description
- "State information for common IPv4 and IPv6 unicast
- parameters";
- uses bgp-common-mp-ipv4-ipv6-unicast-common-config;
- }
- }
-
- grouping bgp-common-mp-l3vpn-ipv4-ipv6-unicast-common {
- description
- "Common configuration applied across L3VPN for IPv4
- and IPv6";
-
- // placeholder -- specific configuration options that are generic
- // across IPv[46] unicast address families.
- uses bgp-common-mp-all-afi-safi-common;
- }
-
- grouping bgp-common-mp-l3vpn-ipv4-ipv6-multicast-common {
- description
- "Common configuration applied across L3VPN for IPv4
- and IPv6";
-
- // placeholder -- specific configuration options that are
- // generic across IPv[46] multicast address families.
- uses bgp-common-mp-all-afi-safi-common;
- }
-
- grouping bgp-common-mp-l2vpn-common {
- description
- "Common configuration applied across L2VPN address
- families";
-
- // placeholder -- specific configuration options that are
- // generic across L2VPN address families
- uses bgp-common-mp-all-afi-safi-common;
- }
-
- grouping bgp-common-mp-srte-policy-ipv4-group {
- description
- "Grouping for SR-TE for AFI 1";
-
- container srte-policy-ipv4 {
- when "../afi-safi-name = 'oc-bgp-types:SRTE_POLICY_IPV4'" {
- description
- "Only include this container when the address family is
- specified to be SR-TE Policy SAFI for the IPv4 unicast
- address family.";
- }
-
- description
- "Configuration and operational state parameters relating to
- the SR-TE Policy SAFI for IPv4 Unicast.";
-
- uses bgp-common-mp-all-afi-safi-common;
- }
- }
-
- grouping bgp-common-mp-srte-policy-ipv6-group {
- description
- "Grouping for SR-TE for AFI 2";
-
- container srte-policy-ipv6 {
- when "../afi-safi-name = 'oc-bgp-types:SRTE_POLICY_IPV6'" {
- description
- "Only include this container when the address family is
- specified to be SR-TE Policy SAFI for the IPv6 unicast
- address family.";
- }
-
- description
- "Configuration and operational state parameters relating to
- the SR-TE Policy SAFI for IPv6 Unicast.";
-
- uses bgp-common-mp-all-afi-safi-common;
- }
- }
-
- // Config groupings for common groups
- grouping bgp-common-mp-all-afi-safi-common-prefix-limit-config {
- description
- "Configuration parameters relating to prefix-limits for an
- AFI-SAFI";
-
- leaf max-prefixes {
- type uint32;
- description
- "Maximum number of prefixes that will be accepted
- from the neighbour";
- }
-
- leaf prevent-teardown {
- type boolean;
- default false;
- description
- "Do not tear down the BGP session when the maximum
- prefix limit is exceeded, but rather only log a
- warning. The default of this leaf is false, such
- that when it is not specified, the session is torn
- down.";
- }
-
- leaf warning-threshold-pct {
- type oc-types:percentage;
- description
- "Threshold on number of prefixes that can be received
- from a neighbour before generation of warning messages
- or log entries. Expressed as a percentage of
- max-prefixes";
- }
-
- leaf restart-timer {
- type decimal64 {
- fraction-digits 2;
- }
- units "seconds";
- description
- "Time interval in seconds after which the BGP session
- is re-established after being torn down due to exceeding
- the max-prefix limit.";
- }
- }
-
- grouping bgp-common-mp-ipv4-ipv6-unicast-common-config {
- description
- "Common configuration parameters for IPv4 and IPv6 Unicast
- address families";
-
- leaf send-default-route {
- type boolean;
- default "false";
- description
- "If set to true, send the default-route to the neighbour(s)";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-common-structure.yang b/src/plugins/yang/openconfig/openconfig-bgp-common-structure.yang
deleted file mode 100644
index ad11db4..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-common-structure.yang
+++ /dev/null
@@ -1,196 +0,0 @@
-submodule openconfig-bgp-common-structure {
-
- belongs-to openconfig-bgp {
- prefix "oc-bgp";
- }
-
- import openconfig-extensions { prefix oc-ext; }
-
- include openconfig-bgp-common-multiprotocol;
- include openconfig-bgp-common;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This sub-module contains groupings that are common across multiple BGP
- contexts and provide structure around other primitive groupings.";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-30" {
- description
- "Clarification of add-paths send-max leaf";
- reference "4.0.1";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
- grouping bgp-common-structure-neighbor-group-logging-options {
- description
- "Structural grouping used to include error handling configuration and
- state for both BGP neighbors and groups";
-
- container logging-options {
- description
- "Logging options for events related to the BGP neighbor or
- group";
- container config {
- description
- "Configuration parameters enabling or modifying logging
- for events relating to the BGPgroup";
- uses bgp-common-neighbor-group-logging-options-config;
- }
- container state {
- config false;
- description
- "State information relating to logging for the BGP neighbor
- or group";
- uses bgp-common-neighbor-group-logging-options-config;
- }
- }
- }
-
- grouping bgp-common-structure-neighbor-group-ebgp-multihop {
- description
- "Structural grouping used to include eBGP multihop configuration and
- state for both BGP neighbors and peer groups";
-
- container ebgp-multihop {
- description
- "eBGP multi-hop parameters for the BGPgroup";
- container config {
- description
- "Configuration parameters relating to eBGP multihop for the
- BGP group";
- uses bgp-common-neighbor-group-multihop-config;
- }
- container state {
- config false;
- description
- "State information for eBGP multihop, for the BGP neighbor
- or group";
- uses bgp-common-neighbor-group-multihop-config;
- }
- }
- }
-
- grouping bgp-common-structure-neighbor-group-route-reflector {
- description
- "Structural grouping used to include route reflector configuration and
- state for both BGP neighbors and peer groups";
-
- container route-reflector {
- description
- "Route reflector parameters for the BGPgroup";
- container config {
- description
- "Configuraton parameters relating to route reflection
- for the BGPgroup";
- uses bgp-common-neighbor-group-route-reflector-config;
- }
- container state {
- config false;
- description
- "State information relating to route reflection for the
- BGPgroup";
- uses bgp-common-neighbor-group-route-reflector-config;
- }
- }
- }
-
- grouping bgp-common-structure-neighbor-group-as-path-options {
- description
- "Structural grouping used to include AS_PATH manipulation configuration
- and state for both BGP neighbors and peer groups";
-
- container as-path-options {
- description
- "AS_PATH manipulation parameters for the BGP neighbor or
- group";
- container config {
- description
- "Configuration parameters relating to AS_PATH manipulation
- for the BGP peer or group";
- uses bgp-common-neighbor-group-as-path-options-config;
- }
- container state {
- config false;
- description
- "State information relating to the AS_PATH manipulation
- mechanisms for the BGP peer or group";
- uses bgp-common-neighbor-group-as-path-options-config;
- }
- }
- }
-
- grouping bgp-common-structure-neighbor-group-add-paths {
- description
- "Structural grouping used to include ADD-PATHs configuration and state
- for both BGP neighbors and peer groups";
-
- container add-paths {
- description
- "Parameters relating to the advertisement and receipt of
- multiple paths for a single NLRI (add-paths)";
- container config {
- description
- "Configuration parameters relating to ADD_PATHS";
- uses bgp-common-neighbor-group-add-paths-config;
- }
- container state {
- config false;
- description
- "State information associated with ADD_PATHS";
- uses bgp-common-neighbor-group-add-paths-config;
- }
- }
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-common.yang b/src/plugins/yang/openconfig/openconfig-bgp-common.yang
deleted file mode 100644
index 5194266..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-common.yang
+++ /dev/null
@@ -1,665 +0,0 @@
-submodule openconfig-bgp-common {
-
- belongs-to openconfig-bgp {
- prefix "oc-bgp";
- }
-
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-bgp-types { prefix oc-bgp-types; }
- import openconfig-routing-policy { prefix oc-rpol; }
- import openconfig-types { prefix oc-types; }
- import openconfig-inet-types { prefix oc-inet; }
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This sub-module contains common groupings that are common across
- multiple contexts within the BGP module. That is to say that they
- may be application to a subset of global, peer-group or neighbor
- contexts.";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-30" {
- description
- "Clarification of add-paths send-max leaf";
- reference "4.0.1";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
- grouping bgp-common-neighbor-group-timers-config {
- description
- "Config parameters related to timers associated with the BGP
- peer";
-
- leaf connect-retry {
- type decimal64 {
- fraction-digits 2;
- }
- default 30;
- description
- "Time interval in seconds between attempts to establish a
- session with the peer.";
- }
-
- leaf hold-time {
- type decimal64 {
- fraction-digits 2;
- }
- default 90;
- description
- "Time interval in seconds that a BGP session will be
- considered active in the absence of keepalive or other
- messages from the peer. The hold-time is typically
- set to 3x the keepalive-interval.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4, Sec. 10";
- }
-
- leaf keepalive-interval {
- type decimal64 {
- fraction-digits 2;
- }
- default 30;
- description
- "Time interval in seconds between transmission of keepalive
- messages to the neighbor. Typically set to 1/3 the
- hold-time.";
- }
-
- leaf minimum-advertisement-interval {
- type decimal64 {
- fraction-digits 2;
- }
- default 30;
- description
- "Minimum time which must elapse between subsequent UPDATE
- messages relating to a common set of NLRI being transmitted
- to a peer. This timer is referred to as
- MinRouteAdvertisementIntervalTimer by RFC 4721 and serves to
- reduce the number of UPDATE messages transmitted when a
- particular set of NLRI exhibit instability.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4, Sec 9.2.1.1";
- }
- }
-
- grouping bgp-common-neighbor-group-config {
- description
- "Neighbor level configuration items.";
-
- leaf peer-as {
- type oc-inet:as-number;
- description
- "AS number of the peer.";
- }
-
- leaf local-as {
- type oc-inet:as-number;
- description
- "The local autonomous system number that is to be used
- when establishing sessions with the remote peer or peer
- group, if this differs from the global BGP router
- autonomous system number.";
- }
-
- leaf peer-type {
- type oc-bgp-types:peer-type;
- description
- "Explicitly designate the peer or peer group as internal
- (iBGP) or external (eBGP).";
- }
-
- leaf auth-password {
- type oc-types:routing-password;
- description
- "Configures an MD5 authentication password for use with
- neighboring devices.";
- }
-
- leaf remove-private-as {
- // could also make this a container with a flag to enable
- // remove-private and separate option. here, option implies
- // remove-private is enabled.
- type oc-bgp-types:remove-private-as-option;
- description
- "Remove private AS numbers from updates sent to peers - when
- this leaf is not specified, the AS_PATH attribute should be
- sent to the peer unchanged";
- }
-
- leaf route-flap-damping {
- type boolean;
- default false;
- description
- "Enable route flap damping.";
- }
-
- leaf send-community {
- type oc-bgp-types:community-type;
- default "NONE";
- description
- "Specify which types of community should be sent to the
- neighbor or group. The default is to not send the
- community attribute";
- }
-
- leaf description {
- type string;
- description
- "An optional textual description (intended primarily for use
- with a peer or group";
- }
- }
-
- grouping bgp-common-neighbor-group-transport-config {
- description
- "Configuration parameters relating to the transport protocol
- used by the BGP session to the peer";
-
- leaf tcp-mss {
- type uint16;
- description
- "Sets the max segment size for BGP TCP sessions.";
- }
-
- leaf mtu-discovery {
- type boolean;
- default false;
- description
- "Turns path mtu discovery for BGP TCP sessions on (true)
- or off (false)";
- }
-
- leaf passive-mode {
- type boolean;
- default false;
- description
- "Wait for peers to issue requests to open a BGP session,
- rather than initiating sessions from the local router.";
- }
-
- leaf local-address {
- type union {
- type oc-inet:ip-address;
- type string;
- }
- //TODO: the string should be converted to a leafref type
- //to point to an interface when YANG 1.1 is available with
- //leafrefs in union types.
- description
- "Set the local IP (either IPv4 or IPv6) address to use
- for the session when sending BGP update messages. This
- may be expressed as either an IP address or reference
- to the name of an interface.";
- }
- }
-
- grouping bgp-common-neighbor-group-error-handling-config {
- description
- "Configuration parameters relating to enhanced error handling
- behaviours for BGP";
-
- leaf treat-as-withdraw {
- type boolean;
- default "false";
- description
- "Specify whether erroneous UPDATE messages for which the
- NLRI can be extracted are reated as though the NLRI is
- withdrawn - avoiding session reset";
- reference "draft-ietf-idr-error-handling-16";
- }
- }
-
- grouping bgp-common-neighbor-group-logging-options-config {
- description
- "Configuration parameters specifying the logging behaviour for
- BGP sessions to the peer";
-
- leaf log-neighbor-state-changes {
- type boolean;
- default "true";
- description
- "Configure logging of peer state changes. Default is
- to enable logging of peer state changes.";
- }
- }
-
- grouping bgp-common-neighbor-group-multihop-config {
- description
- "Configuration parameters specifying the multihop behaviour for
- BGP sessions to the peer";
-
- leaf enabled {
- type boolean;
- default "false";
- description
- "When enabled the referenced group or neighbors are permitted
- to be indirectly connected - including cases where the TTL
- can be decremented between the BGP peers";
- }
-
- leaf multihop-ttl {
- type uint8;
- description
- "Time-to-live value to use when packets are sent to the
- referenced group or neighbors and ebgp-multihop is enabled";
- }
- }
-
- grouping bgp-common-neighbor-group-route-reflector-config {
- description
- "Configuration parameters determining whether the behaviour of
- the local system when acting as a route-reflector";
-
- leaf route-reflector-cluster-id {
- type oc-bgp-types:rr-cluster-id-type;
- description
- "route-reflector cluster id to use when local router is
- configured as a route reflector. Commonly set at the group
- level, but allows a different cluster
- id to be set for each neighbor.";
- }
-
- leaf route-reflector-client {
- type boolean;
- default "false";
- description
- "Configure the neighbor as a route reflector client.";
- }
- }
-
- grouping bgp-common-neighbor-group-as-path-options-config {
- description
- "Configuration parameters allowing manipulation of the AS_PATH
- attribute";
-
- leaf allow-own-as {
- type uint8;
- default 0;
- description
- "Specify the number of occurrences of the local BGP speaker's
- AS that can occur within the AS_PATH before it is rejected.";
- }
-
- leaf replace-peer-as {
- type boolean;
- default "false";
- description
- "Replace occurrences of the peer's AS in the AS_PATH
- with the local autonomous system number";
- }
-
- leaf disable-peer-as-filter {
- type boolean;
- default "false";
- description
- "When set to true, the system advertises routes to a peer
- even if the peer's AS was in the AS path. The default
- behavior (false) suppresses advertisements to peers if
- their AS number is in the AS path of the route.";
- }
- }
-
- grouping bgp-common-neighbor-group-add-paths-config {
- description
- "Configuration parameters specfying whether the local system
- will send or receive multiple paths using ADD_PATHS";
-
- leaf receive {
- type boolean;
- default false;
- description
- "Enable capability negotiation to receive multiple path
- advertisements for an NLRI from the neighbor or group";
- reference
- "RFC 7911 - Advertisement of Multiple Paths in BGP";
- }
-
- leaf send {
- type boolean;
- default false;
- description
- "Enable capability negotiation to send multiple path
- advertisements for an NLRI from the neighbor or group";
- reference
- "RFC 7911 - Advertisement of Multiple Paths in BGP";
- }
-
- leaf send-max {
- type uint8;
- description
- "The maximum total number of paths to advertise to neighbors
- for a single NLRI. This includes the single best path as
- well as additional paths advertised when add-paths is
- enabled.";
- }
-
- leaf eligible-prefix-policy {
- type leafref {
- path "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:name";
- }
- description
- "A reference to a routing policy which can be used to
- restrict the prefixes for which add-paths is enabled";
- }
- }
-
- grouping bgp-common-graceful-restart-config {
- description
- "Configuration parameters relating to BGP graceful restart.";
-
- leaf enabled {
- type boolean;
- description
- "Enable or disable the graceful-restart capability.";
- }
-
- leaf restart-time {
- type uint16 {
- range 0..4096;
- }
- description
- "Estimated time (in seconds) for the local BGP speaker to
- restart a session. This value is advertise in the graceful
- restart BGP capability. This is a 12-bit value, referred to
- as Restart Time in RFC4724. Per RFC4724, the suggested
- default value is <= the hold-time value.";
- }
-
- leaf stale-routes-time {
- type decimal64 {
- fraction-digits 2;
- }
- description
- "An upper-bound on the time thate stale routes will be
- retained by a router after a session is restarted. If an
- End-of-RIB (EOR) marker is received prior to this timer
- expiring stale-routes will be flushed upon its receipt - if
- no EOR is received, then when this timer expires stale paths
- will be purged. This timer is referred to as the
- Selection_Deferral_Timer in RFC4724";
- }
-
- leaf helper-only {
- type boolean;
- description
- "Enable graceful-restart in helper mode only. When this
- leaf is set, the local system does not retain forwarding
- its own state during a restart, but supports procedures
- for the receiving speaker, as defined in RFC4724.";
- }
- }
-
- grouping bgp-common-use-multiple-paths-config {
- description
- "Generic configuration options relating to use of multiple
- paths for a referenced AFI-SAFI, group or neighbor";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "Whether the use of multiple paths for the same NLRI is
- enabled for the neighbor. This value is overridden by
- any more specific configuration value.";
- }
- }
-
- grouping bgp-common-use-multiple-paths-ebgp-as-options-config {
- description
- "Configuration parameters specific to eBGP multipath applicable
- to all contexts";
-
- leaf allow-multiple-as {
- type boolean;
- default "false";
- description
- "Allow multipath to use paths from different neighbouring
- ASes. The default is to only consider multiple paths from
- the same neighbouring AS.";
- }
- }
-
- grouping bgp-common-global-group-use-multiple-paths {
- description
- "Common grouping used for both global and groups which provides
- configuration and state parameters relating to use of multiple
- paths";
-
- container use-multiple-paths {
- description
- "Parameters related to the use of multiple paths for the
- same NLRI";
-
- container config {
- description
- "Configuration parameters relating to multipath";
- uses bgp-common-use-multiple-paths-config;
- }
- container state {
- config false;
- description
- "State parameters relating to multipath";
- uses bgp-common-use-multiple-paths-config;
- }
-
- container ebgp {
- description
- "Multipath parameters for eBGP";
- container config {
- description
- "Configuration parameters relating to eBGP multipath";
- uses bgp-common-use-multiple-paths-ebgp-config;
- }
- container state {
- config false;
- description
- "State information relating to eBGP multipath";
- uses bgp-common-use-multiple-paths-ebgp-config;
- }
- }
-
- container ibgp {
- description
- "Multipath parameters for iBGP";
- container config {
- description
- "Configuration parameters relating to iBGP multipath";
- uses bgp-common-use-multiple-paths-ibgp-config;
- }
- container state {
- config false;
- description
- "State information relating to iBGP multipath";
- uses bgp-common-use-multiple-paths-ibgp-config;
- }
- }
- }
- }
-
- grouping bgp-common-use-multiple-paths-ebgp-config {
- description
- "Configuration parameters relating to multipath for eBGP";
-
- leaf allow-multiple-as {
- type boolean;
- default "false";
- description
- "Allow multipath to use paths from different neighbouring
- ASes. The default is to only consider multiple paths from
- the same neighbouring AS.";
- }
-
- leaf maximum-paths {
- type uint32;
- default 1;
- description
- "Maximum number of parallel paths to consider when using
- BGP multipath. The default is use a single path.";
- }
- }
-
- grouping bgp-common-use-multiple-paths-ibgp-config {
- description
- "Configuration parmaeters relating to multipath for iBGP";
-
- leaf maximum-paths {
- type uint32;
- default 1;
- description
- "Maximum number of parallel paths to consider when using
- iBGP multipath. The default is to use a single path";
- }
- }
-
- grouping bgp-common-route-selection-options-config {
- description
- "Set of configuration options that govern best
- path selection.";
-
- leaf always-compare-med {
- type boolean;
- default "false";
- description
- "Compare multi-exit discriminator (MED) value from
- different ASes when selecting the best route. The
- default behavior is to only compare MEDs for paths
- received from the same AS.";
- }
-
- leaf ignore-as-path-length {
- type boolean;
- default "false";
- description
- "Ignore the AS path length when selecting the best path.
- The default is to use the AS path length and prefer paths
- with shorter length.";
- }
-
- leaf external-compare-router-id {
- type boolean;
- default "true";
- description
- "When comparing similar routes received from external
- BGP peers, use the router-id as a criterion to select
- the active path.";
- }
-
- leaf advertise-inactive-routes {
- type boolean;
- default "false";
- description
- "Advertise inactive routes to external peers. The
- default is to only advertise active routes.";
- }
-
- leaf enable-aigp {
- type boolean;
- default false;
- description
- "Flag to enable sending / receiving accumulated IGP
- attribute in routing updates";
- }
-
- leaf ignore-next-hop-igp-metric {
- type boolean;
- default "false";
- description
- "Ignore the IGP metric to the next-hop when calculating
- BGP best-path. The default is to select the route for
- which the metric to the next-hop is lowest";
- }
- }
-
- grouping bgp-common-route-selection-options {
- description
- "Configuration and state relating to route selection options";
-
- container route-selection-options {
- description
- "Parameters relating to options for route selection";
- container config {
- description
- "Configuration parameters relating to route selection
- options";
- uses bgp-common-route-selection-options-config;
- }
- container state {
- config false;
- description
- "State information for the route selection options";
- uses bgp-common-route-selection-options-config;
- }
- }
- }
-
- grouping bgp-common-state {
- description
- "Grouping containing common counters relating to prefixes and
- paths";
-
- leaf total-paths {
- type uint32;
- description
- "Total number of BGP paths within the context";
- }
-
- leaf total-prefixes {
- type uint32;
- description
- "Total number of BGP prefixes received within the context";
- }
- }
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-errors.yang b/src/plugins/yang/openconfig/openconfig-bgp-errors.yang
deleted file mode 100644
index f53a932..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-errors.yang
+++ /dev/null
@@ -1,421 +0,0 @@
-submodule openconfig-bgp-errors {
-
- belongs-to openconfig-bgp-types {
- prefix "oc-bgp-types";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module defines BGP NOTIFICATION message error codes
- and subcodes";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-30" {
- description
- "Clarification of add-paths send-max leaf";
- reference "4.0.1";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- identity BGP_ERROR_CODE {
- description
- "Indicates the error type in a BGP NOTIFICATION message";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
-
- identity BGP_ERROR_SUBCODE {
- description
- "Provides more specific information about the nature of the
- error reported in a NOTIFICATION message. Each Error
- Code may have one or more Error Subcodes associated with it.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
-
-
- identity UNSPECIFIC {
- base BGP_ERROR_SUBCODE;
- description
- "The error subcode field is unspecific when the NOTIFICATION
- message does not include any specific error subcode (i.e..,
- value 0).";
- }
-
- identity MESSAGE_HEADER_ERROR {
- base BGP_ERROR_CODE;
- description
- "Errors detected while processing the Message Header";
- }
-
- identity OPEN_MESSAGE_ERROR {
- base BGP_ERROR_CODE;
- description
- "Errors detected while processing the OPEN message";
- }
-
- identity UPDATE_MESSAGE_ERROR {
- base BGP_ERROR_CODE;
- description
- "Errors detected while processing the UPDATE message";
- }
-
- identity HOLD_TIMER_EXPIRED {
- base BGP_ERROR_CODE;
- description
- "Indicates that the system did not receive successive
- KEEPALIVE, UPDATE, and/or NOTIFICATION messages within the
- period specified in the Hold Time field of the OPEN message";
- }
-
- identity FINITE_STATE_MACHINE_ERROR {
- base BGP_ERROR_CODE;
- description
- "Error detected by the BGP Finite State Machine
- (e.g., receipt of an unexpected event)";
- }
-
- identity CEASE {
- base BGP_ERROR_CODE;
- description
- "Sent by a BGP peer to close its BGP connection in absence of
- any fatal errors. If the BGP speaker terminates its
- connection with a neihbor because the number of prefixes
- received exceeds the configured upper bound, the speaker must
- send the neighbor a NOTIFICATION message with the Cease
- error code.";
- }
-
- identity ROUTE_REFRESH_MESSAGE_ERROR {
- base BGP_ERROR_CODE;
- description
- "The length, excluding the fixed-size message header, of the
- received ROUTE-REFRESH message with Message Subtype 1 and 2 is
- not 4. Applicable only when a BGP speaker has received the
- 'Enhanced Route Refresh Capability' from a peer";
- reference
- "RFC 7313 - Enhanced Route Refresh Capability for BGP-4";
- }
-
- identity MESSAGE_HEADER_SUBCODE {
- base BGP_ERROR_SUBCODE;
- description
- "Error subcode definitions for Message Header error
- notifications";
- }
-
- identity CONNECTION_NOT_SYNCHRONIZED {
- base MESSAGE_HEADER_SUBCODE;
- description
- "Marker field of the message header is not all ones as
- expected";
- }
-
- identity BAD_MESSAGE_LENGTH {
- base MESSAGE_HEADER_SUBCODE;
- description
- "Indicates the message has an erroneous length with one
- or more of the following:
-
- - the Length field of the message header is less than 19 or
- greater than 4096
-
- - the Length field of an OPEN message is less than the minimum
- length of the OPEN message
-
- - the Length field of an UPDATE message is less than the
- minimum length of the UPDATE message
-
- - the Length field of a KEEPALIVE message is not equal to 19
-
- - the Length field of a NOTIFICATION message is less than the
- minimum length of the NOTIFICATION message
-
- The erroneous Length field must be reported in the
- NOTIFICATION data.";
- }
-
- identity BAD_MESSAGE_TYPE {
- base MESSAGE_HEADER_SUBCODE;
- description
- "Type field of the message header is not recognized. The
- erroneous type field must be reported in the NOTIFICATION
- data";
- }
-
- identity OPEN_MESSAGE_SUBCODE {
- base BGP_ERROR_SUBCODE;
- description
- "Error subcode definitions for OPEN message error
- notifications";
- }
-
- identity UNSUPPORTED_VERSION_NUMBER {
- base OPEN_MESSAGE_SUBCODE;
- description
- "Version number in the Version field of the received OPEN
- message is not supported";
- }
-
- identity BAD_PEER_AS {
- base OPEN_MESSAGE_SUBCODE;
- description
- "Autonomous System field of the OPEN message is unacceptable";
- }
-
- identity BAD_BGP_IDENTIFIER {
- base OPEN_MESSAGE_SUBCODE;
- description
- "BGP Identifier field of the OPEN message is syntactically
- incorrect";
- }
-
- identity UNSUPPORTED_OPTIONAL_PARAMETER {
- base OPEN_MESSAGE_SUBCODE;
- description
- "One of the Optional Parameters in the OPEN message is not
- recognized";
- }
-
- identity UNACCEPTABLE_HOLD_TIME {
- base OPEN_MESSAGE_SUBCODE;
- description
- "Hold Time field of the OPEN message is unacceptable";
- }
-
- identity UNSUPPORTED_CAPABILITY {
- base OPEN_MESSAGE_SUBCODE;
- description
- "Inidicates that the peer does not support capabilities
- advertisement -- the peer may send this subcode in response to
- an OPEN message that carries the Capabilities Optional
- Parameter";
- reference
- "RFC 5492 - Capabilities Advertisement with BGP-4";
- }
-
- identity UPDATE_MESSAGE_SUBCODE {
- base BGP_ERROR_SUBCODE;
- description
- "Error subcode definitions for UPDATE message error
- notifications";
- }
-
- identity MALFORMED_ATTRIBUTE_LIST {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "Inidicates Withdrawn Routes Length or Total Attribute Length
- is too large, or
-
- An attribute appears more than once in the UPDATE message";
- }
-
- identity UNRECOGNIZED_WELL_KNOWN_ATTRIBUTE {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "One or more of the well-known mandatory attributes are not
- recognized";
- }
-
- identity MISSING_WELL_KNOWN_ATTRIBUTE {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "One or more of the well-known mandatory attributes are not
- present";
- }
-
- identity ATTRIBUTE_FLAGS_ERROR {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "Attribute has Attribute Flags that conflict with the
- Attribute Type Code";
- }
-
- identity ATTRIBUTE_LENGTH_ERROR {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "Attribute has an Attribute Length that conflicts with the
- expected length (based on the attribute type code)";
- }
-
- identity INVALID_ORIGIN_ATTRIBUTE {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "ORIGIN attribute has an undefined value";
- }
-
- identity INVALID_NEXT_HOP_ATTRIBUTE {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "The NEXT_HOP attribute field is syntactically incorrect";
- }
-
- identity OPTIONAL_ATTRIBUTE_ERROR {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "An error is detected in the value of a recognized optional
- attribute (such an attribute must be discarded)";
- }
-
- identity INVALID_NETWORK_FIELD {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "The NLRI field in the UPDATE message is syntactically
- incorrect";
- }
-
- identity MALFORMED_AS_PATH {
- base UPDATE_MESSAGE_SUBCODE;
- description
- "The AS_PATH attribute is syntactically incorrect";
- }
-
- identity FINITE_STATE_MACHINE_SUBCODE {
- base BGP_ERROR_SUBCODE;
- description
- "Error subcode definitions for BGP finite state machine
- errors.";
- reference
- "RFC 6608 - Subcodes for BGP Finite State Machine Error";
- }
-
- identity RECEIVE_UNEXPECTED_MESSAGE_OPENSENT {
- base FINITE_STATE_MACHINE_SUBCODE;
- description
- "The peer BGP speaker received an unexpected message from
- the local system while the peer speaker session was in the
- OpenSent state";
- }
-
- identity RECEIVE_UNEXPECTED_MESSAGE_OPENCONFIRM {
- base FINITE_STATE_MACHINE_SUBCODE;
- description
- "The peer BGP speaker received an unexpected message from
- the local system while the peer speaker session was in the
- OpenConfirm state";
- }
-
- identity RECEIVE_UNEXPECTED_MESSAGE_ESTABLISHED {
- base FINITE_STATE_MACHINE_SUBCODE;
- description
- "The peer BGP speaker received an unexpected message from
- the local system while the peer speaker session was in the
- Established state";
- }
-
- identity CEASE_SUBCODE {
- base BGP_ERROR_SUBCODE;
- description
- "Error subcode definitions for Cease notification messages";
- reference
- "RFC 4486 - Subcodes for BGP Cease Notification Message";
- }
-
- identity MAX_NUM_PREFIXES_REACHED {
- base CEASE_SUBCODE;
- description
- "The peer BGP speaker terminated its peering with the local
- system because the number of address prefixes received
- exceeds a locally configured upper bound";
- }
-
- identity ADMINISTRATIVE_SHUTDOWN {
- base CEASE_SUBCODE;
- description
- "The peer BGP speaker administratively shut down its peering
- with the local system";
- }
-
- identity PEER_DE_CONFIGURED {
- base CEASE_SUBCODE;
- description
- "The peer BGP speaker de-configure the peering with the local
- system";
- }
-
- identity ADMINISTRATIVE_RESET {
- base CEASE_SUBCODE;
- description
- "The peer BGP speaker administratively reset the peering with
- the local system";
- }
-
- identity CONNECTION_REJECTED {
- base CEASE_SUBCODE;
- description
- "The peer BGP speaker disallowed the BGP connection to the
- local system after the peer speaker accepted a transport
- protocol connection";
- }
-
- identity OTHER_CONFIG_CHANGE {
- base CEASE_SUBCODE;
- description
- "The peer BGP speaker administratively reset the peering with
- the local sytem due to a configuration change that is not
- covered by another subcode.";
- }
-
- identity CONN_COLLISION_RESOLUTION {
- base CEASE_SUBCODE;
- description
- "The peer BGP speaker sent a CEASE NOTIFICATION as a result of
- the collision resolution procedure described in RFC 4271";
- }
-
- identity OUT_OF_RESOURCES {
- base CEASE_SUBCODE;
- description
- "The peer BGP speaker ran out of resources (e.g., memory) and
- reset the session with the local system";
- }
-
- identity ROUTE_REFRESH_SUBCODE {
- base BGP_ERROR_SUBCODE;
- description
- "Error subcode definitions for the ROUTE-REFRESH message
- error";
- }
-
- identity INVALID_MESSAGE_LENGTH {
- base ROUTE_REFRESH_SUBCODE;
- description
- "The length, excluding the fixed-size message header, of the
- received ROUTE-REFRESH message with Message Subtype 1 and 2
- is not 4";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-global.yang b/src/plugins/yang/openconfig/openconfig-bgp-global.yang
deleted file mode 100644
index 643fba1..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-global.yang
+++ /dev/null
@@ -1,389 +0,0 @@
-submodule openconfig-bgp-global {
-
- belongs-to openconfig-bgp {
- prefix "oc-bgp";
- }
-
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-inet-types { prefix oc-inet; }
-
- // Include common submodules
- include openconfig-bgp-common;
- include openconfig-bgp-common-multiprotocol;
- include openconfig-bgp-peer-group;
- include openconfig-bgp-common-structure;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This sub-module contains groupings that are specific to the
- global context of the OpenConfig BGP module";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
- grouping bgp-global-config {
- description
- "Global configuration options for the BGP router.";
-
- leaf as {
- type oc-inet:as-number;
-// mandatory true;
- description
- "Local autonomous system number of the router. Uses
- the 32-bit as-number type from the model in RFC 6991.";
- }
-
- leaf router-id {
- type oc-yang:dotted-quad;
- description
- "Router id of the router - an unsigned 32-bit integer
- expressed in dotted quad notation.";
- reference
- "RFC4271 - A Border Gateway Protocol 4 (BGP-4),
- Section 4.2";
- }
- }
-
- grouping bgp-global-state {
- description
- "Operational state parameters for the BGP neighbor";
-
- uses bgp-common-state;
- }
-
- grouping bgp-global-default-route-distance-config {
- description
- "Configuration options relating to the administrative distance
- (or preference) assigned to routes received from different
- sources (external, internal, and local).";
-
- leaf external-route-distance {
- type uint8 {
- range "1..255";
- }
- description
- "Administrative distance for routes learned from external
- BGP (eBGP).";
- }
- leaf internal-route-distance {
- type uint8 {
- range "1..255";
- }
- description
- "Administrative distance for routes learned from internal
- BGP (iBGP).";
- }
- }
-
- grouping bgp-global-confederation-config {
- description
- "Configuration options specifying parameters when the local
- router is within an autonomous system which is part of a BGP
- confederation.";
-
- leaf identifier {
- type oc-inet:as-number;
- description
- "Confederation identifier for the autonomous system.
- Setting the identifier indicates that the local-AS is part
- of a BGP confederation.";
- }
-
- leaf-list member-as {
- type oc-inet:as-number;
- description
- "Remote autonomous systems that are to be treated
- as part of the local confederation.";
- }
- }
-
- grouping bgp-global-dynamic-neighbors {
- description
- "Grouping containing configuration relating to dynamic peers.";
-
- container dynamic-neighbor-prefixes {
- description
- "A list of IP prefixes from which the system should:
- - Accept connections to the BGP daemon
- - Dynamically configure a BGP neighbor corresponding to the
- source address of the remote system, using the parameters
- of the specified peer-group.
- For such neighbors, an entry within the neighbor list should
- be created, indicating that the peer was dynamically
- configured, and referencing the peer-group from which the
- configuration was derived.";
-
- list dynamic-neighbor-prefix {
- key "prefix";
- description
- "An individual prefix from which dynamic neighbor
- connections are allowed.";
-
- leaf prefix {
- type leafref {
- path "../config/prefix";
- }
- description
- "Reference to the IP prefix from which source connections
- are allowed for the dynamic neighbor group.";
- }
-
- container config {
- description
- "Configuration parameters relating to the source prefix
- for the dynamic BGP neighbor connections.";
-
- uses bgp-global-dynamic-neighbor-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the source
- prefix for the dynamic BGP neighbor connections.";
-
- uses bgp-global-dynamic-neighbor-config;
- }
- }
- }
- }
-
- grouping bgp-global-dynamic-neighbor-config {
- description
- "Configuration parameters relating to an individual prefix from
- which dynamic neighbors are accepted.";
-
- leaf prefix {
- type oc-inet:ip-prefix;
- description
- "The IP prefix within which the source address of the remote
- BGP speaker must fall to be considered eligible to the
- dynamically configured."; }
-
- leaf peer-group {
- type leafref {
- // At bgp/global/dynamic-neighbor-prefixes/dynamic-neighbor
- // prefix/config/peer-group
- path "../../../../../peer-groups/peer-group/config/" +
- "peer-group-name";
- }
- description
- "The peer-group within which the dynamic neighbor will be
- configured. The configuration parameters used for the dynamic
- neighbor are those specified within the referenced peer
- group.";
- }
- }
-
- grouping bgp-global-mp-all-afi-safi-list-contents {
- description
- "A grouping used for contents of the list of AFI-SAFI
- entries at the global BGP level.";
-
- // import and export policy included for the afi/safi
-
- uses bgp-common-mp-ipv4-unicast-group;
- uses bgp-common-mp-ipv6-unicast-group;
- uses bgp-common-mp-ipv4-labeled-unicast-group;
- uses bgp-common-mp-ipv6-labeled-unicast-group;
- uses bgp-common-mp-l3vpn-ipv4-unicast-group;
- uses bgp-common-mp-l3vpn-ipv6-unicast-group;
- uses bgp-common-mp-l3vpn-ipv4-multicast-group;
- uses bgp-common-mp-l3vpn-ipv6-multicast-group;
- uses bgp-common-mp-l2vpn-vpls-group;
- uses bgp-common-mp-l2vpn-evpn-group;
- uses bgp-common-mp-srte-policy-ipv4-group;
- uses bgp-common-mp-srte-policy-ipv6-group;
- }
-
- grouping bgp-global-afi-safi-list {
- description
- "List of address-families associated with the BGP instance";
-
- list afi-safi {
- key "afi-safi-name";
-
- description
- "AFI,SAFI configuration available for the
- neighbour or group";
-
- leaf afi-safi-name {
- type leafref {
- path "../config/afi-safi-name";
- }
- description
- "Reference to the AFI-SAFI name used as a key
- for the AFI-SAFI list";
- }
-
- container config {
- description
- "Configuration parameters for the AFI-SAFI";
- uses bgp-common-mp-afi-safi-config;
- }
- container state {
- config false;
- description
- "State information relating to the AFI-SAFI";
- uses bgp-common-mp-afi-safi-config;
- uses bgp-common-state;
- }
-
- container graceful-restart {
- description
- "Parameters relating to BGP graceful-restart";
- container config {
- description
- "Configuration options for BGP graceful-restart";
- uses bgp-common-mp-afi-safi-graceful-restart-config;
- }
- container state {
- config false;
- description
- "State information for BGP graceful-restart";
- uses bgp-common-mp-afi-safi-graceful-restart-config;
- }
- }
-
- uses bgp-common-route-selection-options;
- uses bgp-common-global-group-use-multiple-paths;
- uses bgp-common-structure-neighbor-group-add-paths;
- uses bgp-global-mp-all-afi-safi-list-contents;
- }
- }
-
- // Structural groupings
- grouping bgp-global-base {
- description
- "Global configuration parameters for the BGP router";
-
- container config {
- description
- "Configuration parameters relating to the global BGP router";
- uses bgp-global-config;
- }
- container state {
- config false;
- description
- "State information relating to the global BGP router";
- uses bgp-global-config;
- uses bgp-global-state;
- }
-
- container default-route-distance {
- description
- "Administrative distance (or preference) assigned to
- routes received from different sources
- (external, internal, and local).";
-
- container config {
- description
- "Configuration parameters relating to the default route
- distance";
- uses bgp-global-default-route-distance-config;
- }
- container state {
- config false;
- description
- "State information relating to the default route distance";
- uses bgp-global-default-route-distance-config;
- }
- }
-
- container confederation {
- description
- "Parameters indicating whether the local system acts as part
- of a BGP confederation";
-
- container config {
- description
- "Configuration parameters relating to BGP confederations";
- uses bgp-global-confederation-config;
- }
- container state {
- config false;
- description
- "State information relating to the BGP confederations";
- uses bgp-global-confederation-config;
- }
- }
-
- container graceful-restart {
- description
- "Parameters relating the graceful restart mechanism for BGP";
- container config {
- description
- "Configuration parameters relating to graceful-restart";
- uses bgp-common-graceful-restart-config;
- }
- container state {
- config false;
- description
- "State information associated with graceful-restart";
- uses bgp-common-graceful-restart-config;
- }
- }
-
- uses bgp-common-global-group-use-multiple-paths;
- uses bgp-common-route-selection-options;
-
- container afi-safis {
- description
- "Address family specific configuration";
- uses bgp-global-afi-safi-list;
- }
-
- uses bgp-global-dynamic-neighbors;
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang b/src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang
deleted file mode 100644
index f7ae33b..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-neighbor.yang
+++ /dev/null
@@ -1,704 +0,0 @@
-submodule openconfig-bgp-neighbor {
-
- belongs-to openconfig-bgp {
- prefix "oc-bgp";
- }
-
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-routing-policy { prefix oc-rpol; }
- import openconfig-types { prefix oc-types; }
- import openconfig-bgp-types { prefix oc-bgp-types; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-yang-types { prefix oc-yang; }
-
- // Include the common submodule
- include openconfig-bgp-common;
- include openconfig-bgp-common-multiprotocol;
- include openconfig-bgp-peer-group;
- include openconfig-bgp-common-structure;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This sub-module contains groupings that are specific to the
- neighbor context of the OpenConfig BGP module.";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-30" {
- description
- "Clarification of add-paths send-max leaf";
- reference "4.0.1";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
- grouping bgp-neighbor-config {
- description
- "Configuration parameters relating to a base BGP neighbor that
- are not also applicable to any other context
- (e.g., peer group)";
-
- leaf peer-group {
- type leafref {
- path "../../../../peer-groups/peer-group/peer-group-name";
- }
- description
- "The peer-group with which this neighbor is associated";
- }
-
- leaf neighbor-address {
- type oc-inet:ip-address;
- description
- "Address of the BGP peer, either in IPv4 or IPv6";
- }
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Whether the BGP peer is enabled. In cases where the
- enabled leaf is set to false, the local system should not
- initiate connections to the neighbor, and should not
- respond to TCP connections attempts from the neighbor. If
- the state of the BGP session is ESTABLISHED at the time
- that this leaf is set to false, the BGP session should be
- ceased.";
- }
- }
-
- grouping bgp-neighbor-use-multiple-paths {
- description
- "Multipath configuration and state applicable to a BGP
- neighbor";
-
- container use-multiple-paths {
- description
- "Parameters related to the use of multiple-paths for the same
- NLRI when they are received only from this neighbor";
-
- container config {
- description
- "Configuration parameters relating to multipath";
- uses bgp-common-use-multiple-paths-config;
- }
- container state {
- config false;
- description
- "State parameters relating to multipath";
- uses bgp-common-use-multiple-paths-config;
- }
-
- container ebgp {
- description
- "Multipath configuration for eBGP";
- container config {
- description
- "Configuration parameters relating to eBGP multipath";
- uses bgp-common-use-multiple-paths-ebgp-as-options-config;
- }
- container state {
- config false;
- description
- "State information relating to eBGP multipath";
- uses bgp-common-use-multiple-paths-ebgp-as-options-config;
- }
- }
- }
- }
-
- grouping bgp-neighbor-state {
- description
- "Operational state parameters relating only to a BGP neighbor";
-
- leaf session-state {
- type enumeration {
- enum IDLE {
- description
- "neighbor is down, and in the Idle state of the
- FSM";
- }
- enum CONNECT {
- description
- "neighbor is down, and the session is waiting for
- the underlying transport session to be established";
- }
- enum ACTIVE {
- description
- "neighbor is down, and the local system is awaiting
- a conncetion from the remote peer";
- }
- enum OPENSENT {
- description
- "neighbor is in the process of being established.
- The local system has sent an OPEN message";
- }
- enum OPENCONFIRM {
- description
- "neighbor is in the process of being established.
- The local system is awaiting a NOTIFICATION or
- KEEPALIVE message";
- }
- enum ESTABLISHED {
- description
- "neighbor is up - the BGP session with the peer is
- established";
- }
- }
- description
- "Operational state of the BGP peer";
- }
-
- leaf last-established {
- type oc-types:timeticks64;
- description
- "This timestamp indicates the time that the
- BGP session last transitioned in or out of the Established
- state. The value is the timestamp in seconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).
-
- The BGP session uptime can be computed by clients as the
- difference between this value and the current time in UTC
- (assuming the session is in the ESTABLISHED state, per the
- session-state leaf).";
- }
-
- leaf established-transitions {
- type oc-yang:counter64;
- description
- "Number of transitions to the Established state for
- the neighbor session. This value is analogous to the
- bgpPeerFsmEstablishedTransitions object from the standard
- BGP-4 MIB";
- reference
- "RFC 4273 - Definitions of Managed Objects for BGP-4";
- }
-
- leaf-list supported-capabilities {
- type identityref {
- base oc-bgp-types:BGP_CAPABILITY;
- }
- description
- "BGP capabilities negotiated as supported with the peer";
- }
-
- container messages {
- description
- "Counters for BGP messages sent and received from the
- neighbor";
- container sent {
- description
- "Counters relating to BGP messages sent to the neighbor";
- uses bgp-neighbor-counters-message-types-state;
- }
-
- container received {
- description
- "Counters for BGP messages received from the neighbor";
- uses bgp-neighbor-counters-message-types-state;
- }
- }
-
- container queues {
- description
- "Counters related to queued messages associated with the
- BGP neighbor";
- uses bgp-neighbor-queue-counters-state;
- }
-
- leaf dynamically-configured {
- type boolean;
- default false;
- description
- "When this leaf is set to true, the peer was configured dynamically
- due to an inbound connection request from a specified source prefix
- within a dynamic-neighbor-prefix.";
- }
- }
-
- grouping bgp-neighbor-counters-message-types-state {
- description
- "Grouping of BGP message types, included for re-use
- across counters";
-
- leaf UPDATE {
- type uint64;
- description
- "Number of BGP UPDATE messages announcing, withdrawing
- or modifying paths exchanged.";
- }
-
- leaf NOTIFICATION {
- type uint64;
- description
- "Number of BGP NOTIFICATION messages indicating an
- error condition has occurred exchanged.";
- }
-
- leaf last-notification-time {
- type oc-types:timeticks64;
- description
- "This timestamp indicates the time that a NOTIFICATION
- message was sent or received on the peering session
- (based on whether this leaf is associated with
- sent or received messages).
-
- The value is the timestamp in seconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- }
-
- leaf last-notification-error-code {
- type identityref {
- base oc-bgp-types:BGP_ERROR_CODE;
- }
- description
- "Indicates the last BGP error sent or received on the peering
- session (based on whether this leaf is associated with
- sent or received messages).";
- }
-
- leaf last-notification-error-subcode {
- type identityref {
- base oc-bgp-types:BGP_ERROR_SUBCODE;
- }
- description
- "Indicates the last BGP error subcode sent or received on
- the peering session (based on whether this leaf is associated
- with sent or received messages)";
- }
- }
-
- grouping bgp-neighbor-queue-counters-state {
- description
- "Counters relating to the message queues associated with the
- BGP peer";
-
- leaf input {
- type uint32;
- description
- "The number of messages received from the peer currently
- queued";
- }
-
- leaf output {
- type uint32;
- description
- "The number of messages queued to be sent to the peer";
- }
- }
-
- grouping bgp-neighbor-transport-state {
- description
- "Operational state parameters relating to the transport session
- used for the BGP session";
-
- leaf local-port {
- type oc-inet:port-number;
- description
- "Local TCP port being used for the TCP session supporting
- the BGP session";
- }
-
- leaf remote-address {
- type oc-inet:ip-address;
- description
- "Remote address to which the BGP session has been
- established";
- }
-
- leaf remote-port {
- type oc-inet:port-number;
- description
- "Remote port being used by the peer for the TCP session
- supporting the BGP session";
- }
- }
-
- grouping bgp-neighbor-error-handling-state {
- description
- "Operational state parameters relating to enhanced error
- error handling for BGP";
-
- leaf erroneous-update-messages {
- type uint32;
- description
- "The number of BGP UPDATE messages for which the
- treat-as-withdraw mechanism has been applied based
- on erroneous message contents";
- }
- }
-
- grouping bgp-neighbor-timers-state {
- description
- "Operational state parameters relating to BGP timers associated
- with the BGP session";
-
- leaf negotiated-hold-time {
- type decimal64 {
- fraction-digits 2;
- }
- description
- "The negotiated hold-time for the BGP session";
- }
- }
-
- grouping bgp-neighbor-afi-safi-graceful-restart-state {
- description
- "Operational state variables relating to the graceful-restart
- mechanism on a per-AFI-SAFI basis";
-
- leaf received {
- type boolean;
- description
- "This leaf indicates whether the neighbor advertised the
- ability to support graceful-restart for this AFI-SAFI";
- }
-
- leaf advertised {
- type boolean;
- description
- "This leaf indicates whether the ability to support
- graceful-restart has been advertised to the peer";
- }
- }
-
- grouping bgp-neighbor-graceful-restart-state {
- description
- "Operational state information relevant to graceful restart
- for BGP";
-
- leaf peer-restart-time {
- type uint16 {
- range 0..4096;
- }
- description
- "The period of time (advertised by the peer) that
- the peer expects a restart of a BGP session to
- take";
- }
-
- leaf peer-restarting {
- type boolean;
- description
- "This flag indicates whether the remote neighbor is currently
- in the process of restarting, and hence received routes are
- currently stale";
- }
-
- leaf local-restarting {
- type boolean;
- description
- "This flag indicates whether the local neighbor is currently
- restarting. The flag is unset after all NLRI have been
- advertised to the peer, and the End-of-RIB (EOR) marker has
- been unset";
- }
-
- leaf mode {
- type enumeration {
- enum HELPER_ONLY {
- description
- "The local router is operating in helper-only mode, and
- hence will not retain forwarding state during a local
- session restart, but will do so during a restart of the
- remote peer";
- }
- enum BILATERAL {
- description
- "The local router is operating in both helper mode, and
- hence retains forwarding state during a remote restart,
- and also maintains forwarding state during local session
- restart";
- }
- enum REMOTE_HELPER {
- description
- "The local system is able to retain routes during restart
- but the remote system is only able to act as a helper";
- }
- }
- description
- "Ths leaf indicates the mode of operation of BGP graceful
- restart with the peer";
- }
- }
-
- grouping bgp-neighbor-afi-safi-state {
- description
- "Operational state parameters relating to an individual AFI,
- SAFI for a neighbor";
-
- leaf active {
- type boolean;
- description
- "This value indicates whether a particular AFI-SAFI has
- been succesfully negotiated with the peer. An AFI-SAFI
- may be enabled in the current running configuration, but a
- session restart may be required in order to negotiate the new
- capability.";
- }
-
- container prefixes {
- description "Prefix counters for the BGP session";
- leaf received {
- type uint32;
- description
- "The number of prefixes received from the neighbor";
- }
-
- leaf sent {
- type uint32;
- description
- "The number of prefixes advertised to the neighbor";
- }
-
- leaf installed {
- type uint32;
- description
- "The number of advertised prefixes installed in the
- Loc-RIB";
- }
- }
- }
-
- grouping bgp-neighbor-afi-safi-list {
- description
- "List of address-families associated with the BGP neighbor";
-
- list afi-safi {
- key "afi-safi-name";
-
- description
- "AFI,SAFI configuration available for the
- neighbour or group";
-
-
- leaf afi-safi-name {
- type leafref {
- path "../config/afi-safi-name";
- }
- description
- "Reference to the AFI-SAFI name used as a key
- for the AFI-SAFI list";
- }
-
- container config {
- description
- "Configuration parameters for the AFI-SAFI";
- uses bgp-common-mp-afi-safi-config;
- }
- container state {
- config false;
- description
- "State information relating to the AFI-SAFI";
- uses bgp-common-mp-afi-safi-config;
- uses bgp-neighbor-afi-safi-state;
- }
-
-
- container graceful-restart {
- description
- "Parameters relating to BGP graceful-restart";
- container config {
- description
- "Configuration options for BGP graceful-restart";
- uses bgp-common-mp-afi-safi-graceful-restart-config;
- }
- container state {
- config false;
- description
- "State information for BGP graceful-restart";
- uses bgp-common-mp-afi-safi-graceful-restart-config;
- uses bgp-neighbor-afi-safi-graceful-restart-state;
- }
- }
-
- uses bgp-common-structure-neighbor-group-add-paths;
- uses bgp-common-mp-all-afi-safi-list-contents;
- uses bgp-neighbor-use-multiple-paths;
- }
- }
-
- grouping bgp-neighbor-base {
- description
- "Parameters related to a BGP neighbor";
-
- container config {
- description
- "Configuration parameters relating to the BGP neighbor or
- group";
- uses bgp-neighbor-config;
- uses bgp-common-neighbor-group-config;
- }
- container state {
- config false;
- description
- "State information relating to the BGP neighbor";
- uses bgp-neighbor-config;
- uses bgp-common-neighbor-group-config;
- uses bgp-neighbor-state;
- }
-
- container timers {
- description
- "Timers related to a BGP neighbor";
- container config {
- description
- "Configuration parameters relating to timers used for the
- BGP neighbor";
- uses bgp-common-neighbor-group-timers-config;
- }
- container state {
- config false;
- description
- "State information relating to the timers used for the BGP
- neighbor";
- uses bgp-common-neighbor-group-timers-config;
- uses bgp-neighbor-timers-state;
- }
- }
-
- container transport {
- description
- "Transport session parameters for the BGP neighbor";
- container config {
- description
- "Configuration parameters relating to the transport
- session(s) used for the BGP neighbor";
- uses bgp-common-neighbor-group-transport-config;
- }
- container state {
- config false;
- description
- "State information relating to the transport session(s)
- used for the BGP neighbor";
- uses bgp-common-neighbor-group-transport-config;
- uses bgp-neighbor-transport-state;
- }
- }
-
- container error-handling {
- description
- "Error handling parameters used for the BGP neighbor or
- group";
- container config {
- description
- "Configuration parameters enabling or modifying the
- behavior or enhanced error handling mechanisms for the BGP
- neighbor";
- uses bgp-common-neighbor-group-error-handling-config;
- }
- container state {
- config false;
- description
- "State information relating to enhanced error handling
- mechanisms for the BGP neighbor";
- uses bgp-common-neighbor-group-error-handling-config;
- uses bgp-neighbor-error-handling-state;
- }
- }
-
- container graceful-restart {
- description
- "Parameters relating the graceful restart mechanism for BGP";
- container config {
- description
- "Configuration parameters relating to graceful-restart";
- uses bgp-common-graceful-restart-config;
- }
- container state {
- config false;
- description
- "State information associated with graceful-restart";
- uses bgp-common-graceful-restart-config;
- uses bgp-neighbor-graceful-restart-state;
- }
- }
-
- uses bgp-common-structure-neighbor-group-logging-options;
- uses bgp-common-structure-neighbor-group-ebgp-multihop;
- uses bgp-common-structure-neighbor-group-route-reflector;
- uses bgp-common-structure-neighbor-group-as-path-options;
- uses bgp-neighbor-use-multiple-paths;
- uses oc-rpol:apply-policy-group;
-
- container afi-safis {
- description
- "Per-address-family configuration parameters associated with
- the neighbor";
- uses bgp-neighbor-afi-safi-list;
- }
- }
-
- grouping bgp-neighbor-list {
- description
- "The list of BGP neighbors";
-
- list neighbor {
- key "neighbor-address";
- description
- "List of BGP neighbors configured on the local system,
- uniquely identified by peer IPv[46] address";
-
- leaf neighbor-address {
- type leafref {
- path "../config/neighbor-address";
- }
- description
- "Reference to the address of the BGP neighbor used as
- a key in the neighbor list";
- }
-
- uses bgp-neighbor-base;
- }
-
- }
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-peer-group.yang b/src/plugins/yang/openconfig/openconfig-bgp-peer-group.yang
deleted file mode 100644
index b1ba986..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-peer-group.yang
+++ /dev/null
@@ -1,271 +0,0 @@
-submodule openconfig-bgp-peer-group {
-
- belongs-to openconfig-bgp {
- prefix "oc-bgp";
- }
-
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-routing-policy { prefix oc-rpol; }
-
- // Include the common submodule
- include openconfig-bgp-common;
- include openconfig-bgp-common-multiprotocol;
- include openconfig-bgp-common-structure;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This sub-module contains groupings that are specific to the
- peer-group context of the OpenConfig BGP module.";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
- grouping bgp-peer-group-config {
- description
- "Configuration parameters relating to a base BGP peer group that
- are not also applicable to any other context (e.g., neighbor)";
-
- leaf peer-group-name {
- type string;
- description
- "Name of the BGP peer-group";
- }
-
- }
-
- grouping bgp-peer-group-afi-safi-list {
- description
- "List of address-families associated with the BGP peer-group";
-
- list afi-safi {
- key "afi-safi-name";
-
- description
- "AFI,SAFI configuration available for the
- neighbour or group";
-
- leaf afi-safi-name {
- type leafref {
- path "../config/afi-safi-name";
- }
- description
- "Reference to the AFI-SAFI name used as a key
- for the AFI-SAFI list";
- }
-
- container config {
- description
- "Configuration parameters for the AFI-SAFI";
- uses bgp-common-mp-afi-safi-config;
- }
- container state {
- config false;
- description
- "State information relating to the AFI-SAFI";
- uses bgp-common-mp-afi-safi-config;
- }
-
- container graceful-restart {
- description
- "Parameters relating to BGP graceful-restart";
- container config {
- description
- "Configuration options for BGP graceful-restart";
- uses bgp-common-mp-afi-safi-graceful-restart-config;
- }
- container state {
- config false;
- description
- "State information for BGP graceful-restart";
- uses bgp-common-mp-afi-safi-graceful-restart-config;
- }
- }
-
- uses bgp-common-structure-neighbor-group-add-paths;
- uses bgp-common-global-group-use-multiple-paths;
- uses bgp-common-mp-all-afi-safi-list-contents;
- }
- }
-
- grouping bgp-peer-group-base {
- description
- "Parameters related to a BGP group";
-
- container config {
- description
- "Configuration parameters relating to the BGP neighbor or
- group";
- uses bgp-peer-group-config;
- uses bgp-common-neighbor-group-config;
- }
- container state {
- config false;
- description
- "State information relating to the BGP peer-group";
- uses bgp-peer-group-config;
- uses bgp-common-neighbor-group-config;
- uses bgp-common-state;
- }
-
- container timers {
- description
- "Timers related to a BGP peer-group";
-
- container config {
- description
- "Configuration parameters relating to timers used for the
- BGP neighbor or peer group";
- uses bgp-common-neighbor-group-timers-config;
- }
- container state {
- config false;
- description
- "State information relating to the timers used for the BGP
- group";
- uses bgp-common-neighbor-group-timers-config;
- }
- }
-
- container transport {
- description
- "Transport session parameters for the BGP peer-group";
-
- container config {
- description
- "Configuration parameters relating to the transport
- session(s) used for the BGP neighbor or group";
- uses bgp-common-neighbor-group-transport-config;
- }
- container state {
- config false;
- description
- "State information relating to the transport session(s)
- used for the BGP neighbor or group";
- uses bgp-common-neighbor-group-transport-config;
- }
- }
-
- container error-handling {
- description
- "Error handling parameters used for the BGP peer-group";
-
- container config {
- description
- "Configuration parameters enabling or modifying the
- behavior or enhanced error handling mechanisms for the BGP
- group";
- uses bgp-common-neighbor-group-error-handling-config;
- }
- container state {
- config false;
- description
- "State information relating to enhanced error handling
- mechanisms for the BGP group";
- uses bgp-common-neighbor-group-error-handling-config;
- }
- }
-
- container graceful-restart {
- description
- "Parameters relating the graceful restart mechanism for BGP";
- container config {
- description
- "Configuration parameters relating to graceful-restart";
- uses bgp-common-graceful-restart-config;
- }
- container state {
- config false;
- description
- "State information associated with graceful-restart";
- uses bgp-common-graceful-restart-config;
- }
- }
-
- uses bgp-common-structure-neighbor-group-logging-options;
- uses bgp-common-structure-neighbor-group-ebgp-multihop;
- uses bgp-common-structure-neighbor-group-route-reflector;
- uses bgp-common-structure-neighbor-group-as-path-options;
- uses bgp-common-global-group-use-multiple-paths;
- uses oc-rpol:apply-policy-group;
-
- container afi-safis {
- description
- "Per-address-family configuration parameters associated with
- thegroup";
- uses bgp-peer-group-afi-safi-list;
- }
- }
-
- grouping bgp-peer-group-list {
- description
- "The list of BGP peer groups";
-
- list peer-group {
- key "peer-group-name";
- description
- "List of BGP peer-groups configured on the local system -
- uniquely identified by peer-group name";
-
- leaf peer-group-name {
- type leafref {
- path "../config/peer-group-name";
- }
- description
- "Reference to the name of the BGP peer-group used as a
- key in the peer-group list";
- }
-
- uses bgp-peer-group-base;
- }
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-policy.yang b/src/plugins/yang/openconfig/openconfig-bgp-policy.yang
deleted file mode 100644
index 23db9f7..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-policy.yang
+++ /dev/null
@@ -1,1210 +0,0 @@
-module openconfig-bgp-policy {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/bgp-policy";
-
- prefix "oc-bgp-pol";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-routing-policy {prefix oc-rpol; }
- import openconfig-policy-types { prefix oc-pol-types; }
- import openconfig-bgp-types { prefix oc-bgp-types; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module contains data definitions for BGP routing policy.
- It augments the base routing-policy module with BGP-specific
- options for conditions and actions.";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
-
- // typedef statements
-
- typedef bgp-set-community-option-type {
- type enumeration {
- enum ADD {
- description
- "add the specified communities to the existing
- community attribute";
- }
- enum REMOVE {
- description
- "remove the specified communities from the
- existing community attribute";
- }
- enum REPLACE {
- description
- "replace the existing community attribute with
- the specified communities. If an empty set is
- specified, this removes the community attribute
- from the route.";
- }
- }
- description
- "Type definition for options when setting the community
- attribute in a policy action";
- }
-
- typedef bgp-next-hop-type {
- type union {
- type oc-inet:ip-address;
- type enumeration {
- enum SELF {
- description "special designation for local router's own
- address, i.e., next-hop-self";
- }
- }
- }
- description
- "type definition for specifying next-hop in policy actions";
- }
-
- typedef bgp-set-med-type {
- type union {
- type uint32;
- type string {
- pattern '^[+-][0-9]+$';
- }
- type enumeration {
- enum IGP {
- description "set the MED value to the IGP cost toward the
- next hop for the route";
- }
- }
- }
- description
- "Type definition for specifying how the BGP MED can
- be set in BGP policy actions. The three choices are to set
- the MED directly, increment/decrement using +/- notation,
- and setting it to the IGP cost (predefined value).";
- }
-
- // grouping statements
-
- grouping match-community-config {
- description
- "Configuration data for match conditions on communities";
-
- leaf community-set {
- type leafref {
- path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" +
- "oc-bgp-pol:bgp-defined-sets/oc-bgp-pol:community-sets/" +
- "oc-bgp-pol:community-set/oc-bgp-pol:community-set-name";
- }
- description
- "References a defined community set";
- }
-
- uses oc-rpol:match-set-options-group;
- }
-
- grouping match-community-state {
- description
- "Operational state data for match conditions on communities";
- }
-
- grouping match-community-top {
- description
- "Top-level grouping for match conditions on communities";
-
- container match-community-set {
- description
- "Top-level container for match conditions on communities.
- Match a referenced community-set according to the logic
- defined in the match-set-options leaf";
-
- container config {
- description
- "Configuration data for match conditions on communities";
-
- uses match-community-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses match-community-config;
- uses match-community-state;
- }
- }
- }
-
- grouping match-ext-community-config {
- description
- "Configuration data for match conditions on extended
- communities";
-
- leaf ext-community-set {
- type leafref {
- path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" +
- "oc-bgp-pol:bgp-defined-sets/oc-bgp-pol:ext-community-sets/" +
- "oc-bgp-pol:ext-community-set/" +
- "oc-bgp-pol:ext-community-set-name";
- }
- description "References a defined extended community set";
- }
-
- uses oc-rpol:match-set-options-group;
- }
-
- grouping match-ext-community-state {
- description
- "Operational state data for match conditions on extended
- communities";
- }
-
- grouping match-ext-community-top {
- description
- "Top-level grouping for match conditions on extended
- communities";
-
- container match-ext-community-set {
- description
- "Match a referenced extended community-set according to the
- logic defined in the match-set-options leaf";
-
- container config {
- description
- "Configuration data for match conditions on extended
- communities";
-
- uses match-ext-community-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for match conditions on extended
- communities";
-
- uses match-ext-community-config;
- uses match-ext-community-state;
- }
- }
- }
-
- grouping match-as-path-config {
- description
- "Configuration data for match conditions on AS path set";
-
- leaf as-path-set {
- type leafref {
- path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" +
- "oc-bgp-pol:bgp-defined-sets/oc-bgp-pol:as-path-sets/" +
- "oc-bgp-pol:as-path-set/oc-bgp-pol:as-path-set-name";
- }
- description "References a defined AS path set";
- }
- uses oc-rpol:match-set-options-group;
- }
-
- grouping match-as-path-state {
- description
- "Operational state data for match conditions on AS path set";
- }
-
- grouping match-as-path-top {
- description
- "Top-level grouping for match conditions on AS path set";
-
- container match-as-path-set {
- description
- "Match a referenced as-path set according to the logic
- defined in the match-set-options leaf";
-
- container config {
- description
- "Configuration data for match conditions on AS path set";
-
- uses match-as-path-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for match conditions on AS
- path set";
-
- uses match-as-path-config;
- uses match-as-path-state;
- }
- }
- }
-
- grouping bgp-match-set-conditions {
- description
- "Condition statement definitions for checking membership in a
- defined set";
-
- uses match-community-top;
- uses match-ext-community-top;
- uses match-as-path-top;
- }
-
- grouping community-count-config {
- description
- "Configuration data for community count condition";
-
- uses oc-pol-types:attribute-compare-operators;
- }
-
- grouping community-count-state {
- description
- "Operational state data for community count condition";
- }
-
- grouping community-count-top {
- description
- "Top-level grouping for community count condition";
-
- container community-count {
- description
- "Value and comparison operations for conditions based on the
- number of communities in the route update";
-
- container config {
- description
- "Configuration data for community count condition";
-
- uses community-count-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for community count condition";
-
- uses community-count-config;
- uses community-count-state;
- }
- }
- }
-
- grouping as-path-length-config {
- description
- "Configuration data for AS path length condition";
-
- uses oc-pol-types:attribute-compare-operators;
- }
-
- grouping as-path-length-state {
- description
- "Operational state data for AS path length condition";
- }
-
- grouping as-path-length-top {
- description
- "Top-level grouping for AS path length condition";
-
- container as-path-length {
- description
- "Value and comparison operations for conditions based on the
- length of the AS path in the route update";
-
- container config {
- description
- "Configuration data for AS path length condition";
-
- uses as-path-length-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for AS path length condition";
-
- uses as-path-length-config;
- uses as-path-length-state;
- }
- }
- }
-
- grouping bgp-conditions-config {
- description
- "Configuration data for BGP-specific policy conditions";
-
- leaf med-eq {
- type uint32;
- description
- "Condition to check if the received MED value is equal to
- the specified value";
- }
-
- leaf origin-eq {
- type oc-bgp-types:bgp-origin-attr-type;
- description
- "Condition to check if the route origin is equal to the
- specified value";
- }
-
- leaf-list next-hop-in {
- type oc-inet:ip-address;
- description
- "List of next hop addresses to check for in the route
- update";
- }
-
- leaf-list afi-safi-in {
- type identityref {
- base oc-bgp-types:AFI_SAFI_TYPE;
- }
- description
- "List of address families which the NLRI may be
- within";
- }
-
- leaf local-pref-eq {
- type uint32;
- // TODO: add support for other comparisons if needed
- description
- "Condition to check if the local pref attribute is equal to
- the specified value";
- }
-
- leaf route-type {
- // TODO: verify extent of vendor support for this comparison
- type enumeration {
- enum INTERNAL {
- description "route type is internal";
- }
- enum EXTERNAL {
- description "route type is external";
- }
- }
- description
- "Condition to check the route type in the route update";
- }
- }
-
- grouping bgp-conditions-state {
- description
- "Operational state data for BGP-specific policy conditions";
- }
-
- grouping bgp-conditions-top {
- description
- "Top-level grouping for BGP-specific policy conditions";
-
- container bgp-conditions {
- description
- "Top-level container ";
-
- container config {
- description
- "Configuration data for BGP-specific policy conditions";
-
- uses bgp-conditions-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for BGP-specific policy
- conditions";
-
- uses bgp-conditions-config;
- uses bgp-conditions-state;
- }
-
- uses community-count-top;
- uses as-path-length-top;
- uses bgp-match-set-conditions;
- }
- }
-
- grouping community-set-config {
- description
- "Configuration data for BGP community sets";
-
- leaf community-set-name {
- type string;
- mandatory true;
- description
- "name / label of the community set -- this is used to
- reference the set in match conditions";
- }
-
- leaf-list community-member {
- type union {
- type oc-bgp-types:bgp-std-community-type;
- type oc-bgp-types:bgp-community-regexp-type;
- type oc-bgp-types:bgp-well-known-community-type;
- }
- description
- "members of the community set";
- }
- }
-
- grouping community-set-state {
- description
- "Operational state data for BGP community sets";
- }
-
- grouping community-set-top {
- description
- "Top-level grouping for BGP community sets";
-
- container community-sets {
- description
- "Enclosing container for list of defined BGP community sets";
-
- list community-set {
- key "community-set-name";
- description
- "List of defined BGP community sets";
-
- leaf community-set-name {
- type leafref {
- path "../config/community-set-name";
- }
- description
- "Reference to list key";
- }
-
- container config {
- description
- "Configuration data for BGP community sets";
-
- uses community-set-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for BGP community sets";
-
- uses community-set-config;
- uses community-set-state;
- }
- }
- }
- }
-
- grouping ext-community-set-config {
- description
- "Configuration data for extended BGP community sets";
-
- leaf ext-community-set-name {
- type string;
- description
- "name / label of the extended community set -- this is
- used to reference the set in match conditions";
- }
-
- leaf-list ext-community-member {
- type union {
- type oc-bgp-types:bgp-ext-community-type;
- type oc-bgp-types:bgp-community-regexp-type;
- }
- description
- "members of the extended community set";
- }
- }
-
- grouping ext-community-set-state {
- description
- "Operational state data for extended BGP community sets";
- }
-
- grouping ext-community-set-top {
- description
- "Top-level grouping for extended BGP community sets";
-
- container ext-community-sets {
- description
- "Enclosing container for list of extended BGP community
- sets";
-
- list ext-community-set {
- key "ext-community-set-name";
- description
- "List of defined extended BGP community sets";
-
- leaf ext-community-set-name {
- type leafref {
- path "../config/ext-community-set-name";
- }
- description
- "Reference to list key";
- }
-
- container config {
- description
- "Configuration data for extended BGP community sets";
-
- uses ext-community-set-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for extended BGP community sets";
-
- uses ext-community-set-config;
- uses ext-community-set-state;
- }
- }
- }
- }
-
- grouping as-path-set-config {
- description
- "Configuration data for AS path sets";
-
- leaf as-path-set-name {
- type string;
- description
- "name of the AS path set -- this is used to reference
- the set in match conditions";
- }
-
- leaf-list as-path-set-member {
- // TODO: need to refine typedef for AS path expressions
- type string;
- description
- "AS path expression -- list of ASes in the set";
- }
- }
-
- grouping as-path-set-state {
- description
- "Operational state data for AS path sets";
- }
-
- grouping as-path-set-top {
- description
- "Top-level grouping for AS path sets";
-
- container as-path-sets {
- description
- "Enclosing container for list of define AS path sets";
-
- list as-path-set {
- key "as-path-set-name";
- description
- "List of defined AS path sets";
-
- leaf as-path-set-name {
- type leafref {
- path "../config/as-path-set-name";
- }
- description
- "Reference to list key";
- }
-
- container config {
- description
- "Configuration data for AS path sets";
-
- uses as-path-set-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for AS path sets";
-
- uses as-path-set-config;
- uses as-path-set-state;
- }
- }
- }
- }
-
- // augment statements
-
- augment "/oc-rpol:routing-policy/oc-rpol:defined-sets" {
- description "adds BGP defined sets container to routing policy
- model";
-
- container bgp-defined-sets {
- description
- "BGP-related set definitions for policy match conditions";
-
- uses community-set-top;
- uses ext-community-set-top;
- uses as-path-set-top;
- }
- }
-
- grouping as-path-prepend-config {
- description
- "Configuration data for the AS path prepend action";
-
- leaf repeat-n {
- type uint8 {
- range 1..max;
- }
- description
- "Number of times to prepend the value specified in the asn
- leaf to the AS path. If no value is specified by the asn
- leaf, the local AS number of the system is used. The value
- should be between 1 and the maximum supported by the
- implementation.";
- }
-
- leaf asn {
- type oc-inet:as-number;
- description
- "The AS number to prepend to the AS path. If this leaf is
- not specified and repeat-n is set, then the local AS
- number will be used for prepending.";
- }
- }
-
- grouping as-path-prepend-state {
- description
- "Operational state data for the AS path prepend action";
- }
-
- grouping as-path-prepend-top {
- description
- "Top-level grouping for the AS path prepend action";
-
- container set-as-path-prepend {
- description
- "Action to prepend the specified AS number to the AS-path a
- specified number of times";
-
- container config {
- description
- "Configuration data for the AS path prepend action";
-
- uses as-path-prepend-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the AS path prepend action";
-
- uses as-path-prepend-config;
- uses as-path-prepend-state;
- }
- }
- }
-
- grouping set-community-action-common {
- description
- "Common leaves for set-community and set-ext-community
- actions";
-
- leaf method {
- type enumeration {
- enum INLINE {
- description
- "The extended communities are specified inline as a
- list";
- }
- enum REFERENCE {
- description
- "The extended communities are specified by referencing a
- defined ext-community set";
- }
- }
- description
- "Indicates the method used to specify the extended
- communities for the set-ext-community action";
- }
-
- leaf options {
- type bgp-set-community-option-type;
- description
- "Options for modifying the community attribute with
- the specified values. These options apply to both
- methods of setting the community attribute.";
- }
- }
-
- grouping set-community-inline-config {
- description
- "Configuration data for inline specification of set-community
- action";
-
- leaf-list communities {
- type union {
- type oc-bgp-types:bgp-std-community-type;
- type oc-bgp-types:bgp-well-known-community-type;
- }
- description
- "Set the community values for the update inline with
- a list.";
- }
- }
-
- grouping set-community-inline-state {
- description
- "Operational state data or inline specification of
- set-community action";
- }
-
- grouping set-community-inline-top {
- description
- "Top-level grouping or inline specification of set-community
- action";
-
- container inline {
- when "../config/method=INLINE" {
- description
- "Active only when the set-community method is INLINE";
- }
- description
- "Set the community values for the action inline with
- a list.";
-
- container config {
- description
- "Configuration data or inline specification of set-community
- action";
-
- uses set-community-inline-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data or inline specification of
- set-community action";
-
- uses set-community-inline-config;
- uses set-community-inline-state;
- }
- }
- }
-
- grouping set-community-reference-config {
- description
- "Configuration data for referening a community-set in the
- set-community action";
-
- leaf community-set-ref {
- type leafref {
- path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" +
- "oc-bgp-pol:bgp-defined-sets/" +
- "oc-bgp-pol:community-sets/oc-bgp-pol:community-set/" +
- "oc-bgp-pol:community-set-name";
- }
- description
- "References a defined community set by name";
- }
- }
-
- grouping set-community-reference-state {
- description
- "Operational state data for referening a community-set in the
- set-community action";
- }
-
- grouping set-community-reference-top {
- description
- "Top-level grouping for referening a community-set in the
- set-community action";
-
- container reference {
- when "../config/method=REFERENCE" {
- description
- "Active only when the set-community method is REFERENCE";
- }
- description
- "Provide a reference to a defined community set for the
- set-community action";
-
- container config {
- description
- "Configuration data for referening a community-set in the
- set-community action";
-
- uses set-community-reference-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for referening a community-set
- in the set-community action";
-
- uses set-community-reference-config;
- uses set-community-reference-state;
- }
- }
- }
-
- grouping set-community-action-config {
- description
- "Configuration data for the set-community action";
-
- uses set-community-action-common;
- }
-
- grouping set-community-action-state {
- description
- "Operational state data for the set-community action";
- }
-
- grouping set-community-action-top {
- description
- "Top-level grouping for the set-community action";
-
- container set-community {
- description
- "Action to set the community attributes of the route, along
- with options to modify how the community is modified.
- Communities may be set using an inline list OR
- reference to an existing defined set (not both).";
-
- container config {
- description
- "Configuration data for the set-community action";
-
- uses set-community-action-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the set-community action";
-
- uses set-community-action-config;
- uses set-community-action-state;
- }
-
- uses set-community-inline-top;
- uses set-community-reference-top;
- }
- }
-
- grouping set-ext-community-inline-config {
- description
- "Configuration data for inline specification of
- set-ext-community action";
-
- leaf-list communities {
- type union {
- type oc-bgp-types:bgp-ext-community-type;
- type oc-bgp-types:bgp-well-known-community-type;
- }
- description
- "Set the extended community values for the update inline
- with a list.";
- }
- }
-
- grouping set-ext-community-inline-state {
- description
- "Operational state data or inline specification of
- set-ext-community action";
- }
-
- grouping set-ext-community-inline-top {
- description
- "Top-level grouping or inline specification of set-ext-community
- action";
-
- container inline {
- when "../config/method=INLINE" {
- description
- "Active only when the set-community method is INLINE";
- }
- description
- "Set the extended community values for the action inline with
- a list.";
-
- container config {
- description
- "Configuration data or inline specification of
- set-ext-community action";
-
- uses set-ext-community-inline-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data or inline specification of
- set-ext-community action";
-
- uses set-ext-community-inline-config;
- uses set-ext-community-inline-state;
- }
- }
- }
-
- grouping set-ext-community-reference-config {
- description
- "Configuration data for referening a extended community-set
- in the set-ext-community action";
-
- leaf ext-community-set-ref {
- type leafref {
- path "/oc-rpol:routing-policy/oc-rpol:defined-sets/" +
- "oc-bgp-pol:bgp-defined-sets/" +
- "oc-bgp-pol:ext-community-sets/" +
- "oc-bgp-pol:ext-community-set/" +
- "oc-bgp-pol:ext-community-set-name";
- }
- description
- "References a defined extended community set by
- name";
- }
- }
-
- grouping set-ext-community-reference-state {
- description
- "Operational state data for referening an extended
- community-set in the set-ext-community action";
- }
-
- grouping set-ext-community-reference-top {
- description
- "Top-level grouping for referening an extended community-set
- in the set-community action";
-
- container reference {
- when "../config/method=REFERENCE" {
- description
- "Active only when the set-community method is REFERENCE";
- }
- description
- "Provide a reference to an extended community set for the
- set-ext-community action";
-
- container config {
- description
- "Configuration data for referening an extended
- community-set in the set-ext-community action";
-
- uses set-ext-community-reference-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for referening an extended
- community-set in the set-ext-community action";
-
- uses set-ext-community-reference-config;
- uses set-ext-community-reference-state;
- }
- }
- }
-
- grouping set-ext-community-action-config {
- description
- "Configuration data for the set-ext-community action";
-
- uses set-community-action-common;
- }
-
- grouping set-ext-community-action-state {
- description
- "Operational state data for the set-ext-community action";
- }
-
- grouping set-ext-community-action-top {
- description
- "Top-level grouping for the set-ext-community action";
-
- container set-ext-community {
- description
- "Action to set the extended community attributes of the
- route, along with options to modify how the community is
- modified. Extended communities may be set using an inline
- list OR a reference to an existing defined set (but not
- both).";
-
- container config {
- description
- "Configuration data for the set-ext-community action";
-
- uses set-ext-community-action-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the set-ext-community action";
-
- uses set-ext-community-action-config;
- uses set-ext-community-action-state;
- }
- uses set-ext-community-inline-top;
- uses set-ext-community-reference-top;
- }
- }
-
- grouping bgp-actions-config {
- description
- "Configuration data for BGP-specific actions";
-
- leaf set-route-origin {
- type oc-bgp-types:bgp-origin-attr-type;
- description "set the origin attribute to the specified
- value";
- }
-
- leaf set-local-pref {
- type uint32;
- description "set the local pref attribute on the route
- update";
- }
-
- leaf set-next-hop {
- type bgp-next-hop-type;
- description "set the next-hop attribute in the route update";
- }
-
- leaf set-med {
- type bgp-set-med-type;
- description "set the med metric attribute in the route
- update";
- }
- }
-
- grouping bgp-actions-state {
- description
- "Operational state data for BGP-specific actions";
- }
-
- grouping bgp-actions-top {
- description
- "Top-level grouping for BGP-specific actions";
-
- container bgp-actions {
- description
- "Top-level container for BGP-specific actions";
-
- container config {
- description
- "Configuration data for BGP-specific actions";
-
- uses bgp-actions-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for BGP-specific actions";
-
- uses bgp-actions-config;
- uses bgp-actions-state;
- }
- uses as-path-prepend-top;
- uses set-community-action-top;
- uses set-ext-community-action-top;
- }
- }
-
- augment "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:statements/oc-rpol:statement/" +
- "oc-rpol:conditions" {
- description
- "BGP policy conditions added to routing policy module";
-
- uses bgp-conditions-top;
- }
-
- augment "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:statements/oc-rpol:statement/" +
- "oc-rpol:actions" {
- description "BGP policy actions added to routing policy
- module";
-
- uses bgp-actions-top;
- }
-
- // rpc statements
-
- // notification statements
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp-types.yang b/src/plugins/yang/openconfig/openconfig-bgp-types.yang
deleted file mode 100644
index 0b57480..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp-types.yang
+++ /dev/null
@@ -1,604 +0,0 @@
-module openconfig-bgp-types {
- yang-version "1";
-
- namespace "http://openconfig.net/yang/bgp-types";
-
- prefix "oc-bgp-types";
-
- import openconfig-types { prefix "oc-types"; }
- import openconfig-inet-types { prefix "oc-inet"; }
- import openconfig-extensions { prefix "oc-ext"; }
-
- // Include definitions of BGP error notifications
- include openconfig-bgp-errors;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module contains general data definitions for use in BGP
- policy. It can be imported by modules that make use of BGP
- attributes";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2018-03-20" {
- description
- "Added color extended community";
- reference "4.0.2";
- }
-
- revision "2017-07-30" {
- description
- "Clarification of add-paths send-max leaf";
- reference "4.0.1";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
-
- identity BGP_CAPABILITY {
- description "Base identity for a BGP capability";
- }
-
- identity MPBGP {
- base BGP_CAPABILITY;
- description
- "Multi-protocol extensions to BGP";
- reference "RFC2858";
- }
-
- identity ROUTE_REFRESH {
- base BGP_CAPABILITY;
- description
- "The BGP route-refresh functionality";
- reference "RFC2918";
- }
-
- identity ASN32 {
- base BGP_CAPABILITY;
- description
- "4-byte (32-bit) AS number functionality";
- reference "RFC6793";
- }
-
- identity GRACEFUL_RESTART {
- base BGP_CAPABILITY;
- description
- "Graceful restart functionality";
- reference "RFC4724";
- }
-
- identity ADD_PATHS {
- base BGP_CAPABILITY;
- description
- "BGP add-paths";
- reference "draft-ietf-idr-add-paths";
- }
-
- identity AFI_SAFI_TYPE {
- description
- "Base identity type for AFI,SAFI tuples for BGP-4";
- reference "RFC4760 - multiprotocol extensions for BGP-4";
- }
-
- identity IPV4_UNICAST {
- base AFI_SAFI_TYPE;
- description
- "IPv4 unicast (AFI,SAFI = 1,1)";
- reference "RFC4760";
- }
-
- identity IPV6_UNICAST {
- base AFI_SAFI_TYPE;
- description
- "IPv6 unicast (AFI,SAFI = 2,1)";
- reference "RFC4760";
- }
-
- identity IPV4_LABELED_UNICAST {
- base AFI_SAFI_TYPE;
- description
- "Labeled IPv4 unicast (AFI,SAFI = 1,4)";
- reference "RFC3107";
- }
-
- identity IPV6_LABELED_UNICAST {
- base AFI_SAFI_TYPE;
- description
- "Labeled IPv6 unicast (AFI,SAFI = 2,4)";
- reference "RFC3107";
- }
-
- identity L3VPN_IPV4_UNICAST {
- base AFI_SAFI_TYPE;
- description
- "Unicast IPv4 MPLS L3VPN (AFI,SAFI = 1,128)";
- reference "RFC4364";
- }
-
- identity L3VPN_IPV6_UNICAST {
- base AFI_SAFI_TYPE;
- description
- "Unicast IPv6 MPLS L3VPN (AFI,SAFI = 2,128)";
- reference "RFC4659";
- }
-
- identity L3VPN_IPV4_MULTICAST {
- base AFI_SAFI_TYPE;
- description
- "Multicast IPv4 MPLS L3VPN (AFI,SAFI = 1,129)";
- reference "RFC6514";
- }
-
- identity L3VPN_IPV6_MULTICAST {
- base AFI_SAFI_TYPE;
- description
- "Multicast IPv6 MPLS L3VPN (AFI,SAFI = 2,129)";
- reference "RFC6514";
- }
-
- identity L2VPN_VPLS {
- base AFI_SAFI_TYPE;
- description
- "BGP-signalled VPLS (AFI,SAFI = 25,65)";
- reference "RFC4761";
- }
-
- identity L2VPN_EVPN {
- base AFI_SAFI_TYPE;
- description
- "BGP MPLS Based Ethernet VPN (AFI,SAFI = 25,70)";
- }
-
- identity SRTE_POLICY_IPV4 {
- base AFI_SAFI_TYPE;
- description
- "Segment Routing Traffic Engineering (SRTE) Policy
- for IPv4 (AFI,SAFI = 1,73)";
- }
-
- identity SRTE_POLICY_IPV6 {
- base AFI_SAFI_TYPE;
- description
- "Segment Routing Traffic Engineering (SRTE) Policy
- for IPv6 (AFI,SAFI = 2,73)";
- }
-
- identity BGP_WELL_KNOWN_STD_COMMUNITY {
- description
- "Reserved communities within the standard community space
- defined by RFC1997. These communities must fall within the
- range 0x00000000 to 0xFFFFFFFF";
- reference "RFC1997";
- }
-
- identity NO_EXPORT {
- base BGP_WELL_KNOWN_STD_COMMUNITY;
- description
- "Do not export NLRI received carrying this community outside
- the bounds of this autonomous system, or this confederation if
- the local autonomous system is a confederation member AS. This
- community has a value of 0xFFFFFF01.";
- reference "RFC1997";
- }
-
- identity NO_ADVERTISE {
- base BGP_WELL_KNOWN_STD_COMMUNITY;
- description
- "All NLRI received carrying this community must not be
- advertised to other BGP peers. This community has a value of
- 0xFFFFFF02.";
- reference "RFC1997";
- }
-
- identity NO_EXPORT_SUBCONFED {
- base BGP_WELL_KNOWN_STD_COMMUNITY;
- description
- "All NLRI received carrying this community must not be
- advertised to external BGP peers - including over confederation
- sub-AS boundaries. This community has a value of 0xFFFFFF03.";
- reference "RFC1997";
- }
-
- identity NOPEER {
- base BGP_WELL_KNOWN_STD_COMMUNITY;
- description
- "An autonomous system receiving NLRI tagged with this community
- is advised not to readvertise the NLRI to external bi-lateral
- peer autonomous systems. An AS may also filter received NLRI
- from bilateral peer sessions when they are tagged with this
- community value";
- reference "RFC3765";
- }
-
- typedef bgp-session-direction {
- type enumeration {
- enum INBOUND {
- description
- "Refers to all NLRI received from the BGP peer";
- }
- enum OUTBOUND {
- description
- "Refers to all NLRI advertised to the BGP peer";
- }
- }
- description
- "Type to describe the direction of NLRI transmission";
- }
-
- typedef bgp-well-known-community-type {
- type identityref {
- base BGP_WELL_KNOWN_STD_COMMUNITY;
- }
- description
- "Type definition for well-known IETF community attribute
- values";
- reference
- "IANA Border Gateway Protocol (BGP) Well Known Communities";
- }
-
-
- typedef bgp-std-community-type {
- // TODO: further refine restrictions and allowed patterns
- // 4-octet value:
- // <as number> 2 octets
- // <community value> 2 octets
- type union {
- type uint32 {
- // per RFC 1997, 0x00000000 - 0x0000FFFF and 0xFFFF0000 -
- // 0xFFFFFFFF are reserved
- }
- type string {
- pattern '^(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9]):' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$';
- }
- }
- description
- "Type definition for standard commmunity attributes represented as
- a integer value, or a string of the form N:M where N and M are
- integers between 0 and 65535.";
- reference "RFC 1997 - BGP Communities Attribute";
- }
-
- typedef bgp-ext-community-type {
- type union {
- type string {
- // Type 1: 2-octet global and 4-octet local
- // (AS number) (Integer)
- pattern '^(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9]):' +
- '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' +
- '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' +
- '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' +
- '[1-9][0-9]{1,8}|[0-9])$';
- }
- type string {
- // Type 2: 4-octet global and 2-octet local
- // (ipv4-address) (integer)
- pattern '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' +
- '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' +
- '2[0-4][0-9]|25[0-5]):' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$';
- }
- type string {
- // RFC5668: 4-octet global and 2-octet local
- // (AS number) (integer)
- pattern '^(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' +
- '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' +
- '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' +
- '[1-9][0-9]{1,8}|[0-9]):' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$';
- }
- type string {
- // route-target with Type 1
- // route-target:(ASN):(local-part)
- pattern '^route\-target:' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9]):' +
- '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' +
- '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' +
- '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' +
- '[1-9][0-9]{1,8}|[0-9])$';
- }
- type string {
- // route-target with Type 2
- // route-target:(IPv4):(local-part)
- pattern '^route\-target:' +
- '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' +
- '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' +
- '2[0-4][0-9]|25[0-5]):' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$';
- }
- type string {
- // 4-byte AS Type 1 route-target
- pattern '^route\-target:' +
- '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' +
- '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' +
- '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' +
- '[1-9][0-9]{1,8}|[0-9]):' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$';
- }
- type string {
- // route-origin with Type 1
- pattern '^route\-origin:' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9]):' +
- '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' +
- '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' +
- '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' +
- '[1-9][0-9]{1,8}|[0-9])$';
- }
- type string {
- // route-origin with Type 2
- pattern '^route\-origin:' +
- '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|' +
- '25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|' +
- '2[0-4][0-9]|25[0-5]):' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$';
- }
- type string {
- // 4-byte AS Type 1 route-origin
- pattern '^route\-origin:' +
- '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' +
- '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' +
- '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' +
- '[1-9][0-9]{1,8}|[0-9]):' +
- '(6553[0-5]|655[0-2][0-9]|654[0-9]{2}|65[0-4][0-9]{2}' +
- '|6[0-4][0-9]{3}|[1-5][0-9]{4}|[1-9][0-9]{1,3}|[0-9])$';
- }
- type string {
- // Extended Color Community
- pattern '^color:' +
- '[0-1]{2}:' +
- '(429496729[0-5]|42949672[0-8][0-9]|4294967[0-1][0-9]{2}' +
- '|429496[0-6][0-9]{3}|42949[0-5][0-9]{4}|4294[0-8][0-9]{5}|' +
- '429[0-3][0-9]{6}|4[0-1][0-9]{7}|[1-3][0-9]{9}|' +
- '[1-9][0-9]{1,8}|[0-9])$';
- }
- }
- description
- "Type definition for extended community attributes. In the case that
- common communities are utilised, they are represented as a string
- of the form:
- - <2b AS>:<4b value> per RFC4360 section 3.1
- - <4b IPv4>:<2b value> per RFC4360 section 3.2
- - <4b AS>:<2b value> per RFC5668 section 2.
- - route-target:<2b AS>:<4b value> per RFC4360 section 4
- - route-target:<4b IPv4>:<2b value> per RFC4360 section 4
- - route-origin:<2b ASN>:<4b value> per RFC4360 section 5
- - route-origin:<4b IPv4>:<2b value> per RFC4360 section 5
- - color:<CO bits>:<4b value> per draft-ietf-idr-segment-routing-te-policy
- section 3";
- reference
- "RFC 4360 - BGP Extended Communities Attribute
- RFC 5668 - 4-Octet AS Specific BGP Extended Community
- draft-ietf-idr-segment-routing-te-policy";
- }
-
- typedef bgp-ext-community-recv-type {
- type union {
- type bgp-ext-community-type;
- type binary {
- length 8;
- }
- }
- description
- "A type definition utilised to define the extended community
- in a context where the system is receiving the extended
- community from an external source, such that the value may be
- unknown. In the case that the received extended community is
- unknown it is defined to be a 8-octet quantity formatted
- according to RFC4360:
-
- Type Field: 1 or 2 octets.
- Value Field: Remaining octets.
-
- The high-order octet of the type field is encoded such that
- bit 0 indicates whether the extended community type is IANA
- assigned; and bit 1 indicates whether the extended community
- is transitive. The remaining bits of the high-order type
- field must be interpreted to determine whether the low-order
- type field should be parsed, or whether the entire remainder
- of the extended community is a value.";
- reference
- "RFC 4360 - BGP Extended Communities Attribute
- RFC 5668 - 4-Octet AS Specific BGP Extended Community";
- }
-
- typedef bgp-community-regexp-type {
- // TODO: needs more work to decide what format these regexps can
- // take.
- type oc-types:std-regexp;
- description
- "Type definition for communities specified as regular
- expression patterns";
- }
-
- typedef bgp-origin-attr-type {
- type enumeration {
- enum IGP {
- description
- "Origin of the NLRI is internal";
- }
- enum EGP {
- description
- "Origin of the NLRI is EGP";
- }
- enum INCOMPLETE {
- description
- "Origin of the NLRI is neither IGP or EGP";
- }
- }
- description
- "Type definition for standard BGP origin attribute";
- reference "RFC 4271 - A Border Gateway Protocol 4 (BGP-4),
- Sec 4.3";
- }
-
- typedef peer-type {
- type enumeration {
- enum INTERNAL {
- description
- "Internal (iBGP) peer";
- }
- enum EXTERNAL {
- description
- "External (eBGP) peer";
- }
- }
- description
- "Labels a peer or peer group as explicitly internal or
- external";
- }
-
- identity REMOVE_PRIVATE_AS_OPTION {
- description
- "Base identity for options for removing private autonomous
- system numbers from the AS_PATH attribute";
- }
-
- identity PRIVATE_AS_REMOVE_ALL {
- base REMOVE_PRIVATE_AS_OPTION;
- description
- "Strip all private autonmous system numbers from the AS_PATH.
- This action is performed regardless of the other content of the
- AS_PATH attribute, and for all instances of private AS numbers
- within that attribute.";
- }
-
- identity PRIVATE_AS_REPLACE_ALL {
- base REMOVE_PRIVATE_AS_OPTION;
- description
- "Replace all instances of private autonomous system numbers in
- the AS_PATH with the local BGP speaker's autonomous system
- number. This action is performed regardless of the other
- content of the AS_PATH attribute, and for all instances of
- private AS number within that attribute.";
- }
-
- typedef remove-private-as-option {
- type identityref {
- base REMOVE_PRIVATE_AS_OPTION;
- }
- description
- "Set of options for configuring how private AS path numbers
- are removed from advertisements";
- }
-
- typedef rr-cluster-id-type {
- type union {
- type uint32;
- type oc-inet:ipv4-address;
- }
- description
- "Union type for route reflector cluster ids:
- option 1: 4-byte number
- option 2: IP address";
- }
-
- typedef community-type {
- type enumeration {
- enum STANDARD {
- description "Send only standard communities";
- }
- enum EXTENDED {
- description "Send only extended communities";
- }
- enum BOTH {
- description "Send both standard and extended communities";
- }
- enum NONE {
- description "Do not send any community attribute";
- }
- }
- description
- "type describing variations of community attributes:
- STANDARD: standard BGP community [rfc1997]
- EXTENDED: extended BGP community [rfc4360]
- BOTH: both standard and extended community";
- }
-
-
- typedef as-path-segment-type {
- type enumeration {
- enum AS_SEQ {
- description
- "Ordered set of autonomous systems that a route in
- the UPDATE message has traversed";
- }
- enum AS_SET {
- description
- "Unordered set of autonomous systems that a route in
- the UPDATE message has traversed";
- }
- enum AS_CONFED_SEQUENCE {
- description
- "Ordered set of Member Autonomous
- Systems in the local confederation that the UPDATE message
- has traversed";
- }
- enum AS_CONFED_SET {
- description
- "Unordered set of Member Autonomous Systems
- in the local confederation that the UPDATE message has
- traversed";
- }
- }
- description
- "Defines the types of BGP AS path segments.";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-bgp.yang b/src/plugins/yang/openconfig/openconfig-bgp.yang
deleted file mode 100644
index 9331e9f..0000000
--- a/src/plugins/yang/openconfig/openconfig-bgp.yang
+++ /dev/null
@@ -1,155 +0,0 @@
-module openconfig-bgp {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/bgp";
-
- prefix "oc-bgp";
-
- // import some basic inet types
- import openconfig-extensions { prefix oc-ext; }
-
- // Include the OpenConfig BGP submodules
- // Common: defines the groupings that are common across more than
- // one context (where contexts are neighbor, group, global)
- include openconfig-bgp-common;
- // Multiprotocol: defines the groupings that are common across more
- // than one context, and relate to Multiprotocol
- include openconfig-bgp-common-multiprotocol;
- // Structure: defines groupings that are shared but are solely used for
- // structural reasons.
- include openconfig-bgp-common-structure;
- // Include peer-group/neighbor/global - these define the groupings
- // that are specific to one context
- include openconfig-bgp-peer-group;
- include openconfig-bgp-neighbor;
- include openconfig-bgp-global;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module describes a YANG model for BGP protocol
- configuration.It is a limited subset of all of the configuration
- parameters available in the variety of vendor implementations,
- hence it is expected that it would be augmented with vendor-
- specific configuration data as needed. Additional modules or
- submodules to handle other aspects of BGP configuration,
- including policy, VRFs, VPNs, and additional address families
- are also expected.
-
- This model supports the following BGP configuration level
- hierarchy:
-
- BGP
- |
- +-> [ global BGP configuration ]
- +-> AFI / SAFI global
- +-> peer group
- +-> [ peer group config ]
- +-> AFI / SAFI [ per-AFI overrides ]
- +-> neighbor
- +-> [ neighbor config ]
- +-> [ optional pointer to peer-group ]
- +-> AFI / SAFI [ per-AFI overrides ]";
-
- oc-ext:openconfig-version "5.0.1";
-
- revision "2018-08-20" {
- description
- "Correct description of AFI-SAFI enabled leaf.";
- reference "5.0.1";
- }
-
- revision "2018-04-11" {
- description
- "Correct naming of BGP maximum prefix warning percentage leaf.";
- reference "5.0.0";
- }
-
- revision "2018-03-20" {
- description
- "Added SR-TE policy SAFI";
- reference "4.1.0";
- }
-
- revision "2017-07-30" {
- description
- "Clarification of add-paths send-max leaf";
- reference "4.0.1";
- }
-
- revision "2017-07-10" {
- description
- "Add error notifications; moved add-paths config; add AS
- prepend policy features; removed unneeded config leaves";
- reference "4.0.0";
- }
-
- revision "2017-02-02" {
- description
- "Bugfix to remove remaining global-level policy data";
- reference "3.0.1";
- }
-
- revision "2017-01-26" {
- description
- "Add dynamic neighbor support, migrate to OpenConfig types";
- reference "3.0.0";
- }
-
- revision "2016-06-21" {
- description
- "OpenConfig BGP refactor";
- reference "2.1.1";
- }
-
- revision "2016-06-06" {
- description
- "OpenConfig public release";
- reference "2.1.0";
- }
-
- revision "2016-03-31" {
- description
- "OpenConfig public release";
- reference "2.0.1";
- }
-
- grouping bgp-top {
- description
- "Top-level grouping for the BGP model data";
-
- container bgp {
- description
- "Top-level configuration and state for the BGP router";
-
- container global {
- description
- "Global configuration for the BGP router";
- uses bgp-global-base;
- }
-
- container neighbors {
- description
- "Configuration for BGP neighbors";
- uses bgp-neighbor-list;
- }
-
- container peer-groups {
- description
- "Configuration for BGP peer-groups";
- uses bgp-peer-group-list;
- }
- }
- }
-
- uses bgp-top;
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-catalog-types.yang b/src/plugins/yang/openconfig/openconfig-catalog-types.yang
deleted file mode 100644
index bdec31e..0000000
--- a/src/plugins/yang/openconfig/openconfig-catalog-types.yang
+++ /dev/null
@@ -1,242 +0,0 @@
-module openconfig-catalog-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/catalog-types";
-
- prefix "oc-cat-types";
-
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines types and identities used by the OpenConfig
- YANG module catalog model.";
-
- oc-ext:openconfig-version "0.2.1";
-
- revision "2017-05-01" {
- description
- "Fix to module dependency list";
- reference "0.2.1";
- }
-
- revision "2017-03-08" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
- revision "2016-02-15" {
- description
- "Initial OpenConfig public release";
- reference "0.1.0";
- }
-
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity CATALOG_MEMBER_TYPE {
- description
- "Base identity for elements in the catalog";
- }
-
- identity MODULE {
- base CATALOG_MEMBER_TYPE;
- description
- "Module elements in the catalog";
- }
-
- identity RELEASE_BUNDLE {
- base CATALOG_MEMBER_TYPE;
- description
- "Release bundle elements in the catalog";
- }
-
- identity FEATURE_BUNDLE {
- base CATALOG_MEMBER_TYPE;
- description
- "Feature bundle elements in the catalog";
- }
-
-
- identity IMPLEMENTATION_STATUS_TYPE {
- description
- "Indications of the status of a module's implementation on a
- device or server";
- }
-
- identity IN_PROGRESS {
- base IMPLEMENTATION_STATUS_TYPE;
- description
- "Implementation is in progress";
- }
-
- identity PLANNED {
- base IMPLEMENTATION_STATUS_TYPE;
- description
- "Implementation is planned";
- }
-
- identity COMPLETE {
- base IMPLEMENTATION_STATUS_TYPE;
- description
- "Implementation is complete and fully supports the model";
- }
-
- identity PARTIAL {
- base IMPLEMENTATION_STATUS_TYPE;
- description
- "Implementation is complete, but only supports the model
- partially";
- }
-
- identity MODULE_STATUS_TYPE {
- description
- "Indicates the deployment status of the module";
- }
-
- identity EXPERIMENTAL {
- base MODULE_STATUS_TYPE;
- description
- "Module should be considered experimental, not deployed in
- production settings";
- }
-
- identity PRODUCTION {
- base MODULE_STATUS_TYPE;
- description
- "Module is suitable for use in production, or has been
- deployed in production";
- }
-
- identity MODULE_CATEGORY_BASE {
- description
- "Base identity for the module category. It is expected that
- publishing organizations will define additional derived
- identities to describe their categorization scheme.";
- }
-
- identity MODULE_SUBCATEGORY_BASE {
- description
- "Base identity for the module subcategory. It is expected that
- publishing organizations will define additional derived
- identities to describe their categorization scheme.";
- }
-
- identity ORGANIZATION_TYPE {
- description
- "Publishing organization type for the set of modules";
- }
-
- identity STANDARDS {
- base ORGANIZATION_TYPE;
- description
- "Standards development organization (SDO) publisher type";
- }
-
- identity INDUSTRY {
- base ORGANIZATION_TYPE;
- description
- "Industry forum or other industry group";
- }
-
- identity COMMERCIAL {
- base ORGANIZATION_TYPE;
- description
- "Commercial entity, company, etc.";
- }
-
- identity INDIVIDUAL {
- base ORGANIZATION_TYPE;
- description
- "For modules published by an individual";
- }
-
- identity IETF_MODEL_LAYER {
- base MODULE_CATEGORY_BASE;
- description
- "Describes layering of models based on their abstraction
- level as defined by IETF model classification proposals";
- reference
- "IETF draft-ietf-netmod-yang-model-classification";
- }
-
- identity IETF_MODEL_TYPE {
- base MODULE_SUBCATEGORY_BASE;
- description
- "IETF proposed classification dimension of YANG model types as
- standard YANG models, vendor-specific, or user-specific YANG
- models and extensions";
- reference
- "IETF draft-ietf-netmod-yang-model-classification";
- }
-
- identity IETF_NETWORK_SERVICE {
- base IETF_MODEL_LAYER;
- description
- "Service-layer model as defined by IETF classification
- proposal";
- }
-
- identity IETF_NETWORK_ELEMENT {
- base IETF_MODEL_LAYER;
- description
- "Network element-layer model as defined by IETF classification
- proposal";
- }
-
- identity IETF_TYPE_STANDARD {
- base IETF_MODEL_TYPE;
- description
- "Models published by standards-defining organizations (SDOs)";
- }
-
- identity IETF_TYPE_VENDOR {
- base IETF_MODEL_TYPE;
- description
- "Developed by organizations (e.g., vendors) with the intent
- to support a specific set of implementations under control of
- that organization";
- }
-
- identity IETF_TYPE_USER {
- base IETF_MODEL_TYPE;
- description
- "Developed by organizations that operate YANG-based
- infrastructure including devices and orchestrators.
- The intent of these models is to express the specific needs
- for a certain implementation, above and beyond what is provided
- by vendors";
- }
-
- typedef module-version-type {
- type string;
- description
- "This type defines acceptable formats for the version of a
- module. The version may be a semantic version, or a YANG
- revision statement date, and may include wildcards when
- included in a bundle compatibility list, e.g.:
-
- semver format: <major>.<minor>.<patch>
- examples: 0.1.0, 2.1.0, 1.1.*, 2.*.*
-
- revision format: YYYY-MM-DD
- example: 2016-11-31";
- }
-
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-channel-monitor.yang b/src/plugins/yang/openconfig/openconfig-channel-monitor.yang
deleted file mode 100644
index c898677..0000000
--- a/src/plugins/yang/openconfig/openconfig-channel-monitor.yang
+++ /dev/null
@@ -1,330 +0,0 @@
-module openconfig-channel-monitor {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/channel-monitor";
-
- prefix "oc-chan-monitor";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-types { prefix oc-types; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-platform { prefix oc-platform; }
- import openconfig-transport-types { prefix oc-opt-types; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This model describes operational state data for an optical
- channel monitor (OCM) for optical transport line system
- elements such as wavelength routers (ROADMs) and amplifiers.";
-
- oc-ext:openconfig-version "0.3.1";
-
- revision "2017-09-08" {
- description
- "Correct bug with OSC interfaces";
- reference "0.3.1";
- }
-
- revision "2017-07-08" {
- description
- "Support multiple OCMs, add refs to hw ports, ";
- reference "0.3.0";
- }
-
- revision "2017-03-28" {
- description
- "Added min/max/avg stats, status for media channels, OCM, APS";
- reference "0.2.0";
- }
-
- revision "2016-09-14" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
-
-
- // grouping statements
-
- grouping media-channel-port-config {
- description
- "Configuration data for a media channel source/dest port";
-
- leaf port-name {
- type oc-if:base-interface-ref;
- description
- "Reference to the corresponding node interface";
- }
- }
-
- grouping media-channel-port-state {
- description
- "Operational state data for a media channel source/dest port";
- }
-
- grouping media-channel-source-port-top {
- description
- "Top-level grouping for source of the media channel";
-
- container source {
- description
- "Top-level container for media channel source";
-
- container config {
- description
- "Configuration data for the media channel source";
-
- uses media-channel-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the media channel source";
-
- uses media-channel-port-config;
- uses media-channel-port-state;
- }
- }
- }
-
- grouping media-channel-dest-port-top {
- description
- "Top-level grouping for destination of the media channel";
-
- container dest {
- description
- "Top-level container for media channel destination";
-
- container config {
- description
- "Configuration data for the media channel destination";
-
- uses media-channel-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the media channel destination";
-
- uses media-channel-port-config;
- uses media-channel-port-state;
- }
- }
- }
-
- grouping media-channel-psd-state {
- description
- "Operational state data for the media channel PSD";
-
- leaf lower-frequency {
- type oc-opt-types:frequency-type;
- description
- "Lower frequency of the specified PSD";
- }
-
- leaf upper-frequency {
- type oc-opt-types:frequency-type;
- description
- "Upper frequency of the specified PSD";
- }
-
- leaf psd {
- type oc-types:ieeefloat32;
- units "nW/MHz";
- description
- "Power spectral density expressed in nanowatts per
- megahertz, nW/MHz. These units allow the value to often
- be greater than 1.0. It also avoids dealing with zero values
- for 0dBm. For example, a 40GHz wide channel
- with 0dBm power would be:
- 0dBm = 1mW = 10^6nW
- 40GHz = 40,000MHz
- 0dBm/40GHz = 10^6nW/40,000MHz = 1000/40 = 25";
- }
- }
-
-
- grouping media-channel-psd-top {
- description
- "Top-level grouping ";
-
- container channels {
- description
- "Enclosing container for the list of values describing
- the power spectral density distribution";
-
- list channel {
- key "lower-frequency upper-frequency";
- config false;
- description
- "List of tuples describing the PSD distribution";
-
- leaf lower-frequency {
- type leafref {
- path "../state/lower-frequency";
- }
- description
- "Reference to the list key";
- }
-
- leaf upper-frequency {
- type leafref {
- path "../state/upper-frequency";
- }
- description
- "Reference to the list key";
- }
-
-
- container state {
-
- config false;
-
- description
- "Operational state data for PSD";
-
- uses media-channel-psd-state;
- }
- }
- }
- }
-
- grouping media-channel-config {
- description
- "Configuration data for media channel definitions";
-
- leaf index {
- type uint32;
- description
- "Identifier for the defined media channel";
- }
-
- leaf lower-frequency {
- type oc-opt-types:frequency-type;
- description
- "The lower frequency for the spectrum defined by this media
- channel";
- }
-
- leaf upper-frequency {
- type oc-opt-types:frequency-type;
- description
- "The upper frequency for the spectrum defined by this media
- channel";
- }
-
- }
-
- grouping channel-monitor-config {
- description
- "Configuration data for the optical channel monitor";
-
- leaf name {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to system-supplied name of the port on the
- optical channel monitor (OCM). If this port is embedded
- in another card (i.e. an amplifier card) the device
- should still define a port representing the OCM even if
- it is internal and not physically present on the
- faceplate of the card";
- }
-
- leaf monitor-port {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to system-supplied name of the port that the
- channel monitor is physically connected to. This port
- will be of type MONITOR. This port is a tap off of the
- monitored-port and would be in the same card as the
- monitored port. If this port is embedded in another card
- (i.e. an amplifier card) the device should still define
- a port representing the monitor port if it is internal
- and not physically present on the faceplate of the card";
- }
- }
-
- grouping channel-monitor-state {
- description
- "Operational state data ";
- }
-
- grouping channel-monitor-top {
- description
- "Top-level grouping ";
-
- container channel-monitors {
- description
- "Top-level container for optical channel monitors";
-
- list channel-monitor {
- key "name";
- description
- "List of channel monitors, keyed by channel monitor name.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "References the optical channel monitor name";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses channel-monitor-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses channel-monitor-config;
- uses channel-monitor-state;
- }
-
- uses media-channel-psd-top;
- }
- }
- }
-
- // data definition statements
-
- uses channel-monitor-top;
-
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-if-ethernet-ext.yang b/src/plugins/yang/openconfig/openconfig-if-ethernet-ext.yang
deleted file mode 100644
index 9329dcd..0000000
--- a/src/plugins/yang/openconfig/openconfig-if-ethernet-ext.yang
+++ /dev/null
@@ -1,106 +0,0 @@
-module openconfig-if-ethernet-ext {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/interfaces/ethernet-ext";
-
- prefix "oc-eth-ext";
-
- // import some basic types
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-if-ethernet { prefix oc-eth; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module adds extensions to the base ethernet configuration
- and operational state model to support additional use cases.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-07-10" {
- description
- "Initial version of Ethernet extensions module to add frame
- size distribution stats";
- reference "0.1.0";
- }
-
- grouping ethernet-in-frames-size-dist {
- description
- "Grouping for defining the size distribution of the frames
- received";
-
- container in-distribution {
- description
- "The size distribution of the received frames.";
-
- leaf in-frames-64-octets {
- type oc-yang:counter64;
- description
- "Number of packets (including bad packets) received that
- were 64 bytes in length (excluding framing bits but
- including FCS bytes).";
- }
-
- leaf in-frames-65-127-octets {
- type oc-yang:counter64;
- description
- "Number of good and bad packets received that were
- between 65 and 127 bytes in length (excluding framing bits
- but including FCS bytes).";
- }
-
- leaf in-frames-128-255-octets {
- type oc-yang:counter64;
- description
- "Number of good and bad packets received that were
- between 128 and 255 bytes in length inclusive
- (excluding framing bits but including FCS bytes).";
- }
-
- leaf in-frames-256-511-octets {
- type oc-yang:counter64;
- description
- "Number of good and bad packets received that were
- between 256 and 511 bytes in length inclusive
- (excluding framing bits but including FCS bytes).";
- }
-
- leaf in-frames-512-1023-octets {
- type oc-yang:counter64;
- description
- "Number of good and bad packets received that were
- between 512 and 1023 bytes in length inclusive
- (excluding framing bits but including FCS bytes).";
- }
-
- leaf in-frames-1024-1518-octets {
- type oc-yang:counter64;
- description
- "Number of good and bad packets received that were
- between 1024 and 1518 bytes in length inclusive
- (excluding framing bits but including FCS bytes).";
- }
- }
- }
-
- // augment statements
-
- augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" +
- "oc-eth:state/oc-eth:counters" {
- description
- "Adds size distribution to the ethernet counters";
-
- uses ethernet-in-frames-size-dist;
- }
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-if-ip-ext.yang b/src/plugins/yang/openconfig/openconfig-if-ip-ext.yang
deleted file mode 100644
index a5b720b..0000000
--- a/src/plugins/yang/openconfig/openconfig-if-ip-ext.yang
+++ /dev/null
@@ -1,169 +0,0 @@
-module openconfig-if-ip-ext {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/interfaces/ip-ext";
-
- prefix "oc-ip-ext";
-
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-if-ip { prefix oc-ip; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module adds extensions to the base IP configuration and
- operational state model to support additional use cases.";
-
- oc-ext:openconfig-version "2.3.0";
-
- revision "2018-01-05" {
- description
- "Add logical loopback to interface.";
- reference "2.3.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";
- }
-
-
- // grouping statements
-
- grouping ipv6-autoconf-config {
- description
- "Configuration data for IPv6 address autoconfiguration";
-
- leaf create-global-addresses {
- type boolean;
- default true;
- description
- "[adapted from IETF IP model RFC 7277]
-
- If enabled, the host creates global addresses as
- described in RFC 4862.";
- reference
- "RFC 4862: IPv6 Stateless Address Autoconfiguration
- Section 5.5";
- }
- leaf create-temporary-addresses {
- type boolean;
- default false;
- description
- "[adapted from IETF IP model RFC 7277]
-
- If enabled, the host creates temporary addresses as
- described in RFC 4941.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6";
- }
-
- leaf temporary-valid-lifetime {
- type uint32;
- units "seconds";
- default 604800;
- description
- "[adapted from IETF IP model RFC 7277]
-
- The time period during which the temporary address
- is valid.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6
- - TEMP_VALID_LIFETIME";
- }
-
- leaf temporary-preferred-lifetime {
- type uint32;
- units "seconds";
- default 86400;
- description
- "[adapted from IETF IP model RFC 7277]
-
- The time period during which the temporary address is
- preferred.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6
- - TEMP_PREFERRED_LIFETIME";
- }
- }
-
- grouping ipv6-autoconf-state {
- description
- "Operational state data for IPv6 address autoconfiguration";
-
- //TODO: placeholder for additional opstate for IPv6 autoconf
- }
-
- grouping ipv6-autoconf-top {
- description
- "Top-level grouping for IPv6 address autoconfiguration";
-
- container autoconf {
- description
- "Top-level container for IPv6 autoconf";
-
- container config {
- description
- "[adapted from IETF IP model RFC 7277]
-
- Parameters to control the autoconfiguration of IPv6
- addresses, as described in RFC 4862.";
- reference
- "RFC 4862: IPv6 Stateless Address Autoconfiguration";
-
- uses ipv6-autoconf-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses ipv6-autoconf-config;
- uses ipv6-autoconf-state;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
- "oc-if:subinterface/oc-ip:ipv6" {
- description
- "Adds address autoconfiguration to the base IP model";
-
- uses ipv6-autoconf-top;
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-if-poe.yang b/src/plugins/yang/openconfig/openconfig-if-poe.yang
deleted file mode 100644
index f3c3bf1..0000000
--- a/src/plugins/yang/openconfig/openconfig-if-poe.yang
+++ /dev/null
@@ -1,99 +0,0 @@
-module openconfig-if-poe {
-
- yang-version "1";
-
- namespace "http://openconfig.net/yang/poe";
-
- prefix "oc-poe";
-
- import openconfig-if-ethernet { prefix oc-eth; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-extensions { prefix oc-ext; }
-
- organization "OpenConfig working group";
-
- contact
- "Openconfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and state data for
- Power over Ethernet (PoE) based on the IEEE 802.3af
- standard.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2017-09-14" {
- description
- "Initial public revision";
- reference "0.1.0";
- }
-
- grouping poe-ethernet-config {
- description
- "PoE ethernet config grouping";
-
- leaf enabled {
- type boolean;
- default "true";
- description
- "Enable or disable PoE in the ethernet interface.";
- }
- }
-
- grouping poe-ethernet-state {
- description
- "PoE ethernet state grouping";
-
- leaf power-used {
- type decimal64 {
- fraction-digits 2;
- }
- units Watts;
- description
- "Power used by the ethernet interface in Watts.";
- }
-
- leaf power-class {
- type uint8;
- description
- "IEEE 802.3af Power class detected for this ethernet
- interface.";
- }
- }
-
- grouping poe-ethernet-top {
- description
- "Ethernet top level grouping";
-
- container poe {
- description
- "Top-level container for PoE configuration and state data";
-
- container config {
- description
- "Configuration data for PoE";
-
- uses poe-ethernet-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for PoE";
-
- uses poe-ethernet-config;
- uses poe-ethernet-state;
- }
- }
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet" {
- description
- "Adds PoE to the ethernet model.";
-
- uses poe-ethernet-top;
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-if-tunnel.yang b/src/plugins/yang/openconfig/openconfig-if-tunnel.yang
deleted file mode 100644
index 4efff64..0000000
--- a/src/plugins/yang/openconfig/openconfig-if-tunnel.yang
+++ /dev/null
@@ -1,109 +0,0 @@
-module openconfig-if-tunnel {
- yang-version "1";
-
- namespace "http://openconfig.net/yang/interfaces/tunnel";
-
- prefix "oc-tun";
-
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-if-ip { prefix oc-ip; }
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This model adds extensions to the OpenConfig interfaces
- model to configure tunnel interfaces on a network
- device.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-01-05" {
- description
- "Initial tunnel model";
- reference "0.1.0";
- }
-
- grouping tunnel-top {
- description
- "Top-level grouping for parameters related to
- a tunnel interface.";
-
- container tunnel {
- description
- "In the case that the interface is logical tunnel
- interface, the parameters for the tunnel are
- specified within this subtree. Tunnel interfaces
- have only a single logical subinterface associated
- with them.";
-
- container config {
- description
- "Configuration parameters associated with the
- tunnel interface";
- uses tunnel-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters associated with
- the tunnel interface.";
- uses tunnel-config;
- }
-
- uses oc-ip:ipv4-top;
- uses oc-ip:ipv6-top;
- }
- }
-
- grouping tunnel-config {
- description
- "Configuraton parameters relating to a tunnel
- interface.";
-
- leaf src {
- type oc-inet:ip-address;
- description
- "The source address that should be used for the
- tunnel.";
- }
-
- leaf dst {
- type oc-inet:ip-address;
- description
- "The destination address for the tunnel.";
- }
-
- leaf ttl {
- type uint8 {
- range "1..255";
- }
- description
- "The time-to-live (or hop limit) that should be utilised
- for the IP packets used for the tunnel transport.";
- }
-
- leaf gre-key {
- type uint32;
- description
- "The GRE key to be specified for the tunnel. The
- key is used to identify a traffic flow within
- a tunnel.";
- reference
- "RFC2890: Key and Sequence Number Extensions to GRE";
- }
- }
-
- augment "/oc-if:interfaces/oc-if:interface" {
- description
- "Augment to add tunnel configuration to interfaces";
- uses tunnel-top;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-igmp-types.yang b/src/plugins/yang/openconfig/openconfig-igmp-types.yang
deleted file mode 100644
index 5fe22e7..0000000
--- a/src/plugins/yang/openconfig/openconfig-igmp-types.yang
+++ /dev/null
@@ -1,53 +0,0 @@
-module openconfig-igmp-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/igmp/types";
-
- prefix "oc-igmp-types";
-
- // import some basic types
- import openconfig-extensions { prefix "oc-ext"; }
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines types related to the IGMP protocol model.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-02-19" {
- description
- "Initial revision.";
- reference "0.1.0";
- }
-
- // typedef statements
-
- typedef igmp-version {
- type uint8 {
- range 1..3;
- }
- description
- "IGMP Version.";
- reference "v1 = RFC1112, v2 = RFC2236, v3 = RFC3376";
- }
-
- typedef igmp-interval-type {
- type uint16 {
- range 1..1024;
- }
- units "seconds";
- description
- "Interval at which the router sends the IGMP query message toward
- the upstream neighbor.";
- reference "RFC3376 8.2 Page 40";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-igmp.yang b/src/plugins/yang/openconfig/openconfig-igmp.yang
deleted file mode 100644
index 4668ea1..0000000
--- a/src/plugins/yang/openconfig/openconfig-igmp.yang
+++ /dev/null
@@ -1,356 +0,0 @@
-module openconfig-igmp {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/igmp";
-
- prefix "oc-igmp";
-
- // import some basic types/interfaces
- import openconfig-igmp-types { prefix oc-igmp-types; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-acl { prefix "oc-acl"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-interfaces { prefix oc-if; }
- import ietf-inet-types { prefix "inet"; }
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "An OpenConfig model for Internet Group Management Protocol (IGMP).";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-02-19" {
- description
- "Initial revision.";
- reference "0.1.0";
- }
-
- grouping admin-config {
- description
- "Re-usable grouping to enable or disable a particular feature.";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "When set to true, the functionality within which this
- leaf is defined is enabled, when set to false it is
- explicitly disabled.";
- }
- }
-
- grouping igmp-interface-config {
- description
- "Configuration data for IGMP on each interface.";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Reference to an interface on which IGMP is enabled.";
- }
-
- uses admin-config;
-
- leaf version {
- type oc-igmp-types:igmp-version;
- description
- "IGMP Version.";
- }
-
- leaf query-interval {
- type oc-igmp-types:igmp-interval-type;
- description
- "Interval at which the router sends the IGMP membership
- queries.";
- }
-
- leaf filter-prefixes {
- type string;
- // TODO work out what this should be.
- // On Juniper it's a "policy" and on Cisco a sort of "class map"
- description
- "List used to filter joins.";
- }
- }
-
- grouping igmp-counters-per-version {
- description
- "Counters for each IGMP protocol version.";
-
- container state {
- config false;
- description
- "Counters for each IGMP protocol version.";
-
- leaf v1 {
- type uint32;
- description
- "IGMP v1.";
- }
- leaf v2 {
- type uint32;
- description
- "IGMP v2.";
- }
- leaf v3 {
- type uint32;
- description
- "IGMP v3.";
- }
- }
- }
-
- grouping igmp-interface-counters {
- description
- "State and session data for IGMP on each interface.";
-
-
- container counters {
- description
- "Counters avaiable on a per interface bases for IGMP.";
-
- container queries {
- description
- "IGMP membership queries.";
-
- container sent {
- description
- "Number of IGMP membership queries sent.";
- uses igmp-counters-per-version;
- }
-
- container received {
- description
- "Number of IGMP membership queries received.";
- uses igmp-counters-per-version;
- }
- }
-
- container reports {
- description
- "Number of IGMP membership reports received.";
- uses igmp-counters-per-version;
- }
- }
- }
-
- grouping igmp-snooping-state {
- description
- "IGMP membership snooping state.";
-
- leaf group {
- type inet:ipv4-address;
- description
- "Multicast address.";
- }
-
- leaf source {
- type inet:ipv4-address;
- description
- "Source address of multicast.";
- }
-
- leaf reporter {
- type inet:ipv4-address;
- description
- "Address of the last reporter.";
- }
- }
-
- grouping igmp-snooping-structural {
- description
- "IGMP membership information determined through snooping.";
-
- container membership-groups {
- description
- "List of IGMP Membership information.";
-
- list group {
- key "group";
- config false;
- description
- "Multicast group membership.";
-
- leaf group {
- type leafref {
- path "../state/group";
- }
- description
- "Multicast address.";
- }
-
- container state {
- config false;
- description
- "Multicast group membership.";
-
- uses igmp-snooping-state;
- }
- }
- }
- }
-
- grouping igmp-interface-state {
- description
- "IGMP interface state.";
-
- leaf query-expires {
- type oc-types:timeticks64;
- description
- "This timestamp indicates the time that the next query is sent.
- The value is the timestamp in seconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- }
- }
-
- grouping igmp-interface-top {
- description
- "Configuration and state data for IGMP on each interface.";
-
- container interfaces {
- description
- "The interfaces on which IGMP is configured.";
-
- list interface {
- key "interface-id";
- description
- "This container defines interface IGMP configuration and
- state information.";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "Reference to an interface on which IGMP is enabled.";
- }
-
- container config {
- description
- "IGMP interface configuration.";
-
- uses igmp-interface-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for IGMP
- interfaces.";
-
- uses igmp-interface-state;
- uses igmp-interface-config;
- }
-
- uses igmp-interface-counters;
- uses igmp-snooping-structural;
- uses oc-if:interface-ref;
- }
- }
- }
-
- grouping igmp-ssm-maps-config {
- description
- "A Source Specific Multicast (SSM) mapping. This allows
- IGMP v2 hosts to be able to join in SSM environments
- by translating IGMP v2 reports into IGMP v3 reports.
- The request in an IGMP v2 join is sent toward the source
- address found by matching the multicast address.";
-
- leaf source {
- type inet:ipv4-address;
- description
- "Multicast source address.";
- }
-
- leaf ssm-ranges {
- type leafref {
- path "/oc-acl:acl/oc-acl:acl-sets/oc-acl:acl-set/" +
- "oc-acl:config/oc-acl:name";
- }
- description
- "List of accepted source specific multicast (SSM) address
- ranges.";
- }
- }
-
- grouping igmp-global-config {
- description
- "This grouping defines global config options for IGMP.";
-
- }
-
- grouping igmp-global-top {
- description
- "Top level grouping for global IGMP configuration.";
-
- container ssm {
- description
- "Source specific multicast (SSM).";
-
- container mappings {
- description
- "A list of source specific multicast (SSM) mappings.";
-
- list mapping {
- key "source";
- description
- "A Source Specific Multicast (SSM) mapping. This allows
- IGMP v2 hosts to be able to join in SSM environments
- by translating IGMP v2 reports into IGMP v3 reports.
- The request in an IGMP v2 join is sent toward the source
- address found by matching the multicast address.";
-
- leaf source {
- type leafref {
- path "../config/source";
- }
- description
- "Multicast source address.";
- }
-
- container config {
- description
- "Configuration for SSM maps.";
- uses igmp-ssm-maps-config;
- }
- container state {
- config false;
- description
- "State for SSM maps.";
- uses igmp-ssm-maps-config;
- }
- }
- }
- }
- }
-
- grouping igmp-top {
- description
- "Top-level grouping for IGMP.";
-
- container igmp {
- description
- "Top-level IGMP configuration and operational state.";
-
- container global {
- description
- "Global IGMP configuration and operational state.";
- uses igmp-global-top;
- }
-
- uses igmp-interface-top;
- }
- }
-
- // data definition statements
-}
diff --git a/src/plugins/yang/openconfig/openconfig-isis-lsdb-types.yang b/src/plugins/yang/openconfig/openconfig-isis-lsdb-types.yang
deleted file mode 100644
index 5e53fd4..0000000
--- a/src/plugins/yang/openconfig/openconfig-isis-lsdb-types.yang
+++ /dev/null
@@ -1,686 +0,0 @@
-module openconfig-isis-lsdb-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/isis-lsdb-types";
-
- prefix "oc-isis-lsdb-types";
-
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module contains general LSDB type definitions for use in
- ISIS YANG model. ";
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2018-05-14" {
- description
- "Update LSDB model to correct Extended IS reach TLV
- bug. This change is backwards incompatible due to
- adding an additional level of hierarchy to support
- multiple instances of the TLV.";
- reference "0.4.0";
- }
-
- revision "2017-07-26" {
- description
- "Update LSDB and fix bugs.";
- reference "0.3.2";
- }
-
- revision "2017-05-15" {
- description
- "Refactor LSDB.";
- reference "0.3.0";
- }
-
- revision "2017-01-13" {
- description
- "Remove top-level /isis container";
- reference "0.2.1";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to IS-IS module";
- reference "0.2.0";
- }
-
- revision "2016-10-18" {
- description
- "Initial revision of IS-IS models.";
- reference "0.1.0";
- }
-
- identity ISIS_TLV_TYPE {
- description
- "Base identity for an ISIS TLV type.";
- }
-
- identity ISIS_SUBTLV_TYPE {
- description
- "Base identity for an ISIS SUB-TLV type.";
- }
-
- identity IS_REACHABILITY_SUBTLVS_TYPE {
- base "ISIS_SUBTLV_TYPE";
- description
- "Base identity for an ISIS TLV 22, 23, 222, 223, 141 SUB-TLV
- type.";
- }
-
- identity IP_REACHABILITY_SUBTLVS_TYPE {
- base "ISIS_SUBTLV_TYPE";
- description
- "Base identity for an ISIS TLV 135, 235, 236, 237 SUB-TLV
- type.";
- }
-
- identity ROUTER_CAPABILITY_SUBTLVS_TYPE {
- base "ISIS_SUBTLV_TYPE";
- description
- "Base identity for an ISIS TLV 242 SUB-TLV type.";
- }
-
- identity AREA_ADDRESSES {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 1. Intermediate System to Intermediate System Intra-
- Domain Routeing Exchange Protocol for use in Conjunction with
- the Protocol for Providing the Connectionless-mode Network
- Service (ISO 8473), International Standard 10589: 2002, Second
- Edition, 2002.";
- reference
- "ISO 10589";
- }
-
- identity IIS_NEIGHBORS {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 2. Intermediate System to Intermediate System Intra-
- Domain Routeing Exchange Protocol for use in Conjunction with
- the Protocol for Providing the Connectionless-mode Network
- Service (ISO 8473), International Standard 10589: 2002, Second
- Edition, 2002.";
- reference
- "ISO 10589";
- }
-
- identity INSTANCE_ID {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 7. An Instance Identifier (IID) to uniquely
- identify an IS-IS instance. When the IID = 0, the list of
- supported ITIDs MUST NOT be present. An IID-TLV with IID = 0
- MUST NOT appear in an SNP or LSP. When the TLV appears (with a
- non-zero IID) in an SNP or LSP, exactly one ITID. MUST be
- present indicating the topology with which the PDU is
- associated. If no ITIDs or multiple ITIDs are present or the
- IID is zero, then the PDU MUST be ignored";
- reference
- "RFC6822: IS-IS Multi-Instance";
- }
-
- identity AUTHENTICATION {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 10.Intermediate System to Intermediate System Intra-
- Domain Routeing Exchange Protocol for use in Conjunction with
- the Protocol for Providing the Connectionless-mode Network
- Service (ISO 8473) International Standard 10589: 2002, Second
- Edition, 2002.";
- reference
- "ISO 10589";
- }
-
- identity PURGE_OI {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 13. If an IS generates a purge, it SHOULD include
- this TLV in the purge with its own system ID. If an IS
- receives a purge that does not include this TLV, then it SHOULD
- add this TLV with both its own system ID and the system ID of
- the IS from which it received the purge. This allows ISs
- receiving purges to log the system ID of the originator, or the
- upstream source of the purge.";
- reference
- "RFC6232: Purge Originator Identification TLV";
- }
-
- identity LSP_BUFFER_SIZE {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 14. The maximum MTU that the advertising system can
- receive, expressed in bytes.";
- reference
- "ISO 10589: LSP Buffer Size TLV";
- }
-
- identity EXTENDED_IS_REACHABILITY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 22. An extended IS reachability TLV that has a
- different data structure to TLV 2 that introduces the use of
- sub-TLV object-group.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering";
- }
-
- identity IS_NEIGHBOR_ATTRIBUTE {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 23. Identical in format to TLV 22 and included in
- Original LSPs or Extended LSPs. Regardless of the type of LSP
- in which the TLVs appear, the information pertains to the
- neighbor relationship between the Originating System and the IS
- identified in the TLV";
- reference
- "RFC5311: Simplified Extension of Link State PDU (LSP) Space
- for IS-IS";
- }
-
- identity ISIS_ALIAS_ID {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 24. IS-Alias TLV which extension-capable ISs to
- recognize the Originating System of an Extended LSP set. It
- identifies the Normal system-id of the Originating System";
- reference
- "RFC5311: Simplified Extension of Link State PDU (LSP) Space
- for IS-IS";
- }
-
- identity IPV4_INTERNAL_REACHABILITY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 128. TLV defines IP addresses within the routing
- domain reachable directly via one or more interfaces on this
- Intermediate system";
- reference
- "RFC1195: OSI ISIS for IP and Dual Environments. RFC5302:
- Domain-Wide Prefix Distribution with Two-Level IS-IS";
- }
-
- identity NLPID {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 129. TLV defines the set Network Layer Protocol
- Identifiers for Network Layer protocols that this Intermediate
- System is capable of relaying";
- reference
- "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and
- Dual Environments";
- }
-
- identity IPV4_EXTERNAL_REACHABILITY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 130. TLV defines IP addresses outside the routing
- domain reachable via interfaces on this Intermediate system.
- This is permitted to appear multiple times, and in an LSP with
- any LSP number. However, this field must not appear in
- pseudonode LSPs";
- reference "
- RFC1195: OSI ISIS for IP and Dual Environments. RFC5302:
- Domain-Wide Prefix Distribution with Two-Level IS-IS";
- }
-
- identity IPV4_INTERFACE_ADDRESSES {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 132. The IP address of one or more interfaces
- corresponding to the SNPAs enabled on this Intermediate system
- (i.e., one or more IP addresses of this router). This is
- permitted to appear multiple times, and in an LSP with any LSP
- number.";
- reference
- "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and Dual
- Environments";
- }
-
- identity IPV4_TE_ROUTER_ID {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 134. Traffic Engineering router ID TLV that contains
- the 4-octet router ID of the router originating the LSP";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering";
- }
-
- identity EXTENDED_IPV4_REACHABILITY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 135. Extended IP reachability TLV that provides for a
- 32-bit metric and adds one bit to indicate that a prefix has
- been redistributed _down_ in the hierarchy";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering";
- }
-
- identity DYNAMIC_NAME {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 137. The Dynamic hostname TLV is optional. This TLV
- may be present in any fragment of a non-pseudonode LSP. The
- value field identifies the symbolic name of the router
- originating the LSP. This symbolic name can be the FQDN for the
- router, it can be a subset of the FQDN, or it can be any string
- operators want to use for the router.";
- reference
- "RFC6233: IS-IS Registry Extension for Purges, RFC 5301: Dynamic
- Hostname Exchange Mechanism for IS-IS.";
- }
-
- identity IPV4_SRLG {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 138. IPv4 Shared Risk Link Group TLV";
- reference
- "RFC5307: IS-IS Extensions in Support of Generalized
- Multi-Protocol Label Switching (GMPLS)";
- }
-
- identity IPV6_SRLG {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 139. IPv6 Shared Risk Link Group";
- reference
- "RFC6119: IPv6 Traffic Engineering in IS-IS";
- }
-
- identity IPV6_TE_ROUTER_ID {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 140. The IPv6 TE Router ID TLV contains a 16-octet
- IPv6 address. A stable global IPv6 address MUST be used, so that
- the router ID provides a routable address, regardless of the
- state of a node's interfaces. If a router does not implement
- traffic engineering, it MAY include or omit the IPv6 TE Router
- ID TLV. If a router implements traffic engineering for IPv6, it
- MUST include this TLV in its LSP. This TLV MUST NOT be included
- more than once in an LSP.";
- reference
- "RFC6119: IPv6 Traffic Engineering in IS-IS.";
- }
-
- identity MT_ISN {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 222. TLV is aligned with extended IS reachability TLV
- type 22 beside an additional two bytes in front at the beginning
- of the TLV that. indicate MT membership.";
- reference
- "RFC5120: M-ISIS: Multi Topology (MT) Routing in Intermediate
- System to Intermediate Systems (IS-ISs)";
- }
-
- identity MT_IS_NEIGHBOR_ATTRIBUTE {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 223. Is is identical in format to TLV 222. In the
- event that there is a need to advertise in Extended LSPs such
- information associated with neighbors of the Originating System,
- it is necessary to define new TLVs to carry the sub-TLV
- information.";
- reference
- "RFC5311: Simplified Extension of Link State PDU (LSP) Space for
- IS-IS";
- }
-
- identity MULTI_TOPOLOGY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 229. This MT TLV can advertise up to 127 MTs. It is
- announced in IIHs and LSP fragment 0, and can occur multiple
- times. The resulting MT set SHOULD be the union of all the MT
- TLV occurrences in the packet. Any other IS-IS PDU occurrence of
- this TLV MUST be ignored. Lack of MT TLV in hellos and fragment
- zero LSPs MUST be interpreted as participation of the
- advertising interface or router in MT ID #0 only. If a router
- advertises MT TLV, it has to advertise all the MTs it
- participates in, specifically including topology ID #0 also.";
- reference
- "RFC5120: M-ISIS: Multi Topology (MT) Routing in Intermediate
- System to Intermediate Systems (IS-ISs)";
- }
-
- identity IPV6_INTERFACE_ADDRESSES {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 232. IPv6 Interface Address TLV that maps directly to
- the IP Interface Address TLV in [RFC1195]. We necessarily modify
- the contents to be 0-15 16-octet IPv6 interface addresses
- instead of 0-63 4-octet IPv4 interface addresses";
- reference "RFC5308: Routing IPv6 with IS-IS.";
- }
-
- identity MT_IPV4_REACHABILITY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 235. TLV is aligned with extended IP reachability TLV
- type 135 beside an additional two bytes in front to indicate MT
- membership";
- reference
- "RFC5120: M-ISIS: Multi Topology (MT) Routing in Intermediate
- System to Intermediate Systems (IS-ISs)";
- }
-
- identity IPV6_REACHABILITY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 236. The IPv6 Reachability TLV describes network
- reachability through the specification of a routing prefix,
- metric information, a bit to indicate if the prefix is being
- advertised down from a higher level, a bit to indicate if the
- prefix is being distributed from another routing protocol, and
- OPTIONALLY the existence of Sub-TLVs to allow for later
- extension.";
- reference
- "RFC5308: Routing IPv6 with IS-IS";
- }
-
- identity MT_IPV6_REACHABILITY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 237. TLV is aligned with IPv6 Reachability TLV type
- 236 beside an additional two bytes in front to indicate MT
- membership.";
- reference
- "RFC5120: M-ISIS: Multi Topology (MT) Routing in Intermediate
- System to Intermediate Systems (IS-ISs).";
- }
-
- identity ROUTER_CAPABILITY {
- base "ISIS_TLV_TYPE";
- description
- "ISIS TLV 242. IS-IS TLV named CAPABILITY, formed of multiple
- sub-TLVs, which allows a router to announce its capabilities
- within an IS-IS level or the entire routing domain.";
- reference
- "RFC4971: Intermediate System to Intermediate System (IS-IS)
- Extensions for Advertising Router Information.";
- }
-
- //sub-TLVs for TLVs 22, 23, 141, 222, 223
-
- identity IS_REACHABILITY_ADMIN_GROUP {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 3. Administrative group(color).";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering";
- }
-
- identity IS_REACHABILITY_LINK_ID {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 4. Link Local/Remote Identifiers.";
- reference
- "RFC5307: IS-IS Extensions in Support of Generalized
- Multi-Protocol Label Switching (GMPLS)";
- }
-
- identity IS_REACHABILITY_IPV4_INTERFACE_ADDRESS {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 6. IPv4 Interface Address.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.";
- }
-
- identity IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 8. IPv4 Neighbor Address.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.";
- }
-
- identity IS_REACHABILITY_MAX_LINK_BANDWIDTH {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 9. Maximum Link Bandwidth.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.";
- }
-
- identity IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 10. Maximum Reservable Bandwidth.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.";
- }
-
- identity IS_REACHABILITY_UNRESERVED_BANDWIDTH {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 11. Unreserved bandwidth.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.";
- }
-
- identity IS_REACHABILITY_IPV6_INTERFACE_ADDRESS {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 12. IPv6 Interface Address.";
- reference
- "RFC6119: IPv6 Traffic Engineering in IS-IS.";
- }
-
- identity IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 13. IPv6 Neighbor Address.";
- reference
- "RFC6119: IPv6 Traffic Engineering in IS-IS.";
- }
-
- identity IS_REACHABILITY_EXTENDED_ADMIN_GROUP {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 14. Extended Administrative Group.";
- reference
- "RFC7308: Extended Administrative Groups in MPLS Traffic
- Engineering (MPLS-TE).";
- }
-
- identity IS_REACHABILITY_TE_DEFAULT_METRIC {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 18. TE Default Metric.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.";
- }
-
- identity IS_REACHABILITY_LINK_ATTRIBUTES {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 19. Link Attributes.";
- reference
- "RFC5209: Definition of an IS-IS Link Attribute Sub-TLV.";
- }
-
- identity IS_REACHABILITY_LINK_PROTECTION_TYPE {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 20. Link Protection Type.";
- reference
- "RFC5307: IS-IS Extensions in Support of Generalized
- Multi-Protocol Label Switching (GMPLS)";
- }
-
- identity IS_REACHABILITY_BANDWIDTH_CONSTRAINTS {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 22. Bandwidth Constraints.";
- reference
- "RFC4124: Protocol Extensions for Support of Diffserv-aware MPLS
- Traffic Engineering.";
- }
-
- identity IS_REACHABILITY_UNCONSTRAINED_LSP {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 23. Unconstrained LSP.";
- reference
- "RFC5330: A Link-Type sub-TLV to Convey the Number of Traffic
- Engineering Label Switched Paths Signalled with Zero
- Reserved Bandwidth across a Link.";
- }
-
- identity IS_REACHABILITY_ADJ_SID {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 31. Adjacency Segment Identifier.";
- reference
- "draft-ietf-isis-segment-routing-extensions.";
- }
-
- identity IS_REACHABILITY_ADJ_LAN_SID {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 32. Adjacency LAN Segment Identifier.";
- reference
- "draft-ietf-isis-segment-routing-extensions.";
- }
-
- identity IS_REACHABILITY_LINK_DELAY {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 33. Unidirectional Link Delay.";
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
- }
-
- identity IS_REACHABILITY_MIN_MAX_LINK_DELAY {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 34. Min/Max Unidirectional Link Delay.";
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
- }
-
- identity IS_REACHABILITY_LINK_DELAY_VARIATION {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 35. Unidirectional Link Delay Variation.";
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
- }
-
- identity IS_REACHABILITY_LINK_LOSS {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 36. Unidirectional Link Loss Delay.";
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
- }
-
- identity IS_REACHABILITY_RESIDUAL_BANDWIDTH {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 37. Unidirectional Residual Bandwidth.";
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
- }
-
- identity IS_REACHABILITY_AVAILABLE_BANDWIDTH {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 38. Unidirectional Available Bandwidth.";
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
- }
-
- identity IS_REACHABILITY_UTILIZED_BANDWIDTH {
- base "IS_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 39. Unidirectional Utilized Bandwidth.";
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric Extensions.";
- }
-
- //sub-TLVs for TLVs 135, 235, 236, 237
- identity IP_REACHABILITY_TAG {
- base "IP_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 1. 32-bit Administrative Tag.";
- reference
- "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
- Reachability.";
- }
-
- identity IP_REACHABILITY_TAG64 {
- base "IP_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 2. 64-bit Administrative Tag.";
- reference
- "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
- Reachability.";
- }
-
- identity IP_REACHABILITY_PREFIX_SID {
- base "IP_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 3. Prefix Segment Identifier.";
- reference
- "draft-ietf-isis-segment-routing-extension.";
- }
-
- identity IP_REACHABILITY_PREFIX_FLAGS {
- base "IP_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 4. Prefix Attribute Flags.";
- reference
- "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
- Reachability.";
- }
-
- identity IP_REACHABILITY_IPV4_ROUTER_ID {
- base "IP_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 11. IPv4 Source Router ID.";
- reference
- "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
- Reachability.";
- }
-
- identity IP_REACHABILITY_IPV6_ROUTER_ID {
- base "IP_REACHABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 12. IPv6 Source Router ID.";
- reference
- "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and IPv6
- Reachability.";
- }
-
-
- //sub-TLVs for TLVs 242
-
- identity ROUTER_CAPABILITY_SR_CAPABILITY {
- base "ROUTER_CAPABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 2. Segment Routing Capability.";
- reference
- "draft-ietf-isis-segment-routing-extensions.";
- }
-
- identity ROUTER_CAPABILITY_SR_ALGORITHM {
- base "ROUTER_CAPABILITY_SUBTLVS_TYPE";
- description
- "sub-TLV 19. Segment Routing Algorithm.";
- reference
- "draft-ietf-isis-segment-routing-extensions.";
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-isis-lsp.yang b/src/plugins/yang/openconfig/openconfig-isis-lsp.yang
deleted file mode 100644
index 02f8b79..0000000
--- a/src/plugins/yang/openconfig/openconfig-isis-lsp.yang
+++ /dev/null
@@ -1,3592 +0,0 @@
-submodule openconfig-isis-lsp {
-
- belongs-to openconfig-isis {
- prefix oc-isis;
- }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-inet-types { prefix "inet"; }
- import openconfig-isis-types { prefix "oc-isis-types"; }
- import openconfig-isis-lsdb-types { prefix "oc-isis-lsdb-types"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-mpls-types { prefix "oc-mpls-types"; }
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net ";
-
- description
- "This sub-module describes a YANG model for the IS-IS Link State
- Database (LSDB).
-
- Portions of this code were derived from IETF RFCs relating to the
- IS-IS protocol.
- Please reproduce this note if possible.
- IETF code is subject to the following copyright and license:
- Copyright (c) IETF Trust and the persons identified as authors of
- the code.
- All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, is permitted pursuant to, and subject to the license
- terms contained in, the Simplified BSD License set forth in
- Section 4.c of the IETF Trust's Legal Provisions Relating
- to IETF Documents (http://trustee.ietf.org/license-info).";
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2018-05-14" {
- description
- "Update LSDB model to correct Extended IS reach TLV
- bug. This change is backwards incompatible due to
- adding an additional level of hierarchy to support
- multiple instances of the TLV.";
- reference "0.4.0";
- }
-
- revision "2017-07-26" {
- description
- "Update LSDB and fix bugs.";
- reference "0.3.2";
- }
-
- revision "2017-05-15" {
- description
- "Refactor LSDB.";
- reference "0.3.0";
- }
-
- revision "2017-01-13" {
- description
- "Remove top-level /isis container";
- reference "0.2.1";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to IS-IS module";
- reference "0.2.0";
- }
-
- revision "2016-10-18" {
- description
- "Initial revision of IS-IS models.";
- reference "0.1.0";
- }
-
- typedef isis-metric-flags {
- type enumeration {
- enum INTERNAL {
- description
- "When this flag is not set, internal metrics are in use.";
- }
- enum UNSUPPORTED {
- description
- "When this flag (referred to as the S-bit) is set, then
- the metric is unsupported.";
- }
- }
- description
- "Type definition for flags used in IS-IS metrics";
- }
-
- grouping isis-lsdb-link-characteristics-a-bit {
- description
- "Definition of the A bit, as used in IS-IS link delay TLVs.";
-
- leaf a-bit {
- type boolean;
- description
- "The A bit is set when the measured value of this parameter
- exceeds its configured maximum threshold. The A bit is cleared
- when the measured value falls below its configured reuse
- threshold.";
- }
- }
-
- grouping isis-lsdb-tlv-nlpid-state {
- description
- "NLP ID parameters for IS-IS.";
-
- leaf-list nlpid {
- type enumeration {
- enum IPV4 {
- description "IPv4 Address family.";
- }
- enum IPV6 {
- description "IPv6 Address family.";
- }
- }
- description
- "Protocol supported. IPv4 is defined as (0xcc) and IPv6 -
- (0x8e)";
- reference
- "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and
- Dual Environments. TLV 129. ";
- }
- }
-
- grouping isis-lsdb-subtlv-type-state {
- description
- "Per-subTLV type operational state parameters for ISIS.";
-
- leaf type {
- type identityref {
- base oc-isis-lsdb-types:ISIS_SUBTLV_TYPE;
- }
- description
- "The type of subTLV being described. The type of subTLV is
- expressed as a canonical name.";
- }
- }
-
- grouping isis-lsdb-tlv-type-state {
- description
- "Per-subTLV type operational state parameters for ISIS.";
-
- leaf type {
- type identityref {
- base oc-isis-lsdb-types:ISIS_TLV_TYPE;
- }
- description
- "The type of TLV being described. The type of TLV is
- expressed as a canonical name.";
- }
- }
-
- grouping is-reachability-neighbor-state {
- description
- "This grouping defines is-reachability neighbor.";
-
- container subtlvs {
- description
- "This container describes IS Neighbor sub-TLVs.";
-
- list subtlv {
- key "type";
-
- description
- "List of subTLV types in the LSDB for the specified TLV.";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to the sub-TLV type.";
- }
-
- container state {
- description
- "State parameters of IS neighbor state";
-
- uses isis-lsdb-subtlv-type-state;
- }
-
- container admin-group {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_ADMIN_GROUP'" {
- description
- "Only include the administrative group container when
- the sub-TLV is type 3";
- }
- description
- "This container defines sub-TLV 3.";
-
- container state {
- description
- "State parameters of sub-TLV 3.";
-
- leaf-list admin-group {
- type uint32;
- description
- "The administrative group sub-TLV contains a 4-octet
- bit mask assigned by the network administrator. Each
- set bit corresponds to one administrative group
- assigned to the interface. By convention, the least
- significant bit is referred to as group 0, and the
- most significant bit is referred to as group 31.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.
- sub-TLV 3: TLV 22,23,141,222, 223.";
- }
- }
- }
-
- container link-id {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_ID'" {
- description
- "Only include the link identifier container when the
- sub-TLV is type 4";
- }
- description
- "This container defines sub-TLV 4.";
-
- container state {
- description
- "State parameters of sub-TLV 4.";
-
- leaf local {
- type uint32;
- description
- "The value field of this sub-TLV contains 4 octets of
- Link Local Identifier followed by 4 octets of Link
- Remote Identifier.";
- reference
- "RFC5307: IS-IS Extensions in Support of Generalized
- Multi-Protocol Label Switching (GMPLS). sub-TLV 3: TLV
- 22,23,141,222, 223.";
- }
-
- leaf remote {
- type uint32;
- description
- "If the Link Remote Identifier is unknown, it is set
- to 0.";
- reference
- "RFC5307: IS-IS Extensions in Support of Generalized
- Multi-Protocol Label Switching (GMPLS). sub-TLV 3: TLV
- 22,23,141,222, 223.";
- }
- }
- }
-
- container ipv4-interface-address {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_IPV4_INTERFACE_ADDRESS'" {
- description
- "Only include the IPv4 interface address group container
- when the sub-TLV is type 6";
- }
- description
- "This container defines sub-TLV 6.";
-
- container state {
- description
- "State parameters of sub-TLV 6.";
-
- leaf-list address {
- type inet:ipv4-address;
- description
- "A 4-octet IPv4 address for the interface described by
- the (main) TLV. This sub-TLV can occur multiple
- times.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.
- sub-TLV 6: TLV 22,23,41,222,223.";
- }
- }
- }
-
- container ipv4-neighbor-address {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_IPV4_NEIGHBOR_ADDRESS'" {
- description
- "Only include the IPv4 neighbor address container when
- the sub-TLV is type 8.";
- }
- description
- "This container defines sub-TLV 8.";
-
- container state {
- description
- "State parameters of sub-TLV 8.";
-
- leaf-list address {
- type inet:ipv4-address;
- description
- "A single IPv4 address for a neighboring router on
- this link. This sub-TLV can occur multiple times.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.
- sub-TLV 8: TLV 22,23, 141,222,223.";
- }
- }
- }
-
- container max-link-bandwidth {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_MAX_LINK_BANDWIDTH'" {
- description
- "Only include the maximum link bandwidth container when
- the sub-TLV is type 9.";
- }
- description
- "This container defines sub-TLV 9.";
-
- container state {
- description
- "State parameters of sub-TLV 9.";
-
- leaf bandwidth {
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The maximum bandwidth that can be used on this link
- in this direction (from the system originating the LSP
- to its neighbors). It is encoded in 32 bits in IEEE
- floating point format. The units are bytes (not
- bits!) per second.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.
- sub-TLV 9: TLV 22,23,141,222,223.";
- }
- }
- }
-
- container max-reservable-link-bandwidth {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_MAX_RESERVABLE_BANDWIDTH'" {
- description
- "Only include the maximum reservable link bandwidth
- container when the sub-TLV type is 10.";
- }
- description
- "This container defines sub-TLV 10.";
-
- container state {
- description
- "State parameters of sub-TLV 10.";
-
- leaf bandwidth {
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The maximum amount of bandwidth that can be reserved
- in this direction on this link. Note that for
- oversubscription purposes, this can be greater than
- the bandwidth of the link. It is encoded in 32 bits
- in IEEE floating point format. The units are bytes
- (not bits!) per second.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.
- Sub-TLV 10: TLV 22,23,141,222,223.";
- }
- }
- }
-
- container unreserved-bandwidth {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_UNRESERVED_BANDWIDTH'" {
- description
- "Only include the unreserved bandwidth container when
- the sub-TLV type is 11.";
- }
- description
- "This container defines unreserved-bandwidth. The units
- are bytes per second.";
-
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering. sub-
- TLV 11: TLV 22,23,141,222,223";
-
- list setup-priority {
- key "priority";
-
- leaf priority {
- type leafref {
- path "../state/priority";
- }
- description
- "Reference to the setup priority to which the
- unreserved bandwidth corresponds.";
- }
-
- description
- "Setup priority (0 through 7) for unreserved
- bandwidth.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 11.";
-
- leaf priority {
- type uint8 {
- range "0..7";
- }
- description
- "Setup priority level of 0 through 7 to be used by
- Unreserved Bandwidth sub-TLV 11.";
- }
-
- leaf bandwidth {
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The amount of bandwidth reservable in this
- direction on this link. Note that for
- oversubscription purposes, this can be greater than
- the bandwidth of the link. It contains eight 32-bit
- IEEE floating point numbers(one for each priority).
- The units are bytes (not bits!) per second. The
- values correspond to the bandwidth that can be
- reserved with a setup priority of 0 through 7,
- arranged in increasing order with priority 0
- occurring at the start of the sub-TLV, and priority
- 7 at the end of the sub-TLV.";
- }
- }
- }
- }
-
- container ipv6-interface-address {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_IPV6_INTERFACE_ADDRESS'" {
- description
- "Only include the IPv6 interface address when the
- sub-TLV type is 12.";
- }
- description
- "This container defines sub-TLV 12.";
-
- container state {
- description
- "State parameters of sub-TLV 12.";
-
- leaf-list address {
- type inet:ipv6-address;
- description
- "Contains a 16-octet IPv6 address for the interface
- described by the containing Extended IS Reachability
- TLV. This sub-TLV can occur multiple times.";
- reference
- "RFC6119: IPv6 Traffic Engineering in IS-IS. sub-TLV
- 12: TLV 22,23,141,222,223.";
- }
- }
- }
-
- container ipv6-neighbor-address {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_IPV6_NEIGHBOR_ADDRESS'" {
- description
- "Only include the IPv6 neighbor address when the
- sub-TLV type is 13.";
- }
- description
- "This container defines sub-TLV 13.";
-
- container state {
- description
- "State parameters of sub-TLV 13.";
-
- leaf-list address {
- type inet:ipv6-address;
- description
- "Contains a 16-octet IPv6 address for a neighboring
- router on the link described by the (main) TLV. This
- sub-TLV can occur multiple times.";
- reference
- "RFC6119: IPv6 Traffic Engineering in IS-IS. sub-TLV
- 13: ISIS TLV 22,23,141,222,223.";
- }
- }
- }
-
- container extended-admin-group {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_EXTENDED_ADMIN_GROUP'" {
- description
- "Only include the extended admin group when the
- sub-TLV type is 14.";
- }
- description
- "This container defines sub-TLV 14.";
- container state {
- description
- "State parameters of sub-TLV 14.";
-
- leaf-list extended-admin-group {
- type uint32;
- description
- "The extended-admin-group sub-TLV is used in addition
- to the Administrative Groups when it is desirable to
- make more than 32 colors available for advertisement
- in a network.";
- reference
- "RFC7308: Extended Administrative Groups in MPLS
- Traffic Engineering (MPLS-TE). sub-TLV 14: TLV
- 22,23,141,222,223.";
- }
- }
- }
-
- container te-default-metric {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_TE_DEFAULT_METRIC'" {
- description
- "Only include the default traffic engineering metric
- container when the sub-TLV type is 18.";
- }
- description
- "This container defines sub-TLV 18.";
- container state {
- description
- "State parameters of sub-TLV 18.";
-
- leaf metric {
- type uint32;
- description
- "This metric is administratively assigned and can be
- used to present a differently weighted topology to
- traffic engineering SPF calculations. To preclude
- overflow within a traffic engineering SPF
- implementation, all metrics greater than or equal to
- MAX_PATH_METRIC SHALL be considered to have a metric
- of MAX_PATH_METRIC.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering.
- sub-TLV 18: TLV 22,23,141,222,223.";
- }
- }
- }
-
- container link-attributes {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_ATTRIBUTES'" {
- description
- "Only include the link attributes container when the
- sub-TLV is type 19.";
- }
- description
- "This container defines link-attributes.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 19.";
-
- leaf-list local-protection {
- type enumeration {
- enum LOCAL_PROTECTION {
- description
- "If set, local protection is available for the
- link.";
- }
- enum LINK_EXCLUDED {
- description
- "If set, the link is excluded from local
- protection.";
- }
- }
- description
- "Link local-protection attributes.";
-
- reference
- "RFC5029: Definition of an IS-IS Link Attribute Sub-
- TLV. TLV 22, sub-TLV 19.";
- }
- }
- }
-
- container link-protection-type {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_PROTECTION_TYPE'" {
- description
- "Only include the link protection type container when
- the sub-TLV type 20.";
- }
- description
- "ISIS LSDB parameters relating to the type of link
- protection offered.";
-
- container state {
- description
- "State parameters of sub-TLV 20.";
-
- leaf-list type {
- type enumeration {
- enum EXTRA_TRAFFIC {
- description
- "If set the link has extra traffic protection. If
- the link is of type Extra Traffic, it means that
- the link is protecting another link or links. The
- LSPs on a link of this type will be lost if any of
- the links it is protecting fail.";
- }
- enum UNPROTECTED {
- description
- "If set, the link is unprotected. If the link is
- of type Unprotected, it means that there is no
- other link protecting this link. The LSPs on a
- link of this type will be lost if the link
- fails.";
- }
- enum SHARED {
- description
- "If set, the link has shared protection. If the
- link is of type Shared, it means that there are
- one or more disjoint links of type Extra Traffic
- that are protecting this link. These Extra
- Traffic links are shared between one or more links
- of type Shared.";
- }
- enum ONE_ONE {
- description
- "If set, the link has dedicated 1:1 protection. If
- the link is of type Dedicated 1:1, it means that
- there is one dedicated disjoint link of type Extra
- Traffic that is protecting this link.";
- }
- enum PLUS_ONE {
- description
- "If set, the link has dedicated 1+1 protection. If
- the link is of type Dedicated 1+1, it means that a
- dedicated disjoint link is protecting this link.
- However, the protecting link is not advertised in
- the link state database and is therefore not
- available for the routing of LSPs.";
- }
- enum ENHANCED {
- description
- "If set the link has enhanced protection. If the
- link is of type Enhanced, it means that a
- protection scheme that is more reliable than
- Dedicated 1+1, e.g., 4 fiber BLSR/MS-SPRING, is
- being used to protect this link.";
- }
- }
- description
- "Link protection capabilities.";
- reference
- "RFC5307: IS-IS Extensions in Support of Generalized
- Multi-Protocol Label Switching (GMPLS). sub-TLV 20:
- TLV 22,23,141,222,223.";
- }
- }
- }
-
- container bandwidth-constraints {
- when "../state/type =" +
- "'oc-isis-lsdb-types:IS_REACHABILITY_BANDWIDTH_CONSTRAINTS'" {
- description
- "Only include the bandwidth constraints container when
- the sub-TLV is type 22.";
- }
- description
- "This container defines bandwidth-constraints. For DS-TE,
- the existing Maximum Reservable link bandwidth parameter
- is retained, but its semantics is generalized and
- interpreted as the aggregate bandwidth constraint across
- all Class-Types";
-
- reference
- "RFC4124: Protocol Extensions for Support of Diffserv-
- aware MPLS Traffic Engineering. sub-TLV 22: TLV 22, 23,
- 141, 222,223";
-
- list bandwidth-constraint {
- key "model-id";
-
- description
- "List of the Bandwidth Constraints sub-TLV instances
- present in the TLV.";
-
- leaf model-id {
- type leafref {
- path "../state/model-id";
- }
- description
- "Reference to the model ID associated with the
- instance of the Bandwidth Constraints sub-TLV.";
- }
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 22.";
-
- leaf model-id {
- type uint8;
- description
- "Identifier for the Bandwidth Constraints Model
- currently in use by the LSR initiating the IGP
- advertisement.";
- }
- }
-
- container constraints {
- description
- "Constraints contained within the Bandwidth
- Constraints sub-TLV";
-
- list constraint {
- key "constraint-id";
-
- description
- "List of the constraints within the Bandwidth
- Constraints sub-TLV. The BC0 level is indicated by
- the constraint-id leaf being set to 0, with BCN
- being indicated by constraint-id N.";
-
- leaf constraint-id {
- type leafref {
- path "../state/constraint-id";
- }
- description
- "Reference to the unique ID for the BCN level.";
- }
-
- container state {
- description
- "Operational state parameters of the BCN level";
-
- leaf constraint-id {
- type uint32;
- description
- "Unique reference for the bandwidth constraint level. BC0
- is indicated by this leaf being set to zero, with BCN
- represented by this leaf being set to N.";
- }
-
- leaf bandwidth {
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The bandwidth constraint, expressed as a 32-bit IEEE
- floating point number expressed in bytes per second.";
- }
- }
- }
- }
- }
- }
-
- container unconstrained-lsp {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_UNCONSTRAINED_LSP'" {
- description
- "Only include the unconstrained LSP container when the
- sub-TLV is type 23.";
- }
- description
- "This container defines sub-TLV 23.";
- container state {
- description
- "State parameters of sub-TLV 23.";
-
- uses isis-lsdb-subtlv-type-state;
-
- leaf count {
- type uint16;
- description
- "Unconstrained TE LSP count(TE Label Switched Paths
- (LSPs) signalled with zero bandwidth).";
- reference
- "RFC5330: A Link-Type sub-TLV to Convey the Number of
- Traffic Engineering Label Switched Paths Signalled
- with Zero Reserved Bandwidth across a Link. sub-TLV
- 23: TLV 22,23,141,222,223";
- }
- }
- }
-
- container adjacency-sids {
- when "../state/type = 'oc-isis-lsdb-types:IS_REACHABILITY_ADJ_SID'" {
- description
- "Only include the adjacency SIDs container when the
- sub-TLV type is 31";
- }
-
- description
- "This container defines segment routing adjacency SIDs.";
-
- list adjacency-sid {
- key "value";
-
- description
- "Adjacency Segment-IDs List. An IGP-Adjacency Segment is
- an IGP segment attached to a unidirectional adjacency or
- a set of unidirectional adjacencies. By default, an IGP-
- Adjacency Segment is local to the node which advertises
- it.";
-
- leaf value {
- type leafref {
- path "../state/value";
- }
- description
- "Reference to the value of the Adjacency-SID.";
- }
-
- container state {
- description
- "State parameters of Adjacency-SID.";
-
- leaf value {
- type uint32;
- description
- "Adjacency-SID value.";
- }
-
- leaf-list flags {
- type enumeration {
- enum ADDRESS_FAMILY {
- description
- "Address-family flag. When unset, the Adj-SID
- refers to an adjacency with outgoing IPv4
- encapsulation. If set then the Adj-SID refers to
- an adjacency with outgoing IPv6 encapsulation.";
- }
- enum BACKUP {
- description
- "Backup flag. When set, the Adj-SID refers to an
- adjacency being protected (e.g.: using IPFRR or
- MPLS-FRR).";
- }
- enum VALUE {
- description
- "Value flag. When set, the SID carries a value
- (instead of an index). By default the flag is
- SET.";
- }
- enum LOCAL {
- description
- "Local flag. When set, the value/index carried
- by the SID has local significance. By default
- the flag is SET.";
- }
- enum SET {
- description
- "Set flag. When set, the S-Flag indicates that
- the Adj-SID refers to a set of adjacencies.";
- }
- }
- description
- "Flags associated with Adj-Segment-ID.";
- }
-
- leaf weight {
- type uint8;
- description
- "Value that represents the weight of the Adj-SID for
- the purpose of load balancing.";
- }
- }
- }
-
- reference
- "draft-ietf-isis-segment-routing-extensions. sub-TLV 31:
- TLV 22, 222, 223, 141. ";
- }
-
- container lan-adjacency-sids {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_ADJ_LAN_SID'" {
- description
- "Only include the LAN adjacency SID container when
- the sub-TLV is type 32.";
- }
- description
- "This container defines segment routing LAN adjacency
- SIDs";
-
- list lan-adjacency-sid {
- key "value";
-
- description
- "Adjacency Segment-IDs List. An IGP-Adjacency Segment is
- an IGP segment attached to a unidirectional adjacency or
- a set of unidirectional adjacencies. By default, an IGP-
- Adjacency Segment is local to the node which advertises
- it.";
-
- leaf value {
- type leafref {
- path "../state/value";
- }
- description
- "Reference to the value of the LAN Adjacency-SID.";
- }
-
- container state {
- description
- "State parameters of LAN Adjacency-SID.";
-
- leaf value {
- type uint32;
- description
- "LAN Adjacency-SID value.";
- }
-
- leaf-list flags {
- type enumeration {
- enum ADDRESS_FAMILY {
- description
- "Address-family flag. When unset, the Adj-SID
- refers to an adjacency with outgoing IPv4
- encapsulation. If set then the Adj-SID refers to
- an adjacency with outgoing IPv6 encapsulation.";
- }
- enum BACKUP {
- description
- "Backup flag. When set, the Adj-SID refers to an
- adjacency being protected (e.g.: using IPFRR or
- MPLS-FRR).";
- }
- enum VALUE {
- description
- "Value flag. When set, the SID carries a value
- (instead of an index). By default the flag is
- SET.";
- }
- enum LOCAL {
- description
- "Local flag. When set, the value/index carried
- by the SID has local significance. By default
- the flag is SET.";
- }
- enum SET {
- description
- "Set flag. When set, the S-Flag indicates that
- the Adj-SID refers to a set of adjacencies.";
- }
- }
- description
- "Flags associated with LAN-Adj-Segment-ID.";
- }
-
- leaf weight {
- type uint8;
- description
- "Value that represents the weight of the Adj-SID
- for the purpose of load balancing.";
- }
-
- leaf neighbor-id {
- type oc-isis-types:system-id;
- description
- "System ID of the neighbor associated with the LAN-
- Adj-Segment-ID value.";
- }
- }
- }
-
- reference
- "draft-ietf-isis-segment-routing-extensions. sub-TLV 32:
- TLV 22, 222, 223, 141.";
- }
-
- container link-delay {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_DELAY'" {
- description
- "Include the link delay container only when the sub-TLV
- type is type 33.";
- }
- description
- "This container defines unidirectional link delay.";
-
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric
- Extensions. sub-TLV 33: TLV 22, 23, 141, 222, 223.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 33.";
-
- uses isis-lsdb-link-characteristics-a-bit;
-
- leaf delay {
- type uint32;
- units microseconds;
- description
- "Average link delay value (in microseconds) between
- two directly connected IS-IS neighbors over a
- configurable interval.";
- }
- }
- }
-
- container min-max-link-delay {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_MIN_MAX_LINK_DELAY'" {
- description
- "Only include the min/max link delay container when the
- sub-TLV is type 34.";
- }
- description
- "This container defines min/max link delay.";
-
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric
- Extensions. sub-TLV 34: TLV 22, 23, 141, 222, 223.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 34.";
-
- uses isis-lsdb-link-characteristics-a-bit;
-
- leaf min-delay {
- type uint32;
- units microseconds;
- description
- "Minimum measured link delay value(in microseconds)
- between two directly connected IS-IS neighbors over a
- configurable interval.";
- }
-
- leaf max-delay {
- type uint32;
- units microseconds;
- description
- "Maximum measured link delay value(in microseconds)
- between two directly connected IS-IS neighbors over a
- configurable interval.";
- }
- }
- }
-
- container link-delay-variation {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_DELAY_VARIATION'" {
- description
- "Only include the link delay variation container when
- the sub-TLV is type 35.";
- }
- description
- "This container defines unidirectional link delay
- variation.";
-
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric
- Extensions. sub-TLV 35: TLV 22,23,141,222,223.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 35.";
-
- leaf delay {
- type uint32;
- units microseconds;
- description
- "Average link delay between two directly connected IS-
- IS neighbors over a configurable interval.";
- }
- }
- }
-
- container link-loss {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_LINK_LOSS'" {
- description
- "Only include the link loss container when the sub-TLV
- is type 36.";
- }
- description
- "This container defines unidirectional link loss delay.";
-
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric
- Extensions. sub-TLV 36: TLV 22, 23, 141, 222, 223.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 36.";
-
- uses isis-lsdb-link-characteristics-a-bit;
-
- leaf link-loss {
- type uint32;
- description
- "Link packet loss as a percentage of the total traffic
- sent over a configurable interval. The basic unit is
- 0.000003%, where (2^24 - 2) is 50.331642%. This value
- is the highest packet-loss percentage that can be
- expressed (the assumption being that precision is more
- important on high-speed links than the ability to
- advertise loss rates greater than this, and that high-
- speed links with over 50% loss are unusable).
- Therefore, measured values that are larger than the
- field maximum SHOULD be encoded as the maximum
- value.";
- }
- }
- }
-
- container residual-bandwidth {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_RESIDUAL_BANDWIDTH'" {
- description
- "Only include the resdiual bandwidth container when the
- sub-TLV is type 37.";
- }
- description
- "This container defines unidirectional residual
- bandwidth.";
-
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric
- Extensions. sub-TLV 37: TLV 22, 23, 141, 222, 223.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 37.";
-
- leaf bandwidth {
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "Residual bandwidth on a link,forwarding adjacency
- [RFC4206], or bundled link in IEEE floating-point
- format with units of bytes per second. For a link or
- forwarding adjacency, residual bandwidth is defined to
- be the Maximum Bandwidth [RFC5305] minus the bandwidth
- currently allocated to RSVP-TE label switched paths.
- For a bundled link, residual bandwidth is defined to
- be the sum of the component link residual
- bandwidths.";
- }
- }
- }
-
- container available-bandwidth {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_AVAILABLE_BANDWIDTH'" {
- description
- "Only include the available bandwdith container when the
- sub-TLV is type 38.";
- }
- description
- "This container defines unidirectional lavailable
- bandwidth.";
-
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric
- Extensions. sub-TLV 38: TLV 22, 23, 141, 222, 223.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 38.";
-
- uses isis-lsdb-subtlv-type-state;
-
- leaf bandwidth {
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The available bandwidth on a link, forwarding
- adjacency, or bundled link in IEEE floating-point
- format with units of bytes per second. For a link or
- forwarding adjacency, available bandwidth is defined
- to be residual bandwidth minus the measured bandwidth
- used for the actual forwarding of non-RSVP-TE label
- switched path packets. For a bundled link, available
- bandwidth is defined to be the sum of the component
- link available bandwidths minus the measured bandwidth
- used for the actual forwarding of non-RSVP-TE label
- switched path packets. For a bundled link, available
- bandwidth is defined to be the sum of the component
- link available bandwidths.";
- }
- }
- }
-
- container utilized-bandwidth {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_REACHABILITY_UTILIZED_BANDWIDTH'" {
- description
- "Only include the utilized bandwidth container when the
- TLV is type 39.";
- }
- description
- "This container defines unidirectional utilized
- bandwidth.";
-
- reference
- "RFC7810: IS-IS Traffic Engineering (TE) Metric
- Extensions. sub-TLV 39: TLV 22, 23, 141, 222, 223.";
-
- container state {
- description
- "State parameters of IS Extended Reachability sub-TLV
- 39.";
-
- uses isis-lsdb-subtlv-type-state;
-
- leaf bandwidth {
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The bandwidth utilization on a link, forwarding
- adjacency, or bundled link in IEEE floating-point
- format with units of bytes per second. For a link or
- forwarding adjacency, bandwidth utilization represents
- the actual utilization of the link (i.e., as measured
- by the advertising node). For a bundled link,
- bandwidth utilization is defined to be the sum of the
- component link bandwidth utilizations.";
- }
- }
- }
- }
- }
-
- uses isis-lsdb-undefined-subtlv;
- }
-
- grouping isis-lsdb-undefined-tlv {
- description
- "Grouping for unknown TLVs in the IS-IS LSDB";
-
- container undefined-tlvs {
- description
- "Surrounding container for a list of unknown TLVs.";
-
- list undefined-tlv {
- key "type";
- description
- "List of TLVs that are not defined within the model, or are
- not recognised by the system.";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to the undefined TLV's type";
- }
-
- container state {
- description
- "State parameters of the undefined TLV.";
-
- uses undefined-tlv-state;
- }
- }
- }
- }
-
- grouping isis-lsdb-undefined-subtlv {
- description
- "Grouping for unknown Sub-TLVs in the IS-IS LSDB.";
-
- container undefined-subtlvs {
- description
- "This container describes undefined ISIS TLVs.";
-
- list undefined-subtlv {
- key "type";
-
- description
- "Sub-TLVs that are not defined in the model or not
- recognised by system.";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to the type of the undefined sub-TLV";
- }
-
- container state {
- description
- "State parameters of the undefined sub-TLV.";
-
- uses undefined-subtlv-state;
- }
- }
- }
- }
-
- grouping isis-lsdb-prefix-state {
- description
- "This grouping defines prefix reachability.";
-
- container subtlvs {
- description
- "This container describes IS prefix sub-TLVs.";
-
- list subtlv {
- key "type";
-
- description
- "List of subTLV types in the LSDB for the specified TLV.";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to the sub-TLV type";
- }
-
- container state {
- description
- "State parameters for a prefix.";
-
- uses isis-lsdb-subtlv-type-state;
- }
-
- container tag {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IP_REACHABILITY_TAG'" {
- description
- "Only include the tag container when the sub-TLV is type
- 1.";
- }
- description
- "This container defines sub-TLV 1.";
-
- container state {
- description
- "State parameters of sub-TLV 1.";
-
- leaf-list tag32 {
- type uint32;
- description
- "List of 32-bit tags associated with the prefix. Example
- uses of these tags include carrying BGP standard (or
- extended) communities and controlling redistribution
- between levels and areas, different routing protocols,
- or multiple instances of IS-IS running on the same
- router.";
- reference
- "RFC5130: A Policy Control Mechanism in IS-IS Using
- Administrative Tags. sub-TLV 1.";
- }
- }
- }
-
- container tag64 {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IP_REACHABILITY_TAG64'" {
- description
- "Only include the tag64 container when the sub-TLV is type
- 2.";
- }
- description
- "This container defines sub-TLV 2.";
-
- container state {
- description
- "State parameters of sub-TLV 2.";
-
- leaf-list tag64 {
- type uint64;
- description
- "List of 64-bit tags associated with the prefix. Example
- uses of these tags include carrying BGP standard (or
- extended) communities and controlling redistribution
- between levels and areas, different routing protocols,
- or multiple instances of IS-IS running on the same
- router.";
- reference
- "RFC5130: A Policy Control Mechanism in IS-IS Using
- Administrative Tags. sub-TLV 2.";
- }
- }
- }
-
- container flags {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IP_REACHABILITY_PREFIX_FLAGS'" {
- description
- "Only include the flags container when the sub-TLV is type
- 4.";
- }
- description
- "This container defines sub-TLV 4.";
-
- container state {
- description
- "State parameters of sub-TLV 4.";
-
- uses isis-lsdb-subtlv-type-state;
-
- leaf-list flags {
- type enumeration {
- enum EXTERNAL_FLAG {
- description
- "External prefix flag. Set if the prefix has been
- redistributed from another protocol. This includes
- the case where multiple virtual routers are
- supported and the source of the redistributed prefix
- is another IS-IS instance.";
- }
- enum READVERTISEMENT_FLAG {
- description
- "Readvertisement flag. Set when the prefix has been
- leaked from one level to another (upwards or
- downwards).";
- }
- enum NODE_FLAG {
- description
- "Node flag. Set when the prefix identifies the
- advertising router, i.e., the prefix is a host
- prefix advertising a globally reachable address
- typically associated with a loopback address.";
- }
- }
- description
- "Additional prefix reachability flags.";
-
- reference
- "RFC7794: IS-IS Prefix Attributes for Extended IPv4 and
- IPv6 Reachability. sub-TLV 4.";
- }
- }
- }
-
- container ipv4-source-router-id {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IP_REACHABILITY_IPV4_ROUTER_ID'" {
- description
- "Only include the IPv4 Source Router ID container when
- the sub-TLV is type 11.";
- }
- description
- "This container defines sub-TLV 11.";
-
- container state {
- description
- "State parameters of sub-TLV 11.";
-
- uses isis-lsdb-subtlv-type-state;
-
- leaf router-id {
- type inet:ipv4-address;
- description
- "IPv4 Source router ID address. In cases where the
- advertisement is an identifier for the advertising
- router (e.g., with the N-flag set in the Prefix
- Attribute Flags sub-TLV), it may be useful for other
- routers to know the source of the advertisement. When
- reachability advertisement is leaked from one level to
- another, Router ID advertised is always the Router ID
- of the IS-IS instance that originated the
- advertisement. This would be true even if the prefix
- had been learned from another protocol.";
- reference
- "RFC7794: IS-IS Prefix Attributes for Extended IPv4
- and IPv6 Reachability. sub-TLV 11";
- }
- }
- }
-
- container ipv6-source-router-id {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IP_REACHABILITY_IPV6_ROUTER_ID'" {
- description
- "Only include the IPv6 Source Router ID container when
- the sub-TLV is type 12.";
- }
- description
- "This container defines sub-TLV 12.";
-
- container state {
- description
- "State parameters of sub-TLV 12.";
-
- uses isis-lsdb-subtlv-type-state;
-
- leaf router-id {
- type inet:ipv6-address;
- description
- "IPv6 Source router ID address. In cases where the
- advertisement is an identifier for the advertising
- router (e.g., with the N-flag set in the Prefix
- Attribute Flags sub-TLV), it may be useful for other
- routers to know the source of the advertisement. When
- reachability advertisement is leaked from one level to
- another, Router ID advertised is always the Router ID
- of the IS-IS instance that originated the
- advertisement. This would be true even if the prefix
- had been learned from another protocol.";
- reference
- "RFC7794: IS-IS Prefix Attributes for Extended IPv4
- and IPv6 Reachability. sub-TLV 12.";
- }
- }
- }
-
- uses isis-lsdb-prefix-sid-state;
- }
- }
-
- uses isis-lsdb-undefined-subtlv;
- }
-
- grouping isis-lsdb-prefix-sid-state {
- description
- "This grouping defines ISIS Prefix SID.";
-
- container prefix-sids {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IP_REACHABILITY_PREFIX_SID'" {
- description
- "Only include the Prefix SID container when
- the sub-TLV is type 3.";
- }
- description
- "This container defines segment routing extensions for
- prefixes.";
-
- reference
- "draft-ietf-isis-segment-routing-extensions. sub-TLV 3: TLV
- 135, 235, 236, 237.";
-
- list prefix-sid {
- key "value";
-
- description
- "Prefix Segment-ID list. IGP-Prefix Segment is an IGP segment
- attached to an IGP prefix. An IGP-Prefix Segment is global
- (unless explicitly advertised otherwise) within the SR/IGP
- domain.";
-
- leaf value {
- type leafref {
- path "../state/value";
- }
- description
- "Reference to the value of the prefix SID.";
- }
-
- container state {
- description
- "State parameters for Prefix-SID.";
-
- leaf value {
- type uint32;
- description
- "IGP Prefix-SID value.";
- }
-
- leaf-list flags {
- type enumeration {
- enum READVERTISEMENT {
- description
- "Readvertisment flag. When set, the prefix to which
- this Prefix-SID is attached, has been propagated by
- the router either from another level or from
- redistribution.";
- }
- enum NODE {
- description
- "Node flag. When set, the Prefix-SID refers to the
- router identified by the prefix. Typically, the
- N-Flag is set on Prefix-SIDs attached to a router
- loopback address.";
- }
- enum NO_PHP {
- description
- "Penultimate-Hop-Popping flag. When set, then the
- penultimate hop MUST NOT pop the Prefix-SID before
- delivering the packet to the node that advertised
- the Prefix-SID.";
- }
- enum EXPLICIT_NULL {
- description
- "Explicit-Null flag. When set, any upstream neighbor
- of the Prefix-SID originator MUST replace the
- Prefix-SID with a Prefix-SID having an Explicit-NULL
- value (0 for IPv4 and 2 for IPv6) before forwarding
- the packet.";
- }
- enum VALUE {
- description
- "Value flag. When set, the Prefix-SID carries a
- value (instead of an index). By default the flag is
- UNSET.";
- }
- enum LOCAL {
- description
- "Local flag. When set, the value/index carried by
- the Prefix-SID has local significance. By default
- the flag is UNSET.";
- }
- }
- description
- "Flags associated with Prefix Segment-ID.";
- }
-
- leaf algorithm {
- type uint8;
- description
- "Prefix-SID algorithm to be used for path computation.";
- }
- }
- }
- }
- }
-
- grouping isis-lsdb-common-metric-specification {
- description
- "Common definitions of the metric in IS-IS.";
-
- container default-metric {
- description
- "This container defines ISIS Default Metric.";
-
- container state {
- description
- "State parameters for default-metric.";
-
- leaf flags {
- type enumeration {
- enum INTERNAL {
- description
- "When set to zero, indicates internal metrics.";
- }
- }
- description
- "ISIS Default-Metric Flags.";
- }
-
- leaf metric {
- type oc-isis-types:narrow-metric;
- description
- "ISIS default metric value. This is a metric understood by
- every Intermediate system in the domain. Each circuit
- shall have a positive integral value assigned for this
- metric. The value may be associated with any objective
- function of the circuit, but by convention is intended to
- measure the capacity of the circuit for handling traffic,
- for example, its throughput in bits-per-second. Higher
- values indicate a lower capacity.";
- }
- }
- }
-
- container delay-metric {
- description
- "This container defines the ISIS delay metric.";
-
- container state {
- description
- "State parameters of delay-metric.";
-
- leaf metric {
- type oc-isis-types:narrow-metric;
- description
- "ISIS delay metric value. This metric measures the transit
- delay of the associated circuit. It is an optional metric,
- which if assigned to a circuit shall have a positive
- integral value. Higher values indicate a longer transit
- delay.";
- }
-
- leaf-list flags {
- type isis-metric-flags;
- description
- "ISIS Delay Metric Flags.";
- }
- }
- }
-
- container expense-metric {
- description
- "This container defines the ISIS expense metric.";
-
- container state {
- description
- "State parameters of expense-metric.";
-
- leaf metric {
- type oc-isis-types:narrow-metric;
- description
- "ISIS expense metric value. This metric measures the
- monetary cost of utilising the associated circuit. It is
- an optional metric, which if assigned to a circuit shall
- have a positive integral value1). Higher values indicate a
- larger monetary expense.";
- }
-
- leaf-list flags {
- type isis-metric-flags;
- description
- "ISIS Expense Metric Flags.";
- }
- }
- }
-
- container error-metric {
- description
- "This container defines the ISIS error metric.";
-
- container state {
- description
- "State parameters of error-metric.";
-
- leaf metric {
- type oc-isis-types:narrow-metric;
- description
- "ISIS error metric value. This metric measures the
- residual error probability of the associated circuit. It
- is an optional metric, which if assigned to a circuit
- shall have a non-zero value. Higher values indicate a
- larger probability of undetected errors on the circuit.";
- }
-
- leaf-list flags {
- type isis-metric-flags;
- description
- "IS-IS error metric flags.";
- }
- }
- }
- }
-
- grouping isis-lsdb-neighbor {
- description
- "This grouping defines attributes of an ISIS standard
- neighbor.";
-
- container state {
- description
- "State parameters of IS standard neighbor.";
-
- leaf system-id {
- type oc-isis-types:system-id;
- description
- "System-ID of IS neighbor.";
- }
- }
-
- uses isis-lsdb-common-metric-specification;
-
- }
-
- grouping ipv4-prefix-attributes-state {
- description
- "This group defines attributes of an IPv4 standard prefix.";
-
- container state {
- description
- "State parameters of IPv4 standard prefix.";
-
- leaf up-down {
- type boolean;
- description
- "The up/down bit. Set if a prefix is advertised from a
- higher level to a lower level (e.g., level 2 to level 1),
- indicating that the prefix has traveled down the hierarchy.
- Prefixes that have the up/down bit set may only be
- advertised down the hierarchy, i.e., to lower levels. When a
- prefix is first injected into IS-IS, the bit is UNSET.";
- }
-
- leaf prefix {
- type inet:ipv4-prefix;
- description
- "IPv4 prefix contained within reachability TLVs.";
- }
- }
-
- uses isis-lsdb-common-metric-specification;
- }
-
- grouping isis-lsdb-common-mt-id {
- description
- "Common definition of the multi-topology ID";
-
- leaf mt-id {
- type uint16 {
- range "0..4095";
- }
- description
- "Multi-topology ID";
- }
- }
-
- grouping ipv4-prefix-extended-state {
- description
- "This grouping defines attributes of an IPv4 extended prefix.";
-
- container state {
- description
- "State parameters of an IPv4 extended prefix.";
- uses ipv4-prefix-extended-params-state;
- }
-
- uses isis-lsdb-prefix-state;
- }
-
- grouping ipv4-mt-prefix-extended-state {
- description
- "State parameters that relate to an IPv4 prefix in a
- multi-topology context.";
-
- container state {
- description
- "State parameters of an IPv4 extended prefix.";
- uses ipv4-prefix-extended-params-state;
- uses isis-lsdb-common-mt-id;
- }
-
- uses isis-lsdb-prefix-state;
- }
-
- grouping ipv4-prefix-extended-params-state {
- description
- "State parameters that relate to an IPv4 prefix";
-
- leaf up-down {
- type boolean;
- description
- "The up/down bit. Set if a prefix is advertised from a
- higher level to a lower level (e.g., level 2 to level 1),
- indicating that the prefix has traveled down the hierarchy.
- Prefixes that have the up/down bit set may only be
- advertised down the hierarchy, i.e., to lower levels. When a
- prefix is first injected into IS-IS, the bit is UNSET.";
- }
-
- leaf s-bit {
- type boolean;
- description
- "The Sub-TLV present bit. If UNSET, the octets of Sub-TLVs
- are not present. Otherwise, the bit is set and the octet
- following the prefix will contain the length of the Sub-TLV
- portion of the structure.";
- }
-
- leaf prefix {
- type inet:ipv4-prefix;
- description
- "IPv4 prefix contained within extended reachability TLVs.";
- }
-
- leaf metric {
- type oc-isis-types:wide-metric;
- description
- "ISIS metric value.";
- }
- }
-
- grouping ipv6-prefix-extended-state {
- description
- "State parameters relating to an IPv6 prefix.";
-
- container state {
- description
- "State parameters of IPv6 prefix attributes";
-
- uses ipv6-prefix-extended-params-state;
- }
-
- uses isis-lsdb-prefix-state;
- }
-
- grouping ipv6-mt-prefix-extended-state {
- description
- "State parameters relating to a multi-topology IPv6
- prefix.";
-
- container state {
- description
- "State parameters relating an IPv6 prefix attribute";
- uses ipv6-prefix-extended-params-state;
- uses isis-lsdb-common-mt-id;
- }
-
- uses isis-lsdb-prefix-state;
- }
-
- grouping ipv6-prefix-extended-params-state {
- description
- "Common parameters of an IPv6 extended prefix.";
-
- leaf up-down {
- type boolean;
- description
- "The up/down bit. Set if a prefix is advertised from a
- higher level to a lower level (e.g., level 2 to level 1),
- indicating that the prefix has traveled down the hierarchy.
- Prefixes that have the up/down bit set may only be
- advertised down the hierarchy, i.e., to lower levels. When a
- prefix is first injected into IS-IS, the bit is UNSET.";
- }
-
- leaf x-bit {
- type boolean;
- description
- "The external bit. Set when the prefix was distributed into
- IS-IS from another routing protocol.";
- }
-
- leaf s-bit {
- type boolean;
- description
- "The sub-tlv present bit. If UNSET, the octets of Sub-TLVs
- are not present. Otherwise, the bit is set and the octet
- following the prefix will contain the length of the Sub-TLV
- portion of the structure.";
- }
-
- leaf prefix {
- type inet:ipv6-prefix;
- description
- "IPv6 prefix contained within extended reachability TLVs.";
- }
-
- leaf metric {
- type oc-isis-types:wide-metric;
- description
- "ISIS metric value.";
- }
- }
-
- grouping isis-lsdb-common-extisreach-neighbors {
- description
- "Common structure for the Extended IS Reachability and IS
- Reachability Neighbour attributes.";
-
- container neighbors {
- description
- "This container describes IS neighbors.";
-
- list neighbor {
- key "system-id";
- description
- "This list describes ISIS extended neighbors and
- reachability attributes.";
-
- leaf system-id {
- type leafref {
- path "../state/system-id";
- }
- description
- "Reference to the neighboring system's system ID.";
- }
-
- container state {
- description
- "State parameters corresponding to the extended
- neighbour.";
-
- leaf system-id {
- type oc-isis-types:system-id;
- description
- "System-id of the neighbor.";
- }
- }
-
- container instances {
- description
- "This list contains all instances of an adjacency
- between the originating IS and the remote IS.
- Multiple instances are used where there are
- parallel adjacencies between two systems.";
-
- list instance {
- key "id";
-
- description
- "Instance of the TLV to the remote IS neighbor.";
-
- leaf id {
- type leafref {
- path "../state/id";
- }
- description
- "Reference to the unique identifier for
- the instance of the extended IS
- reachability sub-TLV.";
- }
-
- container state {
- description
- "State parameters of extended neighbor";
-
- leaf id {
- type uint64;
- description
- "Unique identifier for the instance of the
- TLV for the IS neighbor. The instance
- ID is not required to be consistent across
- across readvertisements of the LSP.";
- }
-
- leaf metric {
- type oc-isis-types:wide-metric;
- description
- "Metric value.";
- }
- }
- uses is-reachability-neighbor-state;
- }
- }
- }
- }
- }
-
- grouping isis-lsdb-mtis-common {
- description
- "Common grouping for structure used within the multi-topology IS
- neighbour and multi-topology IS neighbour attribute TLVs.";
-
- container neighbors {
- description
- "MT-IS neigbor attributes.";
-
- list neighbor {
- key "mt-id system-id";
- description
- "This container describes IS neighbors.";
-
- leaf mt-id {
- type leafref {
- path "../state/mt-id";
- }
- description
- "Reference to the topology that the neighbor is
- within.";
- }
-
- leaf system-id {
- type leafref {
- path "../state/system-id";
- }
- description
- "Reference to the System ID of the neighbor.";
- }
-
- container state {
- description
- "Operational state parameters related to the
- MT ISN TLV.";
-
- uses mt-isis-neighbor-state;
- }
-
- container instances {
- description
- "This list contains all instances of an adjacency
- between the originating and remote IS. Multiple
- instances are used to indicate where there are
- parallel adjacencies between systems.";
-
- list instance {
- key "id";
-
- description
- "Instance of TLV-222 between the originating
- and remote IS.";
-
- leaf id {
- type leafref {
- path "../state/id";
- }
- description
- "Reference to the unique identifier for the
- instance of the multi-topology IS neighbor
- TLV instance.";
- }
-
- uses mt-isis-neighbor-instance;
- }
- }
- }
- }
- }
-
- grouping mt-isis-neighbor-state {
- description
- "This grouping defines state parameters that are related to
- each neighbour entry for the MT ISN TLV.";
-
- leaf mt-id {
- type uint16 {
- range "0..4095";
- }
- description
- "Identifier of a topology being announced.";
- }
-
- leaf system-id {
- type oc-isis-types:system-id;
- description
- "System-id of the IS neighbor.";
- }
- }
-
- grouping mt-isis-neighbor-instance {
- description
- "This grouping defines list of ISIS multi-topology neighbors for
- extended ISIS LSP (multiple system IDs).";
-
- container state {
- description
- "State parameters of MT neighbor.";
-
- leaf metric {
- type oc-isis-types:wide-metric;
- description
- "ISIS metric value.";
- }
-
- leaf id {
- type uint64;
- description
- "Unique identifier for the TLV instance for the
- neighbor. The ID is not required to be consistent
- across readvertisements of the LSP.";
- }
- }
- uses is-reachability-neighbor-state;
- }
-
- grouping isis-lsdb-generic-tlv {
- description
- "Generic TLV encoding grouping.";
-
- leaf type {
- type uint8;
- description
- "TLV Type.";
- }
-
- leaf length {
- type uint8;
- description
- "TLV length.";
- }
-
- leaf value {
- type binary;
- description
- "TLV value.";
- }
- }
-
- grouping undefined-tlv-state {
- description
- "Generic grouping defining an unknown TLV.";
-
- uses isis-lsdb-generic-tlv;
- }
-
- grouping undefined-subtlv-state {
- description
- "Generic grouping defining an unknown sub-TLV.";
-
- uses isis-lsdb-generic-tlv;
- }
-
- grouping lsp-state {
- description
- "This grouping defines ISIS LSP state information.";
-
- leaf lsp-id {
- type leafref {
- path "../state/lsp-id";
- }
-
- description
- "A reference to the Link State PDU ID.";
- }
-
- container state {
- description
- "State parameters of Link State PDU.";
-
- leaf lsp-id {
- type oc-isis-types:lsp-id;
- description
- "LSP ID of the LSP.";
- }
-
- leaf maximum-area-addresses {
- type uint8;
- description
- "Number of area addresses permitted for this ISs area. 0
- indicates the IS only supports three area addresses (by
- default). Any number inclusive of 1 and 254 indicates the
- number of areas allowed.";
- }
-
- leaf version {
- type uint8;
- default 1;
- description
- "PDU version. This is set to 1.";
- }
-
- leaf version2 {
- type uint8;
- default 1;
- description
- "PDU version2. This is set to 1";
- }
-
- leaf id-length {
- type uint8;
- description
- "Length of the ID field of NSAP addresses and NETs used in
- this routing domain.";
- }
-
- leaf pdu-type {
- type enumeration {
- enum LEVEL_1 {
- description "This enum describes ISIS level 1 PDU.";
- }
- enum LEVEL_2 {
- description "This enum describes ISIS level 2 PDU.";
- }
- }
- description
- "Link State PDU type.";
- }
-
- leaf remaining-lifetime {
- type uint16;
- units "seconds";
- description
- "Remaining lifetime in seconds before the LSP expiration.";
- }
-
- leaf sequence-number {
- type uint32;
- description
- "Sequence number of the LSP.";
- }
-
- leaf checksum {
- type uint16;
- description
- "Checksum of the LSP.";
- }
-
- leaf pdu-length {
- type uint16;
- description
- "Total length of the LSP.";
- }
-
- leaf-list flags {
- type enumeration {
- enum PARTITION_REPAIR {
- description
- "When set, the originator supports partition
- repair.";
- }
- enum ATTACHED_ERROR {
- description
- "When set, the originator is attached to another
- area using the referred metric.";
- }
- enum ATTACHED_EXPENSE {
- description
- "When set, the originator is attached to another
- area using the referred metric.";
- }
- enum ATTACHED_DELAY {
- description
- "When set, the originator is attached to another
- area using the referred metric.";
- }
- enum ATTACHED_DEFAULT {
- description
- "When set, the originator is attached to another
- area using the referred metric.";
- }
- enum OVERLOAD {
- description
- "When set, the originator is overloaded, and must
- be avoided in path calculation.";
- }
- }
- description
- "LSP Type-Block flags.";
- }
-
- leaf is-type {
- type oc-isis-types:level-number;
- description
- "Type of neighboring system.";
- }
- }
-
- container tlvs {
- description
- "This container defines Link State PDU State TLVs.";
-
- list tlv {
- key "type";
-
- description
- "List of TLV types in the LSDB for the specified LSP.";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to the TLV's type.";
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the specified
- LSP";
-
- uses isis-lsdb-tlv-type-state;
- }
-
- container area-address {
- when "../state/type = 'oc-isis-lsdb-types:AREA_ADDRESSES'" {
- description
- "Include area address parameters only when the TLV type
- is TLV 1.";
- }
-
- description
- "This container defines TLV 1.";
-
- container state {
- description
- "State parameters of ISIS TLV 1.";
-
- leaf-list address {
- type oc-isis-types:area-address;
- description
- "Area adress(es) of the IS. Set of manual area
- addresses of this IS.";
- reference
- "ISO 10589 Intermediate System to Intermediate System
- Intra- Domain Routeing Exchange Protocol for use in
- Conjunction with the Protocol for Providing the
- Connectionless-mode Network Service (ISO 8473 )
- International Standard 10589: 2002, Second Edition,
- 2002. TLV 1.";
- }
- }
- }
-
- container lsp-buffer-size {
- when "../state/type = " +
- "'oc-isis-lsdb-types:LSP_BUFFER_SIZE'" {
- description
- "Include the LSP buffer size parameters only when the
- TLV type is TLV 14.";
- }
-
- description
- "This container defines TLV 14 - the LSP Buffer Size
- TLV.";
-
- container state {
- description
- "State parameters of TLV 14.";
-
- leaf size {
- type uint16;
- units "bytes";
- description
- "The maximum MTU that the advertising system can
- receive, expressed in bytes.";
- reference
- "ISO 10589 Intermediate System to Intermediate System
- Intra- Domain Routeing Exchange Protocol for use in
- Conjunction with the Protocol for Providing the
- Connectionless-mode Network Service (ISO 8473 )
- International Standard 10589: 2002, Second Edition,
- 2002. TLV 14.";
- }
- }
- }
-
- container nlpid {
- when "../state/type = 'oc-isis-lsdb-types:NLPID'" {
- description
- "Include NLPID specification only when the TLV type is
- TLV 129.";
- }
-
- description
- "This container defines TLV 129.";
-
- container state {
- description
- "State parameters of ISIS TLV 129.";
-
- uses isis-lsdb-tlv-nlpid-state;
- }
- }
-
- container hostname {
- when "../state/type = 'oc-isis-lsdb-types:DYNAMIC_NAME'" {
- description
- "Include the dynamic hostname TLV only when the TLV is
- type 137.";
- }
- description
- "This container defines TLV 137.";
-
- container state {
- description
- "State parameters of ISIS TLV 137.";
-
- leaf-list hostname {
- type string;
- description
- "Name of the node.";
-
- reference
- "RFC6233: IS-IS Registry Extension for Purges, RFC
- 5301: Dynamic Hostname Exchange Mechanism for IS-IS.
- TLV 137";
- }
- }
- }
-
- container ipv4-interface-addresses {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IPV4_INTERFACE_ADDRESSES'" {
- description
- "Include the IPv4 interface addresses TLV only when the
- TLV is type 132.";
- }
- description
- "This container defines TLV 132.";
-
- container state {
- description
- "State parameters of ISIS TLV 132.";
-
- leaf-list address {
- type inet:ipv4-address;
- description
- "IPv4 address(es) of the interface corresponding to
- the SNPA over which this PDU is to be transmitted.";
- reference
- "RFC1195: Use of OSI IS-IS for Routing in TCP/IP and
- Dual Environments. TLV 132.";
- }
- }
- }
-
- container ipv6-interface-addresses {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IPV6_INTERFACE_ADDRESSES'" {
- description
- "Include the IPv6 interface addresses TLV only when the
- TLV is type 232.";
- }
- description
- "This container defines TLV 232.";
-
- container state {
- description
- "State parameters of ISIS TLV 232.";
-
- leaf-list address {
- type inet:ipv6-address;
- description
- "IPv6 interface addresses of the node. MUST contain
- only the non-link-local IPv6 addresses assigned to the
- IS.";
- reference
- "RFC5308: Routing IPv6 with IS-IS. TLV 232.";
- }
- }
- }
-
- container ipv4-te-router-id {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IPV4_TE_ROUTER_ID'" {
- description
- "Include the IPv4 traffic engineering router ID TLV only
- when the TLV is type 134.";
- }
- description
- "This container defines TLV 134.";
-
- container state {
- description
- "State parameters of ISIS TLV 134.";
-
- leaf-list router-id {
- type inet:ipv4-address;
- description
- "IPv4 Traffic Engineering router ID of the node. For
- traffic engineering, it guarantees that we have a
- single stable address that can always be referenced in
- a path that will be reachable from multiple hops away,
- regardless of the state of the node's interfaces.";
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering. TLV
- 134.";
- }
- }
- }
-
- container ipv6-te-router-id {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IPV6_TE_ROUTER_ID'" {
- description
- "Include the IPv6 traffic engineering router ID TLV only
- when the TLV is type 140.";
- }
- description
- "This container defines TLV 140.";
-
- container state {
- description
- "State parameters of ISIS TLV 140.";
-
- leaf-list router-id {
- type inet:ipv6-address;
- description
- "IPv6 Traffic Engineering router ID of the node. For
- traffic engineering, it guarantees that we have a
- single stable address that can always be referenced in
- a path that will be reachable from multiple hops away,
- regardless of the state of the node's interfaces.";
- reference
- "RFC6119: IPv6 Traffic Engineering in IS-IS. TLV
- 140.";
- }
- }
- }
-
- container instance-ids {
- when "../state/type = 'oc-isis-lsdb-types:INSTANCE_ID'" {
- description
- "Include the ISIS Instance Identifier TLV only when the
- TLV is type 7.";
- }
- description
- "This container defines ISIS Instance Identifier TLV.";
- reference "RFC6822: IS-IS Multi-Instance. TLV 7.";
-
- list instance-id {
- key "instance-id";
-
- description
- "A list of instance IDs received within TLV 7 within an
- IS-IS LSP. In the case that more than one instance of
- TLV 7 is included in the LSP, the instance IDs specified
- within the instances are concatenated within this
- list.";
-
- leaf instance-id {
- type leafref {
- path "../state/instance-id";
- }
- description
- "Reference to the unique instance ID.";
- }
- container state {
- description
- "State parameters of ISIS TLV 7.";
-
- leaf instance-id {
- type uint16;
- description
- "An Instance Identifier (IID) to uniquely identify
- an IS-IS instance. When the IID = 0, the list of
- supported ITIDs MUST NOT be present. An IID-TLV with
- IID = 0 MUST NOT appear in an SNP or LSP. When the
- TLV appears (with a non-zero IID) in an SNP or LSP,
- exactly one ITID. MUST be present indicating the
- topology with which the PDU is associated. If no
- ITIDs or multiple ITIDs are present or the IID is
- zero, then the PDU MUST be ignored.";
- }
-
- leaf-list topology-id {
- type uint16;
- description
- "Instance-Specific Topology Identifiers (ITIDs).";
- }
- }
- }
- }
-
- container ipv4-srlgs {
- when "../state/type = 'oc-isis-lsdb-types:IPV4_SRLG'" {
- description
- "Include the IPv4 SRLG TLV only when the TLV is type
- 138.";
- }
- description
- "This container defines ISIS SRLG TLV 138.";
-
- reference
- "RFC5307: IS-IS Extensions in Support of Generalized
- Multi-Protocol Label Switching (GMPLS). TLV 138.";
-
- list ipv4-srlg {
- key "instance-number";
-
- description
- "Instance of the IPv4 SRLG TLV";
-
- leaf instance-number {
- type leafref {
- path "../state/instance-number";
- }
- description
- "Reference to the instance number of TLV 138.";
- }
-
- container state {
- description
- "State parameters of TLV 138.";
-
- leaf instance-number {
- type uint32;
- description
- "An arbitrary unsigned 32-bit integer used to
- disambiguate the instance of TLV 138. The instance
- identifier is synthesised by the system
- and may be renumbered for the same SRLG definition
- in subsequent advertised LSPs if (and only if) the
- entire list of SRLGs is replaced.";
- }
-
- leaf system-id {
- type oc-isis-types:system-id;
- description
- "Neighbor system ID.";
- }
-
- leaf psn-number {
- type uint8;
- description
- "Pseudonode number if the neighbor is on a LAN
- interface.";
- }
-
- leaf-list flags {
- type enumeration {
- enum NUMBERED {
- description
- "When set, the interface is numbered, whereas if
- unset indicates that the interface is
- unnumbered.";
- }
- }
- description
- "SRLG flags.";
- }
-
- leaf ipv4-interface-address {
- type inet:ipv4-address;
- description
- "IPv4 interface address.";
- }
-
- leaf ipv4-neighbor-address {
- type inet:ipv4-address;
- description
- "IPv4 neighbor address.";
- }
-
- leaf-list srlg-value {
- type uint32;
- description
- "List of SRLG values.";
- }
- }
- }
- }
-
- container ipv6-srlgs {
- when "../state/type = 'oc-isis-lsdb-types:IPV6_SRLG'" {
- description
- "Include the IPv6 SRLG TLV only when the TLV is type
- 139.";
- }
- description
- "This container defines ISIS SRLG TLV.";
-
- reference
- "RFC6119: IPv6 Traffic Engineering in IS-IS. TLV 139.";
-
- list ipv6-srlg {
- key "instance-number";
-
- description
- "Instance of the IPv6 SRLG TLV.";
-
- leaf instance-number {
- type leafref {
- path "../state/instance-number";
- }
- description
- "Reference to the instance number of the IPv6 Shared
- Risk Link Group (SRLG) TLV.";
- }
-
- container state {
- description
- "State parameters of TLV 139.";
-
- leaf instance-number {
- type uint32;
- description
- "An arbitrary unsigned 32-bit integer used to
- disambiguate the instance of TLV 138. The instance
- identifier is synthesised by the system
- and may be renumbered for the same SRLG definition
- in subsequent advertised LSPs if (and only if) the
- entire list of SRLGs is replaced.";
- }
-
- leaf system-id {
- type oc-isis-types:system-id;
- description
- "Neighbor system ID.";
- }
-
- leaf psn-number {
- type uint8;
- description
- "Pseudonode number if the neighbor is on a LAN
- interface.";
- }
-
- leaf-list flags {
- type enumeration {
- enum NA {
- description
- "When set, the IPv6 neighbour address is
- included, whereas if unset, it is omitted";
- }
- }
- description
- "IPv6 SRLG flags.";
- }
-
- leaf ipv6-interface-address {
- type inet:ipv6-address;
- description
- "IPv6 interface address or Link Local Identifier.";
- }
-
- leaf ipv6-neighbor-address {
- type inet:ipv6-address;
- description
- "IPv6 neighbor address or Link Remote Identifier.";
- }
-
- leaf-list srlg-value {
- type uint32;
- description
- "SRLG values.";
- }
- }
- }
- }
-
- container purge-oi {
- when "../state/type = 'oc-isis-lsdb-types:PURGE_OI'" {
- description
- "Only include the purge originator identitication TLV
- when the TLV type is 13.";
- }
- description
- "This container defines ISIS purge TLV.";
-
- reference
- "RFC6232: Purge Originator Identification TLV for IS-IS.
- TLV 13.";
-
- container state {
- description
- "State parameters of TLV 13.";
-
- leaf system-id-count {
- type uint8;
- description
- "Number of system IDs carried in this TLV.";
- }
-
- leaf source-system-id {
- type oc-isis-types:system-id;
- description
- "System ID of the Intermediate System that inserted
- this TLV.";
- }
-
- leaf received-system-id {
- type oc-isis-types:system-id;
- description
- "System ID of the Intermediate System from which the
- purge was received.";
- }
- }
- }
-
- container router-capabilities {
- when "../state/type = " +
- "'oc-isis-lsdb-types:ROUTER_CAPABILITY'" {
- description
- "Only include the router capability TLV when the TLV is
- type 242.";
- }
- description
- "This container defines router capabilities.";
-
- list capability {
- key "instance-number";
-
- description
- "This list describes IS Router capabilities.";
-
- reference
- "RFC4971: Intermediate System to Intermediate System
- (IS-IS) Extensions for Advertising Router Information.
- TLV 242.";
-
- leaf instance-number {
- type leafref {
- path "../state/instance-number";
- }
- description
- "Reference to the instance number of the router
- capability TLV.";
- }
-
- container state {
- description
- "State parameters of TLV 242.";
-
- leaf instance-number {
- type uint32;
- description
- "A unique instance number for the instance of the
- router capabilities TLV. The instance number should
- be autogenerated by the producer of the data and may
- be renumbered if the entire LSP contents are
- replaced in subsequent advertisements.";
- }
-
- leaf router-id {
- type inet:ipv4-address;
- description
- "IPv4 router-id.";
- }
-
- leaf-list flags {
- type enumeration {
- enum FLOOD {
- description
- "When the S bit is set(1), the IS - IS Router
- CAPABILITY TLV MUST be flooded across the entire
- routing domain. When the S bit is not set(0),
- the TLV MUST NOT be leaked between levels . This
- bit MUST NOT be altered during the TLV
- leaking.";
- }
- enum DOWN {
- description
- "When the IS-IS Router CAPABILITY TLV is leaked
- from level - 2 to level-1, the Down bit MUST be
- set. Otherwise, this bit MUST be clear. IS - IS
- Router capability TLVs with the Down bit set
- MUST NOT be leaked from level - 1 to level-2.
- This is to prevent TLV looping.";
- }
- }
- description
- "Router capability flags.";
- }
- }
-
- container subtlvs {
- description
- "This container describes router capability TLV
- sub-TLVs";
-
- list subtlv {
- key "type";
- description
- "List of subTLV types in the LSDB for the specified
- TLV";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to the sub-TLV type";
- }
-
- container state {
- description
- "State parameters of IS Router Capabilities";
-
- uses isis-lsdb-subtlv-type-state;
- }
-
- container segment-routing-algorithms {
- when "../state/type = " +
- "'oc-isis-lsdb-types:ROUTER_CAPABILITY_SR_ALGORITHM'" {
- description
- "Only include segment routing algorithm when the
- sub-TLV is type 19.";
- }
- description
- "This container defines SR algorithm sub-TLV 19.";
-
- reference
- "draft-ietf-isis-segment-routing-extensions.
- TLV 242, sub-TLV 19";
-
- container state {
- description
- "State parameters of sub-TLV 19 - Segment
- Routing Algorithm.";
-
- leaf-list algorithm {
- type enumeration {
- enum SPF {
- value 0;
- description
- "Shortest Path First (SPF) algorithm
- based on link metric. This is the
- well-known shortest path algorithm as
- computed by the IS-IS Decision process.
- Consistent with the deployed practice
- for link-state protocols, algorithm 0
- permits any node to overwrite the SPF
- path with a different path based on
- local policy.";
- }
- enum STRICT_SPF {
- value 1;
- description
- "Strict Shortest Path First (SPF)
- algorithm based on link metric. The
- algorithm is identical to algorithm 0
- but algorithm 1 requires that all nodes
- along the path will honor the SPF
- routing decision. Local policy MUST NOT
- alter the forwarding decision computed
- by algorithm 1 at the node claiming to
- support algorithm 1.";
- }
- }
- description
- "The Segment Routing algorithm that is
- described by the TLV.";
- }
- }
- }
-
- container segment-routing-capability {
- when "../state/type = " +
- "'oc-isis-lsdb-types:ROUTER_CAPABILITY_SR_CAPABILITY'" {
- description
- "Only include the SR capability sub-TLV when
- the sub-TLV type is 2.";
- }
- description
- "This container defines SR Capability sub-TLV 2.";
-
- reference
- "draft-ietf-isis-segment-routing-extensions. TLV
- 242, sub-TLV 2.";
-
- container state {
- description
- "State parameters of IS SR Router Capability";
-
- leaf-list flags {
- type enumeration {
- enum IPV4_MPLS {
- description
- "When set, the router is capable of
- processing SR MPLS encapsulated IPv4
- packets on all interfaces.";
- }
- enum IPV6_MPLS {
- description
- "When set, the router is capable of
- processing SR MPLS encapsulated IPv6
- packets on all interfaces.";
- }
- enum IPV6_SR {
- description
- "When set, the router is capable of
- processing the IPv6 Segment Routing Header
- on all interfaces.";
- }
- }
- description
- "Segment Routing Capability Flags.";
- }
- }
-
- container srgb-descriptors {
- description
- "SRGB Descriptors included within the SR
- capability sub-TLV";
-
- list srgb-descriptor {
- key "range";
- description
- "Descriptor entry within the SR capabilty
- sub-TLV";
-
- leaf range {
- type leafref {
- path "../state/range";
- }
- description
- "Reference to unique SRGB Descriptor.";
- }
-
- container state {
- description
- "State parameters of the SR range";
-
- leaf range {
- type uint32;
- description
- "Number of SRGB elements. The range
- value MUST be greater than 0.";
- }
-
- leaf label {
- type oc-mpls-types:mpls-label;
- description
- "The first value of the SRGB when
- expressed as an MPLS label.";
- }
- }
- }
- }
- }
- }
- }
- uses isis-lsdb-undefined-subtlv;
- }
- }
-
- container is-reachability {
- when "../state/type = 'oc-isis-lsdb-types:IIS_NEIGHBORS'" {
- description
- "Include IIS_NEIGHBORS sub-TLV when the TLV type is 2.";
- }
- description
- "This container describes list of ISIS neighbors and
- attributes.";
-
- reference
- "ISO 10589, Intermediate System to Intermediate System
- Intra- Domain Routeing Exchange Protocol for use in
- Conjunction with the Protocol for Providing the
- Connectionless-mode Network Service (ISO 8473),
- International Standard 10589: 2002, Second Edition,
- 2002. TLV 2.";
-
- container neighbors {
- description
- "This container describes IS neighbors.";
-
- list neighbor {
- key "system-id";
- description
- "IS reachability neighbor attributes.";
-
- leaf system-id {
- type leafref {
- path "../state/system-id";
- }
- description
- "Reference to the system ID of the neighbor.";
- }
-
- uses isis-lsdb-neighbor;
- }
- }
- }
-
- container ipv4-internal-reachability {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IPV4_INTERNAL_REACHABILITY'" {
- description
- "Include IPv4 internal reachability TLV when the TLV
- type is specified as 128.";
- }
- description
- "This container defines list of IPv4 internal reachability
- information.";
-
- reference
- "RFC1195: OSI ISIS for IP and Dual Environments. RFC5302:
- Domain-Wide Prefix Distribution with Two-Level IS-IS. TLV
- 128";
-
- container prefixes {
- description
- "This container describes IS prefixes.";
-
- list prefix {
- key "prefix";
-
- description
- "IPv4 prefixes and internal reachability attributes.";
-
- leaf prefix {
- type leafref {
- path "../state/prefix";
- }
- description
- "Reference to the IPv4 prefix";
- }
-
- uses ipv4-prefix-attributes-state;
- }
- }
- }
-
- container ipv4-external-reachability {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IPV4_EXTERNAL_REACHABILITY'" {
- description
- "Include IPv4 external reachability when the TLV type
- is set to 130.";
- }
- description
- "This container defines list of IPv4 external reachability
- information.";
-
- reference
- "RFC1195: OSI ISIS for IP and Dual Environments. RFC5302:
- Domain-Wide Prefix Distribution with Two-Level IS-IS. TLV
- 130";
-
- container prefixes {
- description
- "This container describes IS neighbors.";
-
- list prefix {
- key "prefix";
-
- description
- "IPv4 external prefixes and reachability attributes.";
-
- leaf prefix {
- type leafref {
- path "../state/prefix";
- }
- description
- "Reference to the IPv4 prefix.";
- }
-
- uses ipv4-prefix-attributes-state;
- }
- }
- }
-
- container authentication {
- when "../state/type = 'oc-isis-lsdb-types:AUTHENTICATION'" {
- description
- "Only include the authentication TLV when the TLV is
- type 10.";
- }
- description
- "This container defines authentication information of the
- node.";
-
- reference
- "ISO 10589 Intermediate System to Intermediate System
- Intra- Domain Routeing Exchange Protocol for use in
- Conjunction with the Protocol for Providing the
- Connectionless-mode Network Service (ISO 8473)
- International Standard 10589: 2002, Second Edition, 2002.
- TLV 10.";
-
- container state {
- description
- "State parameters of TLV 10.";
-
- leaf crypto-type {
- type enumeration {
- enum HMAC_MD5 {
- description
- "HMAC-MD5 Authentication type.";
- }
- enum CLEARTEXT {
- description
- "Cleartext Authentication type.";
- }
- }
- description
- "Authentication type to be used.";
- }
-
- leaf authentication-key {
- type string;
- description
- "Authentication key to be used.";
- }
- }
- }
-
- container extended-is-reachability {
- when "../state/type = " +
- "'oc-isis-lsdb-types:EXTENDED_IS_REACHABILITY'" {
- description
- "Only included the extended IS reachability TLV when the
- TLV is type 22.";
- }
-
- description
- "This container defines list of ISIS extended reachability
- neighbors.";
-
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering. TLV
- 22.";
-
- uses isis-lsdb-common-extisreach-neighbors;
- }
-
- container extended-ipv4-reachability {
- when "../state/type = " +
- "'oc-isis-lsdb-types:EXTENDED_IPV4_REACHABILITY'" {
- description
- "Only include the extended IPv4 reachability container
- when the TLV type is 135.";
- }
- description
- "This container defines list of IPv4 extended reachability
- information.";
-
- reference
- "RFC5305: IS-IS Extensions for Traffic Engineering. TLV
- 135";
-
- container prefixes {
- description
- "This container describes IS prefixes.";
-
- list prefix {
- key "prefix";
-
- description
- "This list describes IPv4 extended prefixes and
- attributes.";
-
- leaf prefix {
- type leafref {
- path "../state/prefix";
- }
- description
- "Reference to the IPv4 prefix that the TLV describes
- the attributes of.";
- }
-
- uses ipv4-prefix-extended-state;
- }
- }
- }
-
- container ipv6-reachability {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IPV6_REACHABILITY'" {
- description
- "Only include the IPv6 reachability container when the
- TLV type is 236.";
- }
- description
- "This container defines list of IPv6 reachability
- information.";
-
- reference
- "RFC5308: Routing IPv6 with IS-IS. TLV 236";
-
- container prefixes {
- description
- "This container describes IS prefixes.";
-
- list prefix {
- key "prefix";
-
- description
- "This list defines IPv6 extended prefix attributes.";
-
- leaf prefix {
- type leafref {
- path "../state/prefix";
- }
- description
- "Reference to the IPv6 prefix that the TLV
- corresponds to.";
- }
-
- uses ipv6-prefix-extended-state;
- }
- }
- }
-
- container multi-topology {
- when "../state/type = 'oc-isis-lsdb-types:MULTI_TOPOLOGY'" {
- description
- "Only include the multi-topology container when the TLV
- is type 229.";
- }
-
- description
- "This container defines the topology supported.";
-
- reference
- "RFC5120: M-ISIS: Multi Topology (MT) Routing in
- Intermediate System to Intermediate Systems (IS-ISs). TLV
- 229";
-
- container topologies {
- description
- "This container describes IS topologies.";
-
- list topology {
- key "mt-id";
-
- description
- "This list describes a topology.";
-
- leaf mt-id {
- type leafref {
- path "../state/mt-id";
- }
- description
- "Reference to the multi-topology ID being described
- by the list entry.";
- }
-
- container state {
- description
- "State parameters of IS multi-topology TLV 229.";
-
- leaf mt-id {
- type uint16 {
- range "0 .. 4095";
- }
- description
- "Multi-topology ID.";
- }
-
- leaf attributes {
- type enumeration {
- enum OVERLOAD {
- description
- "When set, node is overloaded, still part of
- the topology but cannot be used for transit.";
- }
- enum ATTACHED {
- description
- "When set, node is attached to another area
- using the referred metric and can be used as
- default gateway.";
- }
- }
- description
- "Attributes of the LSP for the associated
- topology.";
- }
- }
- }
- }
- }
-
- container isis-neighbor-attribute {
- when "../state/type = " +
- "'oc-isis-lsdb-types:IS_NEIGHBOR_ATTRIBUTE'" {
- description
- "Only include the neighbor attribute container when the
- TLV is type 23.";
- }
- description
- "This container defines list of ISIS topology neighbors
- for extended ISIS LSP (multiple system IDs). ";
-
- reference
- "RFC5311: Simplified Extension of Link State PDU (LSP)
- Space for IS-IS. TLV 23. It is identical in format to the
- extended IS reachability TLV 22.";
-
- uses isis-lsdb-common-extisreach-neighbors;
- }
-
- container is-alias-id {
- when "../state/type = 'oc-isis-lsdb-types:ISIS_ALIAS_ID'" {
- description
- "Only include the ISIS alias ID container when the TLV
- is type 24.";
- }
-
- description
- "This container defines the IS-Alias TLV which allows
- extension-capable ISs to recognize the Originating System
- of an Extended LSP set. It identifies the Normal system-
- id of the Originating System.";
-
- reference
- "RFC5311: Simplified Extension of Link State PDU (LSP)
- Space for IS-IS TLV 24.";
-
- container state {
- config false;
- description
- "State parameters of alias ID.";
-
- leaf alias-id {
- type oc-isis-types:system-id;
- description
- "List of alias ID(s).";
- }
- }
- }
-
- container mt-isn {
- when "../state/type = 'oc-isis-lsdb-types:MT_ISN'" {
- description
- "Only include the MT ISN container when the TLV is type
- 222.";
- }
- description
- "This container defines list of ISIS multi-topology
- neighbors.";
-
- reference
- "RFC5120: M-ISIS: Multi Topology (MT) Routing in
- Intermediate System to Intermediate Systems (IS-ISs). TLV
- 222.";
-
- uses isis-lsdb-mtis-common;
- }
-
- container mt-isis-neighbor-attribute {
- when "../state/type = " +
- "'oc-isis-lsdb-types:MT_IS_NEIGHBOR_ATTRIBUTE'" {
- description
- "Only include the MT ISIS neighbor attribute container
- when the TLV is type 223.";
- }
-
- description
- "This container defines list of ISIS multi-topology
- neighbors.";
-
- reference
- "RFC5311: Simplified Extension of Link State PDU (LSP)
- Space for IS-IS. TLV 223. It is identical in format to the
- MT-ISN TLV 222.";
-
- uses isis-lsdb-mtis-common;
- }
-
- container mt-ipv4-reachability {
- when "../state/type = " +
- "'oc-isis-lsdb-types:MT_IPV4_REACHABILITY'" {
- description
- "Only include the multi-topology IPv4 reachability
- container when the TLV is type 235.";
- }
- description
- "This container defines list of IPv4 reachability
- Information in multi-topology environment.";
-
- reference
- "RFC5120: M-ISIS: Multi Topology (MT) Routing in
- Intermediate System to Intermediate Systems (IS-ISs). TLV
- 235.";
-
- container prefixes {
- description
- "This container describes IS prefixes.";
-
- list prefix {
- key "mt-id prefix";
-
- leaf mt-id {
- type leafref {
- path "../state/mt-id";
- }
- description
- "Reference to the topology ID of the topology that
- the prefix is within.";
- }
-
- leaf prefix {
- type leafref {
- path "../state/prefix";
- }
- description
- "Reference to the prefix to which reachability is
- being advertised.";
- }
-
- description
- "IPv4 prefixes that are contained within MT
- reachability TLV.";
-
- uses ipv4-mt-prefix-extended-state;
- }
- }
- }
-
- container mt-ipv6-reachability {
- when "../state/type = " +
- "'oc-isis-lsdb-types:MT_IPV6_REACHABILITY'" {
- description
- "Only include the multi-topology IPv6 reachability
- container when the TLV is type 237.";
- }
- description
- "This container defines list of IPv6 reachability
- information in multi - topology environment.";
-
- reference
- "RFC5120: M-ISIS: Multi Topology (MT) Routing in
- Intermediate System to Intermediate Systems (IS-ISs). TLV
- 237.";
-
- container prefixes {
- description
- "This container describes IS prefixes.";
-
- list prefix {
- key "prefix mt-id";
- description
- "List of IPv6 prefixes contained within MT
- reachability TLV.";
-
- leaf prefix {
- type leafref {
- path "../state/prefix";
- }
- description
- "Reference to the IPv6 prefix described by the
- TLV.";
- }
-
- leaf mt-id {
- type leafref {
- path "../state/mt-id";
- }
- description
- "Reference to the multi-topology ID.";
- }
-
- uses ipv6-mt-prefix-extended-state;
- }
- }
- }
- }
- }
-
- uses isis-lsdb-undefined-tlv;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-isis-policy.yang b/src/plugins/yang/openconfig/openconfig-isis-policy.yang
deleted file mode 100644
index 748b720..0000000
--- a/src/plugins/yang/openconfig/openconfig-isis-policy.yang
+++ /dev/null
@@ -1,189 +0,0 @@
-module openconfig-isis-policy {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/openconfig-isis-policy";
-
- prefix "oc-isis-pol";
-
- // import some basic types
- import openconfig-routing-policy {prefix rpol; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-isis-types { prefix isis-types; }
-
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net ";
-
- description
- "This module contains data definitions for ISIS routing policy.
- It augments the base routing-policy module with BGP-specific
- options for conditions and actions.";
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2018-05-14" {
- description
- "Update LSDB model to correct Extended IS reach TLV
- bug. This change is backwards incompatible due to
- adding an additional level of hierarchy to support
- multiple instances of the TLV.";
- reference "0.4.0";
- }
-
- revision "2017-07-26" {
- description
- "Update LSDB and fix bugs.";
- reference "0.3.2";
- }
-
- revision "2017-05-15" {
- description
- "Refactor LSDB.";
- reference "0.3.0";
- }
-
- revision "2017-01-13" {
- description
- "Remove top-level /isis container";
- reference "0.2.1";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to IS-IS module";
- reference "0.2.0";
- }
-
- revision "2016-10-18" {
- description
- "Initial revision of IS-IS models.";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping isis-match-conditions {
- description
- "Criteria used to match IS-IS routes within the policy";
-
- container isis-conditions {
- description
- "Match conditions relating to the IS-IS protocol";
-
- container config {
- description
- "Configuration parameters relating to IS-IS match
- conditions";
-
- uses isis-match-conditions-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to IS-IS match
- conditions";
- uses isis-match-conditions-config;
- }
- }
- }
-
- grouping isis-match-conditions-config {
- description
- "Match conditions for IS-IS";
-
- leaf level-eq {
- type isis-types:level-number;
- description
- "Match the level that the IS-IS prefix is within. This can
- be used in the case that import or export policies refer
- to an IS-IS instance that has multiple levels configured
- within it";
- }
- }
-
- grouping isis-actions {
- description
- "Actions supplied by the IS-IS protocol to be set on a
- route within the policy";
-
- container isis-actions {
- description
- "Actions that can be performed by IS-IS within a policy";
-
- container config {
- description
- "Configuration parameters relating to IS-IS actions";
-
- uses isis-actions-config;
- }
-
- container state {
- config false;
- description
- "Operational state associated with IS-IS actions";
-
- uses isis-actions-config;
- }
- }
- }
-
- grouping isis-actions-config {
- description
- "Actions for IS-IS";
-
- leaf set-level {
- type isis-types:level-number;
- description
- "Set the level that a prefix is to be imported into.";
- }
-
- leaf set-metric-type {
- type isis-types:level-number;
- description
- "Set the type of metric that is to be specified when the
- set metric leaf is specified";
- }
-
- leaf set-metric {
- type isis-types:wide-metric;
- description
- "Set the metric of the IS-IS prefix";
- }
- }
-
- // augment statements
- augment "/rpol:routing-policy/rpol:policy-definitions/" +
- "rpol:policy-definition/rpol:statements/rpol:statement/" +
- "rpol:actions" {
- description "This augments igp-actions with ISIS conditions";
- uses isis-actions;
-
- }
-
- augment "/rpol:routing-policy/rpol:policy-definitions/" +
- "rpol:policy-definition/rpol:statements/rpol:statement/" +
- "rpol:conditions" {
- description "This augments igp-conditions with ISIS conditions";
- uses isis-match-conditions;
- }
-
- // rpc statements
-
- // notification statements
-}
diff --git a/src/plugins/yang/openconfig/openconfig-isis-routing.yang b/src/plugins/yang/openconfig/openconfig-isis-routing.yang
deleted file mode 100644
index 84e7a7a..0000000
--- a/src/plugins/yang/openconfig/openconfig-isis-routing.yang
+++ /dev/null
@@ -1,384 +0,0 @@
-submodule openconfig-isis-routing {
-
- belongs-to openconfig-isis {
- prefix "oc-isis";
- }
-
- // import some basic types
- import openconfig-isis-types { prefix oc-isis-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-mpls-types { prefix oc-mplst; }
- import openconfig-segment-routing { prefix oc-sr; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module describes YANG model for ISIS Routing";
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2018-05-14" {
- description
- "Update LSDB model to correct Extended IS reach TLV
- bug. This change is backwards incompatible due to
- adding an additional level of hierarchy to support
- multiple instances of the TLV.";
- reference "0.4.0";
- }
-
- revision "2017-07-26" {
- description
- "Update LSDB and fix bugs.";
- reference "0.3.2";
- }
-
- revision "2017-05-15" {
- description
- "Refactor LSDB.";
- reference "0.3.0";
- }
-
- revision "2017-01-13" {
- description
- "Remove top-level /isis container";
- reference "0.2.1";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to IS-IS module";
- reference "0.2.0";
- }
-
- revision "2016-10-18" {
- description
- "Initial revision of IS-IS models.";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping rt-admin-config {
- description
- "Re-usable grouping to enable or disable a particular IS-IS feature.";
-
- leaf enabled {
- type boolean;
- description
- "When set to true, the functionality within which this leaf is
- defined is enabled, when set to false it is explicitly disabled.";
- }
- }
-
- grouping isis-afi-safi-config {
- description
- "This grouping defines Address-Family configuration parameters";
-
- leaf afi-name {
- type identityref {
- base oc-isis-types:AFI_TYPE;
- }
- description
- "Address-family type.";
- }
-
- leaf safi-name {
- type identityref {
- base oc-isis-types:SAFI_TYPE;
- }
- description
- "Subsequent address-family type.";
- }
- }
-
- grouping isis-shortcuts-afi-config {
- description
- "This grouping defines ISIS Shortcuts configuration parameters";
-
- leaf afi-name {
- type identityref {
- base oc-isis-types:AFI_TYPE;
- }
- description "Address-family type.";
- }
-
- leaf-list nh-type {
- type identityref {
- base oc-mplst:PATH_SETUP_PROTOCOL;
- }
- description "Tunnel NH Type(RSVP,SR). When present it implies
- that nh-type shortcut is enabled for a specified AFI.";
- }
- }
-
- grouping isis-shortcuts-config {
- description
- "This grouping defines ISIS Shortcuts consfiguration parameters";
-
- container config {
- description "This container defines ISIS shortcuts configuration.";
- uses rt-admin-config;
- }
-
- container state {
- config false;
- description "This container defines state for ISIS shortcuts.";
- uses rt-admin-config;
- }
- }
-
- grouping isis-mt-config {
- description
- "This grouping defines ISIS multi-topology configuration parameters";
-
- leaf afi-name {
- type identityref {
- base oc-isis-types:AFI_TYPE;
- }
- description
- "Address-family type.";
- }
- leaf safi-name {
- type identityref {
- base oc-isis-types:SAFI_TYPE;
- }
- description
- "Subsequent address-family type.";
- }
- //prefer single topology
- }
-
-
-
- // *********** STRUCTURE GROUPINGS **********************
-
- grouping isis-metric-config {
- description
- "This grouping defines ISIS metric configuration";
-
- leaf metric {
- type uint32;
- default 10;
- description "ISIS metric value(default=10).";
- }
- }
-
- grouping isis-afi-safi-list {
- description
- "This grouping defines address-family configuration and state
- information";
-
- list af {
- key "afi-name safi-name";
-
- description
- "Address-family/Subsequent Address-family list.";
-
- leaf afi-name {
- type leafref {
- path "../config/afi-name";
- }
- description
- "Reference to address-family type";
- }
-
- leaf safi-name {
- type leafref {
- path "../config/safi-name";
- }
- description
- "Reference to subsequent address-family type";
- }
-
- container config {
- description
- "This container defines AFI-SAFI configuration parameters";
-
- uses isis-afi-safi-config;
- uses isis-metric-config;
- uses rt-admin-config;
- }
-
- container state {
- config false;
- description
- "This container defines AFI-SAFI State information";
-
- uses isis-afi-safi-config;
- uses isis-metric-config;
- uses rt-admin-config;
- }
-
- uses isis-mt-list;
- }
- }
-
- grouping isis-if-afi-safi-list {
- description
- "This grouping defines address-family configuration and state
- information";
-
- list af {
- key "afi-name safi-name";
-
- description
- "Address-family/Subsequent Address-family list.";
-
- leaf afi-name {
- type leafref {
- path "../config/afi-name";
- }
- description
- "Reference to address-family type";
- }
-
- leaf safi-name {
- type leafref {
- path "../config/safi-name";
- }
- description
- "Reference to subsequent address-family type";
- }
-
- container config {
- description
- "This container defines AFI-SAFI configuration parameters. Single
- topology is the default setting.";
- uses isis-afi-safi-config;
- uses isis-metric-config;
- uses rt-admin-config;
- }
-
- container state {
- config false;
- description
- "This container defines AFI-SAFI State information";
- uses isis-afi-safi-config;
- uses isis-metric-config;
- uses rt-admin-config;
- }
-
- uses oc-sr:sr-igp-interface-top;
- }
- }
-
- grouping isis-if-global-afi-safi-list {
- description
- "This grouping defines address-family configuration and state
- information";
-
- list af {
- key "afi-name safi-name";
-
- description
- "Address-family/Subsequent Address-family list.";
-
- leaf afi-name {
- type leafref {
- path "../config/afi-name";
- }
- description
- "Reference to address-family type";
- }
-
- leaf safi-name {
- type leafref {
- path "../config/safi-name";
- }
- description
- "Reference to subsequent address-family type";
- }
-
- container config {
- description
- "This container defines AFI-SAFI configuration parameters. Single
- topology is the default setting.";
- uses isis-afi-safi-config;
- uses rt-admin-config;
- }
-
- container state {
- config false;
- description
- "This container defines AFI-SAFI State information";
- uses isis-afi-safi-config;
- uses rt-admin-config;
- }
- }
- }
-
- grouping isis-shortcuts-afi-list {
- description
- "This grouping defines ISIS Shorcuts configuration and
- state information";
-
- list afi {
- key "afi-name";
-
- description
- "Address-family list.";
-
- leaf afi-name {
- type leafref {
- path "../config/afi-name";
- }
- description
- "Reference to address-family type.";
- }
-
- container config {
- description
- "This container defines ISIS Shortcuts configuration parameters";
- uses isis-shortcuts-afi-config;
- }
-
- container state {
- config false;
- description
- "This container defines ISIS Shortcuts state information";
- uses isis-shortcuts-afi-config;
- }
- }
- }
-
- grouping isis-mt-list {
- description
- "This grouping defines multi-topology address-family configuration and
- state information. MT0 - IPv4 Unicast, MT2 - IPv6 Unicast, MT3 -
- IPv4 Multicast, MT4 - IPv6 Multicast";
-
- container multi-topology {
- description
- "This container defines multi-topology address-family configuration
- and state information. ISIS TLV 235, 237.";
-
- container config {
- description
- "This container defines AFI-SAFI multi-topology configuration
- parameters";
- uses isis-mt-config;
- }
-
- container state {
- config false;
- description
- "This container defines AFI-SAFI multi-topology state information";
- uses isis-mt-config;
- uses rt-admin-config;
- }
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-isis-types.yang b/src/plugins/yang/openconfig/openconfig-isis-types.yang
deleted file mode 100644
index cdfab1f..0000000
--- a/src/plugins/yang/openconfig/openconfig-isis-types.yang
+++ /dev/null
@@ -1,339 +0,0 @@
-module openconfig-isis-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/isis-types";
-
- prefix "oc-isis-types";
-
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module contains general data definitions for use in ISIS YANG
- model.";
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2018-05-14" {
- description
- "Update LSDB model to correct Extended IS reach TLV
- bug. This change is backwards incompatible due to
- adding an additional level of hierarchy to support
- multiple instances of the TLV.";
- reference "0.4.0";
- }
-
- revision "2017-07-26" {
- description
- "Update LSDB and fix bugs.";
- reference "0.3.2";
- }
-
- revision "2017-05-15" {
- description
- "Refactor LSDB.";
- reference "0.3.0";
- }
-
- revision "2017-01-13" {
- description
- "Remove top-level /isis container";
- reference "0.2.1";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to IS-IS module";
- reference "0.2.0";
- }
-
- revision "2016-10-18" {
- description
- "Initial revision of IS-IS models.";
- reference "0.1.0";
- }
-
- // identity statements
- identity OVERLOAD_RESET_TRIGGER_TYPE {
- description
- "Base identify type for triggers that reset Overload Bit";
- }
-
- identity WAIT_FOR_BGP {
- base OVERLOAD_RESET_TRIGGER_TYPE;
- description
- "Base identity type for resetting Overload Bit when BGP has converged. ";
- }
-
- identity WAIT_FOR_SYSTEM {
- base OVERLOAD_RESET_TRIGGER_TYPE;
- description
- "Base identity type for resetting Overload Bit when system resources have
- been restored. ";
- }
-
- identity MT_TYPE {
- description
- "Base identify type for multi-topology";
- }
-
- identity SAFI_TYPE {
- description
- "Base identify type for SAFI";
- }
-
- identity AFI_TYPE {
- description
- "Base identify type for AFI";
- }
-
- identity AFI_SAFI_TYPE {
- description
- "Base identify type for AFI/SAFI";
- }
-
- identity IPV4_UNICAST {
- base AFI_SAFI_TYPE;
- description
- "Base identify type for IPv4 Unicast address family";
- }
-
- identity IPV6_MULTICAST {
- base AFI_SAFI_TYPE;
- description
- "Base identify type for IPv6 multicast address family";
- }
-
- identity IPV4_MULTICAST {
- base AFI_SAFI_TYPE;
- description
- "Base identify type for IPv4 multicast address family";
- }
-
- identity IPV6_UNICAST {
- base AFI_SAFI_TYPE;
- description
- "Base identify type for IPv6 unicast address family";
- }
-
- identity UNICAST {
- base SAFI_TYPE;
- description
- "Base identify type for IPv4 Unicast address family";
- }
-
- identity MULTICAST {
- base SAFI_TYPE;
- description
- "Base identify type for IPv6 multicast address family";
- }
-
- identity IPV4 {
- base AFI_TYPE;
- description
- "Base identify type for IPv4 address family";
- }
-
- identity IPV6 {
- base AFI_TYPE;
- description
- "Base identify type for IPv6 address family";
- }
-
- // typedef statements
- typedef level-type {
- type enumeration {
- enum LEVEL_1 {
- description "This enum describes ISIS level 1";
- }
- enum LEVEL_2 {
- description "This enum describes ISIS level 2";
- }
- enum LEVEL_1_2 {
- description "This enum describes ISIS level 1-2";
- }
- }
- description
- "This type defines ISIS level types";
- }
-
- typedef level-number {
- type uint8 {
- range "1..2";
- }
- description
- "This type defines ISIS level.";
- }
-
- typedef adaptive-timer-type {
- type enumeration {
- enum LINEAR {
- description "This enum describes linear algorithm timer";
- }
- enum EXPONENTIAL {
- description "This enum describes exponential algorithm timer";
- }
- }
- description
- "This type defines ISIS adaptive timer types";
- }
-
- typedef hello-padding-type {
- type enumeration {
- enum STRICT {
- description "This enum describes strict padding";
- }
- enum LOOSE {
- description "This enum describes loose padding";
- }
- enum ADAPTIVE {
- description "This enum describes adaptive padding";
- }
- enum DISABLE {
- description "This enum disables padding";
- }
- }
- description
- "This type defines ISIS hello padding type";
- }
-
- typedef circuit-type {
- type enumeration {
- enum POINT_TO_POINT {
- description "This enum describes a point-to-point interface";
- }
- enum BROADCAST {
- description "This enum describes a broadcast interface";
- }
- }
- description
- "This type defines ISIS interface types ";
- }
-
- typedef metric-type {
- type enumeration {
- enum INTERNAL {
- description "This enum describes internal route type";
- }
- enum EXTERNAL {
- description "This enum describes external route type";
- }
- }
- description
- "This type defines ISIS metric type";
- }
-
- typedef wide-metric {
- type uint32 {
- range "1..16777215";
- }
- description
- "This type defines ISIS wide metric.";
- }
-
- typedef narrow-metric {
- type uint8 {
- range "1..63";
- }
- description
- "This type defines ISIS narrow metric.";
- }
-
- typedef metric-style {
- type enumeration {
- enum NARROW_METRIC {
- description
- "This enum describes narrow metric style";
- reference "RFC1195";
- }
- enum WIDE_METRIC {
- description
- "This enum describes wide metric style";
- reference "RFC5305";
- }
- }
- description
- "This type defines ISIS metric styles";
- }
-
- typedef isis-interface-adj-state {
- type enumeration {
- enum UP {
- description
- "This state describes that adjacency is established.";
- }
- enum DOWN {
- description
- "This state describes that adjacency is NOT established.";
- }
- enum INIT {
- description
- "This state describes that adjacency is establishing.";
- }
- enum FAILED {
- description
- "This state describes that adjacency is failed.";
- }
- }
- description
- "This type defines the state of the interface.";
- }
-
- typedef net {
- type string {
- pattern '^[a-fA-F0-9]{2}(\.[a-fA-F0-9]{4}){3,9}\.[a-fA-F0-9]{2}$';
- }
- description
- "This type defines OSI NET address. A NET should should be in
- the form xx.yyyy.yyyy.yyyy.00 with up to 9 sets of yyyy.";
- }
-
- typedef area-address {
- type string {
- pattern '^[0-9A-Fa-f]{2}\.([0-9A-Fa-f]{4}\.){0,3}$';
- }
- description
- "This type defines the ISIS area address.";
- }
-
- typedef system-id {
- type string {
- pattern '^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}$';
- }
- description
- "This type defines ISIS system id using pattern, system id looks
- like : 0143.0438.AeF0";
- }
-
- typedef extended-circuit-id {
- type uint32;
- description
- "This type defines interface circuit ID.";
- }
-
- typedef lsp-id {
- type string {
- pattern
- '^[0-9A-Fa-f]{4}\.[0-9A-Fa-f]{4}\.[0-9A-Fa-f]'
- + '{4}\.[0-9][0-9]-[0-9][0-9]$';
- }
- description
- "This type defines ISIS LSP ID. ISIS LSP ID type should be in
- the form of xxxx.xxxx.xxxx.xx-xx";
- }
- typedef snpa {
- type string {
- length "0 .. 20";
- }
- description
- "This type defines Subnetwork Point of Attachment format.";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-isis.yang b/src/plugins/yang/openconfig/openconfig-isis.yang
deleted file mode 100644
index 0a0db6b..0000000
--- a/src/plugins/yang/openconfig/openconfig-isis.yang
+++ /dev/null
@@ -1,2059 +0,0 @@
-module openconfig-isis {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/openconfig-isis";
-
- prefix "oc-isis";
-
- // import some basic types
- import ietf-inet-types { prefix "inet"; }
- import ietf-yang-types { prefix "yang"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-isis-types { prefix "oc-isis-types"; }
- import openconfig-routing-policy { prefix "oc-rpol"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-interfaces { prefix "oc-if"; }
- import openconfig-segment-routing { prefix "oc-sr"; }
- // TODO(robjs): Import authentication and keychain following merge of these
- // modules.
- //import openconfig-authentication-types { prefix "oc-auth-types"; }
- //import openconfig-keychain { prefix "oc-keychain"; }
-
- // Include submodules:
- // IS-IS LSP is the LSDB for IS-IS.
- include openconfig-isis-lsp;
- // IS-IS RT is routing-related features for IS-IS
- include openconfig-isis-routing;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net ";
-
- description
- "This module describes a YANG model for ISIS protocol configuration.
- It is a limited subset of all of the configuration parameters
- available in the variety of vendor implementations, hence it is
- expected that it would be augmented with vendor - specific configuration
- data as needed. Additional modules or submodules to handle other
- aspects of ISIS configuration, including policy, routing, types,
- LSDB and additional address families are also expected. This model
- supports the following ISIS configuration level hierarchy:
-
- ISIS
- +-> { global ISIS configuration}
- +-> levels +-> { level config}
- +-> { system-level-counters }
- +-> { level link-state-database}
- +-> interface +-> { interface config }
- +-> { circuit-counters }
- +-> { levels config }
- +-> { level adjacencies }";
-
- oc-ext:openconfig-version "0.4.1";
-
- revision "2018-06-05" {
- description
- "Fix bugs in when statements.";
- reference "0.4.1";
- }
-
- revision "2018-05-14" {
- description
- "Update LSDB model to correct Extended IS reach TLV
- bug. This change is backwards incompatible due to
- adding an additional level of hierarchy to support
- multiple instances of the TLV.";
- reference "0.4.0";
- }
-
- revision "2017-07-26" {
- description
- "Update LSDB and fix bugs.";
- reference "0.3.2";
- }
-
- revision "2017-05-15" {
- description
- "Refactor LSDB.";
- reference "0.3.0";
- }
-
- revision "2017-01-13" {
- description
- "Remove top-level /isis container";
- reference "0.2.1";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to IS-IS module";
- reference "0.2.0";
- }
-
- revision "2016-10-18" {
- description
- "Initial revision of IS-IS models.";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping isis-global-config {
- description
- "This grouping defines lobal configuration options for ISIS router.";
-
- // multi-instance
- leaf instance {
- type string;
- default 0;
- description
- "ISIS Instance.";
- }
-
- leaf-list net {
- type oc-isis-types:net;
- description
- "ISIS network entity title (NET). The first 8 bits are usually
- 49 (private AFI), next 16 bits represent area, next 48 bits represent
- system id and final 8 bits are set to 0.";
- reference
- "International Organization for Standardization, Information
- technology - Open Systems Interconnection-Network service
- Definition - ISO/ IEC 8348:2002.";
- }
-
- leaf maximum-area-addresses {
- type uint8;
- default 3;
- description
- "Maximum areas supported.";
- }
-
- leaf level-capability {
- type oc-isis-types:level-type;
- default "LEVEL_1_2";
- description
- "ISIS level capability(level-1, level-2,vlevel-1-2).";
- }
-
- leaf max-ecmp-paths {
- type uint8;
- description
- "ISIS max-paths count.";
- }
-
- leaf poi-tlv {
- type boolean;
- default false;
- description
- "ISIS purge TLV. When set to true, a TLV is added to purges to record
- the system ID of the IS generating the purge.";
- reference "RFC6232: Purge Originator Identification TLV for IS-IS. TLV 13.";
- }
-
- leaf iid-tlv {
- type boolean;
- default false;
- description
- "ISIS Instance Identifier TLV. When set to trues, the IID-TLV identifies
- the unique instance as well as the topology/topologies to which the
- PDU applies.";
- reference "RFC6822: IS-IS Multi-Instance. TLV 7";
- }
-
- leaf fast-flooding {
- type boolean;
- default true;
- description
- "When set to true, IS will always flood the LSP that triggered an SPF
- before the router actually runs the SPF computation.";
- }
- }
-
- grouping admin-config {
- description
- "Re-usable grouping to enable or disable a particular IS-IS feature.";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "When set to true, the functionality within which this leaf is
- defined is enabled, when set to false it is explicitly disabled.";
- }
- }
-
- grouping isis-bfd-config {
- description
- "This grouping defines Bidirectionl-Forwarding-Detection
- configuration.";
-
- //There is also BFD state under adjacency
- leaf bfd-tlv {
- type boolean;
- description
- "When set to true, BFD TLV is used. This enables support for the IS-IS
- BFD TLV options, which specify that a BFD session must be established
- before an IS-IS adjacency can transition to the established state.
- This option should be enabled on all IS-IS neighbors on a shared
- interface.";
- reference "RFC6213. TLV 148";
- }
- reference "RFC5880: Bidirectional Forwarding Detection (BFD).";
- }
-
- grouping isis-authentication-check-config {
- description
- "This grouping defines ISIS authentication check.";
-
- leaf authentication-check {
- type boolean;
- default true;
- description
- "When set to true, reject all ISIS protocol PDUs that either have a mismatch
- in authentication-type or authentication-key.";
- }
- }
-
- grouping isis-metric-style-config {
- description
- "This grouping defines ISIS metric style.";
-
- leaf metric-style {
- type oc-isis-types:metric-style;
- description
- "ISIS metric style types(narrow, wide).";
- }
- }
-
- grouping authentication-key-config {
- description
- "This grouping defines authentication key configuration.";
-
- leaf auth-password {
- type oc-types:routing-password;
- description
- "Authentication key string.";
- }
- }
-
- grouping keychain-base-group {
- description
- "This grouping defines keychain configuration.";
-
- container keychain {
- description
- "This container defines keychain parameters.";
-
- // TODO(robjs): Import keychain parameters following merge of the auth
- // models.
- //uses oc-keychain:keychain-common-base;
- //uses oc-keychain:tolerance-base;
- //uses oc-keychain:keychain-key-base;
- }
- }
-
- grouping isis-authentication-config {
- description
- "This grouping defines ISIS authentication configuration.";
-
- // TODO(robjs): Add authentication following merge of auth modules.
- //leaf auth-type {
- // type oc-auth-types:auth-type;
- // description
- // "ISIS authentication type (key, key-chain).";
- //}
-
- leaf csnp-authentication {
- type boolean;
- default false;
- description
- "Enable or disable for IS-IS CSNPs.";
- }
-
- leaf psnp-authentication {
- type boolean;
- default false;
- description
- "Enable or disable authentication for IS-IS PSNPs.";
- }
-
- leaf lsp-authentication {
- type boolean;
- default false;
- description
- "Enable or disable authentication for IS-IS LSPs.";
- }
- }
-
- grouping isis-authentication-group {
- description
- "This grouping defines ISIS authentication.";
-
- container config {
- description
- "This container defines ISIS authentication configuration.";
-
- uses isis-authentication-config;
- }
-
- container state {
- config false;
- description
- "This container defines ISIS authentication state.";
-
- uses isis-authentication-config;
- }
-
- container key {
- description
- "This container defines ISIS authentication key";
- container config {
- description
- "This container defines ISIS authentication key configuration.";
-
- uses authentication-key-group-config {
- // TODO(aashaikh): Add auth-type conditions after merge of
- // auth models.
- // when "../auth-type = 'KEY'";
- }
- }
-
- container state {
- config false;
- description
- "This container defines ISIS authentication key state.";
-
- uses authentication-key-group-config {
- // TODO(aashaikh): Add auth-type conditions after merge of
- // auth models.
- // when "../auth-type = 'KEY'";
- }
- }
- }
-
- uses keychain-base-group {
- // TODO(aashaikh): Add auth-type conditions after merge of
- // auth models.
- // when "../auth-type = 'KEY_CHAIN'";
- }
- }
-
- grouping isis-hello-authentication-config {
- description
- "Configuration options for IS-IS hello authentication.";
-
- leaf hello-authentication {
- type boolean;
- default false;
- description
- "Enabled or disable ISIS Hello authentication.";
- }
-
- // TODO(robjs): Add hello-auth-type following merge of auth models.
- //leaf hello-auth-type {
- // type oc-auth-types:auth-type;
- // description
- // "ISIS authentication type (key, key-chain).";
- //}
- }
-
- grouping isis-hello-authentication-group {
- description
- "This grouping defines ISIS hello-authentication.";
-
- container config {
- description
- "This container defines ISIS authentication configuration.";
-
- uses isis-hello-authentication-config;
- }
-
- container state {
- config false;
- description
- "This container defines ISIS authentication state.";
-
- uses isis-hello-authentication-config;
- }
-
- container key {
- description
- "This container defines ISIS authentication key";
-
- container config {
- description
- "This container defines ISIS authentication key configuration.";
-
- uses authentication-key-group-config {
- // TODO(aashaikh): Add auth-type conditions after merge of
- // auth models.
- // when "../auth-type = 'KEY'";
- }
- }
-
- container state {
- config false;
- description
- "This container defines ISIS authentication key state.";
-
- uses authentication-key-group-config {
- // TODO(aashaikh): Add auth-type conditions after merge of
- // auth models.
- // when "../auth-type = 'KEY'";
- }
- }
- }
-
- uses keychain-base-group {
- // TODO(aashaikh): Add auth-type conditions after merge of
- // auth models.
- // when "../auth-type = 'KEY_CHAIN'";
- }
- }
-
- grouping isis-ldp-igp-config {
- description
- "This grouping defines ISIS/LDP Synchronization configuration.";
-
- leaf enabled {
- type boolean;
- default true;
- description
- "When set to true, rely on IGP/LDP synchronization. IGP cost for
- link is maintained at max until LDP adjacencies are established ";
- reference "RFC5443: LDP IGP Synchronization.";
- }
-
- leaf post-session-up-delay {
- type uint16;
- units seconds;
- description
- "Specifies a delay, expressed in units of seconds,
- between the LDP session to the IGP neighbor being established, and
- it being considered synchronized by the IGP.";
- }
- }
-
- grouping isis-te-config {
- description
- "This grouping defines ISIS Traffic Engineering configuration.";
-
- leaf ipv4-router-id {
- type inet:ipv4-address-no-zone;
- description
- "IPv4 MPLS Traffic Engineering Router-ID.";
- }
-
- leaf ipv6-router-id {
- type inet:ipv6-address-no-zone;
- description
- "IPv6 MPLS Traffic Engineering Router-ID.";
- }
- }
-
- grouping isis-reference-bandwidth-config {
- description
- "This grouping defines ISIS Reference Bandwidth Configuration.";
-
- leaf reference-bandwidth {
- type uint32;
- description
- "ISIS Reference Bandwidth value";
- }
- }
-
- grouping isis-overload-bit-set-config {
- description
- "This grouping defines ISIS Overload Bit.";
-
- leaf set-bit {
- type boolean;
- default false;
- description
- "When set to true, IS-IS overload bit is set.";
- }
-
- leaf set-bit-on-boot {
- type boolean;
- default false;
- description
- "When set to true, the IS-IS overload bit is set on system boot.";
- }
-
- leaf advertise-high-metric {
- type boolean;
- default false;
- description
- "When set to true, the local IS advertises links with the highest
- available metric regardless of their configured metric. The metric
- value is based on the metric style - if wide metrics are utilised
- the metric is advertised as 16777214, otherwise they are advertised
- with a value of 63.";
- }
- }
-
- grouping isis-overload-bit-reset-config {
- description
- "This grouping defines ISIS Overload Bit Reset Triggers";
-
- leaf reset-trigger {
- type identityref {
- base oc-isis-types:OVERLOAD_RESET_TRIGGER_TYPE;
- }
- description
- "In the case that the system sets the overload bit on start, the
- system should reset the bit (i.e., clear the overload bit) upon
- the specified trigger.";
- }
-
- leaf delay {
- type uint16;
- units seconds;
- description
- "If a reset trigger is specified, the system should delay resetting
- the overload bit for the specified number of seconds after the
- trigger occurs.";
- }
- }
-
- grouping isis-attached-bit-config {
- description
- "This grouping defines ISIS Attached Bit";
-
- leaf ignore-bit {
- type boolean;
- default false;
- description
- "When set to true, if the attached bit is set on an incoming Level 1
- IS-IS, the local system ignores it. In this case the local system
- does not set a default route to the L1L2 router advertising the PDU
- with the attached bit set.";
- }
-
- leaf suppress-bit {
- type boolean;
- default false;
- description
- "When set to true, if the local IS acts as a L1L2 router, then the
- attached bit is not advertised in locally generated PDUs.";
- }
- }
-
- grouping overload-bit-group {
- description
- "This grouping defines ISIS Overload Bit.";
-
- container config {
- description
- "This container defines ISIS Overload Bit configuration.";
-
- uses isis-overload-bit-set-config;
- }
-
- container state {
- config false;
- description
- "This container defines state for ISIS Overload Bit.";
-
- uses isis-overload-bit-set-config;
- }
-
- container reset-triggers {
- description
- "This container defines state for ISIS Overload Bit reset triggers";
-
- list reset-trigger {
- key "reset-trigger";
-
- description
- "This list describes ISIS Overload reset trigger reasons.";
-
- leaf reset-trigger {
- type leafref {
- path "../config/reset-trigger";
- }
- description
- "Reference to the reset trigger reason";
- }
-
- container config {
- description
- "This container defines ISIS Overload Bit reset trigger
- configuration.";
-
- uses isis-overload-bit-reset-config;
- }
-
- container state {
- config false;
- description
- "This container defines state for ISIS Overload Bit reset
- triggers.";
-
- uses isis-overload-bit-reset-config;
- }
- }
- }
- }
-
-
- grouping isis-base-level-config {
- description
- "This grouping defines ISIS Level configuration.";
-
- leaf level-number {
- type oc-isis-types:level-number;
- description
- "ISIS level number (level-1, level-2).";
- }
- }
-
- grouping isis-interface-level-config {
- description
- "This grouping defines ISIS Interface Level configuration.";
-
- leaf level-number {
- type oc-isis-types:level-number;
- description
- "ISIS level number(level-1, level-2).";
- }
-
- leaf passive {
- type boolean;
- default false;
- description
- "ISIS passive interface admin enable/disable function.";
- }
-
- leaf priority {
- type uint8 {
- range "0 .. 127";
- }
- description
- "ISIS neighbor priority(LAN hello PDU only).";
- }
- }
-
- grouping isis-hello-timers-config {
- description
- "This grouping defines ISIS hello timers configuration.";
-
- leaf hello-interval {
- type uint32;
- description
- "ISIS hello-interval value.";
- }
-
- leaf hello-multiplier {
- type uint8;
- description
- "ISIS hello-multiplier value.";
- }
- }
-
- grouping isis-interface-config {
- description
- "This grouping defines ISIS interface configuration.";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Interface for which ISIS configuration is to be applied.";
- }
-
- leaf passive {
- type boolean;
- default false;
- description
- "When set to true, the referenced interface is a passive interface
- such that it is not eligible to establish adjacencies with other
- systems, but is advertised into the IS-IS topology.";
- }
-
- leaf hello-padding {
- type oc-isis-types:hello-padding-type;
- description
- "This leaf controls padding type for IS-IS Hello PDUs.";
- }
-
- leaf circuit-type {
- type oc-isis-types:circuit-type;
- description
- "ISIS circuit type (p2p, broadcast).";
- }
- }
-
- grouping isis-adaptive-timers-state {
- description
- "This grouping defines ISIS adaptive timers state";
-
- leaf adaptive-timer {
- type oc-isis-types:adaptive-timer-type;
- description
- "ISIS adaptive timer types (linear, exponential).";
- }
- }
-
- grouping isis-lsp-generation-timers-config {
- description
- "This grouping defines ISIS LSP Generation timers configuration";
-
- leaf lsp-max-wait-interval {
- type uint64;
- units milliseconds;
- description
- "Time interval in milliseconds that specifies max interval between
- two consecutive occurrences of an LSP being generated.";
- }
-
- leaf lsp-first-wait-interval {
- type uint64;
- units milliseconds;
- description
- "Time interval in milliseconds that specifies the first LSP generation
- delay.";
- }
-
- leaf lsp-second-wait-interval {
- type uint64;
- units milliseconds;
- description
- "Time interval in milliseconds that specifies the millisecond LSP
- generation delay.";
- }
- }
-
- grouping isis-lsp-timers-config {
- description
- "This grouping defines ISIS LSP timers configuration";
-
- leaf lsp-lifetime-interval {
- type uint16;
- units seconds;
- default 1200;
- description
- "Time interval in seconds that specifies how long an LSP remains in
- LSDB without being refreshed.";
- }
-
- leaf lsp-refresh-interval {
- type uint16;
- units seconds;
- description
- "Time interval in seconds that specifies how often route topology
- that a device originates is transmitted in LSPs.";
- }
- }
-
- grouping isis-spf-timers-config {
- description
- "This grouping defines ISIS SPF timers configuration.";
-
- leaf spf-hold-interval {
- type uint64;
- units milliseconds;
- default 5000;
- description
- "SPF Hold Down time interval in milliseconds.";
- }
-
- leaf spf-first-interval {
- type uint64;
- units milliseconds;
- description
- "Time interval in milliseconds between the
- detection of topology change and when the SPF algorithm runs.";
- }
- leaf spf-second-interval {
- type uint64;
- units milliseconds;
- description
- "Time interval in milliseconds between the first and second
- SPF calculation.";
- }
- }
-
- grouping isis-interface-timers-config {
- description
- "This grouping defines ISIS interface timers configuration.";
-
- leaf csnp-interval {
- type uint16;
- units seconds;
- description
- "The interval, specified in seconds, at which periodic CSNP packets
- should be transmitted by the local IS.";
- }
-
- leaf lsp-pacing-interval {
- type uint64;
- units milliseconds;
- description
- "The interval interval in milliseconds between the
- detection of topology change and when the SPF algorithm runs.";
- }
- }
-
- grouping isis-transport-config {
- description
- "This grouping defines configuration parameters relating to the
- transport protocol used by the ISIS.";
-
- leaf lsp-mtu-size {
- type uint16;
- description
- "The maximum size in bytes of an IS-IS Link state PDU.";
- }
- }
-
- grouping isis-graceful-restart-config {
- description
- "This grouping defines ISIS graceful restart configuration.";
-
- leaf helper-only {
- type boolean;
- description
- "Enable or disable the IS-IS graceful restart helper function. When
- this leaf is set, the local system does not utilise the IS-IS
- graceful restart procedures during its own restart, but supports
- retaining forwarding information during a remote speaker's restart.";
- }
- reference "RFC 5306: Restart Signaling for IS-IS.";
- }
-
- // configuration context containers
- grouping inter-level-propagation-policies-structural {
- description
- "Propagate prefixes between IS-IS levels.";
-
- container inter-level-propagation-policies {
- description
- "Policies to propagate prefixes between IS-IS levels.";
-
- container level1-to-level2 {
- description
- "Policies relating to prefixes to be propagated from
- Level 1 to Level 2.";
-
- container config {
- description
- "Configuration parameters relating to the propagation
- of prefixes from IS-IS Level 1 to Level 2.";
-
- uses inter-level-propagation-policy-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the
- propagation of prefixes from IS-IS Level 1 to Level 2.";
-
- uses inter-level-propagation-policy-config;
- }
-
- }
-
- container level2-to-level1 {
- description
- "Policies relating to prefixes to be propagated from
- Level2 to Level 1.";
-
- container config {
- description
- "Configuration parameters relating to the propagation
- of prefixes from IS-IS Level 2 to Level 1.";
-
- uses inter-level-propagation-policy-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the propagation
- of prefixes from IS-IS Level 2 to Level 1.";
-
- uses inter-level-propagation-policy-config;
- }
- }
- }
- }
-
- grouping inter-level-propagation-policy-config {
- description
- "Policy governing the propagation of prefixes between levels.";
-
- uses oc-rpol:apply-policy-import-config;
- }
-
- grouping authentication-key-group-config {
- description
- "This grouping defines ISIS authentication key configuration.";
-
- uses authentication-key-config;
-
- // TODO(robjs): Add crypto-algorithm after merge of authentication modules.
- //leaf crypto-algorithm {
- // type identityref {
- // base oc-auth-types:CRYPTO_TYPE;
- // }
- // description
- // "Authentication key cryptographic algorithm to be used for key encryption.";
- //}
- }
-
- grouping isis-global-base {
- description
- "This grouping describes ISIS Global router.";
-
- container config {
- description
- "This container defines ISIS global configuration router.";
-
- uses isis-authentication-check-config;
- uses isis-global-config;
- }
-
- container state {
- config false;
- description
- "This container defines state for ISIS global router.";
-
- uses isis-authentication-check-config;
- uses isis-global-config;
- }
-
- container lsp-bit {
- description
- "This container defines ISIS LSP Operational Bits.";
-
- container overload-bit {
- description
- "This container defines Overload Bit configuration.";
- uses overload-bit-group;
- }
-
- container attached-bit {
- description
- "This container defines Attached Bit.";
-
- container config {
- description
- "This container defines Attached Bit configuration.";
-
- uses isis-attached-bit-config;
- }
-
- container state {
- config false;
- description
- "This container defines state for Link State PDU Bit.";
-
- uses isis-attached-bit-config;
- }
- }
- }
-
- container reference-bandwidth {
- description
- "This container defines ISIS Reference Bandwidth.";
-
- container config {
- description
- "This container defines Reference Bandwidth configuration";
- uses isis-reference-bandwidth-config;
- }
-
- container state {
- config false;
- description
- "This container defines state for Reference Bandwidth.";
-
- uses isis-reference-bandwidth-config;
- }
- }
-
- container nsr {
- description
- "This container defines ISIS Non-Stop Routing.";
-
- container config {
- description
- "This container defines Non-Stop-Routing configuration.";
-
- uses admin-config;
- }
-
- container state {
- config false;
- description
- "This container defines state for Non-Stop-Routing";
-
- uses admin-config;
- }
- }
-
- container graceful-restart {
- description
- "This container defines ISIS Graceful Restart.";
-
- container config {
- description
- "This container defines ISIS graceful-restart configuration.";
-
- uses admin-config;
- uses isis-graceful-restart-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for ISIS graceful-restart.";
-
- uses admin-config;
- uses isis-graceful-restart-config;
- }
- }
-
- container timers {
- description
- "This container defines ISIS timers.";
-
- container config {
- description
- "This container defines ISIS global timers configuration.";
-
- uses isis-lsp-timers-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for ISIS global timers.";
-
- uses isis-lsp-timers-config;
- }
-
- container spf {
- description
- "This container defines ISIS SPF timer settings.";
-
- container config {
- description
- "This container defines ISIS SPF timers configuration.";
-
- uses isis-spf-timers-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for ISIS SPF timers.";
-
- uses isis-spf-timers-config;
- uses isis-adaptive-timers-state;
- }
- }
-
- container lsp-generation {
- description
- "This container defines ISIS LSP Generation.";
-
- container config {
- description
- "This container defines ISIS LSP Generation timers
- configuration.";
-
- uses isis-lsp-generation-timers-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for ISIS LSP Generation
- timers.";
-
- uses isis-lsp-generation-timers-config;
- uses isis-adaptive-timers-state;
- }
- }
- }
-
- container transport {
- description
- "This container defines ISIS transport.";
-
- container config {
- description
- "This container defines ISIS transport related configuration.";
-
- uses isis-transport-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for ISIS transport
- parameters.";
-
- uses isis-transport-config;
- }
- }
-
- container mpls {
- description
- "Configuration and operational state relating to MPLS-related
- features in IS-IS";
-
- container igp-ldp-sync {
- description
- "Configuration and operational state relating to synchronisation
- between the LDP and IS-IS";
-
- container config {
- description
- "This container defines ISIS/IGP configuration.";
-
- uses isis-ldp-igp-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for ISIS/LDP Sync.";
-
- uses isis-ldp-igp-config;
- }
- }
- }
-
- container igp-shortcuts {
- description
- "This container defines IGP shortcuts configuration and state
- information.";
-
- uses isis-shortcuts-afi-list;
- }
-
- container afi-safi {
- description
- "This container defines address-family specific configuration
- and state information.";
-
- uses isis-afi-safi-list;
- }
-
- uses oc-sr:sr-igp-top;
- }
-
- grouping isis-route-preference-config {
- description
- "This grouping defines ISIS route preference configuration";
-
- leaf external-route-preference {
- type uint8 {
- range "1..max";
- }
- description
- "Administrative Distance(preference) for external ISIS routes.";
- }
-
- leaf internal-route-preference {
- type uint8 {
- range "1..max";
- }
- description
- "Administrative Distance(preference) for internal ISIS routes.";
- }
- }
-
- grouping isis-interfaces {
- description
- "This grouping defines ISIS interfaces configured on local system.";
-
- list interface {
- key "interface-id";
-
- description
- "This list contains ISIS interfaces.";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "Reference to interface-id";
- }
-
- uses isis-interface-group;
- uses oc-if:interface-ref;
- }
- }
-
- grouping isis-interface-group {
- description
- "This grouping defines ISIS interfaces configured on local system.";
-
- container config {
- description
- "This container defines ISIS interface configuration.";
-
- uses admin-config;
- uses isis-interface-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for ISIS interfaces.";
-
- uses admin-config;
- uses isis-interface-config;
- }
-
- container circuit-counters {
- description
- "This container defines state information for ISIS circuit counters.";
-
- uses circuit-counters-structural;
- }
-
- container authentication {
- description
- "This container defines ISIS authentication.";
-
- uses isis-hello-authentication-group;
- }
-
- container afi-safi {
- description
- "This container defines address-family specific configuration
- and state information.";
-
- uses isis-if-global-afi-safi-list;
- }
-
- container levels {
- description
- "This container defines ISIS level specific configuration and
- state information.";
-
- uses isis-interface-levels;
- }
-
- container timers {
- description
- "This container describes ISIS interface timers configuration";
-
- container config {
- description
- "Configuration parameters relating to interface
- timers for IS-IS";
-
- uses isis-interface-timers-config;
- }
-
- container state {
- config false;
- description
- "This container defines state information for ISIS interface timers.";
-
- uses isis-interface-timers-config;
- }
- }
-
- container bfd {
- //TODO(bogdanov): Integrate BFD model/module
- description
- "This container defines BFD.";
-
- container config {
- description
- "This container defines BFD configuration parameters.";
-
- uses isis-bfd-config;
- }
-
- container state {
- config false;
- description
- "This container defines BFD state information.";
-
- uses isis-bfd-config;
- }
- }
- }
-
- grouping isis-levels {
- description
- "This grouping defines global ISIS Levels.";
-
- list level {
- key "level-number";
-
- description
- "Configuration and operational state parameters related to a
- particular level within the IS-IS protocol instance";
-
- leaf level-number {
- type leafref {
- path "../config/level-number";
- }
- description
- "Reference to ISIS level-number.";
- }
-
- uses isis-level-group;
- }
- }
-
- grouping isis-interface-levels {
- description
- "This grouping defines ISIS interface Levels.";
-
- list level {
- key "level-number";
- description
- "Configuration and operational state parameters related to a
- particular level on an IS-IS enabled interface.";
-
- leaf level-number {
- type leafref {
- path "../config/level-number";
- }
- description
- "Reference to ISIS level-number.";
- }
-
- uses isis-interface-level-group;
- }
- }
-
- grouping isis-level-group {
- description
- "This grouping defines ISIS level configuration and state
- information.";
-
- container config {
- description
- "This container defines ISIS level based configuration.";
-
- uses admin-config;
- uses isis-base-level-config;
- uses isis-metric-style-config;
- uses isis-authentication-check-config;
- }
-
- container state {
- config false;
- description
- "This container defines ISIS level state information.";
-
- uses admin-config;
- uses isis-base-level-config;
- uses isis-metric-style-config;
- uses isis-authentication-check-config;
- }
-
- container system-level-counters {
- description
- "This container defines ISIS system level counters.";
-
- uses system-level-counters-structural;
- }
-
- container link-state-database {
- config false;
- description
- "This container defines ISIS LSDB.";
-
- list lsp {
- key "lsp-id";
- description
- "This list describes LSPs in the LSDB.";
- uses lsp-state;
- }
- }
-
- container traffic-engineering {
- description
- "This container defines ISIS TE.";
-
- container config {
- description
- "This container defines ISIS TE configuration.";
-
- uses admin-config;
- uses isis-te-config;
- }
-
- container state {
- config false;
- description
- "This container defines ISIS TE state information.";
-
- uses admin-config;
- uses isis-te-config;
- }
- }
-
- container route-preference {
- description
- "This container defines Administrative Distance (or preference)
- assigned to ISIS routes (level1 internal, level2 internal, level1
- external, level2 external).";
-
- container config {
- description
- "This container defines route preference configuration.";
- uses isis-route-preference-config;
- }
-
- container state {
- config false;
- description
- "This container defines ISIS route preference state information.";
- uses isis-route-preference-config;
- }
- }
-
- container authentication {
- description
- "This container defines ISIS authentication.";
- uses isis-authentication-group;
- }
-
- }
-
- grouping isis-interface-level-group {
- description
- "This grouping defines ISIS interface level.";
-
- container config {
- description
- "This container defines interface ISIS level configuration.";
-
- uses isis-interface-level-config;
- uses admin-config;
- }
-
- container state {
- config false;
- description
- "This container defines interface ISIS level state information.";
-
- uses isis-interface-level-config;
- uses admin-config;
- }
-
- container packet-counters {
- description
- "This container defines ISIS interface packet counters.";
-
- uses packet-counters-structural;
- }
-
- container adjacencies {
- config false;
- description
- "This container defines ISIS adjacencies.";
-
- list adjacency {
- key "system-id";
-
- description
- "List of the local system's IS-IS adjacencies.";
-
- leaf system-id {
- type leafref {
- path "../state/system-id";
- }
- description
- "Reference to the IS neighbor.";
- }
-
- container state {
- description
- "Operational state relating to the IS-IS adjacency with the
- remote system";
-
- uses adjacency-state;
- }
- }
- }
-
- container timers {
- description
- "This container defines ISIS timers.";
-
- container config {
- description
- "This container defines ISIS interface hello-timers configuration.";
-
- uses isis-hello-timers-config;
- }
-
- container state {
- config false;
- description
- "This container defines ISIS interface hello-timers state.";
-
- uses isis-hello-timers-config;
- }
- }
-
- container afi-safi {
- description
- "This container defines address-family specific configuration
- and state information.";
-
- uses isis-if-afi-safi-list;
- }
-
- container hello-authentication {
- description
- "This container defines ISIS authentication.";
-
- uses isis-hello-authentication-group;
- }
- }
-
-
- grouping isis-top {
- description
- "This grouping define top-level ISIS model data.";
-
- container isis {
- description
- "This container defines top-level ISIS configuration and state
- information.";
-
- container global {
- description
- "This container defines global ISIS configuration and state
- information.";
-
- uses isis-global-base;
- uses inter-level-propagation-policies-structural;
- }
-
- container levels {
- description
- "This container defines ISIS level configuration and state
- information.";
- uses isis-levels;
- }
-
- container interfaces {
- description
- "This container defines global ISIS interface configuration and
- state information.";
- uses isis-interfaces;
- }
- }
- }
-
- grouping adjacency-state {
- description
- "This grouping defines ISIS adjacency.";
-
- leaf system-id {
- type oc-isis-types:system-id;
- description
- "ISIS neighbor system-id.";
- }
-
- leaf neighbor-ipv4-address {
- type inet:ipv4-address-no-zone;
- description
- "ISIS Neighbor IPv4 address.";
- }
-
- leaf neighbor-ipv6-address {
- type inet:ipv6-address-no-zone;
- description
- "ISIS Neighbor IPv6 address.";
- }
-
- leaf neighbor-snpa {
- type oc-isis-types:snpa;
- description
- "ISIS neighbor SNPA.";
- }
-
- leaf local-extended-circuit-id {
- type oc-isis-types:extended-circuit-id;
- description
- "Local extended circuit ID.";
- }
- leaf neighbor-extended-circuit-id {
- type oc-isis-types:extended-circuit-id;
- description
- "ISIS neighbor extended circuit ID.";
- }
-
- leaf priority {
- type uint8 {
- range "0..127";
- }
- description
- "Priority of the neighboring IS(LAN Hello only).";
- }
-
- leaf dis-system-id {
- type oc-isis-types:system-id;
- description
- "DIS System ID(LAN hello only).";
- }
-
- leaf neighbor-circuit-type {
- type oc-isis-types:level-type;
- description
- "Received ISIS circuit type (level-1, level-2, level-1-2).";
- }
-
- leaf adjacency-type {
- type oc-isis-types:level-type;
- description
- "Formed ISIS adjacency type(level-1, level-2, level-1-2).";
- }
-
- leaf adjacency-state {
- type oc-isis-types:isis-interface-adj-state;
- description
- "P2P 3-way ISIS adjacency state(up, down, init, failed).";
- reference "RFC4303. TLV 240.";
- }
-
- leaf remaining-hold-time {
- type uint16;
- units seconds;
- description
- "Holding time in seconds for adjacency. This value is based on received
- hello PDUs and the elapsed time since receipt.";
- }
-
- leaf up-time {
- type yang:timestamp;
- description
- "Adjacency up time.";
- }
-
- leaf multi-topology {
- type boolean;
- description
- "When set to true, ISIS multi-topology is supported.";
- reference "RFC5129. TLV 229.";
- }
-
- leaf-list topology {
- type identityref {
- base oc-isis-types:AFI_SAFI_TYPE;
- }
- description
- "ISIS topology type support(ipv4-unicast, ipv6-unicast,
- ipv4-multicast, ipv6-multicast).";
- }
-
- leaf restart-support {
- type boolean;
- description
- "When set to true, Graceful-restart signaling is supported.";
- }
-
- leaf restart-suppress {
- type boolean;
- description
- "When set to true, adjacency is not advertised. The SA bit is used by a
- starting router to request that its neighbor suppress advertisement of
- the adjacency to the starting router in the neighbor's LSPs.";
- }
-
- leaf restart-status {
- type boolean;
- description
- "When set to true, neighbor is being helped. The RR bit is used by a
- (re)starting router to signal to its neighbors that a (re)start is in
- progress.";
- }
-
- leaf-list area-address {
- type oc-isis-types:area-address;
- description
- "List of ISIS area-address(es).";
- }
-
- leaf-list nlpid {
- type enumeration {
- enum IPV4 {
- description
- "IPv4 Address family.";
- }
- enum IPV6 {
- description
- "IPv6 Address family.";
- }
- }
- description
- "Supported Protocol. IPv4 is defined as (0xcc)
- and IPv6 - (0x8e). ISIS reference is TLV 129.";
- }
-
- // TODO(bogdanov): update when BFD model is integrated.
- //leaf ipv4-bfd-status {
- //type oc-isis-types:bfd-state;
- //description
- // "IPv4 BFD session status.";
- //}
- //leaf ipv6-bfd-status {
- //type oc-isis-types:bfd-state;
- //description
- // "IPv4 BFD session status. ";
- //}
-
- }
-
- grouping packet-counters-generic-state {
- description
- "Operational state parameters relating to LSP packet counters.";
-
- leaf received {
- type yang:counter32;
- description
- "The number of the specified type of PDU received on the interface.";
- }
- leaf processed {
- type yang:counter32;
- description
- "The number of the specified type of PDU received on the interface
- that have been processed by the local system.";
- }
- leaf dropped {
- type yang:counter32;
- description
- "The number of the specified type of PDU received on the interface
- that have been dropped.";
- }
-
- leaf sent {
- type yang:counter32;
- description
- "The number of the specified type of PDU that have been sent by the
- local system on the interface.";
- }
-
- leaf retransmit {
- type yang:counter32;
- description
- "The number of the specified type of PDU that that have been
- retransmitted by the local system on the interface.";
- }
- }
-
- grouping packet-counters-structural {
- description
- "This grouping defines ISIS packet counter state.";
-
- container lsp {
- description
- "This container defines LSP packet counters.";
-
- container state {
- config false;
- description
- "This container defines LSP PDU counters.";
-
- uses packet-counters-generic-state;
- }
- }
-
- container iih {
- description
- "This container defines IIH packet counters.";
-
- container state {
- config false;
- description
- "Operational counters relating to IIH PDUs";
-
- uses packet-counters-generic-state;
- }
- }
-
- container ish {
- description
- "This container defines ISH packet counters.";
-
- container state {
- config false;
- description
- "Operational state relating to ISH PDUs.";
-
- uses packet-counters-generic-state;
- }
- }
-
- container esh {
- description
- "This container defines ESH packet counters.";
- container state {
- config false;
- description
- "Operational state relating to ESH PDUs";
-
- uses packet-counters-generic-state;
- }
- }
-
- container psnp {
- description
- "This container defines PSNP packet counters.";
-
- container state {
- config false;
- description
- "Packet counters relating to PSNPs.";
-
- uses packet-counters-generic-state;
- }
- }
-
- container csnp {
- description
- "Operational state parameters relating to CSNPs.";
-
- container state {
- config false;
- description
- "Packet counters relating to CSNPs.";
-
- uses packet-counters-generic-state;
- }
- }
-
- container unknown {
- description
- "Operational state parameters relating to IS-IS PDUs that are not
- otherwise classified - referred to as Unknown PDUs.";
-
- container state {
- config false;
- description
- "Packet counters relating to unknown PDUs.";
-
- uses packet-counters-generic-state;
- }
- }
- }
-
- grouping system-level-counters-state {
- description
- "IS-IS counters that are relevant to the system IS-IS context.";
-
- leaf corrupted-lsps {
- type yang:counter32;
- description
- "Number of corrupted in-memory LSPs detected. LSPs received from the
- wire with a bad checksum are silently dropped and not counted. LSPs
- received from the wire with parse errors are counted by lsp-errors. MIB
- Entry: SysCorrLSPs.";
- }
-
- leaf database-overloads {
- type yang:counter32;
- description
- "Number of times the database has become
- overloaded.
- MIB entry: SysLSPL(Level)DbaseOloads.";
- }
-
- leaf manual-address-drop-from-areas {
- type yang:counter32;
- description
- "Number of times a manual address has been dropped from area.
- MIB Entry: SysManAddrDropFromAreas.";
- }
-
- leaf exceed-max-seq-nums {
- type yang:counter32;
- description
- "The number of times the system has attempted to exceed the maximum
- sequence number. MIB Entry: SysAttmptToExMaxSeqNums.";
- }
- leaf seq-num-skips {
- type yang:counter32;
- description
- "Number of times a sequence number skip has occurred. MIB Entry:
- SysSeqNumSkips.";
- }
-
- leaf own-lsp-purges {
- type yang:counter32;
- description
- "Number of times a zero-aged copy of the system's
- own LSP is received from some other node.
- MIB Entry: isisSysOwnLSPPurges.";
- }
-
- leaf id-len-mismatch {
- type yang:counter32;
- description
- "Number of times a PDU is received with a different value for ID field
- length from that of the receiving system. MIB Entry:
- isisSysIDFieldLenMismatches.";
- }
-
- leaf part-changes {
- type yang:counter32;
- description
- "The number of partition changes detected. MIB Entry: SysPartChanges.";
- }
-
- leaf max-area-address-mismatches {
- type yang:counter32;
- description
- "Number of times a PDU is received with a different value for
- MaximumAreaAddresses from that of the receiving system. MIB Entry:
- SysMaxAreaAddrMismatches.";
- }
-
- leaf auth-fails {
- type yang:counter32;
- description
- "The number of authentication key failures.
- MIB Entry: SysAuthFails.";
- }
-
- leaf spf-runs {
- type yang:counter32;
- description
- "The number of times SPF was ran at this level.";
- }
-
- leaf auth-type-fails {
- type yang:counter32;
- description
- "The number of authentication type mismatches.";
- }
-
- leaf lsp-errors {
- type yang:counter32;
- description
- "The number of received LSPs with errors.";
- }
- }
-
- grouping system-level-counters-structural {
- description
- "This grouping defines system level counters.";
-
- container state {
- config false;
- description
- "The container defines a list of system counters for the IS.";
-
- uses system-level-counters-state;
- }
- }
-
- grouping circuit-counters-state {
- description
- "Operational state parameters relating to counters specific to one
- interface or circuit.";
-
- leaf adj-changes {
- type yang:counter32;
- description
- "Number of times an adjacency state change has occurred on this circuit.
- MIB Entry: CircAdjChanges.";
- }
-
- leaf init-fails {
- type yang:counter32;
- description
- "Number of times initialization of this circuit has failed. This counts
- events such as PPP NCP failures. MIB Entry: CircInitFails.";
- }
-
- leaf rejected-adj {
- type yang:counter32;
- description
- "Number of times an adjacency has been rejected on this circuit. MIB
- Entry: CircRejAdjs.";
- }
-
- leaf id-field-len-mismatches {
- type yang:counter32;
- description
- "Number of times an IS-IS control PDU with an ID field length different
- from that for this system has been received.
- MIB Entry: CircIDFieldLenMismatches.";
- }
-
- leaf max-area-address-mismatches {
- type yang:counter32;
- description
- "Number of times an IS-IS control PDU with a max area address field
- different from that for this system has been received. MIB Entry:
- CircMaxAreaAddrMismatches.";
- }
-
- leaf auth-type-fails {
- type yang:counter32;
- description
- "Number of times an IS-IS control PDU with an auth type field different
- from that for this system has been received. MIB Entry:
- CircAuthTypeFails.";
- }
-
- leaf auth-fails {
- type yang:counter32;
- description
- "Number of times an IS-IS control PDU with the correct auth type has
- failed to pass authentication validation. MIB Entry: CircAuthFails.";
- }
-
- leaf lan-dis-changes {
- type yang:counter32;
- description
- "Number of times the Designated IS has changed on this circuit at this
- level. If the circuit is point to point, this count is zero. MIB Entry:
- CircLANDesISChanges.";
- }
-
- leaf adj-number {
- type uint32;
- description
- "Number of adjacencies on this circuit.
- MIB Entry: CircNumAdj.";
- }
- }
-
- grouping circuit-counters-structural {
- description
- "This grouping defines circuit counters.";
-
- container state {
- config false;
- description
- "The container defines a list of counters for IS circuit.";
-
- uses circuit-counters-state;
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-lacp.yang b/src/plugins/yang/openconfig/openconfig-lacp.yang
deleted file mode 100644
index e49dcb6..0000000
--- a/src/plugins/yang/openconfig/openconfig-lacp.yang
+++ /dev/null
@@ -1,461 +0,0 @@
-module openconfig-lacp {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/lacp";
-
- prefix "oc-lacp";
-
- // import some basic types
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-extensions { prefix oc-ext; }
-
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module describes configuration and operational state
- data for Link Aggregation Control Protocol (LACP) for
- managing aggregate interfaces. It works in conjunction with
- the OpenConfig interfaces and aggregate interfaces models.";
-
- oc-ext:openconfig-version "1.1.0";
-
- revision "2017-05-05" {
- description
- "Add member local and remote port num";
- reference "1.1.0";
- }
-
- revision "2016-05-26" {
- description
- "OpenConfig public release";
- reference "1.0.2";
- }
-
-
- // typedef statements
-
- typedef lacp-activity-type {
- type enumeration {
- enum ACTIVE {
- description
- "Interface is an active member, i.e., will detect and
- maintain aggregates";
- }
- enum PASSIVE {
- description
- "Interface is a passive member, i.e., it participates
- with an active partner";
- }
- }
- description
- "Describes the LACP membership type, active or passive, of the
- interface in the aggregate";
- reference "IEEE 802.1AX-2008";
- }
-
- typedef lacp-timeout-type {
- type enumeration {
- enum LONG {
- description
- "Participant wishes to use long timeouts to detect
- status of the aggregate, i.e., will expect less frequent
- transmissions. Long timeout is 90 seconds.";
- }
- enum SHORT {
- description
- "Participant wishes to use short timeouts, i.e., expects
- frequent transmissions to aggressively detect status
- changes. Short timeout is 3 seconds.";
- }
- }
- description
- "Type of timeout used, short or long, by LACP participants";
- reference "IEEE 802.1AX-2008";
- }
-
- typedef lacp-synchronization-type {
- type enumeration {
- enum IN_SYNC {
- description
- "Participant is in sync with the system id and key
- transmitted";
- }
- enum OUT_SYNC {
- description
- "Participant is not in sync with the system id and key
- transmitted";
- }
- }
- description
- "Indicates LACP synchronization state of participant";
- reference "IEEE 802.1AX-2008";
- }
-
- typedef lacp-period-type {
- type enumeration {
- enum FAST {
- description "Send LACP packets every second";
- }
- enum SLOW {
- description "Send LACP packets every 30 seconds";
- }
- }
- description
- "Defines the period options for the time between sending
- LACP messages";
- reference "IEEE 802.3ad";
- }
-
- // grouping statements
-
-
- grouping aggregation-lacp-members-config {
- description
- "Configuration data for lacp member interfaces";
-
- //currently a placeholder -- the list of member interfaces
- //and their status is considered opstate only
- }
-
- grouping aggregation-lacp-members-state {
- description
- "Operational status data for the member interfaces";
-
- leaf interface {
- type oc-if:base-interface-ref;
- description
- "Reference to interface member of the LACP aggregate";
- }
-
- leaf activity {
- type lacp-activity-type;
- description "Indicates participant is active or passive";
- }
-
- leaf timeout {
- type lacp-timeout-type;
- description
- "The timeout type (short or long) used by the
- participant";
- }
-
- leaf synchronization {
- type lacp-synchronization-type;
- description
- "Indicates whether the participant is in-sync or
- out-of-sync";
- }
-
- leaf aggregatable {
- type boolean;
- description
- "A true value indicates that the participant will allow
- the link to be used as part of the aggregate. A false
- value indicates the link should be used as an individual
- link";
- }
-
- leaf collecting {
- type boolean;
- description
- "If true, the participant is collecting incoming frames
- on the link, otherwise false";
- }
-
- leaf distributing {
- type boolean;
- description
- "When true, the participant is distributing outgoing
- frames; when false, distribution is disabled";
- }
-
- leaf system-id {
- type oc-yang:mac-address;
- description
- "MAC address that defines the local system ID for the
- aggregate interface";
- }
-
- leaf oper-key {
- type uint16;
- description
- "Current operational value of the key for the aggregate
- interface";
- }
-
- leaf partner-id {
- type oc-yang:mac-address;
- description
- "MAC address representing the protocol partner's interface
- system ID";
- }
-
- leaf partner-key {
- type uint16;
- description
- "Operational value of the protocol partner's key";
- }
-
- leaf port-num {
- type uint16;
- description
- "Port number of the local (actor) aggregation member";
- }
-
- leaf partner-port-num {
- type uint16;
- description
- "Port number of the partner (remote) port for this member
- port";
- }
- }
-
-grouping aggregation-lacp-members-statistics {
- description
- "LACP packet statistics for the member interfaces";
-
- container counters {
- description
- "LACP protocol counters";
-
- leaf lacp-in-pkts {
- type oc-yang:counter64;
- description
- "Number of LACPDUs received";
- }
-
- leaf lacp-out-pkts {
- type oc-yang:counter64;
- description
- "Number of LACPDUs transmitted";
- }
-
- leaf lacp-rx-errors {
- type oc-yang:counter64;
- description
- "Number of LACPDU receive packet errors";
- }
-
- leaf lacp-tx-errors {
- type oc-yang:counter64;
- description
- "Number of LACPDU transmit packet errors";
- }
-
- leaf lacp-unknown-errors {
- type oc-yang:counter64;
- description
- "Number of LACPDU unknown packet errors";
- }
-
- leaf lacp-errors {
- type oc-yang:counter64;
- description
- "Number of LACPDU illegal packet errors";
- }
- }
- }
-
- grouping aggregation-lacp-members-top {
- description
- "Top-level grouping for aggregate members list";
-
- container members {
- config false;
- description
- "Enclosing container for the list of members interfaces of
- the aggregate. This list is considered operational state
- only so is labeled config false and has no config container";
-
- list member {
- key "interface";
- description
- "List of member interfaces and their associated status for
- a LACP-controlled aggregate interface. Member list is not
- configurable here -- each interface indicates items
- its participation in the LAG.";
-
- leaf interface {
- type leafref {
- path "../state/interface";
- }
- description
- "Reference to aggregate member interface";
- }
-
-
- container state {
-
- config false;
-
- description
- "Operational state data for aggregate members";
-
- uses aggregation-lacp-members-state;
- uses aggregation-lacp-members-statistics;
- }
- }
- }
- }
-
- grouping lacp-interfaces-config {
- description
- "Configuration data for each LACP-enabled interface";
-
- leaf name {
- type oc-if:base-interface-ref;
- description
- "Reference to the interface on which LACP should be
- configured. The type of the target interface must be
- ieee8023adLag";
- }
-
- leaf interval {
- type lacp-period-type;
- default SLOW;
- description
- "Set the period between LACP messages -- uses
- the lacp-period-type enumeration.";
- }
-
- leaf lacp-mode {
- type lacp-activity-type;
- default ACTIVE;
- description
- "ACTIVE is to initiate the transmission of LACP packets.
- PASSIVE is to wait for peer to initiate the transmission of
- LACP packets.";
- //TODO:some implementations configure the LACP mode on each
- //member interface rather than on the LAG interface. There
- //may be use cases for this identified at a later time.
- }
-
- leaf system-id-mac {
- type oc-yang:mac-address;
- description
- "The MAC address portion of the node's System ID. This is
- combined with the system priority to construct the 8-octet
- system-id";
- }
-
- uses aggregation-lacp-global-config;
- }
-
- grouping lacp-interfaces-state {
- description
- "Operational state data for each LACP-enabled interface";
- }
-
- grouping lacp-interfaces-top {
- description
- "Top-level grouping for LACP-enabled interfaces";
-
- container interfaces {
- description
- "Enclosing container for the list of LACP-enabled
- interfaces";
-
- list interface {
- key "name";
- description
- "List of aggregate interfaces managed by LACP";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for each LACP aggregate interface";
-
- uses lacp-interfaces-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for each LACP aggregate
- interface";
-
- uses lacp-interfaces-config;
- uses lacp-interfaces-state;
- }
-
- uses aggregation-lacp-members-top;
- }
- }
- }
-
- grouping aggregation-lacp-global-config {
- description
- "Configuration data for LACP aggregate interfaces";
-
-
- leaf system-priority {
- type uint16;
- description
- "Sytem priority used by the node on this LAG interface.
- Lower value is higher priority for determining which node
- is the controlling system.";
- }
- }
-
- grouping aggregation-lacp-global-state {
- description
- "Operational data for LACP aggregate interfaces";
-
- }
-
- grouping aggregation-lacp-top {
- description
- "Top level configuration and state variable containers for
- LACP data";
-
- container lacp {
- description
- "Configuration and operational state data for LACP protocol
- operation on the aggregate interface";
-
- container config {
- description
- "Configuration data for LACP";
-
- uses aggregation-lacp-global-config;
- }
-
- container state {
-
- config false;
- description
- "Operational state data for LACP";
-
- uses aggregation-lacp-global-config;
- uses aggregation-lacp-global-state;
- }
- uses lacp-interfaces-top;
- }
- }
-
- // data definition statements
- uses aggregation-lacp-top;
-
- // augment statements
-
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-lldp-types.yang b/src/plugins/yang/openconfig/openconfig-lldp-types.yang
deleted file mode 100644
index cc7f9f5..0000000
--- a/src/plugins/yang/openconfig/openconfig-lldp-types.yang
+++ /dev/null
@@ -1,296 +0,0 @@
-module openconfig-lldp-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/lldp/types";
-
- prefix "oc-lldp-types";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines types related to the LLDP protocol model.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2016-05-16" {
- description
- "Initial public revision";
- reference "0.1.0";
- }
-
-
- // identity statements
-
- identity LLDP_SYSTEM_CAPABILITY {
- description
- "Base identity for standard LLDP system capabilities.
- The system capabilities field contains a bit-map of the
- capabilities that define the primary function(s) of
- the system. A system may advertise more than one capability.";
- reference
- "Table 8-4 System Capabilities, IEEE 802.1AB-2009";
- }
-
- identity OTHER {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "Other capability not specified; bit position 1";
- }
-
- identity REPEATER {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "Repeater capability; bit position 2";
- reference
- "IETF RFC 2108";
- }
-
- identity MAC_BRIDGE {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "MAC bridge capability; bit position 3";
- reference
- "IEEE Std 802.1D";
- }
-
- identity WLAN_ACCESS_POINT {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "WLAN access point capability; bit position 4";
- reference
- "IEEE Std 802.11 MIB";
- }
-
- identity ROUTER {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "Router; bit position 5";
- reference
- "IETF RFC 1812";
- }
-
- identity TELEPHONE {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "Telephone capability; bit position 6";
- reference
- "IETF RFC 4293";
- }
-
- identity DOCSIS_CABLE_DEVICE {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "DOCSIS cable device; bit position 7";
- reference
- "IETF RFC 4639 and IETF RFC 4546";
- }
-
- identity STATION_ONLY {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "Station only capability, for devices that implement only an
- end station capability, and for which none of the other
- capabilities apply; bit position 8";
- reference
- "IETF RFC 4293";
- }
-
- identity C_VLAN {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "C-VLAN component of a VLAN Bridge; bit position 9";
- reference
- "IEEE Std 802.1Q";
- }
-
- identity S_VLAN {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "S-VLAN component of a VLAN Bridge; bit position 10";
- reference
- "IEEE Std 802.1Q";
- }
-
- identity TWO_PORT_MAC_RELAY {
- base LLDP_SYSTEM_CAPABILITY;
- description
- "Two-port MAC Relay (TPMR) capability; bit position 11";
- reference
- "IEEE Std 802.1Q";
- }
-
- identity LLDP_TLV {
- description
- "A base identity which describes the TLVs in LLDP";
- }
-
- identity CHASSIS_ID {
- base LLDP_TLV;
- description
- "The chassis identifier of the device associated with
- the transmitting LLDP agent";
- reference "IEEE Std 802.1AB";
- }
-
- identity PORT_ID {
- base LLDP_TLV;
- description
- "The port identifier associated with the interface
- on with the LLDP agent is transmitting";
- reference "IEEE Std 802.1AB";
- }
-
- identity PORT_DESCRIPTION {
- base LLDP_TLV;
- description
- "The description of the port that is associated with
- the interface on which the LLDP agent is transmitting";
- reference "IEEE Std 802.1AB";
- }
-
- identity SYSTEM_NAME {
- base LLDP_TLV;
- description
- "The assigned name (sysName or hostname) of the device
- which is transmitting the LLDP PDU";
- reference "IEEE Std 802.1AB";
- }
-
- identity SYSTEM_DESCRIPTION {
- base LLDP_TLV;
- description
- "The description (sysDescr) of the device which is
- transmitting the LLDP PDU";
- reference "IEEE Std 802.1AB";
- }
-
- identity SYSTEM_CAPABILITIES {
- base LLDP_TLV;
- description
- "The primary functions of the device transmitting the
- LLDP PDU and their administrative status";
- reference "IEEE Std 802.1AB";
- }
-
- identity MANAGEMENT_ADDRESS {
- base LLDP_TLV;
- description
- "The address associated with the device transmitting the
- LLDP PDU which can be used for higher-layer network
- management";
- reference "IEEE Std 802.1AB";
- }
-
- // typedef statements
-
- typedef chassis-id-type {
- type enumeration {
- enum CHASSIS_COMPONENT {
- description
- "Chassis identifier based on the value of entPhysicalAlias
- object defined in IETF RFC 2737";
- }
- enum INTERFACE_ALIAS {
- description
- "Chassis identifier based on the value of ifAlias object
- defined in IETF RFC 2863";
- }
- enum PORT_COMPONENT {
- description
- "Chassis identifier based on the value of entPhysicalAlias
- object defined in IETF RFC 2737 for a port or backplane
- component";
- }
- enum MAC_ADDRESS {
- description
- "Chassis identifier based on the value of a unicast source
- address (encoded in network byte order and IEEE 802.3
- canonical bit order), of a port on the containing chassis
- as defined in IEEE Std 802-2001";
- }
- enum NETWORK_ADDRESS {
- description
- "Chassis identifier based on a network address,
- associated with a particular chassis. The encoded address
- is composed of two fields. The first field is a single
- octet, representing the IANA AddressFamilyNumbers value
- for the specific address type, and the second field is the
- network address value";
- }
- enum INTERFACE_NAME {
- description
- "Chassis identifier based on the name of the interface,
- e.g., the value of ifName object defined in IETF RFC 2863";
- }
- enum LOCAL {
- description
- "Chassis identifier based on a locally defined value";
- }
- }
- description
- "Type definition with enumerations describing the source of
- the chassis identifier";
- reference
- "IEEE 802.1AB LLDP MIB";
- }
-
- typedef port-id-type {
- type enumeration {
- enum INTERFACE_ALIAS {
- description
- "Chassis identifier based on the value of ifAlias object
- defined in IETF RFC 2863";
- }
- enum PORT_COMPONENT {
- description
- "Port identifier based on the value of entPhysicalAlias
- object defined in IETF RFC 2737 for a port component";
- }
- enum MAC_ADDRESS {
- description
- "Port identifier based on the value of a unicast source
- address (encoded in network byte order and IEEE 802.3
- canonical bit order) associated with a port";
- }
- enum NETWORK_ADDRESS {
- description
- "Port identifier based on a network address,
- associated with a particular port";
- }
- enum INTERFACE_NAME {
- description
- "Port identifier based on the name of the interface,
- e.g., the value of ifName object defined in IETF RFC 2863";
- }
- enum AGENT_CIRCUIT_ID {
- description
- "Port identifer based on the circuit id in the DHCP
- relay agent information option as defined in IETF
- RFC 3046";
- }
- enum LOCAL {
- description
- "Port identifier based on a locally defined alphanumeric
- string";
- }
- }
- description
- "Type definition with enumerations describing the basis of
- the port identifier";
- reference
- "IEEE 802.1AB LLDP MIB";
- }
-
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-lldp.yang b/src/plugins/yang/openconfig/openconfig-lldp.yang
deleted file mode 100644
index c5381ef..0000000
--- a/src/plugins/yang/openconfig/openconfig-lldp.yang
+++ /dev/null
@@ -1,650 +0,0 @@
-module openconfig-lldp {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/lldp";
-
- prefix "oc-lldp";
-
- import openconfig-lldp-types { prefix oc-lldp-types; }
- import openconfig-interfaces { prefix oc-if; }
- import ietf-yang-types { prefix yang; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- for the LLDP protocol.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2018-07-17" {
- description
- "Adds ttl to lldp-neighbor-state";
- reference "0.2.0";
- }
-
- revision "2016-05-16" {
- description
- "Initial public revision";
- reference "0.1.0";
- }
-
-
- // identity statements
-
-
- // grouping statements
-
- grouping lldp-common-counters {
- description
- "Definition of global and per-interface counters";
-
- leaf frame-in {
- type yang:counter64;
- description
- "The number of lldp frames received.";
- }
-
- leaf frame-out {
- type yang:counter64;
- description
- "The number of frames transmitted out.";
- }
-
- leaf frame-error-in {
- type yang:counter64;
- description
- "The number of LLDP frames received with errors.";
- }
-
- leaf frame-discard {
- type yang:counter64;
- description
- "The number of LLDP frames received and discarded.";
- }
-
- leaf tlv-discard {
- type yang:counter64;
- description
- "The number of TLV frames received and discarded.";
- }
-
- leaf tlv-unknown {
- type yang:counter64;
- description
- "The number of frames received with unknown TLV.";
- }
-
- leaf last-clear {
- type yang:date-and-time;
- description
- "Indicates the last time the counters were
- cleared.";
- }
- }
-
- grouping lldp-global-counters {
- description
- "Definition of global LLDP counters";
-
- uses lldp-common-counters;
-
- leaf tlv-accepted {
- type yang:counter64;
- description
- "The number of valid TLVs received.";
- }
-
- leaf entries-aged-out {
- type yang:counter64;
- description
- "The number of entries aged out due to timeout.";
- }
-
- }
-
- grouping lldp-interface-counters {
- description
- "Definition of per-interface LLDP counters";
-
- uses lldp-common-counters;
-
- leaf frame-error-out {
- type yang:counter64;
- description
- "The number of frame transmit errors on the
- interface.";
- }
- }
-
- grouping lldp-system-info-config {
- description
- "Configuration data for system-level local and remote
- LLDP information";
-
- leaf system-name {
- type string {
- length 0..255;
- }
- description
- "The system name field shall contain an alpha-numeric string
- that indicates the system's administratively assigned name.
- The system name should be the system's fully qualified domain
- name. If implementations support IETF RFC 3418, the sysName
- object should be used for this field.";
- }
-
- leaf system-description {
- type string {
- length 0..255;
- }
- description
- "The system description field shall contain an alpha-numeric
- string that is the textual description of the network entity.
- The system description should include the full name and
- version identification of the system's hardware type,
- software operating system, and networking software. If
- implementations support IETF RFC 3418, the sysDescr object
- should be used for this field.";
- }
-
- leaf chassis-id {
- type string;
- description
- "The Chassis ID is a mandatory TLV which identifies the
- chassis component of the endpoint identifier associated with
- the transmitting LLDP agent";
- }
-
- leaf chassis-id-type {
- type oc-lldp-types:chassis-id-type;
- description
- "This field identifies the format and source of the chassis
- identifier string. It is an enumerator defined by the
- LldpChassisIdSubtype object from IEEE 802.1AB MIB.";
- }
- }
-
- grouping lldp-system-info-state {
- description
- "Operational state data reported for the local and remote
- systems";
-
- }
-
- grouping lldp-neighbor-config {
- description
- "Configuration data for LLDP neighbors";
-
- }
-
- grouping lldp-neighbor-state {
- description
- "Operational state data for LLDP neighbors";
-
- leaf id {
- type string;
- description
- "System generated identifier for the neighbor on the
- interface.";
- }
-
- leaf age {
- type uint64;
- units "seconds";
- description
- "Age since discovery";
- }
-
- leaf last-update {
- type int64;
- description
- "Seconds since last update received.";
- }
-
- leaf ttl {
- type uint16;
- units "seconds";
- description
- "The time-to-live (TTL) is a mandatory TLV which indicates
- how long information from the neighbor should be considered
- valid.";
- }
-
- leaf port-id {
- type string;
- description
- "The Port ID is a mandatory TLV which identifies the port
- component of the endpoint identifier associated with the
- transmitting LLDP agent. If the specified port is an IEEE
- 802.3 Repeater port, then this TLV is optional.";
- }
-
- leaf port-id-type {
- type oc-lldp-types:port-id-type;
- description
- "This field identifies the format and source of the port
- identifier string. It is an enumerator defined by the
- PtopoPortIdType object from RFC2922.";
- }
-
- leaf port-description {
- type string;
- description
- "The binary string containing the actual port identifier for
- the port which this LLDP PDU was transmitted. The source and
- format of this field is defined by PtopoPortId from
- RFC2922.";
- }
-
- leaf management-address {
- type string;
- description
- "The Management Address is a mandatory TLV which identifies a
- network address associated with the local LLDP agent, which
- can be used to reach the agent on the port identified in the
- Port ID TLV.";
- }
-
- leaf management-address-type {
- type string;
- description
- "The enumerated value for the network address type
- identified in this TLV. This enumeration is defined in the
- 'Assigned Numbers' RFC [RFC3232] and the
- ianaAddressFamilyNumbers object.";
- }
- }
-
- grouping lldp-capabilities-config {
- description
- "Configuration data for LLDP capabilities";
- }
-
- grouping lldp-capabilities-state {
- description
- "Operational state data for LLDP capabilities";
-
- leaf name {
- type identityref {
- base oc-lldp-types:LLDP_SYSTEM_CAPABILITY;
- }
- description
- "Name of the system capability advertised by the neighbor.
- Capabilities are represented in a bitmap that defines the
- primary functions of the system. The capabilities are
- defined in IEEE 802.1AB.";
- }
-
- leaf enabled {
- type boolean;
- description
- "Indicates whether the corresponding system capability is
- enabled on the neighbor.";
- reference
- "Sec 8.5.8.2 of IEEE 802.1AB-2009";
- }
- }
-
- grouping lldp-capabilities-top {
- description
- "Top-level grouping for LLDP capabilities";
-
- container capabilities {
- config false;
- description
- "Enclosing container for list of LLDP capabilities";
-
- list capability {
- key "name";
- description
- "List of LLDP system capabilities advertised by the
- neighbor";
-
- leaf name {
- type leafref {
- path "../state/name";
- }
- description
- "Reference to capabilities list key";
- }
-
- container config {
- description
- "Configuration data for LLDP capabilities";
-
- uses lldp-capabilities-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for LLDP capabilities";
-
- uses lldp-capabilities-config;
- uses lldp-capabilities-state;
- }
- }
- }
- }
-
- grouping lldp-custom-tlv-config {
- description
- "Configuration data for custom LLDP TLVs";
- }
-
- grouping lldp-custom-tlv-state {
- description
- "Operational state data for custom LLDP TLVs";
-
- leaf type {
- type int32;
- description
- "The integer value identifying the type of information
- contained in the value field.";
- }
-
- leaf oui {
- type string;
- description
- "The organizationally unique identifier field shall contain
- the organization's OUI as defined in Clause 9 of IEEE Std
- 802. The high-order octet is 0 and the low-order 3 octets
- are the SMI Network Management Private Enterprise Code of
- the Vendor in network byte order, as defined in the
- 'Assigned Numbers' RFC [RFC3232].";
- }
-
- leaf oui-subtype {
- type string;
- description
- "The organizationally defined subtype field shall contain a
- unique subtype value assigned by the defining organization.";
- }
-
- // TODO: consider making this string type
- leaf value {
- type binary;
- description
- "A variable-length octet-string containing the
- instance-specific information for this TLV.";
- }
- }
-
- grouping lldp-custom-tlv-top {
- description
- "Top-level grouping for custom LLDP TLVs";
-
- container custom-tlvs {
- config false;
- description
- "Enclosing container for list of custom TLVs from a
- neighbor";
-
- list tlv {
- key "type oui oui-subtype";
- description
- "List of custom LLDP TLVs from a neighbor";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to type list key";
- }
-
- leaf oui {
- type leafref {
- path "../state/oui";
- }
- description
- "Reference to oui list key";
- }
-
- leaf oui-subtype {
- type leafref {
- path "../state/oui-subtype";
- }
- description
- "Reference to oui-subtype list key";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses lldp-custom-tlv-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses lldp-custom-tlv-config;
- uses lldp-custom-tlv-state;
- }
- }
- }
- }
-
- grouping lldp-neighbor-top {
- description
- "Top-level grouping for the LLDP neighbor list";
-
- container neighbors {
- config false;
- description
- "Enclosing container for list of LLDP neighbors on an
- interface";
-
- list neighbor {
- key "id";
- description
- "List of LLDP neighbors";
-
- leaf id {
- type leafref {
- path "../state/id";
- }
- description
- " ";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses lldp-neighbor-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses lldp-system-info-config;
- uses lldp-system-info-state;
- uses lldp-neighbor-config;
- uses lldp-neighbor-state;
- }
-
- uses lldp-custom-tlv-top;
- uses lldp-capabilities-top;
- }
- }
- }
-
- grouping lldp-interface-config {
- description
- "Configuration data for LLDP on each interface";
-
- leaf name {
- type oc-if:base-interface-ref;
- description
- "Reference to the LLDP Ethernet interface";
- }
-
- leaf enabled {
- type boolean;
- default "true";
- description
- "Enable or disable the LLDP protocol on the interface.";
- }
- }
-
- grouping lldp-interface-state {
- description
- "Operational state data for LLDP on each interface";
-
- container counters {
- description
- "LLDP counters on each interface";
-
- uses lldp-interface-counters;
- }
- }
-
- grouping lldp-interface-top {
- description
- "Top-level grouping ";
-
- container interfaces {
- description
- "Enclosing container ";
-
- list interface {
- key "name";
- description
- "List of interfaces on which LLDP is enabled / available";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for LLDP on each interface";
-
- uses lldp-interface-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses lldp-interface-config;
- uses lldp-interface-state;
- }
-
- uses lldp-neighbor-top;
- }
- }
- }
-
-
- grouping lldp-config {
- description
- "Configuration data for global LLDP parameters";
-
- leaf enabled {
- type boolean;
- default "true";
- description
- "System level state of the LLDP protocol.";
- }
-
- leaf hello-timer {
- type uint64;
- units "seconds";
- description
- "System level hello timer for the LLDP protocol.";
- }
-
- leaf-list suppress-tlv-advertisement {
- type identityref {
- base oc-lldp-types:LLDP_TLV;
- }
- description
- "Indicates whether the local system should suppress the
- advertisement of particular TLVs with the LLDP PDUs that it
- transmits. Where a TLV type is specified within this list, it
- should not be included in any LLDP PDU transmitted by the
- local agent.";
- }
- }
-
- grouping lldp-state {
- description
- "Operational state data for global LLDP parameters";
-
- container counters {
- description
- "Global LLDP counters";
-
- uses lldp-global-counters;
- }
- }
-
- grouping lldp-top {
- description
- "Top-level grouping for LLDP model";
-
- container lldp {
- description
- "Top-level container for LLDP configuration and state data";
-
- container config {
- description
- "Configuration data ";
-
- uses lldp-config;
- uses lldp-system-info-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses lldp-config;
- uses lldp-system-info-config;
- uses lldp-system-info-state;
- uses lldp-state;
- }
-
- uses lldp-interface-top;
- }
- }
-
- // data definition statements
-
- uses lldp-top;
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-module-catalog.yang b/src/plugins/yang/openconfig/openconfig-module-catalog.yang
deleted file mode 100644
index 673fe95..0000000
--- a/src/plugins/yang/openconfig/openconfig-module-catalog.yang
+++ /dev/null
@@ -1,786 +0,0 @@
-module openconfig-module-catalog {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/module-catalog";
-
- prefix "oc-cat";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-catalog-types { prefix oc-cat-types; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module provides a schema for cataloging and descrbing
- YANG models published across various organizations. The catalog
- contains several categories of data:
-
- * organizations -- entities that publish and/or maintain
- individual YANG modules or groups of modules
-
- * modules -- information regarding individual YANG modules,
- including their versions, dependencies, submodules, and how
- to access them
-
- * release bundles -- groups of modules that are compatible and
- consistent with each other (as determined by the publisher of
- of the bundle). The release bundle does not necessarily
- correspond to a functional area, e.g., it could the entire
- set of modules published by an organization
-
- * feature bundles -- sets of schema paths across a
- release bundle that provide a specific set of functionality
-
- * implementations -- information about available module and/or
- bundle implementations and their status";
-
- oc-ext:openconfig-version "0.2.1";
-
- revision "2017-05-01" {
- description
- "Fix to module dependency list";
- reference "0.2.1";
- }
-
- revision "2017-03-08" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
- revision "2016-02-15" {
- description
- "Initial OpenConfig public release";
- reference "0.1.0";
- }
-
-
-
- // grouping statements
-
- grouping catalog-module-common-config {
- description
- "Data definitions common for both bundles and standalone
- modules";
-
- leaf name {
- type string;
- description
- "The name of the module or bundle. For modules, this
- should reflect the 'module' or 'submodule'
- statement in the YANG module file.
-
- For bundles, this is the canonical name for the overall
- bundle of modules which is to be released together.
- This name should be consistent over multiple
- releases";
- }
-
- leaf version {
- type oc-cat-types:module-version-type;
- description
- "For individual modules, this is the version number, e.g.,
- a semantic version. The version may be the same as the date
- indicated in the module revision statement.
-
- For bundles, this is a semantic version number for the
- overall bundle. This version is to be defined as per the
- approach specified in the OpenConfig semantic version
- guidance - and is of the form x.y.z, where x is the major
- version, y is the minor version, and z is the patch level";
- reference
- "Semantic versioning for OpenConfig models";
- }
- }
-
- grouping feature-bundle-included-reference {
- description
- "References to the included feature bundles";
-
- leaf name {
- type leafref {
- path "../../../../../../../organizations/" +
- "organization[name=current()/../publisher]/" +
- "feature-bundles/feature-bundle/name";
- }
- description
- "Name of the referenced feature bundle";
- }
-
- leaf publisher {
- type leafref {
- path "../../../../../../../organizations/organization/" +
- "name";
- }
- description
- "Publisher of the referenced feature bundle";
- }
-
- leaf version {
- type oc-cat-types:module-version-type;
- description
- "Version of the referenced feature bundle";
- }
- }
-
- grouping catalog-implementation-bundle-config {
- description
- "References to the feature bundles supported by an
- implementation";
-
- uses feature-bundle-included-reference;
- }
-
- grouping catalog-implementation-bundle-top {
- description
- "Top-level grouping for the list of feature bundles
- supported by an implementation";
-
- container feature-bundles {
- description
- "Enclosing container for the list of feature bundles";
-
- list feature-bundle {
- key "name version";
- description
- "List of feature bundles supported by the implementation";
-
- uses catalog-implementation-bundle-config;
- }
- }
- }
-
- grouping catalog-implementation-config {
- description
- "Data describing any available implementations";
-
- leaf id {
- type string;
- description
- "An identifier for the implementation, provided by the
- implementor. This id should uniquely identify a specific
- implementation of the module, e.g., based on the vendor,
- platform, and platform version.";
- }
-
- leaf description {
- type string;
- description
- "A text summary of important information about the
- implementation";
- }
-
- leaf reference {
- type union {
- type oc-inet:uri;
- type string;
- }
- description
- "A URI (preferred) or text reference to more detailed
- information about the implementation.";
- }
-
-
- leaf platform {
- type string;
- description
- "Name of the platform on which the implementation
- is available -- this could be the model name of a network
- device, a server OS, etc.";
- }
-
- leaf platform-version {
- type string;
- description
- "Implementor-defined version name or number of the
- module implementation, corresponding to the platform.
- This could be the firmware version of a network device
- such as a router, OS version, or other server platform
- version.";
- }
-
- leaf status {
- type identityref {
- base oc-cat-types:IMPLEMENTATION_STATUS_TYPE;
- }
- description
- "Indicates the status of the implementation, e.g.,
- complete, partial, in-progress, etc. Implementors
- may define additional values for the base identity";
- }
- }
-
- grouping catalog-implementation-top {
- description
- "Top level grouping for information on model implementations";
-
- container implementations {
- description
- "Container for module implementation information";
-
- list implementation {
- key "id";
- description
- "List of available implementations, keyed by an identifier
- provided by either the implementor or the module
- maintainer. Such a key avoids needing a complex composite
- key to uniquely identify an implementation.";
-
- uses catalog-implementation-config;
- uses catalog-implementation-bundle-top;
- }
- }
- }
-
- grouping catalog-module-dependency-config {
- description
- "Information about module dependencies";
-
-
- leaf-list required-module {
- type string;
- description
- "List of names of modules that are imported by the
- current module. This list should reflect all of the 'import'
- statements in the module. Release bundles should be used to
- indicate which versions of the imported module are used
- (or are compatible) with the current module";
- }
- }
-
- grouping catalog-module-dependency-top {
- description
- "Top-level grouping for module dependency data";
-
- container dependencies {
- description
- "Data about dependencies of the module";
-
- uses catalog-module-dependency-config;
- }
-
- }
-
- grouping catalog-module-classification-config {
- description
- "Data describing the module's classification(s)";
-
- leaf category {
- type identityref {
- base oc-cat-types:MODULE_CATEGORY_BASE;
- }
- description
- "Categorization of the module based on identities defined
- or used by the publishing organizations.";
- }
-
- leaf subcategory {
- type identityref {
- base oc-cat-types:MODULE_SUBCATEGORY_BASE;
- }
- description
- "Sub-categorization of the module based on identities
- defined or used by the publishing organizations.";
- }
-
- leaf deployment-status {
- type identityref {
- base oc-cat-types:MODULE_STATUS_TYPE;
- }
- description
- "Deployment status of the module -- experimental,
- standards-track, production, etc.";
- }
- }
-
- grouping catalog-module-classification-top {
- description
- "Data definitions related to module classfications";
-
- container classification {
- description
- "Container for data describing the module's classification";
-
- uses catalog-module-classification-config;
- }
- }
-
- grouping catalog-module-access-config {
- description
- "Data pertaining to retrieval and usage of the module";
-
- leaf uri {
- type oc-inet:uri;
- description
- "URI where module can be downloaded. Modules may be
- made available from the catalog maintainer, or directly
- from the publisher";
- }
-
- leaf md5-hash {
- type string;
- description
- "Optional MD5 hash of the module file. If specified, the
- hash may be used by users to validate data integrity";
- }
- }
-
- grouping catalog-module-access-top {
- description
- "Top level groupig for data related to accessing a module
- or submodule";
-
- container access {
- description
- "Container for data pertaining to retrieval and usage of the
- module";
-
- uses catalog-module-access-config;
- }
- }
-
- grouping catalog-module-submodule-config {
- description
- "Data definitions for submodules belonging to a
- module";
-
- leaf name {
- type string;
- description
- "Name of the submodule as indicated by its top-level
- 'submodule' statement";
- }
-
- }
-
- grouping catalog-module-submodule-top {
- description
- "Top-level grouping for submodule information";
-
- container submodules {
- description
- "Data for the submodules belonging to a submodule. If the
- module does not have any submodules, this container
- should be empty.";
-
- list submodule {
- key "name";
- description
- "List of submodules included by a module. All submodules
- specified by 'include' statements in the module should be
- included in this list.";
-
- uses catalog-module-submodule-config;
- uses catalog-module-access-top;
- }
- }
- }
-
- grouping catalog-module-base-config {
- description
- "Basic information describing the module, e.g., the
- YANG metadata in the module preface.";
-
-
- leaf namespace {
- type string;
- description
- "Published namespace of module, i.e., defined by the
- 'namespace' ";
- }
-
- leaf prefix {
- type string;
- description
- "Published prefix of the module";
- }
-
- leaf revision {
- type string;
- description
- "Date in the revision statement of the module";
- }
-
- leaf summary {
- type string;
- description
- "Summary description of the module";
- }
- }
-
- grouping release-bundle-member-config {
- description
- "Data for each member of a bundle";
-
- leaf id {
- type string;
- description
- "Identifier for the bundle member";
- }
-
- leaf type {
- type identityref {
- base oc-cat-types:CATALOG_MEMBER_TYPE;
- }
- description
- "The type of member that is to be included within the
- release bundle. Release bundles may include modules and
- other release bundles. Both member modules and member
- bundles should specify the list of compatible versions.";
- }
-
- leaf module {
- when "../type = 'oc-cat-types:MODULE'" {
- description
- "The module name is specified for bundle membrs that are
- modules";
- }
- type leafref {
- path "../../../../../../../organizations/" +
- "organization[name=current()/../publisher]/modules/" +
- "module/name";
- }
- description
- "Name of the module set which is included in this bundle -
- for example, 'openconfig-bgp'";
- }
-
- leaf release-bundle {
- when "../type = 'oc-cat-types:RELEASE_BUNDLE'" {
- description
- "The release bundle is specified for bundle members that
- are release bundles";
- }
- type leafref {
- path "../../../../../../../organizations/" +
- "organization[name=current()/../publisher]/" +
- "release-bundles/release-bundle/name";
- }
- description
- "Name of the module set which is included in this bundle -
- for example, 'openconfig-bgp'";
- }
-
- leaf publisher {
- type leafref {
- path "../../../../../../../organizations/organization/" +
- "name";
- }
- description
- "Reference to the name of the publishing organization";
- }
-
- leaf-list compatible-versions {
- type oc-cat-types:module-version-type;
- description
- "A list of semantic version specification of the versions
- of the specified module or release bundle which are
- compatible when building this version of the bundle.
-
- Version specifications may be added when changes are made
- to a module within a bundle, and this does not affect the
- interaction between it and other modules. It is expected
- that backwards compatible changes to an individual module or
- member bundle do not affect the compatibility of that
- with other members, and hence wildcard matches are allowed
- within this list.";
- }
- }
-
- grouping release-bundle-member-top {
-
- description
- "Parameters relating to models within release bundles";
-
- container members {
- description
- "List of bundle members which make up this release bundle. A
- member is defined as an individual YANG module specified
- in the YANG catalogue, or another release
- bundle which can be used to group multiple YANG
- models together.";
-
- list member {
- key "id";
- description
- "A set of modules or bundles which are part of the bundle
- of models. For example, if 'ietf-yang-types' were to be
- specified within the bundle, then this would refer to the
- individual entry within the module catalogue. If the type
- of the entry is set to bundle, then for example,
- openconfig-bgp could be referenced - which itself consists
- of separate modules.";
-
- uses release-bundle-member-config;
-
- }
- }
- }
-
- grouping release-bundle-top {
- description
- "Top-level container for a release bundle";
-
- container release-bundles {
- description
- "List of release bundles";
-
- list release-bundle {
- key "name version";
-
- description
- "List of release bundles - sets of modules and/or
- bundles which are interoperable";
-
- uses catalog-module-common-config;
- uses release-bundle-member-top;
- }
- }
- }
-
- grouping feature-bundle-release-config {
- description
- "Data definitions to identify the release bundle that the
- feature bundle is based on.";
-
- leaf name {
- type leafref {
- path "../../../../release-bundles/release-bundle/name";
- }
- description
- "Reference to the name of the release bundle used for the
- feature paths.";
- }
-
- leaf version {
- type leafref {
- path "../../../../release-bundles/" +
- "release-bundle[name=current()/../name]/version";
- }
- description
- "Reference to the release bundle version used for the
- feature paths";
- }
-
- leaf publisher {
- type leafref {
- path "../../../../release-bundles/" +
- "release-bundle[name=current()/../name]/publisher";
- }
- description
- "Reference to the publisher of the release bundle used for
- the feature paths";
- }
- }
-
- grouping feature-bundle-release-top {
- description
- "Top-level grouping for data about the release bundle used
- to specify the feature bundle";
-
- container release-bundle {
- description
- "Data to identify the release bundle from which the feature
- paths should be specified. If the feature crosses
- release bundles, a new release bundle should be
- created to support the feature bundle.";
-
- leaf name {
- type leafref {
- path "../../../../../../organizations/" +
- "organization[name=current()/../publisher]/" +
- "release-bundles/release-bundle/name";
- }
- description
- "Name of the module set which is included in this bundle -
- for example, 'openconfig-bgp'";
- }
-
- leaf publisher {
- type leafref {
- path "../../../../../../organizations/organization/" +
- "name";
- }
- description
- "Reference to the name of the publishing organization";
- }
-
- leaf version {
- type oc-cat-types:module-version-type;
- description
- "Version of the referenced release bundle";
- }
- }
- }
-
-
- grouping feature-bundle-config {
- description
- "Data definitions for the feature bundle";
-
- uses catalog-module-common-config;
-
- leaf-list path {
- type string;
- description
- "The list of schema paths included in the feature. The
- paths specify subtrees, i.e., all data underneath the
- specified path are included in the feature.";
- }
- }
-
- grouping feature-bundle-feature-config {
- description
- "Data definitions for included feature bundles";
-
- uses feature-bundle-included-reference;
- }
-
- grouping feature-bundle-feature-top {
- description
- "Top level grouping for the list of included feature
- bundles";
-
- container feature-bundles {
- description
- "Enclosing container for the list of included feature
- bundles. Feature bundles may be composed from other
- smaller feature units";
-
- list feature-bundle {
- key "name";
- description
- "The list of feature bundles included in the current
- feature bundle.";
-
- uses feature-bundle-feature-config;
- }
- }
-
- }
-
-
- grouping feature-bundle-top {
- description
- "Top-level grouping for OpenConfig feature bundles";
-
- container feature-bundles {
- description
- "Enclosing container for the list of feature bundles";
-
- list feature-bundle {
- key "name version";
- description
- "List of feature bundles";
-
- uses feature-bundle-config;
- uses feature-bundle-release-top;
- uses feature-bundle-feature-top;
- }
- }
- }
-
- grouping catalog-module-top {
- description
- "Top level structure of the module catalog";
-
- container modules {
- description
- "Modules published by this organization";
-
- list module {
- key "name version";
- description
- "List of published modules from the organization";
-
- uses catalog-module-common-config;
- uses catalog-module-base-config;
- uses catalog-module-classification-top;
- uses catalog-module-dependency-top;
- uses catalog-module-access-top;
- uses catalog-module-submodule-top;
- }
- }
- }
-
- grouping catalog-organization-config {
- description
- "Top level grouping for data related to an organization that
- publishes module, bundles, etc.";
-
- leaf name {
- type string;
- description
- "Name of the maintaining organization -- the name should be
- supplied in the official format used by the organization.
- Standards Body examples:
- IETF, IEEE, MEF, ONF, etc.
- Commercial entity examples:
- AT&T, Facebook, <Vendor>
- Name of industry forum examples:
- OpenConfig, OpenDaylight, ON.Lab";
- }
-
- leaf type {
- type identityref {
- base oc-cat-types:ORGANIZATION_TYPE;
- }
- description
- "Type of the publishing organization";
- }
-
- leaf contact {
- type string;
- description
- "Contact information for the publishing organization (web
- site, email address, etc.)";
- }
- }
-
- grouping catalog-organization-top {
- description
- "Top level grouping for list of maintaining organizations";
-
- container organizations {
- description
- "List of organizations owning modules";
-
- list organization {
- key "name";
-
- description
- "List of organizations publishing YANG modules or
- module bundles";
-
- uses catalog-organization-config;
- uses catalog-module-top;
- uses release-bundle-top;
- uses feature-bundle-top;
- uses catalog-implementation-top;
- }
- }
- }
-
-
- grouping catalog-top {
- description
- "Top-level grouping for the YANG model catalog";
-
- uses catalog-organization-top;
- }
-
- // data definition statements
-
- uses catalog-top;
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-igp.yang b/src/plugins/yang/openconfig/openconfig-mpls-igp.yang
deleted file mode 100644
index 267515c..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls-igp.yang
+++ /dev/null
@@ -1,129 +0,0 @@
-submodule openconfig-mpls-igp {
-
- yang-version "1";
-
- belongs-to "openconfig-mpls" {
- prefix "oc-mpls";
- }
-
-
- // import some basic types
- import openconfig-mpls-ldp { prefix oc-ldp; }
- import openconfig-extensions { prefix oc-ext; }
-
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Configuration generic configuration parameters for IGP-congruent
- LSPs";
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- revision "2016-12-15" {
- description
- "Add additional MPLS parameters";
- reference "2.1.0";
- }
-
- revision "2016-09-01" {
- description
- "Revisions based on implementation feedback";
- reference "2.0.0";
- }
-
- revision "2016-08-08" {
- description
- "Public release of MPLS models";
- reference "1.0.1";
- }
-
- // grouping statements
-
-
- grouping igp-lsp-common {
- description
- "common definitions for IGP-congruent LSPs";
-
- }
-
-
- grouping igp-lsp-setup {
- description
- "signaling protocol definitions for IGP-based LSPs";
-
- container path-setup-protocol {
- description
- "select and configure the signaling method for
- the LSP";
-
- // uses path-setup-common;
- uses oc-ldp:igp-lsp-ldp-setup;
- }
- }
-
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-ldp.yang b/src/plugins/yang/openconfig/openconfig-mpls-ldp.yang
deleted file mode 100644
index ade7876..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls-ldp.yang
+++ /dev/null
@@ -1,873 +0,0 @@
-module openconfig-mpls-ldp {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/ldp";
-
- prefix "oc-ldp";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-types { prefix oc-types; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Configuration of Label Distribution Protocol global and LSP-
- specific parameters for IGP-congruent LSPs.
-
- This model reuses data items defined in the IETF YANG model for
- LDP described by draft-ietf-mpls-ldp-yang-04, YANG Data Model for
- MPLS LDP, following an alternate structure.
-
- Portions of this code were derived from draft-ietf-mpls-ldp-yang-04.
- Please reproduce this note if possible.
-
- IETF code is subject to the following copyright and license:
- Copyright (c) IETF Trust and the persons identified as authors of
- the code.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, is permitted pursuant to, and subject to the license
- terms contained in, the Simplified BSD License set forth in
- Section 4.c of the IETF Trust's Legal Provisions Relating
- to IETF Documents (http://trustee.ietf.org/license-info).";
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- revision "2016-12-15" {
- description
- "Add additional MPLS parameters";
- reference "2.1.0";
- }
-
- revision "2016-09-01" {
- description
- "Revisions based on implementation feedback";
- reference "2.0.0";
- }
-
- revision "2016-08-08" {
- description
- "Public release of MPLS models";
- reference "1.0.1";
- }
-
- // typedef statements
-
- typedef mpls-ldp-adjacency-type {
- type enumeration {
- enum LINK {
- description
- "Link LDP adjacency";
- }
- enum TARGETED {
- description
- "Targeted LDP adjacency";
- }
- }
- description
- "enumerated type for specifying LDP adjacencies";
- }
-
- typedef mpls-ldp-afi {
- type enumeration {
- enum IPV4 {
- description
- "IPv4 AFI for LDP adjancencies";
- }
- enum IPV6 {
- description
- "IPv6 AFI for LDP adjancencies";
- }
- }
- description
- "enumerated type for specifying LDP AFIs";
- }
-
- // grouping statements
-
- grouping ldp-global {
- description
- "Global LDP signaling configuration";
-
- container ldp {
- description
- "LDP global signaling configuration";
-
- container global {
- description
- "Platform wide LDP configuration and state";
-
- uses mpls-ldp-global;
- uses mpls-ldp-graceful-restart;
- uses mpls-ldp-authentication-top;
- }
-
- uses mpls-ldp-interface-attributes-top;
- uses mpls-ldp-targeted-top;
- uses mpls-ldp-neighbors-top;
-
- }
- }
-
- grouping mpls-ldp-authentication-top {
- description
- "Grouping containing LDP authentication attributes";
-
- container authentication {
- description
- "Global LDP authentication";
-
- container config {
- description
- "Configuration of LDP authentication attributes";
- uses mpls-ldp-authentication-config;
- }
-
- container state {
- config false;
- description
- "LDP authentication state.";
- uses mpls-ldp-authentication-config;
- }
- }
- }
-
- grouping mpls-ldp-neighbors-top {
- description
- "Global LDP neighbor attributes";
-
- container neighbors {
- description
- "State and configuration LDP neighbors attributes";
-
- list neighbor {
- key "lsr-id label-space-id";
-
- description
- "List of LDP neighbors and their attributes.";
-
- leaf lsr-id {
- type leafref {
- path "../config/lsr-id";
- }
- description
- "Neighbor label switch router identifier.";
- }
-
- leaf label-space-id {
- type leafref {
- path "../config/label-space-id";
- }
- description
- "Label space ID of the neighbor.";
- }
-
- container config {
- description
- "Neighbor configuration attributes.";
- uses mpls-ldp-neighbor-config;
- }
-
- container state {
- config false;
- description
- "Neighbor state attributes.";
- uses mpls-ldp-neighbor-config;
- }
-
- container hello-adjacencies {
- config false;
- description "Top container for hello adjacencies
- for a given LDP neighbor.";
-
- list hello-adjacency {
- key "remote-address local-address";
- config false;
- description
- "List of hello adjacencies for a given LDP
- neighbor.";
-
- leaf remote-address {
- config false;
- description
- "Within the LDP adjacency, this attribute
- shows the neighbor address.";
- type leafref {
- path "../state/remote-address";
- }
- }
-
- leaf local-address {
- config false;
- description
- "Within the LDP adjacency, this attribute
- shows the local address.";
- type leafref {
- path "../state/local-address";
- }
- }
-
- container state {
- description
- "State information for a particular LDP
- hello adjacency.";
- uses mpls-ldp-adjacency-state;
- }
-
- uses oc-if:interface-ref-state;
-
- container hello-holdtime {
-
- description
- "Specifies the time the sending LSR will
- maintain its record of Hellos from the
- receiving LSR";
-
- container state {
- description
- "State attributes related to the
- hello-holdtime.";
- config false;
- uses mpls-ldp-hello-holdtime-state;
- }
- }
-
- }
- }
-
- uses mpls-ldp-authentication-top;
-
- }
- }
- }
-
- grouping mpls-ldp-neighbor-config {
- description
- "Global configuration for LDP neighbors.";
-
- leaf lsr-id {
- type oc-inet:ip-address;
- description
- "Neighbor label switch router identifier.";
- }
-
- leaf label-space-id {
- type uint16;
- description
- "Label space ID of the neighbor.";
- }
-
- }
-
- grouping mpls-ldp-adjacency-state {
-
- description
- "Set of LDP neighbor related state attributes.";
-
- leaf remote-address {
- description
- "Within the LDP adjacency, this attribute
- shows the neighbor address.";
- type oc-inet:ip-address;
- }
-
- leaf local-address {
- description
- "Within the LDP adjacency, this attribute
- shows the local address.";
- type oc-inet:ip-address;
- }
-
- leaf adjacency-type {
- description
- "This attributes defines if the LDP
- adjacency is from a direct link or from
- targeted discovery.";
- type oc-ldp:mpls-ldp-adjacency-type;
- }
-
- leaf last-clear {
- type oc-types:timeticks64;
- description
- "Timestamp of the last time the interface counters
- were cleared. The value is the timestamp in
- nanoseconds relative to the Unix Epoch (Jan 1,
- 1970 00:00:00 UTC).";
- }
-
- leaf hello-received {
- type oc-yang:counter64;
- description
- "Number of Hello messaged received by the device";
- }
-
- leaf hello-dropped {
- type oc-yang:counter64;
- description
- "Number of Hello messaged dropped by the device";
- }
-
- }
-
- grouping mpls-ldp-hello-holdtime-state {
- description
- "Grouping containing the state attributes
- for hello holdtime.";
-
- leaf adjacent {
- description
- "Hello holdtime attribute learned from the
- LDP neighbor";
- type uint16;
- }
-
- leaf negotiated {
- description
- "Hello holdtime attribute negotiated between
- the LDP neighbor and the local router.";
- type uint16;
- }
-
- leaf hello-expiration {
- description
- "Expiration time for the hello holdtime.";
- type oc-types:timeticks64;
- }
-
- leaf next-hello {
- description
- "Time when the next LDP hello will be sent to
- the adjacent neighbor.";
- type oc-types:timeticks64;
- }
-
- }
-
- grouping mpls-ldp-global {
- description
- "Global LDP attributes";
-
- container config {
- description
- "Global LDP configuration attributes.";
- uses mpls-ldp-global-config;
- }
-
- container state {
- config false;
- description
- "Global LDP state information.";
- uses mpls-ldp-global-config;
- }
- }
-
- grouping mpls-ldp-global-config {
- description
- "Grouping containing platform wide LDP information";
-
- leaf lsr-id {
- type oc-inet:ip-address;
- description
- "Global label switch router identifier
- configuration.";
- reference "RFC5036 LDP Specification";
- }
-
- }
-
- grouping mpls-ldp-interface-attributes-top {
- description
- "Top-level structure grouping for interface
- attributes";
-
- container interface-attributes {
- description
- "Container including attributes for LDP-enabled
- interfaces";
-
- container config {
- description
- "Configuration of per-interface LDP parameters";
- uses mpls-ldp-hello-timers-top-config;
- }
-
- container state {
- config false;
- description
- "Per-interface LDP protocol and state information";
- uses mpls-ldp-hello-timers-top-config;
- }
-
- container interfaces {
- description
- "Container aggregating all interfaces and their
- LDP-specific attributes.";
-
- list interface {
- key "interface-id";
- description
- "list of per-interface LDP configurations";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "reference to the interface-id data";
- }
-
- container config {
- description
- "Configuration of per-interface LDP parameters";
- uses mpls-ldp-interfaces-config;
- uses mpls-ldp-hello-timers-top-config;
- }
-
- container state {
- config false;
- description
- "Per-interface LDP protocol and state information";
-
- uses mpls-ldp-interfaces-config;
- uses mpls-ldp-hello-timers-top-config;
-
- container counters {
- config false;
- description
- "Interface specific LDP statistics and counters";
- }
- }
-
- uses oc-if:interface-ref;
- uses mpls-ldp-address-families-ldp-top;
-
- }
- }
- }
- }
-
- grouping mpls-ldp-address-families-ldp-top {
- description
- "Grouping containing the state and configuration
- attributes for adress families.";
-
- container address-families {
- description
- "Top container comprising the adress families
- attributes";
- list address-family {
- key "afi-name";
- description
- "List for attributes related to address-families for LDP.";
-
- leaf afi-name {
- type leafref {
- path "../config/afi-name";
- }
- description
- "Adress-family name atttibute (IPv4, IPv6).";
- }
-
- container config {
- description
- "Configuration attributes related to address-families
- for LDP.";
- uses mpls-ldp-address-family-config;
- uses admin-config;
- }
-
- container state {
- description
- "State attributes related to address-families for LDP.";
- config false;
- uses mpls-ldp-address-family-config;
- uses admin-config;
- }
- }
- }
- }
-
- grouping mpls-ldp-hello-timers-top-config {
-
- description
- "Grouping containing interface-related attributes
- that can be configured for LDP.";
-
- leaf hello-holdtime {
- type uint16;
- description
- "Defines the time for which a neighbor adjacency will
- be kept by the router while it waits for a new link
- Hello message.";
- reference "RFC5036 LDP Specification";
- }
-
- leaf hello-interval {
- type uint16;
- description
- "Defines the interval for sending Hello messages on
- each link LDP adjacency.";
- }
-
- }
-
- grouping mpls-ldp-targeted-top {
-
- description
- "Grouping containing attributes for targeted LDP";
-
- container targeted {
- description
- "Top container for targeted LDP state and configuration
- attributes.";
-
- container config {
- description
- "Configuration attributes related to targeted LDP.";
- uses mpls-ldp-targeted-attributes-top-config;
- }
-
- container state {
- config false;
- description
- "State attributes related to targeted LDP.";
- uses mpls-ldp-targeted-attributes-top-config;
- }
-
- uses mpls-ldp-address-targeted-ldp-top;
- }
- }
-
- grouping mpls-ldp-address-targeted-ldp-top {
- description
- "Grouping containing address attributes for targeted LDP.";
-
- container address-families {
- description
- "Global container for IPv4 and IPv6 attributes for LDP.";
-
- list address-family {
- key "afi-name";
- description
- "List of address families for targeted LDP
- configuration";
-
- leaf afi-name {
- type leafref {
- path "../config/afi-name";
- }
- description
- "Adress-family name atttibute (IPv4, IPv6).";
- }
-
- container config {
- description
- "Address-family configuration for targeted LDP";
- uses mpls-ldp-address-family-config;
- }
-
- container state {
- config false;
- description
- "Address-family state for targeted LDP";
- uses mpls-ldp-address-family-config;
- }
-
- container targets {
- description
- "Container aggregating all targeted sessions and
- their LDP-specific attributes.";
-
- list target {
- key "remote-address";
-
- description
- "List of LDP targets configuration";
-
- leaf remote-address {
- type leafref {
- path "../config/remote-address";
- }
- description
- "Neighbor address of the targeted LDP session";
- }
-
- container config {
-
- description
- "Configuration parameters of a targeted LDP
- adjacency";
-
- leaf remote-address {
- type oc-inet:ip-address;
- description
- "Configuration of neighbor address of the
- targeted LDP adjacency";
- }
-
- leaf local-address {
- type oc-inet:ip-address;
- description
- "Local IP address of the LDP adjacency";
- }
-
- uses admin-config;
- uses mpls-ldp-hello-timers-top-config;
- }
-
- container state {
- config false;
- description
- "State attributes of a targeted LDP adjacency";
-
- leaf remote-address {
- config false;
- type oc-inet:ip-address;
- description
- "Neighbor address of the targeted LDP adjacency";
- }
-
- leaf local-address {
- config false;
- type oc-inet:ip-address;
- description
- "Local IP address of the LDP adjacency";
- }
-
- uses admin-config;
- uses mpls-ldp-hello-timers-top-config;
- }
- }
- }
- }
- }
- }
-
- grouping mpls-ldp-address-family-config {
- description
- "Grouping containing adress-family name atttibute";
-
- leaf afi-name {
- description
- "Adress-family name atttibute (IPv4, IPv6).";
- type oc-ldp:mpls-ldp-afi;
- }
-
- }
-
- grouping mpls-ldp-targeted-attributes-top-config {
-
- description
- "Grouping containing targeted LDP configuration
- attributes.";
-
- uses mpls-ldp-hello-timers-top-config;
-
- leaf hello-accept {
- type boolean;
- description
- "Enables or disables the acceptance of targeted LDP
- hello messages.";
- reference "RFC5036 LDP Specification";
- }
-
- }
-
- grouping mpls-ldp-interfaces-config {
- description
- "LDP configuration information relevant to an interface";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Identifier for the interface";
- }
- }
-
- grouping mpls-ldp-graceful-restart {
- description
- "Attributes relating to LDP Graceful-Restart";
-
- container graceful-restart {
- description
- "Top container for LDP graceful-restart attributes";
-
- container config {
- description
- "LDP graceful-restart configuration attributes.";
- uses mpls-ldp-graceful-restart-config;
- }
-
- container state {
- config false;
- description
- "LDP graceful-restart state attributes.";
- uses mpls-ldp-graceful-restart-config;
- }
- }
- }
-
- grouping mpls-ldp-graceful-restart-config {
- description
- "Configuration parameters relating to LDP Graceful-Restart";
-
- uses admin-config;
-
- leaf reconnect-time {
- type uint16;
- description
- "Interval for which the remote LDP peers
- will wait for the local node to reconnect after a
- failure";
- reference "RFC3478 Graceful Restart Mechanism for Label
- Distribution Protocol";
- }
-
- leaf recovery-time {
- type uint16;
- description
- "Interval used to specify the time for the remote
- peer to maintain the MPLS forwarding state after
- the local node has succesfully reconnected";
- reference "RFC3478 Graceful Restart Mechanism for Label
- Distribution Protocol";
- }
-
- leaf forwarding-holdtime {
- type uint16;
- description
- "Time that defines the interval for keeping the
- node in recovery mode.";
- reference "RFC3478 Graceful Restart Mechanism for Label
- Distribution Protocol";
- }
-
- leaf helper-enable {
- type boolean;
- description
- "Enables the graceful restart helper for LDP.";
- }
- }
-
- grouping igp-tunnel-ldp {
- description
- "common defintiions for LDP-signaled LSP tunnel
- types";
- }
-
- grouping igp-lsp-ldp-setup {
- description
- "grouping for LDP setup attributes";
-
- container ldp {
- description
- "LDP signaling setup for IGP-congruent LSPs";
- uses igp-tunnel-ldp;
- }
- }
-
- grouping mpls-ldp-authentication-config {
- description
- "LDP authentication parameters container.";
-
- leaf enable {
- type boolean;
- default false;
- description
- "Enables LDP authentication on the node.";
- }
-
- leaf authentication-key {
- type oc-types:routing-password;
- description
- "authenticate LDP signaling
- messages";
- reference
- "RFC1321 The MD5 Message-Digest Algorithm
- RFC5036 LDP Specification";
- }
- }
-
- grouping admin-config {
- description
- "Re-usable grouping to enable or disable a particular LDP feature.";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "When set to true, the functionality within which this leaf is
- defined is enabled, when set to false it is explicitly disabled.";
- }
- }
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-rsvp.yang b/src/plugins/yang/openconfig/openconfig-mpls-rsvp.yang
deleted file mode 100644
index 6b6f4ac..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls-rsvp.yang
+++ /dev/null
@@ -1,1446 +0,0 @@
-module openconfig-mpls-rsvp {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/rsvp";
-
- prefix "oc-rsvp";
-
- // import some basic types
- import openconfig-inet-types { prefix inet; }
- import openconfig-mpls-types { prefix oc-mplst; }
- import openconfig-yang-types { prefix yang; }
- import openconfig-types { prefix oc-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-interfaces { prefix oc-if; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Configuration for RSVP-TE signaling, including global protocol
- parameters and LSP-specific configuration for constrained-path
- LSPs";
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- revision "2016-12-15" {
- description
- "Add additional MPLS parameters";
- reference "2.1.0";
- }
-
- revision "2016-09-01" {
- description
- "Revisions based on implementation feedback";
- reference "2.0.0";
- }
-
- revision "2016-08-08" {
- description
- "Public release of MPLS models";
- reference "1.0.1";
- }
-
- // grouping statements
-
- grouping mpls-rsvp-soft-preemption-config {
- description
- "Configuration for MPLS soft preemption";
- leaf enable {
- type boolean;
- default false;
- description
- "Enables soft preemption on a node.";
- }
-
- leaf soft-preemption-timeout {
- type uint16 {
- range 0..max;
- }
- default 30;
- description
- "Timeout value for soft preemption to revert
- to hard preemption. The default timeout for
- soft-preemption is 30 seconds - after which
- the local system reverts to hard pre-emption.";
- reference "RFC5712 MPLS-TE soft preemption";
- }
- }
-
- grouping mpls-rsvp-soft-preemption {
- description
- "Top level group for MPLS soft preemption";
- container soft-preemption {
- description
- "Protocol options relating to RSVP
- soft preemption";
- container config {
- description
- "Configuration parameters relating to RSVP
- soft preemption support";
- uses mpls-rsvp-soft-preemption-config;
- }
- container state {
- config false;
- description
- "State parameters relating to RSVP
- soft preemption support";
- uses mpls-rsvp-soft-preemption-config;
- }
- }
- }
-
- grouping mpls-rsvp-hellos-config {
- description
- "RSVP protocol options configuration.";
-
- leaf hello-interval {
- type uint16 {
- range 1000..60000;
- }
- units milliseconds;
- default 9000;
- description
- "set the interval in ms between RSVP hello
- messages";
- reference
- "RFC 3209: RSVP-TE: Extensions to RSVP for
- LSP Tunnels.
- RFC 5495: Description of the Resource
- Reservation Protocol - Traffic-Engineered
- (RSVP-TE) Graceful Restart Procedures";
- }
-
- leaf refresh-reduction {
- type boolean;
- default true;
- description
- "enables all RSVP refresh reduction message
- bundling, RSVP message ID, reliable message delivery
- and summary refresh";
- reference
- "RFC 2961 RSVP Refresh Overhead Reduction
- Extensions";
- }
- }
-
- grouping mpls-rsvp-hellos {
- description
- "Top level grouping for RSVP hellos parameters";
- // TODO: confirm that the described semantics are supported
- // on various implementations. Finer grain configuration
- // will be vendor-specific
-
- container hellos {
- description
- "Top level container for RSVP hello parameters";
-
- container config {
- description
- "Configuration parameters relating to RSVP
- hellos";
- uses mpls-rsvp-hellos-config;
- }
- container state {
- config false;
- description
- "State information associated with RSVP hellos";
- uses mpls-rsvp-hellos-config;
- }
- }
- }
-
- grouping mpls-rsvp-subscription-config {
- description
- "RSVP subscription configuration";
-
- leaf subscription {
- type oc-types:percentage;
- description
- "percentage of the interface bandwidth that
- RSVP can reserve";
- }
- }
-
- grouping mpls-rsvp-subscription-state {
- description
- "Operational state parameters relating to the
- bandwidth subscription on an interface";
-
- leaf calculated-absolute-subscription-bw {
- type uint64;
- units "kbps";
- description
- "The calculated absolute value of the bandwidth
- which is reservable to RSVP-TE on the interface
- prior to any adjustments that may be made from
- external sources.";
- }
- }
-
- grouping mpls-rsvp-subscription {
- description
- "Top level group for RSVP subscription options";
-
- container subscription {
- description
- "Bandwidth percentage reservable by RSVP
- on an interface";
-
- container config {
- description
- "Configuration parameters relating to RSVP
- subscription options";
- uses mpls-rsvp-subscription-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to RSVP
- subscription options";
- uses mpls-rsvp-subscription-config;
- uses mpls-rsvp-subscription-state;
- }
- }
- }
-
- grouping mpls-rsvp-graceful-restart-config {
- description
- "Configuration parameters relating to RSVP Graceful-Restart";
-
- leaf enable {
- type boolean;
- default false;
- description
- "Enables graceful restart on the node.";
- }
-
- leaf restart-time {
- type uint32;
- description
- "Graceful restart time (seconds).";
- reference
- "RFC 5495: Description of the Resource
- Reservation Protocol - Traffic-Engineered
- (RSVP-TE) Graceful Restart Procedures";
- }
- leaf recovery-time {
- type uint32;
- description
- "RSVP state recovery time";
- }
- }
-
- grouping mpls-rsvp-graceful-restart {
- description
- "Top level group for RSVP graceful-restart
- parameters";
-
- container graceful-restart {
- description
- "Operational state and configuration parameters relating to
- graceful-restart for RSVP";
-
- container config {
- description
- "Configuration parameters relating to
- graceful-restart";
- uses mpls-rsvp-graceful-restart-config;
- }
-
- container state {
- config false;
- description
- "State information associated with
- RSVP graceful-restart";
- uses mpls-rsvp-graceful-restart-config;
- }
- }
- }
-
- grouping mpls-rsvp-authentication-config {
- description
- "RSVP authentication parameters container.";
-
- leaf enable {
- type boolean;
- default false;
- description
- "Enables RSVP authentication on the node.";
- }
-
- leaf authentication-key {
- type string {
- // Juniper supports 1..16 while
- // Cisco has a much bigger range, up to 60.
- length "1..32";
- }
- description
- "authenticate RSVP signaling
- messages";
- reference
- "RFC 2747: RSVP Cryptographic Authentication";
- }
- }
-
- grouping mpls-rsvp-authentication {
- description
- "Top level group for RSVP authentication,
- as per RFC2747";
-
- container authentication {
- description
- "Configuration and state parameters relating to RSVP
- authentication as per RFC2747";
-
- container config {
- description
- "Configuration parameters relating
- to authentication";
- uses mpls-rsvp-authentication-config;
- }
-
- container state {
- config false;
- description
- "State information associated
- with authentication";
- uses mpls-rsvp-authentication-config;
- }
- }
- }
-
- grouping mpls-rsvp-protection-config {
- description
- "RSVP facility (link/node) protection configuration";
-
- leaf link-protection-style-requested {
- type identityref {
- base oc-mplst:PROTECTION_TYPE;
- }
- default oc-mplst:LINK_NODE_PROTECTION_REQUESTED;
- description
- "Style of mpls frr protection desired:
- link, link-node, or unprotected";
- }
-
- leaf bypass-optimize-interval {
- type uint16;
- units seconds;
- description
- "interval between periodic optimization
- of the bypass LSPs";
- // note: this is interface specific on juniper
- // on iox, this is global. need to resolve.
- }
- // to be completed, things like enabling link protection,
- // optimization times, etc.
- }
-
- grouping mpls-rsvp-link-protection {
- description
- "Top level group for RSVP protection";
- container protection {
- description
- "link-protection (NHOP) related configuration";
-
- container config {
- description
- "Configuration for link-protection";
- uses mpls-rsvp-protection-config;
- }
-
- container state {
- config false;
- description
- "State for link-protection";
- uses mpls-rsvp-protection-config;
- }
- }
- }
-
- grouping mpls-rsvp-statistics {
- description
- "Top level grouping for RSVP protocol state";
-
- uses mpls-rsvp-protocol-state;
- }
-
- grouping rsvp-global {
- description
- "Global RSVP protocol configuration";
- container rsvp-te {
- description
- "RSVP-TE global signaling protocol configuration";
-
- uses mpls-rsvp-session-state;
-
- container neighbors {
- description
- "Configuration and state for RSVP neighbors connecting
- to the device";
-
- list neighbor {
- key "address";
-
- config false;
-
- description
- "List of RSVP neighbors of the local system";
-
- leaf address {
- type leafref {
- path "../state/address";
- }
- description
- "Reference to the address of the RSVP neighbor";
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the
- RSVP neighbor";
- uses mpls-rsvp-neighbor-state;
- }
- }
- }
-
- container global {
- description
- "Platform wide RSVP configuration and state";
- uses mpls-rsvp-graceful-restart;
- uses mpls-rsvp-soft-preemption;
- uses mpls-rsvp-hellos;
-
- container state {
- config false;
- description
- "Platform wide RSVP state, including counters";
- // TODO - reconcile global and per-interface
- // protocol-related statistics
-
- container counters {
- config false;
- description
- "Platform wide RSVP statistics and counters";
- uses mpls-rsvp-global-protocol-state;
- uses mpls-rsvp-statistics;
-
- container errors {
- description
- "Error counters associated with the global RSVP-TE
- instance.";
- uses mpls-rsvp-error-counters;
- }
- }
- }
- }
-
- container interface-attributes {
- description
- "Attributes relating to RSVP-TE enabled interfaces";
-
- list interface {
- key "interface-id";
- description
- "list of per-interface RSVP configurations";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "reference to the interface-id data";
- }
-
-
- container config {
- description
- "Configuration of per-interface RSVP parameters";
- uses mpls-rsvp-interfaces-config;
- }
-
- container state {
- config false;
- description
- "Per-interface RSVP protocol and state information";
-
- uses mpls-rsvp-interfaces-state;
- uses mpls-rsvp-interfaces-config;
-
- container counters {
- config false;
- description
- "Interface specific RSVP statistics and counters";
- uses mpls-rsvp-protocol-state;
- uses mpls-rsvp-rate-limited-messages-state;
-
- container errors {
- description
- "Interface specific RSVP error counters";
- uses mpls-rsvp-error-counters;
- }
- }
- }
-
- uses oc-if:interface-ref;
- uses mpls-rsvp-interface-reservations;
- uses mpls-rsvp-hellos;
- uses mpls-rsvp-authentication;
- uses mpls-rsvp-subscription;
- uses mpls-rsvp-link-protection;
- }
- }
- }
- }
-
- grouping rsvp-p2p-tunnel-attributes-config {
- description
- "properties of RSVP point-to-point paths";
-
- leaf source {
- when "../signaling-protocol = 'PATH_SETUP_RSVP'" {
- description
- "When the signaling protocol is RSVP-TE ";
- }
- type inet:ip-address;
- description
- "RSVP-TE tunnel source address";
- }
-
- leaf soft-preemption {
- when "../signaling-protocol = 'PATH_SETUP_RSVP'" {
- description
- "When the signaling protocol is RSVP-TE ";
- }
- type boolean;
- default false;
- description
- "Enables RSVP soft-preemption on this LSP";
- }
-
- uses rsvp-priorities-tunnel-config;
- }
-
- grouping rsvp-priorities-tunnel-config {
- description
- "Configuration paramters related to RSVP-TE priorities for
- an LSP tunnel";
-
- leaf setup-priority {
- when "../signaling-protocol = 'PATH_SETUP_RSVP'" {
- description
- "When the signaling protocol is RSVP-TE ";
- }
- type uint8 {
- range 0..7;
- }
- default 7;
- description
- "RSVP-TE preemption priority during LSP setup, lower is
- higher priority; default 7 indicates that LSP will not
- preempt established LSPs during setup";
- reference "RFC 3209 - RSVP-TE: Extensions to RSVP for
- LSP Tunnels";
- }
-
- leaf hold-priority {
- when "../signaling-protocol = 'PATH_SETUP_RSVP'" {
- description
- "When the signaling protocol is RSVP-TE ";
- }
- type uint8 {
- range 0..7;
- }
- default 0;
- description
- "preemption priority once the LSP is established,
- lower is higher priority; default 0 indicates other LSPs
- will not preempt the LSPs once established";
- reference "RFC 3209 - RSVP-TE: Extensions to RSVP for
- LSP Tunnels";
- }
- }
-
- grouping rsvp-priorities-path-config {
- description
- "Configuration paramters related to RSVP-TE priorities on
- a primary/secondary path associated with an LSP.";
-
- leaf setup-priority {
- when "../../../../../" +
- "config/signaling-protocol = 'PATH_SETUP_RSVP'" {
- description
- "When the signaling protocol is RSVP-TE ";
- }
- type uint8 {
- range 0..7;
- }
- default 7;
- description
- "RSVP-TE preemption priority during LSP setup, lower is
- higher priority; default 7 indicates that LSP will not
- preempt established LSPs during setup";
- reference "RFC 3209 - RSVP-TE: Extensions to RSVP for
- LSP Tunnels";
- }
-
- leaf hold-priority {
- when "../../../../../" +
- "config/signaling-protocol = 'PATH_SETUP_RSVP'" {
- description
- "When the signaling protocol is RSVP-TE ";
- }
- type uint8 {
- range 0..7;
- }
- default 0;
- description
- "preemption priority once the LSP is established,
- lower is higher priority; default 0 indicates other LSPs
- will not preempt the LSPs once established";
- reference "RFC 3209 - RSVP-TE: Extensions to RSVP for
- LSP Tunnels";
- }
- }
-
- grouping rsvp-p2p-path-attributes-config {
- description
- "properties of RSPP point-to-point paths";
-
- uses rsvp-priorities-path-config;
-
- leaf retry-timer {
- when "../../../../../" +
- "config/signaling-protocol = 'PATH_SETUP_RSVP'" {
- description
- "When the signaling protocol is RSVP-TE ";
- }
- type uint16 {
- range 1..600;
- }
- units seconds;
- description
- "sets the time between attempts to establish the
- LSP";
- }
- }
-
- grouping mpls-rsvp-neighbor-state {
- description
- "State information for RSVP neighbors";
-
- leaf address {
- type inet:ip-address;
- description
- "Address of RSVP neighbor";
- }
-
- leaf detected-interface {
- type string;
- description
- "Interface where RSVP neighbor was detected";
- }
-
- leaf neighbor-status {
- type enumeration {
- enum UP {
- description
- "RSVP hello messages are detected from the neighbor";
- }
- enum DOWN {
- description
- "RSVP neighbor not detected as up, due to a
- communication failure or IGP notification
- the neighbor is unavailable";
- }
- }
- description
- "Enumuration of possible RSVP neighbor states";
- }
-
- leaf refresh-reduction {
- type boolean;
- description
- "Suppport of neighbor for RSVP refresh reduction";
- reference
- "RFC 2961 RSVP Refresh Overhead Reduction
- Extensions";
- }
-
- }
-
- grouping mpls-rsvp-session-state {
- description
- "State information for RSVP TE sessions";
-
- container sessions {
- description
- "Enclosing container for sessions";
-
- list session {
- key "local-index";
- config false;
-
- description
- "List of RSVP sessions";
-
- leaf local-index {
- type leafref {
- path "../state/local-index";
- }
- description
- "Reference to the local index for the RSVP
- session";
- }
-
- uses mpls-rsvp-record-route-object-top;
- uses mpls-rsvp-explicit-route-object-top;
-
- container state {
- description
- "Operational state parameters relating to the
- RSVP session";
-
- leaf local-index {
- type uint64;
- description
- "The index used to identify the RSVP session
- on the local network element. This index is
- generated by the device and is unique only
- to the local network element.";
- }
-
- leaf source-address {
- type inet:ip-address;
- description
- "Origin address of RSVP session";
- }
-
- leaf destination-address {
- type inet:ip-address;
- description
- "Destination address of RSVP session";
- }
-
- leaf tunnel-id {
- type uint16;
- description
- "The tunnel ID is an identifier used in the
- RSVP session, which remains constant over
- the life of the tunnel.";
- reference "RFC 3209";
- }
-
- leaf lsp-id {
- type uint16;
- description
- "The LSP ID distinguishes between two LSPs
- originated from the same headend, and is
- commonly used to distinguish RSVP sessions
- during make before break operations.";
- reference "RFC 3209";
- }
-
- leaf session-name {
- type string;
- description
- "The signaled name of this RSVP session.";
- }
-
- leaf status {
- type enumeration {
- enum UP {
- description
- "RSVP session is up";
- }
- enum DOWN {
- description
- "RSVP session is down";
- }
- }
- description
- "Enumeration of RSVP session states";
- }
-
- leaf type {
- type identityref {
- base oc-mplst:LSP_ROLE;
- }
- description
- "The type/role of the RSVP session, signifing
- the session's role on the current device, such as
- a transit session vs. an ingress session.";
- }
-
- leaf protection-requested {
- type identityref {
- base oc-mplst:PROTECTION_TYPE;
- }
- description
- "The type of protection requested for the RSVP session";
- }
-
- leaf label-in {
- type oc-mplst:mpls-label;
- description
- "Incoming MPLS label associated with this RSVP session";
- }
-
- leaf label-out {
- type oc-mplst:mpls-label;
- description
- "Outgoing MPLS label associated with this RSVP session";
- }
-
- container sender-tspec {
- description
- "Operational state statistics relating to the SENDER_TSPEC
- received for the RSVP session";
-
- leaf rate {
- type oc-types:ieeefloat32;
- units "Bps";
- description
- "The rate at which the head-end device generates traffic,
- expressed in bytes per second.";
- reference
- "RFC2210: RSVP with INTSERV";
- }
-
- leaf size {
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The size of the token bucket that is used to determine
- the rate at which the head-end device generates traffic,
- expressed in bytes per second.";
- reference
- "RFC2210: RSVP with INTSERV";
- }
-
- leaf peak-data-rate {
- type union {
- type oc-types:ieeefloat32;
- type enumeration {
- enum INFINITY {
- description
- "The head-end device has no maximum data rate.";
- }
- }
- }
- units "bytes per second";
- description
- "The maximum traffic generation rate that the head-end
- device sends traffic at.";
- reference
- "RFC2210: RSVP with INTSERV";
- }
- }
- }
- }
- }
- } //rsvp-session-state
-
- grouping mpls-rsvp-interfaces-config {
- description
- "RSVP configuration information relevant to an interface";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Identifier for the interface";
- }
- }
-
- grouping mpls-rsvp-interfaces-state {
- description
- "RSVP state information relevant to an interface";
-
- leaf max-link-bandwidth {
- type oc-mplst:bandwidth-kbps;
- description
- "The maximum link bandwidth expressed in kilobits
- per second. This value should be the same (other than
- the units) as the value that is advertised into the
- IGP traffic engineering database.";
- }
- }
-
- grouping mpls-rsvp-interface-reservations {
- description
- "Operational state related to interface bandwidth
- reservations";
-
- container bandwidth-reservations {
- description
- "Enclosing container for bandwidth reservation";
- list bandwidth-reservation {
- key "priority";
- config false;
- description
- "Available and reserved bandwidth by priority on
- the interface.";
-
- leaf priority {
- type leafref {
- path "../state/priority";
- }
- description "Reference to the RSVP priority level";
- }
-
- container state {
- description
- "Operational state parameters relating to a
- bandwidth reservation at a certain priority";
-
- leaf priority {
- type union {
- type uint8 {
- range 0..7;
- }
- type enumeration {
- enum ALL {
- description
- "The ALL keyword represents the overall
- state of the interface - i.e., the union
- of all of the priority levels";
- }
- }
- }
- description
- "RSVP priority level for LSPs traversing the interface";
- }
-
- leaf available-bandwidth {
- type oc-mplst:bandwidth-mbps;
- description
- "Bandwidth currently available with the priority level,
- or for the entire interface when the priority is set to
- ALL";
- }
-
- leaf reserved-bandwidth {
- type oc-mplst:bandwidth-mbps;
- description
- "Bandwidth currently reserved within the priority level,
- or the sum of all priority levels when the keyword is set
- to ALL";
- }
-
- leaf active-reservations-count {
- type yang:gauge64;
- description
- "Number of active RSVP reservations in the associated
- priority, or the sum of all reservations when the priority
- level is set to ALL";
- }
-
- leaf highwater-mark {
- type oc-mplst:bandwidth-mbps;
- description
- "Maximum bandwidth reserved on the interface within the
- priority, or across all priorities in the case that the
- priority level is set to ALL";
- }
- }
- }
- }
- }
-
- grouping mpls-rsvp-global-protocol-state {
- description
- "RSVP protocol statistics which may not apply
- on an interface, but are significant globally.";
-
- leaf path-timeouts {
- type yang:counter64;
- description
- "The number of Path State Blocks (PSBs) that
- have been timed out by the local system.";
- }
-
- leaf reservation-timeouts {
- type yang:counter64;
- description
- "The number of Reservation State Blocks (RSBs) that
- have been timed out by the local system.";
- }
-
- uses mpls-rsvp-rate-limited-messages-state;
- }
-
- grouping mpls-rsvp-rate-limited-messages-state {
- description
- "Common grouping for rate limit messages";
-
- leaf rate-limited-messages {
- type yang:counter64;
- description
- "RSVP messages dropped due to rate limiting";
- }
- }
-
- grouping mpls-rsvp-protocol-state {
- description
- "RSVP protocol statistics and message counters";
-
- leaf in-path-messages {
- type yang:counter64;
- description
- "Number of received RSVP Path messages";
- }
-
- leaf in-path-error-messages {
- type yang:counter64;
- description
- "Number of received RSVP Path Error messages";
- }
-
- leaf in-path-tear-messages {
- type yang:counter64;
- description
- "Number of received RSVP Path Tear messages";
- }
-
- leaf in-reservation-messages {
- type yang:counter64;
- description
- "Number of received RSVP Resv messages";
- }
-
- leaf in-reservation-error-messages {
- type yang:counter64;
- description
- "Number of received RSVP Resv Error messages";
- }
-
- leaf in-reservation-tear-messages {
- type yang:counter64;
- description
- "Number of received RSVP Resv Tear messages";
- }
-
- leaf in-hello-messages {
- type yang:counter64;
- description
- "Number of received RSVP hello messages";
- }
-
- leaf in-srefresh-messages {
- type yang:counter64;
- description
- "Number of received RSVP summary refresh messages";
- }
-
- leaf in-ack-messages {
- type yang:counter64;
- description
- "Number of received RSVP refresh reduction ack
- messages";
- }
-
- leaf out-path-messages {
- type yang:counter64;
- description
- "Number of sent RSVP PATH messages";
- }
-
- leaf out-path-error-messages {
- type yang:counter64;
- description
- "Number of sent RSVP Path Error messages";
- }
-
- leaf out-path-tear-messages {
- type yang:counter64;
- description
- "Number of sent RSVP Path Tear messages";
- }
-
- leaf out-reservation-messages {
- type yang:counter64;
- description
- "Number of sent RSVP Resv messages";
- }
-
- leaf out-reservation-error-messages {
- type yang:counter64;
- description
- "Number of sent RSVP Resv Error messages";
- }
-
- leaf out-reservation-tear-messages {
- type yang:counter64;
- description
- "Number of sent RSVP Resv Tear messages";
- }
-
- leaf out-hello-messages {
- type yang:counter64;
- description
- "Number of sent RSVP hello messages";
- }
-
- leaf out-srefresh-messages {
- type yang:counter64;
- description
- "Number of sent RSVP summary refresh messages";
- }
-
- leaf out-ack-messages {
- type yang:counter64;
- description
- "Number of sent RSVP refresh reduction ack messages";
- }
- }
-
- grouping mpls-rsvp-record-route-object-top {
- description
- "Top-level structure grouping for list of record route
- objects.";
-
- container record-route-objects {
- description
- "Enclosing container for MPLS RRO objects associated with the
- traffic engineered tunnel.";
-
- list record-route-object {
- key "index";
- config false;
-
- description
- "Read-only list of record route objects associated with the
- traffic engineered tunnel. Each entry in the list
- may contain a hop IP address, MPLS label allocated
- at the hop, and the flags associated with the entry.";
-
- leaf index {
- type leafref {
- path "../state/index";
- }
- description
- "Reference to the index of the record route object.
- The index is used to indicate the ordering of hops in
- the path.";
- }
-
- container state {
- config false;
-
- description
- "Information related to RRO objects. The hop, label, and
- optional flags are present for each entry in the list.";
-
- uses mpls-rsvp-record-route-object-state;
- }
- }
- }
- }
-
- grouping mpls-rsvp-record-route-object-state {
- description
- "Grouping to hold information relating to record route
- objects relevant to a traffic engineering LSP.";
-
- leaf index {
- type uint8;
- description
- "Index of object in the list. Used for ordering.";
- }
-
- leaf address {
- type inet:ip-address;
- description
- "IP router hop for RRO entry";
- }
-
- leaf reported-label {
- type oc-mplst:mpls-label;
- description
- "Label reported for RRO hop";
- }
-
- leaf reported-flags {
- type uint8;
- description
- "Subobject flags for MPLS label";
- }
- }
-
- grouping mpls-rsvp-explicit-route-object-top {
- description
- "Top-level structure for explicit-route objects.";
-
- container explicit-route-objects {
- description
- "Enclosing container for MPLS ERO objects associated
- with the traffic engineered tunnel.";
-
- list explicit-route-object {
- key "index";
-
- config false;
-
- description
- "Read-only list of explicit route objects associated with the
- traffic-engineered tunnel. Each entry in the list contains
- a hop IP address, and the MPLS label allocated at the hop.";
-
- leaf index {
- type leafref {
- path "../state/index";
- }
- description
- "Reference to the index of the entry in the explicit route
- object. The index is used to indicate the ordering of hops
- in the path.";
- }
-
- container state {
- config false;
- description
- "Information related to the ERO index.";
- uses mpls-rsvp-explicit-route-object-state;
- }
- }
- }
- }
-
- grouping mpls-rsvp-explicit-route-object-state {
- description
- "Grouping defining information related to an individual hop
- of an ERO.";
-
- leaf index {
- type uint64;
- description
- "Index of the entry in the ERO. Entries are ordered in
- ascending order from the source to destination of the
- LSP.";
- }
-
- leaf loose {
- type boolean;
- description
- "When set to true, indicates that the hop of the ERO is
- a loose hop within the explicit route. If unset, indicates
- that the hop must explicitly traverse the entity specified
- in the ERO hop as the next-entity.";
- }
-
- leaf type {
- type enumeration {
- enum IPV4 {
- description
- "The hop represents an IPv4 prefix.";
- reference "RFC3209";
- }
- enum IPV6 {
- description
- "The hop represents an IPv6 prefix.";
- reference "RFC3209";
- }
- enum ASN {
- description
- "The hop represents an autonomous system number.";
- reference "RFC3209";
- }
- enum ASN4 {
- description
- "The hop represents a 4-byte autonomous system number.";
- }
- enum LABEL {
- description
- "The hop represents an MPLS label.";
- reference "RFC3473";
- }
- enum UNNUMBERED_INTERFACE {
- description
- "The hop represents an unnumbered interface.";
- reference "RFC3477";
- }
- }
- description
- "The type of hop indicated by the ERO entry.";
- }
-
- leaf ip-prefix {
- type inet:ip-prefix;
- description
- "The IPv4 or IPv6 prefix indicated by the ERO. Specified
- only when the ERO hop is an IPv4 or IPv6 prefix.";
- }
-
- leaf asn {
- type inet:as-number;
- description
- "The autonomous system number indicated by the ERO. Specified
- only when the ERO hop is an 2 or 4-byte AS number.";
- }
-
- leaf label {
- type oc-mplst:mpls-label;
- description
- "The MPLS label specified in the ERO hop. Specified only when
- the hop is an MPLS label.";
- }
-
- leaf interface-id {
- type uint32;
- description
- "The interface ID for an unnumbered interface. Specified only
- when the ERO hop is a unnumbered interface.";
- }
- reference
- "RFC3477 - Signalling Unnumbered Links in Resource
- ReSerVation Protocol - Traffic Engineering (RSVP-TE)";
-
- }
-
- grouping mpls-rsvp-error-counters {
- description
- "Grouping containing definitions of leaves relating to
- errors in RSVP-TE. This grouping can be used in different
- contexts - e.g., per-RSVP-TE protocol instance, or per-
- interface such that the errors represented should
- correspond to the number of errors that have occurred for
- the context in which the grouping is used.";
-
- leaf authentication-fail {
- type yang:counter64;
- description
- "The number of packets received that have failed RSVP-TE
- authentication checks in the specified context.";
- }
-
- leaf bad-checksum {
- type yang:counter64;
- description
- "The number of packets received that have an incorrect RSVP-TE
- checksum in the context.";
- }
-
- leaf bad-packet-format {
- type yang:counter64;
- description
- "The number of packets received that were dropped due to being
- badly formed in the context.";
- }
-
- leaf bad-packet-length {
- type yang:counter64;
- description
- "The number of packets received that were dropped due to having
- an invalid length specified in the context.";
- }
-
- leaf out-of-order {
- type yang:counter64;
- description
- "The number of messages received out of order in the context.";
- }
-
- leaf received-nack {
- type yang:counter64;
- description
- "The number of NACK RESV messages received in the context.";
- }
-
- leaf transmit-failure {
- type yang:counter64;
- description
- "The total number of packets dropped on transmit in the context.";
- }
-
- leaf transmit-queue-full {
- type yang:counter64;
- description
- "The number of packets dropped due to the transmit queue being
- full in the context.";
- }
-
- leaf unknown-ack {
- type yang:counter64;
- description
- "The number of packets received containing an ACK for an unknown
- message ID in the context.";
- }
-
- leaf unknown-nack {
- type yang:counter64;
- description
- "The number of packets received containing a NACK for an unknown
- message ID in the context.";
- }
- }
-
-
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-sr.yang b/src/plugins/yang/openconfig/openconfig-mpls-sr.yang
deleted file mode 100644
index 7485b2d..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls-sr.yang
+++ /dev/null
@@ -1,138 +0,0 @@
-module openconfig-mpls-sr {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/mpls-sr";
-
- prefix "oc-mpls-sr";
-
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Configuration for MPLS with segment routing-based LSPs,
- including global parameters, and LSP-specific configuration for
- both constrained-path and IGP-congruent LSPs";
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- revision "2016-12-15" {
- description
- "Add additional MPLS parameters";
- reference "2.1.0";
- }
-
- revision "2016-09-01" {
- description
- "Revisions based on implementation feedback";
- reference "2.0.0";
- }
-
- revision "2016-08-08" {
- description
- "Public release of MPLS models";
- reference "1.0.1";
- }
-
- grouping sr-path-attributes-config {
- description
- "Configuration parameters relating to SR-TE LSPs";
-
- leaf sid-selection-mode {
- type enumeration {
- enum ADJ_SID_ONLY {
- description
- "The SR-TE tunnel should only use adjacency SIDs
- to build the SID stack to be pushed for the LSP";
- }
- enum MIXED_MODE {
- description
- "The SR-TE tunnel can use a mix of adjacency
- and prefix SIDs to build the SID stack to be pushed
- to the LSP";
- }
- }
- default MIXED_MODE;
- description
- "The restrictions placed on the SIDs to be selected by the
- calculation method for the explicit path when it is
- instantiated for a SR-TE LSP";
- }
-
- leaf sid-protection-required {
- type boolean;
- default "false";
- description
- "When this value is set to true, only SIDs that are
- protected are to be selected by the calculating method
- when the explicit path is instantiated by a SR-TE LSP.";
- }
- }
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-static.yang b/src/plugins/yang/openconfig/openconfig-mpls-static.yang
deleted file mode 100644
index 493b5f8..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls-static.yang
+++ /dev/null
@@ -1,312 +0,0 @@
-submodule openconfig-mpls-static {
-
- yang-version "1";
-
- belongs-to "openconfig-mpls" {
- prefix "mpls";
- }
-
- // import some basic types
- import openconfig-mpls-types {prefix oc-mplst; }
- import openconfig-inet-types { prefix inet; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Defines static LSP configuration";
-
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- revision "2016-12-15" {
- description
- "Add additional MPLS parameters";
- reference "2.1.0";
- }
-
- revision "2016-09-01" {
- description
- "Revisions based on implementation feedback";
- reference "2.0.0";
- }
-
- revision "2016-08-08" {
- description
- "Public release of MPLS models";
- reference "1.0.1";
- }
-
- // grouping statements
-
- grouping static-lsp-common-config {
- description
- "common definitions for static LSPs";
-
- leaf next-hop {
- type inet:ip-address;
- description
- "next hop IP address for the LSP";
- }
-
- leaf incoming-label {
- type oc-mplst:mpls-label;
- description
- "label value on the incoming packet";
- }
-
- leaf push-label {
- type oc-mplst:mpls-label;
- description
- "label value to push at the current hop for the
- LSP";
- }
- }
-
- grouping static-lsp-ingress-config {
- description
- "Configuration data for ingress LSPs";
-
- uses static-lsp-common-config;
- }
-
- grouping static-lsp-ingress-state {
- description
- "Operational state data for ingress LSPs";
- }
-
- grouping static-lsp-ingress-top {
- description
- "Top-level grouping for ingress LSP data";
-
- container ingress {
- description
- "Static LSPs for which the router is an
- ingress node";
-
- container config {
- description
- "Configuration data for ingress LSPs";
-
- uses static-lsp-ingress-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for ingress LSPs";
-
- uses static-lsp-ingress-config;
- uses static-lsp-ingress-state;
- }
- }
- }
-
- grouping static-lsp-transit-config {
- description
- "Configuration data for transit LSPs";
-
- uses static-lsp-common-config;
- }
-
- grouping static-lsp-transit-state {
- description
- "Operational state data for transit LSPs";
- }
-
- grouping static-lsp-transit-top {
- description
- "Top-level grouping for transit LSP data";
-
- container transit {
- description
- "Static LSPs for which the router is an
- transit node";
-
- container config {
- description
- "Configuration data for transit LSPs";
-
- uses static-lsp-transit-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for transit LSPs";
-
- uses static-lsp-transit-config;
- uses static-lsp-transit-state;
- }
- }
- }
-
- grouping static-lsp-egress-config {
- description
- "Configuration data for egress LSPs";
-
- uses static-lsp-common-config;
- }
-
- grouping static-lsp-egress-state {
- description
- "Operational state data for egress LSPs";
- }
-
- grouping static-lsp-egress-top {
- description
- "Top-level grouping for egress LSP data";
-
- container egress {
- description
- "Static LSPs for which the router is an
- egress node";
-
- container config {
- description
- "Configuration data for egress LSPs";
-
- uses static-lsp-egress-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for egress LSPs";
-
- uses static-lsp-egress-config;
- uses static-lsp-egress-state;
- }
- }
- }
-
- grouping static-lsp-config {
- description
- "Configuration data for static LSPs";
-
- leaf name {
- type string;
- description
- "name to identify the LSP";
- }
- }
-
- grouping static-lsp-state {
- description
- "Operational state data for static LSPs";
-
- }
-
- grouping static-lsp-top {
- description
- "grouping for top level list of static LSPs";
-
-
- list static-lsp {
- key "name";
- description
- "list of defined static LSPs";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference the name list key";
- }
-
- container config {
- description
- "Configuration data for the static lsp";
-
- uses static-lsp-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for the static lsp";
-
- uses static-lsp-config;
- uses static-lsp-state;
-
- }
-
- // TODO: separation into ingress, transit, egress may help
- // to figure out what exactly is configured, but need to
- // consider whether implementations can support the
- // separation
- uses static-lsp-ingress-top;
- uses static-lsp-transit-top;
- uses static-lsp-egress-top;
- }
- }
-
- // data definition statements
-
- // augment statements
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-te.yang b/src/plugins/yang/openconfig/openconfig-mpls-te.yang
deleted file mode 100644
index e5142f1..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls-te.yang
+++ /dev/null
@@ -1,1381 +0,0 @@
-submodule openconfig-mpls-te {
-
- yang-version "1";
-
- belongs-to "openconfig-mpls" {
- prefix "oc-mpls";
- }
-
-
- // import some basic types
- import openconfig-inet-types { prefix inet; }
- import openconfig-mpls-rsvp { prefix oc-rsvp; }
- import openconfig-mpls-sr { prefix oc-sr; }
- import openconfig-mpls-types {prefix oc-mplst; }
- import openconfig-types { prefix oc-types; }
- import openconfig-yang-types { prefix yang; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Configuration related to constrained-path LSPs and traffic
- engineering. These definitions are not specific to a particular
- signaling protocol or mechanism (see related submodules for
- signaling protocol-specific configuration).";
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- revision "2016-12-15" {
- description
- "Add additional MPLS parameters";
- reference "2.1.0";
- }
-
- revision "2016-09-01" {
- description
- "Revisions based on implementation feedback";
- reference "2.0.0";
- }
-
- revision "2016-08-08" {
- description
- "Public release of MPLS models";
- reference "1.0.1";
- }
-
- // typedef statements
-
- typedef te-bandwidth-type {
- type enumeration {
- enum SPECIFIED {
- description
- "Bandwidth is explicitly specified";
- }
- enum AUTO {
- description
- "Bandwidth is automatically computed";
- }
- }
- description
- "enumerated type for specifying whether bandwidth is
- explicitly specified or automatically computed";
- }
-
- typedef mpls-srlg-flooding-type {
- type enumeration {
- enum FLOODED_SRLG {
- description
- "SRLG is flooded in the IGP";
- }
- enum STATIC_SRLG {
- description
- "SRLG is not flooded, the members are
- statically configured";
- }
- }
- description
- "Enumerated bype for specifying how the SRLG is flooded";
- }
-
- typedef mpls-hop-type {
- type enumeration {
- enum LOOSE {
- description
- "loose hop in an explicit path";
- }
- enum STRICT {
- description
- "strict hop in an explicit path";
- }
- }
- description
- "enumerated type for specifying loose or strict
- paths";
- }
-
- typedef te-metric-type {
- type union {
- type enumeration {
- enum IGP {
- description
- "set the LSP metric to track the underlying
- IGP metric";
- }
- }
- type uint32;
- }
- description
- "union type for setting the LSP TE metric to a
- static value, or to track the IGP metric";
- }
-
- typedef cspf-tie-breaking {
- type enumeration {
- enum RANDOM {
- description
- "CSPF calculation selects a random path among
- multiple equal-cost paths to the destination";
- }
- enum LEAST_FILL {
- description
- "CSPF calculation selects the path with greatest
- available bandwidth";
- }
- enum MOST_FILL {
- description
- "CSPF calculation selects the path with the least
- available bandwidth";
- }
- }
- default RANDOM;
- description
- "type to indicate the CSPF selection policy when
- multiple equal cost paths are available";
- }
-
-
- // grouping statements
-
- grouping te-tunnel-reoptimize-config {
- description
- "Definition for reoptimize timer configuration";
-
- leaf reoptimize-timer {
- type uint16;
- units seconds;
- description
- "frequency of reoptimization of
- a traffic engineered LSP";
- }
- }
-
- grouping te-lsp-auto-bandwidth-config {
- description
- "Configuration parameters related to autobandwidth";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "enables mpls auto-bandwidth on the
- lsp";
- }
-
- leaf min-bw {
- type oc-mplst:bandwidth-kbps;
- description
- "set the minimum bandwidth in Kbps for an
- auto-bandwidth LSP";
- }
-
- leaf max-bw {
- type oc-mplst:bandwidth-kbps;
- description
- "set the maximum bandwidth in Kbps for an
- auto-bandwidth LSP";
- }
-
- leaf adjust-interval {
- type uint32;
- description
- "time in seconds between adjustments to
- LSP bandwidth";
- }
-
- leaf adjust-threshold {
- type oc-types:percentage;
- description
- "percentage difference between the LSP's
- specified bandwidth and its current bandwidth
- allocation -- if the difference is greater than the
- specified percentage, auto-bandwidth adjustment is
- triggered";
- }
- }
-
- grouping te-lsp-auto-bandwidth-state {
- description
- "Operational state parameters relating to auto-bandwidth";
-
- leaf interval-high-bw {
- type oc-mplst:bandwidth-kbps;
- description
- "The maximum measured bandwidth during the current
- auto-bandwidth adjust interval expressed in kilobits
- per second.";
- }
- }
-
- grouping te-lsp-overflow-config {
- description
- "configuration for mpls lsp bandwidth
- overflow adjustment";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "enables mpls lsp bandwidth overflow
- adjustment on the lsp";
- }
-
- leaf overflow-threshold {
- type oc-types:percentage;
- description
- "bandwidth percentage change to trigger
- an overflow event";
-
- }
-
- leaf trigger-event-count {
- type uint16;
- description
- "number of consecutive overflow sample
- events needed to trigger an overflow adjustment";
- }
- }
-
- grouping te-lsp-underflow-config {
- description
- "configuration for mpls lsp bandwidth
- underflow adjustment";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "enables bandwidth underflow
- adjustment on the lsp";
- }
-
- leaf underflow-threshold {
- type oc-types:percentage;
- description
- "bandwidth percentage change to trigger
- and underflow event";
- }
-
- leaf trigger-event-count {
- type uint16;
- description
- "number of consecutive underflow sample
- events needed to trigger an underflow adjustment";
- }
- }
-
- grouping te-path-placement-constraints-config {
- description
- "Configuration data for link affinities";
-
- leaf-list exclude-group {
- type leafref {
- path "../../../../../../../../../../te-global-attributes" +
- "/mpls-admin-groups/admin-group/admin-group-name";
- }
- description
- "list of references to named admin-groups to exclude in
- path calculation.";
- }
-
- leaf-list include-all-group {
- type leafref {
- path "../../../../../../../../../../te-global-attributes" +
- "/mpls-admin-groups/admin-group/admin-group-name";
- }
- description
- "list of references to named admin-groups of which all must
- be included";
- }
-
- leaf-list include-any-group {
- type leafref {
- path "../../../../../../../../../../te-global-attributes" +
- "/mpls-admin-groups/admin-group/admin-group-name";
- }
- description
- "list of references to named admin-groups of which one must
- be included";
- }
- }
-
- grouping te-path-placement-constraints-state {
- description
- "Operational state data for link affinities";
- //TODO: currently a placeholder
- }
-
- grouping te-path-placement-constraints-top {
- description
- "Top-level grouping ";
-
- container admin-groups {
- description
- "Top-level container for include/exclude constraints for
- link affinities";
-
- container config {
- description
- "Configuration data ";
-
- uses te-path-placement-constraints-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data ";
-
- uses te-path-placement-constraints-config;
- uses te-path-placement-constraints-state;
- }
- }
- }
-
- grouping te-tunnel-protection-config {
- description
- "Configuration parameters related to LSP
- protection";
- leaf protection-style-requested {
- type identityref {
- base oc-mplst:PROTECTION_TYPE;
- }
- default oc-mplst:UNPROTECTED;
- description
- "style of mpls frr protection desired: can be
- link, link-node or unprotected.";
- }
- }
-
- grouping explicit-route-subobject-config {
- description
- "The explicit route subobject grouping";
-
- leaf address {
- type inet:ip-address;
- description
- "router hop for the LSP path";
- }
-
- leaf hop-type {
- type mpls-hop-type;
- description
- "strict or loose hop";
- }
-
- leaf index {
- type uint8 {
- range "0..255";
- }
- description
- "Index of this explicit route object to express
- the order of hops in the path";
- }
-
- }
-
- grouping named-explicit-path-config {
- description
- "Configuration parameters relating to a named
- explicit path";
-
- leaf name {
- type string;
- description
- "A string name that uniquely identifies an explicit
- path";
- }
- }
-
- // Explicit paths config somewhat following the IETF model
- grouping explicit-paths-top {
- description
- "Top level global explicit path configuration
- grouping";
-
- container named-explicit-paths {
- description
- "Enclosing container for the named explicit paths";
- list named-explicit-path {
- key "name";
- description
- "A list of explicit paths";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "A string name that uniquely identifies
- an explicit path";
- }
-
- container config {
- description
- "Configuration parameters relating to named explicit
- paths";
- uses named-explicit-path-config;
- uses oc-sr:sr-path-attributes-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the named
- explicit paths";
- uses named-explicit-path-config;
- uses oc-sr:sr-path-attributes-config;
- }
-
- container explicit-route-objects {
- description
- "Enclosing container for EROs";
-
- list explicit-route-object {
- key "index";
- description
- "List of explicit route objects";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
-
- description
- "Index of this explicit route object,
- to express the order of hops in path";
- }
-
- container config {
- description
- "Configuration parameters relating to an explicit
- route";
- uses explicit-route-subobject-config;
- }
-
-
- container state {
- config false;
- description
- "State parameters relating to an explicit route";
- uses explicit-route-subobject-config;
- }
- }
- }
- }
- }
- }
-
- grouping mpls-te-srlg-config {
- description
- "Configuration of various attributes associated
- with the SRLG";
-
- leaf name {
- type string;
- description
- "SRLG group identifier";
- }
-
- leaf value {
- type uint32;
- description
- "group ID for the SRLG";
- }
-
- leaf cost {
- type uint32;
- description
- "The cost of the SRLG to the computation
- algorithm";
- }
-
- leaf flooding-type {
- type mpls-srlg-flooding-type;
- default FLOODED_SRLG;
- description
- "The type of SRLG, either flooded in the IGP or
- statically configured";
- }
- }
-
- grouping mpls-te-srlg-members-config {
- description
- "Configuration of the membership of the SRLG";
-
- leaf from-address {
- type inet:ip-address;
- description
- "IP address of the a-side of the SRLG link";
- }
-
- leaf to-address {
- type inet:ip-address;
- description
- "IP address of the z-side of the SRLG link";
- }
- }
-
- grouping mpls-te-srlg-top {
- description
- "Top level grouping for MPLS shared
- risk link groups.";
-
- container srlgs {
- description
- "Shared risk link groups attributes";
- list srlg {
- key "name";
- description
- "List of shared risk link groups";
-
- leaf name {
- type leafref {
- path "../config/name";
- // Requires YANG 1.1
- //require-instance true;
- }
- description
- "The SRLG group identifier";
- }
-
- container config {
- description
- "Configuration parameters related to the SRLG";
- uses mpls-te-srlg-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to the SRLG";
- uses mpls-te-srlg-config;
- }
-
- container static-srlg-members {
- when "../config/flooding-type = 'STATIC_SRLG'" {
- description
- "Include this container for static
- SRLG specific configuration";
- }
- description
- "SRLG members for static (not flooded) SRLGs ";
-
- list members-list {
- key "from-address";
- description
- "List of SRLG members, which are expressed
- as IP address endpoints of links contained in the
- SRLG";
-
- leaf from-address {
- type leafref {
- path "../config/from-address";
- // Requires YANG 1.1
- //require-instance true;
- }
- description
- "The from address of the link in the SRLG";
- }
-
- container config {
- description
- "Configuration parameters relating to the
- SRLG members";
- uses mpls-te-srlg-members-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the SRLG
- members";
- uses mpls-te-srlg-members-config;
- }
- }
- }
- }
- }
- }
-
- grouping te-global-tunnel-config {
- description
- "Configuration parameters relevant to a single
- traffic engineered tunnel.";
-
- leaf name {
- type string;
- description
- "The tunnel name";
- }
-
- leaf type {
- type identityref {
- base oc-mplst:TUNNEL_TYPE;
- }
- description
- "Tunnel type, p2p or p2mp";
- }
-
- leaf signaling-protocol {
- type identityref {
- base oc-mplst:PATH_SETUP_PROTOCOL;
- }
- description
- "Signaling protocol used to set up this tunnel";
- }
-
- leaf description {
- type string;
- description
- "optional text description for the tunnel";
- }
-
- leaf admin-status {
- type identityref {
- base oc-mplst:TUNNEL_ADMIN_STATUS;
- }
- default oc-mplst:ADMIN_UP;
- description
- "TE tunnel administrative state.";
- }
-
- leaf preference {
- type uint8 {
- range "1..255";
- }
- description
- "Specifies a preference for this tunnel.
- A lower number signifies a better preference";
- }
-
- leaf metric-type {
- type identityref {
- base oc-mplst:LSP_METRIC_TYPE;
- }
- default oc-mplst:LSP_METRIC_INHERITED;
- description
- "The type of metric specification that should be used to set
- the LSP(s) metric";
- }
-
- leaf metric {
- type int32;
- description
- "The value of the metric that should be specified. The value
- supplied in this leaf is used in conjunction with the metric
- type to determine the value of the metric used by the system.
- Where the metric-type is set to LSP_METRIC_ABSOLUTE - the
- value of this leaf is used directly; where it is set to
- LSP_METRIC_RELATIVE, the relevant (positive or negative)
- offset is used to formulate the metric; where metric-type
- is LSP_METRIC_INHERITED, the value of this leaf is not
- utilised";
- }
-
- leaf shortcut-eligible {
- type boolean;
- default "true";
- description
- "Whether this LSP is considered to be eligible for us as a
- shortcut in the IGP. In the case that this leaf is set to
- true, the IGP SPF calculation uses the metric specified to
- determine whether traffic should be carried over this LSP";
- }
-
- leaf protection-style-requested {
- type identityref {
- base oc-mplst:PROTECTION_TYPE;
- }
- default oc-mplst:UNPROTECTED;
- description
- "style of mpls frr protection desired: can be
- link, link-node or unprotected.";
- }
-
- uses te-tunnel-reoptimize-config;
- uses oc-rsvp:rsvp-p2p-tunnel-attributes-config;
-
- }
-
- grouping tunnel-p2p-attributes-config {
- description
- "Configuration related to p2p LSPs";
- leaf destination {
- type inet:ip-address;
- description
- "P2P tunnel destination address";
- }
- }
-
- grouping p2p-path-state {
- description
- "Operational state parameters for p2p paths";
-
- leaf-list associated-rsvp-sessions {
- type leafref {
- path "../../../../../../../../../signaling-protocols/" +
- "rsvp-te/sessions/session/local-index";
- }
- description
- "If the signalling protocol specified for this path is
- RSVP-TE, this leaf-list provides a reference to the associated
- sessions within the RSVP-TE protocol sessions list, such
- that details of the signaling can be retrieved. More than
- one session may exist during re-signalling such as
- make-before-break.";
- }
-
- leaf spf-metric {
- type uint64;
- description
- "The IGP metric of the shortest path to the LSP destination.
- This value is used to compare the current metric of the
- constrained path to the shortest path that is available in
- the network topology.";
- }
-
- leaf cspf-metric {
- type uint64;
- description
- "The IGP metric of the path currently used by the LSP.
- This value is used to represent the metric of the path
- used by the LSP following the execution of the CSPF
- algorithm and signalling of the LSP.";
- }
- }
-
- grouping p2p-path-config {
- description
- "Configuration parameters for p2p paths";
-
- leaf name {
- type string;
- description
- "Path name";
- }
-
- leaf path-computation-method {
- type identityref {
- base oc-mplst:PATH_COMPUTATION_METHOD;
- }
- default oc-mplst:LOCALLY_COMPUTED;
- description
- "The method used for computing the path, either
- locally computed, queried from a server or not
- computed at all (explicitly configured).";
- }
-
- leaf use-cspf {
- when "../path-computation-method = 'LOCALLY_COMPUTED'" {
- description
- "The use of cspf when the path-computation method is
- local computation";
- }
- type boolean;
- description
- "Flag to enable CSPF for locally computed LSPs";
- }
-
- leaf cspf-tiebreaker {
- when "../path-computation-method = 'LOCALLY_COMPUTED'" {
- description
- "The cspf tiebreaking method when the path is
- locally computed";
- }
- type cspf-tie-breaking;
- description
- "Determine the tie-breaking method to choose between
- equally desirable paths during CSFP computation";
- }
-
-
- leaf path-computation-server {
- when "../path-computation-method = 'EXTERNALLY_QUERIED'" {
- description
- "The path-computation server when the path is
- externally queried";
- }
- type inet:ip-address;
- description
- "Address of the external path computation
- server";
- }
-
- leaf explicit-path-name {
- when "../path-computation-method = 'EXPLICITLY_DEFINED'" {
- description
- "The name of the explicitly defined path used";
- }
-
- type leafref {
- path "../../../../../../../"
- + "named-explicit-paths/named-explicit-path/"
- + "config/name";
- // Requires YANG 1.1
- //require-instance true;
- }
- description
- "reference to a defined path";
- }
-
- leaf preference {
- type uint8 {
- range "1..255";
- }
- description
- "Specifies a preference for this path. The lower the
- number higher the preference";
- }
-
- uses oc-rsvp:rsvp-p2p-path-attributes-config;
- }
-
-
- grouping te-tunnel-p2p-top {
- description
- "Top level grouping for p2p configuration";
-
- container p2p-tunnel-attributes {
- when "../config/type = 'P2P'" {
- description
- "Include this container for LSPs of type P2P";
- }
- description
- "Parameters related to LSPs of type P2P";
-
- container config {
- description
- "Configuration parameters for P2P LSPs";
- uses tunnel-p2p-attributes-config;
- }
-
- container state {
- config false;
- description
- "State parameters for P2P LSPs";
- uses tunnel-p2p-attributes-config;
- }
-
- uses p2p-primary-paths-top;
- uses p2p-secondary-paths-top;
- }
- }
-
-
- grouping te-tunnel-state {
- description
- "Counters and statistical data relevent to a single
- tunnel.";
-
- leaf oper-status {
- type identityref {
- base oc-mplst:LSP_OPER_STATUS;
- }
- description
- "The operational status of the TE tunnel";
- }
-
- leaf role {
- type identityref {
- base oc-mplst:LSP_ROLE;
- }
- description
- "The lsp role at the current node, whether it is headend,
- transit or tailend.";
- }
-
- leaf auto-generated {
- type boolean;
- description
- "If the LSP was auto-generated by the system this leaf
- should be set to true. Examples of auto-generated LSPs
- are dynamically created backup LSPs to meet a FRR
- policy.";
- }
-
- container counters {
- description
- "State data for MPLS label switched paths. This state
- data is specific to a single label switched path.";
-
- leaf bytes {
- type yang:counter64;
- description
- "Number of bytes that have been forwarded over the
- label switched path.";
- }
-
- leaf packets {
- type yang:counter64;
- description
- "Number of pacets that have been forwarded over the
- label switched path.";
- }
-
- leaf path-changes {
- type yang:counter64;
- description
- "Number of path changes for the label switched path";
- }
-
- leaf state-changes {
- type yang:counter64;
- description
- "Number of state changes for the label switched path";
- }
-
- leaf online-time {
- type oc-types:timeticks64;
- description
- "Indication of the time the label switched path
- transitioned to an Oper Up or in-service state.
-
- The value is the timestamp in nanoseconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- }
-
- leaf current-path-time {
- type oc-types:timeticks64;
- description
- "Indicates the time the LSP switched onto its
- current path. The value is reset upon a LSP path
- change.
-
- The value is the timestamp in nanoseconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-
- }
-
- leaf next-reoptimization-time {
- type oc-types:timeticks64;
- description
- "Indicates the next scheduled time the LSP
- will be reoptimized.
-
- The value is the timestamp in nanoseconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
-
- }
- }
- }
-
- grouping te-tunnel-bandwidth-config {
- description
- "Configuration parameters related to bandwidth for a tunnel";
-
- leaf specification-type {
- type te-bandwidth-type;
- default SPECIFIED;
- description
- "The method used for settign the bandwidth, either explicitly
- specified or configured";
- }
-
- leaf set-bandwidth {
- when "../specification-type = 'SPECIFIED'" {
- description
- "The bandwidth value when bandwidth is explicitly
- specified";
- }
- type oc-mplst:bandwidth-kbps;
- description
- "set bandwidth explicitly, e.g., using
- offline calculation";
- }
- }
-
- grouping te-tunnel-bandwidth-state {
- description
- "Operational state parameters relating to bandwidth for a tunnel";
-
- leaf signaled-bandwidth {
- type oc-mplst:bandwidth-kbps;
- description
- "The currently signaled bandwidth of the LSP. In the case where
- the bandwidth is specified explicitly, then this will match the
- value of the set-bandwidth leaf; in cases where the bandwidth is
- dynamically computed by the system, the current value of the
- bandwidth should be reflected.";
- }
- }
-
- grouping te-tunnel-bandwidth-top {
- description
- "Top level grouping for specifying bandwidth for a tunnel";
-
- container bandwidth {
- description
- "Bandwidth configuration for TE LSPs";
-
- container config {
- description
- "Configuration parameters related to bandwidth on TE
- tunnels:";
- uses te-tunnel-bandwidth-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to bandwidth
- configuration of TE tunnels";
- uses te-tunnel-bandwidth-config;
- uses te-tunnel-bandwidth-state;
- }
-
- container auto-bandwidth {
- when "../config/specification-type = 'AUTO'" {
- description
- "Include this container for auto bandwidth
- specific configuration";
- }
- description
- "Parameters related to auto-bandwidth";
-
- container config {
- description
- "Configuration parameters relating to MPLS
- auto-bandwidth on the tunnel.";
- uses te-lsp-auto-bandwidth-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to MPLS
- auto-bandwidth on the tunnel.";
- uses te-lsp-auto-bandwidth-config;
- uses te-lsp-auto-bandwidth-state;
- }
-
- container overflow {
- description
- "configuration of MPLS overflow bandwidth
- adjustement for the LSP";
-
- container config {
- description
- "Config information for MPLS overflow bandwidth
- adjustment";
- uses te-lsp-overflow-config;
- }
-
- container state {
- config false;
- description
- "Config information for MPLS overflow bandwidth
- adjustment";
- uses te-lsp-overflow-config;
- }
- }
-
- container underflow {
- description
- "configuration of MPLS underflow bandwidth
- adjustement for the LSP";
-
- container config {
- description
- "Config information for MPLS underflow bandwidth
- adjustment";
- uses te-lsp-underflow-config;
- }
-
- container state {
- config false;
- description
- "State information for MPLS underflow bandwidth
- adjustment";
- uses te-lsp-underflow-config;
- }
- }
- }
- }
- }
-
- grouping p2p-path-candidate-secondary-path-config {
- description
- "Configuration parameters relating to a secondary path which
- is a candidate for a particular primary path";
-
- leaf secondary-path {
- type leafref {
- path "../../../../../../p2p-secondary-paths/" +
- "p2p-secondary-path/config/name";
- }
- description
- "A reference to the secondary path that should be utilised
- when the containing primary path option is in use";
- }
-
- leaf priority {
- type uint16;
- description
- "The priority of the specified secondary path option. Higher
- priority options are less preferable - such that a secondary
- path reference with a priority of 0 is the most preferred";
- }
- }
-
- grouping p2p-path-candidate-secondary-path-state {
- description
- "Operational state parameters relating to a secondary path
- which is a candidate for a particular primary path";
-
- leaf active {
- type boolean;
- description
- "Indicates the current active path option that has
- been selected of the candidate secondary paths";
- }
- }
-
- grouping p2p-primary-paths-top {
- description
- "Top level grouping for p2p primary paths";
-
- container p2p-primary-path {
- description
- "Primary paths associated with the LSP";
-
- list p2p-primary-path {
- key "name";
- description
- "List of p2p primary paths for a tunnel";
-
- leaf name {
- type leafref {
- path "../config/name";
- // Requires YANG 1.1
- //require-instance true;
- }
- description
- "Path name";
- }
-
- container config {
- description
- "Configuration parameters related to paths";
- uses p2p-path-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to paths";
- uses p2p-path-config;
- uses p2p-path-state;
- }
-
- container candidate-secondary-paths {
- description
- "The set of candidate secondary paths which may be used
- for this primary path. When secondary paths are specified
- in the list the path of the secondary LSP in use must be
- restricted to those path options referenced. The
- priority of the secondary paths is specified within the
- list. Higher priority values are less preferred - that is
- to say that a path with priority 0 is the most preferred
- path. In the case that the list is empty, any secondary
- path option may be utilised when the current primary path
- is in use.";
-
- list candidate-secondary-path {
- key "secondary-path";
-
- description
- "List of secondary paths which may be utilised when the
- current primary path is in use";
-
- leaf secondary-path {
- type leafref {
- path "../config/secondary-path";
- }
- description
- "A reference to the secondary path option reference
- which acts as the key of the candidate-secondary-path
- list";
- }
-
- container config {
- description
- "Configuration parameters relating to the candidate
- secondary path";
-
- uses p2p-path-candidate-secondary-path-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the candidate
- secondary path";
-
- uses p2p-path-candidate-secondary-path-config;
- uses p2p-path-candidate-secondary-path-state;
- }
- }
- }
-
- uses te-path-placement-constraints-top;
-
- }
- }
- }
-
- grouping p2p-secondary-paths-top {
- description
- "Top level grouping for p2p secondary paths";
-
- container p2p-secondary-paths {
- description
- "Secondary paths for the LSP";
-
- list p2p-secondary-path {
- key "name";
- description
- "List of p2p primary paths for a tunnel";
-
- leaf name {
- type leafref {
- path "../config/name";
- // Requires YANG 1.1
- //require-instance true;
- }
- description
- "Path name";
- }
-
- container config {
- description
- "Configuration parameters related to paths";
- uses p2p-path-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to paths";
- uses p2p-path-config;
- uses p2p-path-state;
- }
-
- uses te-path-placement-constraints-top;
- }
- }
- }
-
- grouping te-tunnels-top {
- description
- "Top level grouping for TE tunnels";
-
- container tunnels {
- description
- "Enclosing container for tunnels";
- list tunnel {
- key "name";
- description
- "List of TE tunnels. This list contains only the LSPs that the
- current device originates (i.e., for which it is the head-end).
- Where the signaling protocol utilised for an LSP allows a mid-point
- or tail device to be aware of the LSP (e.g., RSVP-TE), then the
- associated sessions are maintained per protocol";
-
- leaf name {
- type leafref {
- path "../config/name";
- // Requires YANG 1.1
- //require-instance true;
- }
- description
- "The tunnel name";
- }
-
- container config {
- description
- "Configuration parameters related to TE tunnels:";
- uses te-global-tunnel-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to TE tunnels";
- uses te-global-tunnel-config;
- uses te-tunnel-state;
-
- }
-
- uses te-tunnel-bandwidth-top;
- uses te-tunnel-p2p-top;
- // TODO - add the p2mp configuration
- }
- }
- }
-
-// data definition statements
-
-// augment statements
-
-// rpc statements
-
-// notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-mpls-types.yang b/src/plugins/yang/openconfig/openconfig-mpls-types.yang
deleted file mode 100644
index 18d3816..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls-types.yang
+++ /dev/null
@@ -1,426 +0,0 @@
-module openconfig-mpls-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/mpls-types";
-
- prefix "oc-mpls-types";
-
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "General types for MPLS / TE data model";
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- revision "2016-12-15" {
- description
- "Add additional MPLS parameters";
- reference "2.1.0";
- }
-
- revision "2016-09-01" {
- description
- "Revisions based on implementation feedback";
- reference "2.0.0";
- }
-
- revision "2016-08-08" {
- description
- "Public release of MPLS models";
- reference "1.0.1";
- }
-
- // identity statements
-
- identity PATH_COMPUTATION_METHOD {
- description
- "base identity for supported path computation
- mechanisms";
- }
-
- identity LOCALLY_COMPUTED {
- base PATH_COMPUTATION_METHOD;
- description
- "indicates a constrained-path LSP in which the
- path is computed by the local LER";
- }
-
- identity EXTERNALLY_QUERIED {
- base PATH_COMPUTATION_METHOD;
- description
- "Constrained-path LSP in which the path is
- obtained by querying an external source, such as a PCE server.
- In the case that an LSP is defined to be externally queried, it may
- also have associated explicit definitions (which are provided to the
- external source to aid computation); and the path that is returned by
- the external source is not required to provide a wholly resolved
- path back to the originating system - that is to say, some local
- computation may also be required";
- }
-
- identity EXPLICITLY_DEFINED {
- base PATH_COMPUTATION_METHOD;
- description
- "constrained-path LSP in which the path is
- explicitly specified as a collection of strict or/and loose
- hops";
- }
-
-
- // using identities rather than enum types to simplify adding new
- // signaling protocols as they are introduced and supported
- identity PATH_SETUP_PROTOCOL {
- description
- "base identity for supported MPLS signaling
- protocols";
- }
-
- identity PATH_SETUP_RSVP {
- base PATH_SETUP_PROTOCOL;
- description
- "RSVP-TE signaling protocol";
- }
-
- identity PATH_SETUP_SR {
- base PATH_SETUP_PROTOCOL;
- description
- "Segment routing";
- }
-
- identity PATH_SETUP_LDP {
- base PATH_SETUP_PROTOCOL;
- description
- "LDP - RFC 5036";
- }
-
-
- identity PROTECTION_TYPE {
- description
- "base identity for protection type";
- }
-
- identity UNPROTECTED {
- base PROTECTION_TYPE;
- description
- "no protection is desired";
- }
-
- identity LINK_PROTECTION_REQUIRED {
- base PROTECTION_TYPE;
- description
- "link protection is desired";
- }
-
- identity LINK_NODE_PROTECTION_REQUESTED {
- base PROTECTION_TYPE;
- description
- "node and link protection are both desired";
- }
-
- identity LSP_ROLE {
- description
- "Base identity for describing the role of
- label switched path at the current node";
- }
-
- identity INGRESS {
- base LSP_ROLE;
- description
- "Label switched path is an ingress (headend)
- LSP";
- }
-
- identity EGRESS {
- base LSP_ROLE;
- description
- "Label switched path is an egress (tailend)
- LSP";
- }
-
- identity TRANSIT {
- base LSP_ROLE;
- description
- "Label switched path is a transit LSP";
- }
-
-
- identity TUNNEL_TYPE {
- description
- "Base identity from which specific tunnel types are
- derived.";
- }
-
- identity P2P {
- base TUNNEL_TYPE;
- description
- "TE point-to-point tunnel type.";
- }
-
- identity P2MP {
- base TUNNEL_TYPE;
- description
- "TE point-to-multipoint tunnel type.";
- }
-
-
- identity LSP_OPER_STATUS {
- description
- "Base identity for LSP operational status";
- }
-
- identity DOWN {
- base LSP_OPER_STATUS;
- description
- "LSP is operationally down or out of service";
- }
-
- identity UP {
- base LSP_OPER_STATUS;
- description
- "LSP is operationally active and available
- for traffic.";
- }
-
- identity TUNNEL_ADMIN_STATUS {
- description
- "Base identity for tunnel administrative status";
- }
-
- identity ADMIN_DOWN {
- base TUNNEL_ADMIN_STATUS;
- description
- "LSP is administratively down";
- }
-
- identity ADMIN_UP {
- base TUNNEL_ADMIN_STATUS;
- description
- "LSP is administratively up";
- }
-
- identity NULL_LABEL_TYPE {
- description
- "Base identity from which specific null-label types are
- derived.";
- }
-
- identity EXPLICIT {
- base NULL_LABEL_TYPE;
- description
- "Explicit null label is used.";
- }
-
- identity IMPLICIT {
- base NULL_LABEL_TYPE;
- description
- "Implicit null label is used.";
- }
-
- identity LSP_METRIC_TYPE {
- description
- "Base identity for types of LSP metric specification";
- }
-
- identity LSP_METRIC_RELATIVE {
- base LSP_METRIC_TYPE;
- description
- "The metric specified for the LSPs to which this identity refers
- is specified as a relative value to the IGP metric cost to the
- LSP's tail-end.";
- }
-
- identity LSP_METRIC_ABSOLUTE {
- base LSP_METRIC_TYPE;
- description
- "The metric specified for the LSPs to which this identity refers
- is specified as an absolute value";
- }
-
- identity LSP_METRIC_INHERITED {
- base LSP_METRIC_TYPE;
- description
- "The metric for for the LSPs to which this identity refers is
- not specified explicitly - but rather inherited from the IGP
- cost directly";
- }
-
- // typedef statements
- typedef mpls-label {
- type union {
- type uint32 {
- range 16..1048575;
- }
- type enumeration {
- enum IPV4_EXPLICIT_NULL {
- value 0;
- description
- "valid at the bottom of the label stack,
- indicates that stack must be popped and packet forwarded
- based on IPv4 header";
- }
- enum ROUTER_ALERT {
- value 1;
- description
- "allowed anywhere in the label stack except
- the bottom, local router delivers packet to the local CPU
- when this label is at the top of the stack";
- }
- enum IPV6_EXPLICIT_NULL {
- value 2;
- description
- "valid at the bottom of the label stack,
- indicates that stack must be popped and packet forwarded
- based on IPv6 header";
- }
- enum IMPLICIT_NULL {
- value 3;
- description
- "assigned by local LSR but not carried in
- packets";
- }
- enum ENTROPY_LABEL_INDICATOR {
- value 7;
- description
- "Entropy label indicator, to allow an LSR
- to distinguish between entropy label and applicaiton
- labels RFC 6790";
- }
- enum NO_LABEL {
- description
- "This value is utilised to indicate that the packet that
- is forwarded by the local system does not have an MPLS
- header applied to it. Typically, this is used at the
- egress of an LSP";
- }
- }
- }
- description
- "type for MPLS label value encoding";
- reference "RFC 3032 - MPLS Label Stack Encoding";
- }
-
- typedef tunnel-type {
- type enumeration {
- enum P2P {
- description
- "point-to-point label-switched-path";
- }
- enum P2MP {
- description
- "point-to-multipoint label-switched-path";
- }
- enum MP2MP {
- description
- "multipoint-to-multipoint label-switched-path";
- }
- }
- description
- "defines the tunnel type for the LSP";
- reference
- "RFC 6388 - Label Distribution Protocol Extensions for
- Point-to-Multipoint and Multipoint-to-Multipoint Label Switched
- Paths
- RFC 4875 - Extensions to Resource Reservation Protocol
- - Traffic Engineering (RSVP-TE) for Point-to-Multipoint TE
- Label Switched Paths (LSPs)";
- }
-
- typedef bandwidth-kbps {
- type uint64;
- units "Kbps";
- description
- "Bandwidth values expressed in kilobits per second";
- }
-
- typedef bandwidth-mbps {
- type uint64;
- units "Mbps";
- description
- "Bandwidth values expressed in megabits per second";
- }
-
- typedef bandwidth-gbps {
- type uint64;
- units "Gbps";
- description
- "Bandwidth values expressed in gigabits per second";
- }
-
- typedef mpls-tc {
- type uint8 {
- range "0..7";
- }
- description
- "Values of the MPLS Traffic Class (formerly known as
- Experimental, EXP) bits";
- }
-
- // grouping statements
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-mpls.yang b/src/plugins/yang/openconfig/openconfig-mpls.yang
deleted file mode 100644
index e6bdf96..0000000
--- a/src/plugins/yang/openconfig/openconfig-mpls.yang
+++ /dev/null
@@ -1,746 +0,0 @@
-module openconfig-mpls {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/mpls";
-
- prefix "oc-mpls";
-
-
- // import some basic types
- import openconfig-mpls-types { prefix oc-mplst; }
- import openconfig-mpls-rsvp { prefix oc-rsvp; }
- import openconfig-mpls-ldp { prefix oc-ldp; }
- import openconfig-types { prefix oc-types; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-segment-routing { prefix oc-sr; }
-
- // include submodules
- include openconfig-mpls-te;
- include openconfig-mpls-igp;
- include openconfig-mpls-static;
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module provides data definitions for configuration of
- Multiprotocol Label Switching (MPLS) and associated protocols for
- signaling and traffic engineering.
-
- RFC 3031: Multiprotocol Label Switching Architecture
-
- The MPLS / TE data model consists of several modules and
- submodules as shown below. The top-level MPLS module describes
- the overall framework. Three types of LSPs are supported:
-
- i) traffic-engineered (or constrained-path)
-
- ii) IGP-congruent (LSPs that follow the IGP path)
-
- iii) static LSPs which are not signaled
-
- The structure of each of these LSP configurations is defined in
- corresponding submodules. Companion modules define the relevant
- configuration and operational data specific to key signaling
- protocols used in operational practice.
-
-
- +-------+
- +---------------->| MPLS |<--------------+
- | +-------+ |
- | ^ |
- | | |
- +----+-----+ +--------+-------+ +-----+-----+
- | TE LSPs | | IGP-based LSPs | |static LSPs|
- | | | | | |
- +----------+ +----------------+ +-----------+
- ^ ^ ^ ^
- | +----------------+ | +--------+
- | | | |
- | +------+ +-+---+-+ +--+--+
- +---+ RSVP | |SEGMENT| | LDP |
- +------+ |ROUTING| +-----+
- +-------+
- ";
-
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-07-02" {
- description
- "Add new RSVP-TE statistics, remove associated-rsvp-session
- leaf. Remove use of date-and-time.";
- reference "3.0.0";
- }
-
- revision "2018-06-16" {
- description
- "Included attributes for base LDP configuration.";
- reference "2.6.0";
- }
-
- revision "2018-06-13" {
- description
- "Add ttl-propagation to global MPLS config";
- reference "2.5.0";
- }
-
- revision "2018-06-05" {
- description
- "Fixed bugs in when statements on RSVP-TE attributes";
- reference "2.4.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "2.4.1";
- }
-
- revision "2017-06-21" {
- description
- "Add TC bits typedef.";
- reference "2.4.0";
- }
-
- revision "2017-03-22" {
- description
- "Add RSVP calculated-absolute-subscription-bw";
- reference "2.3.0";
- }
-
- revision "2017-01-26" {
- description
- "Add RSVP Tspec, clarify units for RSVP, remove unused LDP";
- reference "2.2.0";
- }
-
- revision "2016-12-15" {
- description
- "Add additional MPLS parameters";
- reference "2.1.0";
- }
-
- revision "2016-09-01" {
- description
- "Revisions based on implementation feedback";
- reference "2.0.0";
- }
-
- revision "2016-08-08" {
- description
- "Public release of MPLS models";
- reference "1.0.1";
- }
-
-
- // grouping statements
-
- grouping mpls-admin-group-config {
- description
- "configuration data for MPLS link admin groups";
-
- leaf admin-group-name {
- type string;
- description
- "name for mpls admin-group";
- }
-
- leaf bit-position {
- type uint32;
- description
- "bit-position value for mpls admin-group. The value
- for the admin group is an integer that represents one
- of the bit positions in the admin-group bitmask. Values
- between 0 and 31 are interpreted as the original limit
- of 32 admin groups. Values >=32 are interpreted as
- extended admin group values as per RFC7308.";
- }
-
- }
-
- grouping mpls-admin-groups-top {
-
- description
- "top-level mpls admin-groups config
- and state containers";
-
- container mpls-admin-groups {
- description
- "Top-level container for admin-groups configuration
- and state";
-
- list admin-group {
- key "admin-group-name";
- description
- "configuration of value to name mapping
- for mpls affinities/admin-groups";
-
- leaf admin-group-name {
- type leafref {
- path "../config/admin-group-name";
- }
- description
- "name for mpls admin-group";
- }
- container config {
- description
- "Configurable items for admin-groups";
- uses mpls-admin-group-config;
- }
-
- container state {
- config false;
- description
- "Operational state for admin-groups";
- uses mpls-admin-group-config;
- }
- }
- }
- }
-
- grouping mpls-te-igp-flooding-bandwidth-config {
- description
- "Configurable items for igp flooding bandwidth
- threshold configuration.";
- leaf threshold-type {
- type enumeration {
- enum DELTA {
- description
- "DELTA indicates that the local
- system should flood IGP updates when a
- change in reserved bandwidth >= the specified
- delta occurs on the interface.";
- }
- enum THRESHOLD_CROSSED {
- description
- "THRESHOLD-CROSSED indicates that
- the local system should trigger an update (and
- hence flood) the reserved bandwidth when the
- reserved bandwidth changes such that it crosses,
- or becomes equal to one of the threshold values.";
- }
- }
- description
- "The type of threshold that should be used to specify the
- values at which bandwidth is flooded. DELTA indicates that
- the local system should flood IGP updates when a change in
- reserved bandwidth >= the specified delta occurs on the
- interface. Where THRESHOLD_CROSSED is specified, the local
- system should trigger an update (and hence flood) the
- reserved bandwidth when the reserved bandwidth changes such
- that it crosses, or becomes equal to one of the threshold
- values";
- }
-
- leaf delta-percentage {
- when "../threshold-type = 'DELTA'" {
- description
- "The percentage delta can only be specified when the
- threshold type is specified to be a percentage delta of
- the reserved bandwidth";
- }
- type oc-types:percentage;
- description
- "The percentage of the maximum-reservable-bandwidth
- considered as the delta that results in an IGP update
- being flooded";
- }
-
- leaf threshold-specification {
- when "../threshold-type = 'THRESHOLD_CROSSED'" {
- description
- "The selection of whether mirrored or separate threshold
- values are to be used requires user specified thresholds to
- be set";
- }
- type enumeration {
- enum MIRRORED_UP_DOWN {
- description
- "MIRRORED_UP_DOWN indicates that a single set of
- threshold values should be used for both increasing
- and decreasing bandwidth when determining whether
- to trigger updated bandwidth values to be flooded
- in the IGP TE extensions.";
- }
- enum SEPARATE_UP_DOWN {
- description
- "SEPARATE_UP_DOWN indicates that a separate
- threshold values should be used for the increasing
- and decreasing bandwidth when determining whether
- to trigger updated bandwidth values to be flooded
- in the IGP TE extensions.";
- }
- }
- description
- "This value specifies whether a single set of threshold
- values should be used for both increasing and decreasing
- bandwidth when determining whether to trigger updated
- bandwidth values to be flooded in the IGP TE extensions.
- MIRRORED-UP-DOWN indicates that a single value (or set of
- values) should be used for both increasing and decreasing
- values, where SEPARATE-UP-DOWN specifies that the increasing
- and decreasing values will be separately specified";
- }
-
- leaf-list up-thresholds {
- when "../threshold-type = 'THRESHOLD_CROSSED'" +
- "and ../threshold-specification = 'SEPARATE_UP_DOWN'" {
- description
- "A list of up-thresholds can only be specified when the
- bandwidth update is triggered based on crossing a
- threshold and separate up and down thresholds are
- required";
- }
- type oc-types:percentage;
- description
- "The thresholds (expressed as a percentage of the maximum
- reservable bandwidth) at which bandwidth updates are to be
- triggered when the bandwidth is increasing.";
- }
-
- leaf-list down-thresholds {
- when "../threshold-type = 'THRESHOLD_CROSSED'" +
- "and ../threshold-specification = 'SEPARATE_UP_DOWN'" {
- description
- "A list of down-thresholds can only be specified when the
- bandwidth update is triggered based on crossing a
- threshold and separate up and down thresholds are
- required";
- }
- type oc-types:percentage;
- description
- "The thresholds (expressed as a percentage of the maximum
- reservable bandwidth) at which bandwidth updates are to be
- triggered when the bandwidth is decreasing.";
- }
-
- leaf-list up-down-thresholds {
- when "../threshold-type = 'THRESHOLD_CROSSED'" +
- "and ../threshold-specification = 'MIRRORED_UP_DOWN'" {
- description
- "A list of thresholds corresponding to both increasing
- and decreasing bandwidths can be specified only when an
- update is triggered based on crossing a threshold, and
- the same up and down thresholds are required.";
- }
- type oc-types:percentage;
- description
- "The thresholds (expressed as a percentage of the maximum
- reservable bandwidth of the interface) at which bandwidth
- updates are flooded - used both when the bandwidth is
- increasing and decreasing";
- }
- }
-
-
- grouping mpls-te-igp-flooding-bandwidth {
- description
- "Top level group for traffic engineering
- database flooding options";
- container igp-flooding-bandwidth {
- description
- "Interface bandwidth change percentages
- that trigger update events into the IGP traffic
- engineering database (TED)";
- container config {
- description
- "Configuration parameters for TED
- update threshold ";
- uses mpls-te-igp-flooding-bandwidth-config;
- }
- container state {
- config false;
- description
- "State parameters for TED update threshold ";
- uses mpls-te-igp-flooding-bandwidth-config;
- }
- }
- }
-
-
- grouping te-lsp-delay-config {
- description
- "Group for the timers goerning the delay
- in installation and cleanup of TE LSPs";
-
- leaf install-delay {
- type uint16 {
- range 0..3600;
- }
- units seconds;
- description
- "delay the use of newly installed te lsp for a
- specified amount of time.";
- }
-
- leaf cleanup-delay {
- type uint16;
- units seconds;
- description
- "delay the removal of old te lsp for a specified
- amount of time";
- }
- }
-
- grouping te-interface-attributes-top {
- description
- "Top level grouping for attributes
- for TE interfaces.";
-
- list interface {
- key "interface-id";
- description
- "List of TE interfaces";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "Reference to the interface id list key";
- }
-
- container config {
- description
- "Configuration parameters related to TE interfaces:";
- uses te-interface-attributes-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to TE interfaces";
- uses te-interface-attributes-config;
- }
-
- uses oc-if:interface-ref;
-
- uses mpls-te-igp-flooding-bandwidth;
- }
- }
-
- grouping te-interface-attributes-config {
- description
- "global level definitions for interfaces
- on which TE is run";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Id of the interface";
- }
-
- leaf te-metric {
- type uint32;
- description
- "TE specific metric for the link";
- }
-
- leaf-list srlg-membership {
- type leafref {
- path "../../../../te-global-attributes/srlgs/srlg/name";
- }
- description
- "list of references to named shared risk link groups that the
- interface belongs to.";
- }
-
- leaf-list admin-group {
- type string;
- description
- "list of admin groups (by name) on the interface";
- }
- }
-
- grouping mpls-te-lsp-timers {
- description
- "Grouping for traffic engineering timers";
- container te-lsp-timers {
- description
- "Definition for delays associated with setup
- and cleanup of TE LSPs";
-
- container config {
- description
- "Configuration parameters related
- to timers for TE LSPs";
-
- uses te-lsp-delay-config;
- uses te-tunnel-reoptimize-config;
- }
-
- container state {
- config false;
- description
- "State related to timers for TE LSPs";
-
- uses te-lsp-delay-config;
- uses te-tunnel-reoptimize-config;
- }
- }
- }
-
- grouping mpls-global-config {
- description
- "Definition of global MPLS configuration parameters";
-
- leaf null-label {
- type identityref {
- base oc-mplst:NULL_LABEL_TYPE;
- }
- default oc-mplst:IMPLICIT;
- description
- "The null-label type used, implicit or explicit";
- }
-
- leaf ttl-propagation {
- type boolean;
- default true;
- description
- "Enables TTL propagation across the MPLS domain.
- When ttl-propagation is set to true, the IP TTL
- is copied into the MPLS header TTL when pushing
- a label to an IP packet. If false, the IP TTL is
- not copied into the MPLS header TTL and, therefore,
- the IP TTL is not updated in the MPLS domain.";
- }
-
- }
-
- grouping mpls-global-top {
- description
- "Top level grouping for global MPLS configuration ";
-
- container config {
- description
- "Top level global MPLS configuration";
- uses mpls-global-config;
- }
-
- container state {
- config false;
- description
- "Top level global MPLS state";
- uses mpls-global-config;
- }
- }
-
- grouping mpls-interfaces-top {
- description
- "Top level grouping for attributes
- for MPLS-enabled interfaces.";
- container interface-attributes {
- description
- "Parameters related to MPLS interfaces";
- list interface {
- key "interface-id";
- description
- "List of TE interfaces";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "Reference to the interface id list key";
- }
-
- container config {
- description
- "Configuration parameters related to MPLS interfaces:";
- uses mpls-interface-attributes-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to TE interfaces";
- uses mpls-interface-attributes-config;
- }
-
- uses oc-if:interface-ref;
- }
- }
- }
-
- grouping mpls-interface-attributes-config {
- description
- "global level definitions for interfaces
- on which MPLS is run";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Indentifier for the MPLS interface";
- }
-
- leaf mpls-enabled {
- type boolean;
- default false;
- description
- "Enable MPLS forwarding on this interface";
- }
- }
-
- grouping mpls-label-block-config {
- description
- "Configuration parameters relating to an MPLS label block.";
-
- leaf local-id {
- type string;
- description
- "A local identifier for the global label block allocation.";
- }
-
- leaf lower-bound {
- type oc-mplst:mpls-label;
- description
- "Lower bound of the global label block. The block is defined to include
- this label.";
- }
-
- leaf upper-bound {
- type oc-mplst:mpls-label;
- description
- "Upper bound for the global label block. The block is defined to include
- this label.";
- }
- }
-
- grouping mpls-label-blocks-top {
- description
- "Top-level configuration and operational state parameters corresponding
- to reserved label blocks.";
-
- container reserved-label-blocks {
- description
- "A range of labels starting with the start-label and up-to and including
- the end label that should be allocated as reserved. These labels should
- not be utilised by any dynamic label allocation on the local system unless
- the allocating protocol is explicitly configured to specify that
- allocation of labels should be out of the label block specified.";
-
- list reserved-label-block {
- key "local-id";
-
- description
- "A range of labels starting with the start-label up to and including
- the end label that should be allocated for use by a specific protocol.";
-
- leaf local-id {
- type leafref {
- path "../config/local-id";
- }
- description
- "A reference to a unique local identifier for this label block.";
- }
-
- container config {
- description
- "Configuration parameters relating to the label block.";
-
- uses mpls-label-block-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the label block.";
-
- uses mpls-label-block-config;
- }
- }
- }
- }
-
- grouping mpls-top {
- description
- "Top level grouping for MPLS configuration and state";
-
- container mpls {
- description
- "Anchor point for mpls configuration and operational
- data";
-
- container global {
- // entropy label support, label ranges will be added here.
- description
- "general mpls configuration applicable to any
- type of LSP and signaling protocol - label ranges,
- entropy label supportmay be added here";
- uses mpls-global-top;
- uses mpls-interfaces-top;
- uses mpls-label-blocks-top;
- }
-
- container te-global-attributes {
- description
- "traffic-engineering global attributes";
- uses mpls-te-srlg-top;
- uses mpls-admin-groups-top;
- uses mpls-te-lsp-timers;
- }
-
- container te-interface-attributes {
- description
- "traffic engineering attributes specific
- for interfaces";
- uses te-interface-attributes-top;
- }
-
- container signaling-protocols {
- description
- "top-level signaling protocol configuration";
-
- uses oc-rsvp:rsvp-global;
- uses oc-ldp:ldp-global;
- uses oc-sr:sr-mpls-top;
- }
-
- container lsps {
- description
- "LSP definitions and configuration";
-
- container constrained-path {
- description
- "traffic-engineered LSPs supporting different
- path computation and signaling methods";
- uses explicit-paths-top;
- uses te-tunnels-top;
- }
-
- container unconstrained-path {
- description
- "LSPs that use the IGP-determined path, i.e., non
- traffic-engineered, or non constrained-path";
-
- uses igp-lsp-common;
- uses igp-lsp-setup;
- }
-
- container static-lsps {
- description
- "statically configured LSPs, without dynamic
- signaling";
-
- uses static-lsp-top;
- }
- }
- }
- }
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-}
diff --git a/src/plugins/yang/openconfig/openconfig-network-instance-l2.yang b/src/plugins/yang/openconfig/openconfig-network-instance-l2.yang
deleted file mode 100644
index 530b8c8..0000000
--- a/src/plugins/yang/openconfig/openconfig-network-instance-l2.yang
+++ /dev/null
@@ -1,339 +0,0 @@
-submodule openconfig-network-instance-l2 {
-
- belongs-to openconfig-network-instance {
- prefix "oc-netinst";
- }
-
- // import some basic types
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-interfaces { prefix "oc-if"; }
- import ietf-yang-types { prefix "yang"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module contains groupings which specifically relate to
- Layer 2 network instance configuration and operational state
- parameters.";
-
- oc-ext:openconfig-version "0.11.0";
-
- revision "2018-08-11" {
- description
- "Add vlan id as additional key in MAC table";
- reference "0.11.0";
- }
-
- revision "2018-06-22" {
- description
- "Fix typo in OSPF when statement";
- reference "0.10.2";
- }
-
- revision "2018-06-05" {
- description
- "Fix bugs in when statements";
- reference "0.10.1";
- }
-
- revision "2018-02-19" {
- description
- "Add PIM and IGMP to network instance";
- reference "0.10.0";
- }
-
- revision "2017-12-13" {
- description
- "Fix incorrect constraint on SR and MPLS containers";
- reference "0.9.0";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes";
- reference "0.8.1";
- }
-
- revision "2017-02-28" {
- description
- "Add OSPFv2 to network instance";
- reference "0.8.0";
- }
-
- revision "2017-01-26" {
- description
- "Add policy forwarding to network instance";
- reference "0.7.0";
- }
-
- revision "2017-01-13" {
- description
- "Add AFT to the network instance";
- reference "0.6.0";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to network instance";
- reference "0.5.0";
- }
-
- revision "2016-11-10" {
- description
- "Update model to include IS-IS.";
- reference "0.4.1";
- }
-
- revision "2016-10-12" {
- description
- "Update table connections";
- reference "0.4.0";
- }
-
- revision "2016-09-28" {
- description
- "Change L2 instance to submodule; add MAC table";
- reference "0.3.0";
- }
-
- revision "2016-08-11" {
- description
- "Resolve repeated container names in routing protocols";
- reference "0.2.3";
- }
-
- revision "2016-07-08" {
- description
- "Updated with refactored routing protocol models";
- reference "0.2.1";
- }
-
- revision "2016-03-29" {
- description
- "Initial revision";
- reference "0.2.0";
- }
-
- revision "2015-11-20" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- grouping l2ni-instance {
- description
- "Configuration and operational state parameters relating
- to a Layer 2 network instance";
-
- container fdb {
- description
- "Operational state and configuration parameters relating to
- the forwarding database of the network instance";
-
- container config {
- description
- "Configuration parameters relating to the FDB";
- uses l2ni-fdb-mac-config;
- }
- container state {
- config false;
- description
- "Operational state parameters relating to the FDB";
- uses l2ni-fdb-mac-config;
- }
-
- uses l2ni-mac-table-top;
- }
- }
-
- grouping l2ni-instance-common-config {
- description
- "Common configuration options which are specific to Layer 2
- network instances";
-
- leaf mtu {
- type uint16;
- description
- "The maximum frame size which should be supported for this
- instance for Layer 2 frames";
- }
-
- }
-
- grouping l2ni-fdb-mac-config {
- description
- "Parameters relating to FDB behaviour relating to MAC
- addresses";
-
- leaf mac-learning {
- type boolean;
- description
- "When this leaf is set to true, MAC learning is enabled for
- the network instance, such that MAC addresses are learned
- from ingress frames and added to the FDB.";
- }
-
- leaf mac-aging-time {
- // Cisco supports one aging time for local and remote, but
- // can specify this time is absolute or against inactivity.
- // ALU SROS supports different aging times for local and remote
- // but does not allow absolute/inactivity specification.
- // JNPR supports only a single aging time, and no specification
- // of whether inactivity/absolute is used.
- // It is easy to augment new options in here for local remote
- // and an extra leaf to allow specification of the type of aging
- // so this is left as a single value.
- type uint16;
- units seconds;
- description
- "The number of seconds of inactivity after which the entry
- in the local FDB is timed out.";
- }
-
- leaf maximum-entries {
- type uint16;
- description
- "The maximum number of MAC address entries that should be
- accepted into the FDB";
- }
- }
-
- grouping l2ni-encapsulation-config {
- description
- "Encapsulation related configuration parameters for a L2
- network instance";
-
- leaf control-word {
- type boolean;
- description
- "Whether the control-word should be used for the network
- instance";
- reference "RFC3985";
- }
- }
-
- grouping l2ni-mac-table-config {
- description
- "Configuration data for MAC table entries";
-
- leaf mac-address {
- type yang:mac-address;
- description
- "MAC address for the dynamic or static MAC table
- entry";
- }
-
- leaf vlan {
- //TODO(aashaikh): Consider whether this should just reflect the
- //VLAN id or be a union type to also support displaying/setting
- //the VLAN by name (i.e., global VLAN configured in the VLAN
- // model).
- type leafref {
- path "../../../../../../vlans/vlan/config/vlan-id";
- }
- description
- "VLAN on which the MAC address is present. The same MAC
- address may be seen on multiple VLANs in some cases.";
- }
- }
-
- grouping l2ni-mac-table-state {
- description
- "Operational state data for MAC table entries";
-
- leaf age {
- type uint64;
- units seconds;
- description
- "The time in seconds since the MAC address has been in the
- table";
- }
-
- leaf entry-type {
- type enumeration {
- enum STATIC {
- description
- "Statically programmed MAC table entry";
- }
- enum DYNAMIC {
- description
- "Dynamically learned MAC table entry";
- }
- }
- description
- "Indicates whether the entry was statically configured, or
- dynamically learned.";
- }
-
- }
-
- grouping l2ni-mac-table-top {
- description
- "Top-level grouping for MAC table list";
-
-
- container mac-table {
- description
- "Table of learned or statically configured MAC addresses and
- corresponding VLANs in the bridge domain";
-
- container entries {
- description
- "Enclosing container for list of MAC table entries";
-
- list entry {
- key "mac-address vlan";
- description
- "List of learned MAC addresses";
-
- leaf mac-address {
- type leafref {
- path "../config/mac-address";
- }
- description
- "Reference to mac-address list key";
- }
-
- leaf vlan {
- type leafref {
- path "../config/vlan";
- }
- description
- "Reference to vlan list key";
- }
-
- container config {
- description
- "Configuration data for MAC table entries";
-
- uses l2ni-mac-table-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for MAC table entries";
-
- uses l2ni-mac-table-config;
- uses l2ni-mac-table-state;
- }
-
- container interface {
- description
- "Reference to the base and/or subinterface for the
- MAC table entry";
-
- uses oc-if:interface-ref;
- }
- }
- }
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-network-instance-l3.yang b/src/plugins/yang/openconfig/openconfig-network-instance-l3.yang
deleted file mode 100644
index d9dca40..0000000
--- a/src/plugins/yang/openconfig/openconfig-network-instance-l3.yang
+++ /dev/null
@@ -1,234 +0,0 @@
-module openconfig-network-instance-l3 {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/network-instance-l3";
-
- prefix "oc-ni-l3";
-
- // import some basic types
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-types { prefix "octypes"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module contains groupings which specifically relate to
- Layer 3 network instance configuration and operational state
- parameters.";
-
- oc-ext:openconfig-version "0.11.0";
-
- revision "2018-08-17" {
- description
- "Add a route limit for L3 network instances.";
- reference "0.11.0";
- }
-
- revision "2017-12-13" {
- description
- "Fix incorrect constraint on SR and MPLS containers";
- reference "0.9.0";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes";
- reference "0.8.1";
- }
-
- revision "2017-02-28" {
- description
- "Add OSPFv2 to network instance";
- reference "0.8.0";
- }
-
- revision "2017-01-26" {
- description
- "Add policy forwarding to network instance";
- reference "0.7.0";
- }
-
- revision "2017-01-13" {
- description
- "Add AFT to the network instance";
- reference "0.6.0";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to network instance";
- reference "0.5.0";
- }
-
- revision "2016-11-10" {
- description
- "Update model to include IS-IS.";
- reference "0.4.1";
- }
-
- revision "2016-09-28" {
- description
- "Change L2 instance to submodule; add MAC table";
- reference "0.3.0";
- }
-
- revision "2016-08-11" {
- description
- "Resolve repeated container names in routing protocols";
- reference "0.2.3";
- }
-
- revision "2016-07-08" {
- description
- "Updated with refactored routing protocol models";
- reference "0.2.1";
- }
-
- revision "2016-03-29" {
- description
- "Initial revision";
- reference "0.2.0";
- }
-
- revision "2016-03-14" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- grouping l3ni-instance {
- description
- "Configuration and operational state parameters relevant
- to network instances that include a Layer 3 type";
-
- }
-
- grouping l3ni-instance-common-config {
- description
- "Configuration parameters that are common to L3 network
- instances other than the default instance";
-
- leaf-list enabled-address-families {
- type identityref {
- base octypes:ADDRESS_FAMILY;
- }
- description
- "The address families that are to be enabled for this
- network instance.";
- }
- }
-
- grouping l3ni-route-limit-structural {
- description
- "Configuration and state for the maximum number of routes
- that should be used by routing instance.";
-
- container route-limits {
- description
- "Configuration and operational state relating to the
- maximum number of routes for the address family that
- should be allowed within the Layer 3 network instance.
-
- When the specified value is reached, no further prefixes
- should be installed into the system's RIB from this network
- instance unless the warning only leaf is set. In this case,
- new routes should still be installed. If a alarm threshold
- is specified, then this should be used to generate
- alarms via telemetry for the network instance.";
-
- list route-limit {
- key "afi";
-
- description
- "A route limit applying to a particular address family.";
-
- leaf afi {
- type leafref {
- path "../config/afi";
- }
- description
- "Reference to the address family for which the route
- limit is being applied.";
- }
-
- container config {
- description
- "Configuration options relating to the route limit.";
- uses l3ni-route-limit-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the route limit.";
- uses l3ni-route-limit-config;
- uses l3ni-route-limit-state;
- }
- }
- }
- }
-
- grouping l3ni-route-limit-config {
- description
- "Configuration options relating to the route limit for a network
- instance.";
-
- leaf afi {
- type identityref {
- base octypes:ADDRESS_FAMILY;
- }
- description
- "The address family for which the route limit applies.";
- }
-
- leaf maximum {
- type uint32;
- description
- "The maximum number of routes for the address family. The
- system should not install more than maximum number of
- prefixes into the RIB unless the warning-only leaf is specified.";
- }
-
- leaf warning-only {
- type boolean;
- default false;
- description
- "When specified, the route limit specified is considered only as
- a warning - and routes should continue to be installed into the
- RIB over the limit specified in the maximum leaf.";
- }
-
- leaf alarm-threshold {
- type uint32;
- description
- "When specified, an alarm should be generated when the threshold
- number of installed routes is reached.";
- }
- }
-
- grouping l3ni-route-limit-state {
- description
- "Operational state relating to the route limit for a network
- instance.";
-
- leaf threshold-exceeded {
- type boolean;
- description
- "This leaf should be set to true in the case that the threshold
- number of routes has been exceeded.";
- }
-
- leaf installed-routes {
- type uint32;
- description
- "The current number of routes installed for the address family.";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-network-instance-policy.yang b/src/plugins/yang/openconfig/openconfig-network-instance-policy.yang
deleted file mode 100644
index afbcacd..0000000
--- a/src/plugins/yang/openconfig/openconfig-network-instance-policy.yang
+++ /dev/null
@@ -1,115 +0,0 @@
-module openconfig-network-instance-policy {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/network-instance/policy";
-
- prefix "oc-ni-pol";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-routing-policy { prefix oc-rpol; }
- import openconfig-policy-types { prefix oc-pol-types; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines routing policy statements (conditions and
- actions) for the network instance model. These statements are
- generally added to the routing policy model.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2017-02-15" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- // grouping statements
-
- grouping protocol-instance-policy-config {
- description
- "Configuration data for policy matching on protocol instance";
-
- leaf protocol-identifier {
- type identityref {
- base oc-pol-types:INSTALL_PROTOCOL_TYPE;
- }
- description
- "The identifier (protocol type) of the
- protocol instance to match on in the local network
- instance.";
- }
-
- leaf protocol-name {
- type string;
- description
- "The name of the protocol instance to match
- on in the local network instance";
- }
- }
-
- grouping protocol-instance-policy-state {
- description
- "Operational state data for policy matching on protocol
- instance";
- }
-
- grouping protocol-instance-policy-top {
- description
- "Top-level grouping for policy matching on protocol instance";
-
- container match-protocol-instance {
- description
- "Top-level container for protocol instance match condition
- in policy statements. The protocol instance is referenced
- by an identifier and name";
-
- container config {
- description
- "Configuration data for policy matching on protocol
- instance";
-
- uses protocol-instance-policy-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for policy matching on protocol instance";
-
- uses protocol-instance-policy-config;
- uses protocol-instance-policy-state;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:statements/oc-rpol:statement/" +
- "oc-rpol:conditions" {
- description
- "Add match conditions for protocol instances to the routing
- policy model.";
-
- uses protocol-instance-policy-top;
- }
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-network-instance-types.yang b/src/plugins/yang/openconfig/openconfig-network-instance-types.yang
deleted file mode 100644
index 67ab357..0000000
--- a/src/plugins/yang/openconfig/openconfig-network-instance-types.yang
+++ /dev/null
@@ -1,261 +0,0 @@
-module openconfig-network-instance-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/network-instance-types";
-
- prefix "oc-ni-types";
-
- import openconfig-extensions { prefix "oc-ext"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Types associated with a network instance";
-
- oc-ext:openconfig-version "0.8.1";
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes";
- reference "0.8.1";
- }
-
- revision "2017-02-28" {
- description
- "Add OSPFv2 to network instance";
- reference "0.8.0";
- }
-
- revision "2017-01-26" {
- description
- "Add policy forwarding to network instance";
- reference "0.7.0";
- }
-
- revision "2017-01-13" {
- description
- "Add AFT to the network instance";
- reference "0.6.0";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to network instance";
- reference "0.5.0";
- }
-
- revision "2016-11-10" {
- description
- "Update model to include IS-IS.";
- reference "0.4.1";
- }
-
- revision "2016-10-12" {
- description
- "Update table connections";
- reference "0.4.0";
- }
-
- revision "2016-09-28" {
- description
- "Change L2 instance to submodule; add MAC table";
- reference "0.3.0";
- }
-
- revision "2016-08-11" {
- description
- "Resolve repeated container names in routing protocols";
- reference "0.2.3";
- }
-
- revision "2016-07-08" {
- description
- "Updated with refactored routing protocol models";
- reference "0.2.1";
- }
-
- revision "2016-03-29" {
- description
- "Initial revision";
- reference "0.2.0";
- }
-
- revision "2015-10-18" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- // identity statements
- identity NETWORK_INSTANCE_TYPE {
- description
- "A base identity which can be extended to indicate different
- types of network instance supported by a device.";
- }
-
- identity DEFAULT_INSTANCE {
- base NETWORK_INSTANCE_TYPE;
- description
- "A special routing instance which acts as the 'default' or
- 'global' routing instance for a network device.";
- }
-
- identity L3VRF {
- base NETWORK_INSTANCE_TYPE;
- description
- "A private Layer 3 only routing instance which is formed of
- one or more RIBs";
- }
-
- identity L2VSI {
- base NETWORK_INSTANCE_TYPE;
- description
- "A private Layer 2 only switch instance which is formed of
- one or more L2 forwarding tables";
- }
-
- identity L2P2P {
- base NETWORK_INSTANCE_TYPE;
- description
- "A private Layer 2 only forwarding instance which acts as
- a point to point connection between two endpoints";
- }
-
- identity L2L3 {
- base NETWORK_INSTANCE_TYPE;
- description
- "A private Layer 2 and Layer 2 forwarding instance";
- }
-
- identity ENDPOINT_TYPE {
- description
- "Specification of the type of endpoint that is being associated
- with a network instance";
- }
-
- identity LOCAL {
- base ENDPOINT_TYPE;
- description
- "A local interface which is being associated with the endpoint";
- }
-
- identity REMOTE {
- base ENDPOINT_TYPE;
- description
- "A remote interface which is being associated with the
- endpoint";
- }
-
- identity LABEL_ALLOCATION_MODE {
- description
- "Base identity to be used to express types of label allocation
- strategies to be used within a network instance";
- }
-
- identity PER_PREFIX {
- base LABEL_ALLOCATION_MODE;
- description
- "A label is to be allocated per prefix entry in the RIB for the
- network instance";
- }
-
- identity PER_NEXTHOP {
- base LABEL_ALLOCATION_MODE;
- description
- "A label is to be allocated per nexthop entry in the RIB for
- the network instance";
- }
-
- identity INSTANCE_LABEL {
- base LABEL_ALLOCATION_MODE;
- description
- "A single label is to be used for the instance";
- }
-
- identity ENCAPSULATION {
- description
- "On the wire encapsulations that can be used when
- differentiating network instances";
- }
-
- identity MPLS {
- base ENCAPSULATION;
- description
- "Use MPLS labels to distinguish network instances on the wire";
- }
-
- identity VXLAN {
- base ENCAPSULATION;
- description
- "Use VXLAN (RFC7348) VNIs to distinguish network instances on
- the wire";
- }
-
- identity SIGNALLING_PROTOCOL {
- description
- "The signalling protocol that should be used to diseminate
- entries within a forwarding instance";
- }
-
- identity LDP {
- base SIGNALLING_PROTOCOL;
- description
- "Use LDP-based setup for signalling. Where the instance is
- a point-to-point service this refers to RFC4447 ('Martini')
- setup. Where the service is an L2VSI, or L2L3 instance it
- refers to RFC4762 LDP-signalled VPLS instances";
- }
-
- identity BGP_VPLS {
- base SIGNALLING_PROTOCOL;
- description
- "Use BGP-based signalling and autodiscovery for VPLS instances
- as per RFC4761";
- }
-
- identity BGP_EVPN {
- base SIGNALLING_PROTOCOL;
- description
- "Use BGP-based Ethernet VPN (RFC7432) based signalling for
- the network instance";
- }
-
- // rjs note:
- // this should move to openconfig-types when merged
- typedef route-distinguisher {
- type union {
- // type 0: <2-byte administrator>:<4-byte assigned number>
- type string {
- pattern '^(65[0-5][0-3][0-5]|[1-5][1-5][0-9][0-9][0-9]|'
- + '[1-9]?[1-9]?[0-9][0-9]|[1-9]):'
- + '(4[0-2][0-9][0-4][0-9][0-6][0-7][0-2][0-9][0-5]|'
- + '[0-3][0-9]{9}|[1-9][0-9]{1,8}|[1-9])$';
- }
- // type 1: <ip-address>:<2-byte assigned number>
- type string {
- pattern
- '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
- + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]):'
- + '(65[0-5][0-3][0-5]|[1-5][1-5][0-9][0-9][0-9]|'
- + '[1-9]?[1-9]?[0-9][0-9]|[1-9])$';
- }
- // type 2: <4-byte as-number>:<2-byte assigned number>
- type string {
- pattern
- '^(4[0-2][0-9][0-4][0-9][0-6][0-7][0-2][0-9][0-5]|'
- + '[0-3][0-9]{9}|[1-9][0-9]{1,8}|[1-9]):'
- + '(65[0-5][0-3][0-5]|[1-5]{2}[0-9]{3}|'
- + '[1-9]{0,2}[0-9][0-9]|[1-9])$';
- }
- }
- description "A route distinguisher value";
- reference "RFC4364";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-network-instance.yang b/src/plugins/yang/openconfig/openconfig-network-instance.yang
deleted file mode 100644
index 0d42a11..0000000
--- a/src/plugins/yang/openconfig/openconfig-network-instance.yang
+++ /dev/null
@@ -1,1093 +0,0 @@
-module openconfig-network-instance {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/network-instance";
-
- prefix "oc-netinst";
-
- // import some basic types
- //import ietf-inet-types { prefix inet; }
- import ietf-yang-types { prefix "yang"; }
- import ietf-inet-types { prefix "inet"; }
- import openconfig-network-instance-types { prefix "oc-ni-types"; }
- import openconfig-policy-types { prefix "oc-pol-types"; }
- import openconfig-routing-policy { prefix "oc-rpol"; }
- import openconfig-local-routing { prefix "oc-loc-rt"; }
- import openconfig-interfaces { prefix "oc-if"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-network-instance-l3 { prefix "oc-ni-l3"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-bgp { prefix "oc-bgp"; }
- import openconfig-mpls { prefix "oc-mpls"; }
- import openconfig-vlan { prefix "oc-vlan"; }
- import openconfig-ospfv2 { prefix "oc-ospfv2"; }
- import openconfig-policy-forwarding { prefix "oc-pf"; }
- import openconfig-segment-routing { prefix "oc-sr"; }
- import openconfig-isis { prefix "oc-isis"; }
- import openconfig-aft { prefix "oc-aft"; }
- import openconfig-pim { prefix "oc-pim"; }
- import openconfig-igmp { prefix "oc-igmp"; }
-
- // include submodules
- include openconfig-network-instance-l2;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "An OpenConfig description of a network-instance. This may be
- a Layer 3 forwarding construct such as a virtual routing and
- forwarding (VRF) instance, or a Layer 2 instance such as a
- virtual switch instance (VSI). Mixed Layer 2 and Layer 3
- instances are also supported.";
-
- oc-ext:openconfig-version "0.11.0";
-
- revision "2018-08-11" {
- description
- "Add vlan id as additional key in MAC table";
- reference "0.11.0";
- }
-
- revision "2018-06-22" {
- description
- "Fix typo in OSPF when statement";
- reference "0.10.2";
- }
-
- revision "2018-06-05" {
- description
- "Fix bugs in when statements";
- reference "0.10.1";
- }
-
- revision "2018-02-19" {
- description
- "Add PIM and IGMP to network instance";
- reference "0.10.0";
- }
-
- revision "2017-12-13" {
- description
- "Fix incorrect constraint on SR and MPLS containers";
- reference "0.9.0";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes";
- reference "0.8.1";
- }
-
- revision "2017-02-28" {
- description
- "Add OSPFv2 to network instance";
- reference "0.8.0";
- }
-
- revision "2017-01-26" {
- description
- "Add policy forwarding to network instance";
- reference "0.7.0";
- }
-
- revision "2017-01-13" {
- description
- "Add AFT to the network instance";
- reference "0.6.0";
- }
-
- revision "2016-12-15" {
- description
- "Add segment routing to network instance";
- reference "0.5.0";
- }
-
- revision "2016-11-10" {
- description
- "Add IS-IS to OpenConfig network instance";
- reference "0.4.1";
- }
-
- revision "2016-10-12" {
- description
- "Update table connections";
- reference "0.4.0";
- }
-
- revision "2016-09-28" {
- description
- "Change L2 instance to submodule; add MAC table";
- reference "0.3.0";
- }
-
- revision "2016-08-11" {
- description
- "Resolve repeated container names in routing protocols";
- reference "0.2.3";
- }
-
- revision "2016-07-08" {
- description
- "Updated with refactored routing protocol models";
- reference "0.2.1";
- }
-
- revision "2016-03-29" {
- description
- "Initial revision";
- reference "0.2.0";
- }
-
- revision "2015-10-18" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- typedef network-instance-ref {
- type leafref {
- path "/network-instances/network-instance/config/name";
- }
- description
- "A re-usable type that can be referenced within other
- modules that references a network instance.";
- }
-
- grouping network-instance-top {
- description
- "Top-level grouping containing a list of network instances.";
-
- container network-instances {
- description
- "The L2, L3, or L2+L3 forwarding instances that are
- configured on the local system";
-
- list network-instance {
- key "name";
-
- description
- "Network instances configured on the local system";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "A unique name identifying the network instance";
- }
-
- uses l2ni-instance {
- when "config/type = 'L2VSI' or config/type = 'L2P2P'" +
- " or config/type = 'L2L3' or config/type = 'DEFAULT_INSTANCE'" {
- description
- "Layer 2 configuration parameters included when
- a network instance is a Layer 2 instance or a
- combined L2L3 instance";
- }
- }
-
- container config {
- description
- "Configuration parameters relating to a network
- instance";
- uses network-instance-config;
- uses network-instance-type-dependent-config;
- }
-
-
- container state {
- config false;
- description
- "Operational state parameters relating to a network
- instance";
- uses network-instance-config;
- uses network-instance-type-dependent-config;
- uses network-instance-state;
- }
-
- container encapsulation {
- when "../config/type != 'DEFAULT_INSTANCE'" {
- description
- "Only allow the encapsulation of the instance to be
- set when the instance is not the default instance";
- }
- description
- "Configuration parameters relating to the encapsulation
- used for the network instance";
-
- container config {
- description
- "Configuration parameters relating to the encapsulation
- of the network instance";
-
- uses encapsulation-config;
-
- uses l2ni-encapsulation-config {
- when "../../config/type = 'L2VSI' or ../../config/type = 'L2P2P'
- or ../../config/type = 'L2L3'" {
- description
- "Only allow L2 encapsulations to be set
- when the instance is of a type that supports
- L2";
- }
- }
- }
-
- container state {
- config false;
- description
- "State parameters relating to the encapsulation of
- the network instance";
- uses encapsulation-config;
-
- uses l2ni-encapsulation-config {
- when "../../config/type = 'L2VSI' or ../../config/type = 'L2P2P'
- or ../../config/type = 'L2L3'" {
- description
- "Only allow L2 encapsulations to be set
- when the instance is of a type that supports
- L2";
- }
- }
- }
- }
-
- container inter-instance-policies {
- description
- "Policies dictating how RIB or FIB entries are imported
- to and exported from this instance";
-
- uses oc-rpol:apply-policy-group;
- }
-
- container table-connections {
- description
- "Policies dictating how RIB or FIB entries are propagated
- between tables";
-
- list table-connection {
- key "src-protocol dst-protocol address-family";
-
- description
- "A list of connections between pairs of routing or
- forwarding tables, the leaking of entries between
- which is specified by the import policy.
-
- A connection connecting a source table to a destination
- table implies that routes that match the policy specified
- for the connection are available for the destination
- protocol to advertise, or match within its policies.";
-
- leaf src-protocol {
- type leafref {
- path "../config/src-protocol";
- }
- description
- "The name of the protocol associated with the table
- which should be utilised as the source of forwarding
- or routing information";
- }
-
- leaf dst-protocol {
- type leafref {
- path "../config/dst-protocol";
- }
- description
- "The table to which routing entries should be
- exported";
- }
-
- leaf address-family {
- type leafref {
- path "../config/address-family";
- }
- description
- "The address family associated with the connection";
- }
-
- container config {
- description
- "Configuration parameters relating to the connection
- between tables";
- uses inter-table-policies-config;
- }
- container state {
- config false;
- description
- "State parameters relating to the connection between
- tables";
- uses inter-table-policies-config;
- }
- }
- }
-
- container interfaces {
- description
- "The interfaces that are associated with this network
- instance";
-
- list interface {
- key "id";
- unique "config/interface config/subinterface";
-
- description
- "An interface associated with the network instance";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "A reference to an identifier for this interface which
- acts as a key for this list";
- }
-
- container config {
- description
- "Configuration parameters relating to the associated
- interface";
- uses instance-interfaces-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the
- associated interface";
-
- uses instance-interfaces-config;
- uses instance-interfaces-state;
- }
- }
- }
-
- uses oc-ni-l3:l3ni-route-limit-structural {
- when "type = 'L3VRF' or type = 'L2L3'" {
- description
- "Layer 3 VRF or L2/L3 instances can have route limits
- applied. This is not supported for the default instance.";
- }
- }
-
- container tables {
- description
- "The routing tables that are managed by this network
- instance";
-
- list table {
- key "protocol address-family";
-
- description
- "A network instance manages one or more forwarding or
- routing tables. These may reflect a Layer 2 forwarding
- information base, a Layer 3 routing table, or an MPLS
- LFIB.
-
- The table populated by a protocol within an instance is
- identified by the protocol identifier (e.g., BGP, IS-IS)
- and the address family (e.g., IPv4, IPv6) supported by
- that protocol. Multiple instances of the same protocol
- populate a single table -- such that
- a single IS-IS or OSPF IPv4 table exists per network
- instance.
-
- An implementation is expected to create entries within
- this list when the relevant protocol context is enabled.
- i.e., when a BGP instance is created with IPv4 and IPv6
- address families enabled, the protocol=BGP,
- address-family=IPv4 table is created by the system.";
-
- leaf protocol {
- type leafref {
- path "../config/protocol";
- }
- description
- "A reference to the protocol that populates
- the table";
- }
-
- leaf address-family {
- type leafref {
- path "../config/address-family";
- }
- description
- "A reference to the address-family that the
- table represents";
- }
-
- container config {
- description
- "Configuration parameters relating to the
- table";
- uses table-config;
- }
-
- container state {
- config false;
- description
- "State parameters related to the table";
- uses table-config;
- }
- }
- }
-
- container connection-points {
- description
- "The set of connection points within a forwarding
- instance";
-
- list connection-point {
- key "connection-point-id";
-
- description
- "A connection point within a Layer 2 network instance.
- Each connection-point consists of a set of interfaces
- only one of which is active at any one time. Other than
- the specification of whether an interface is local
- (i.e., exists within this network-instance), or remote,
- all configuration and state parameters are common";
-
- leaf connection-point-id {
- type leafref {
- path "../config/connection-point-id";
- }
- description
- "A locally significant reference for the
- connection-point";
- }
-
- container config {
- description
- "Configuration parameters relating to a Layer 2
- network instance connection point";
- uses instance-connection-point-config;
- }
- container state {
- config false;
- description
- "Operational state parameters relating to a Layer 2
- network instance connection point";
-
- uses instance-connection-point-config;
- uses instance-connection-point-state;
- }
-
- container endpoints {
- when "../../../config/type = 'L2P2P' " +
- "or ../../../config/type = 'L2VSI'" {
- description
- "Configuration parameters to associate interfaces
- into a common group for use in Layer 2 network
- instances";
- }
-
- description
- "The set of endpoints which are grouped within the
- connection point";
-
- list endpoint {
- key "endpoint-id";
-
- description
- "A list of the endpoints (interfaces or remote
- connection points that can be used for this
- connection point). The active endpoint is selected
- based on the precedence that it is configured
- with";
-
- leaf endpoint-id {
- type leafref {
- path "../config/endpoint-id";
- }
- description
- "A pointer to the configured identifier for the
- endpoint";
- }
-
- container config {
- description
- "Configuration parameters relating to the
- endpoint";
- uses instance-endpoint-config;
- }
- container state {
- config false;
- description
- "Operational state parameters relating to the
- endpoint";
- uses instance-endpoint-config;
- uses instance-endpoint-state;
- }
-
- container local {
- when "../config/type = 'LOCAL'" {
- description
- "Only include the local configuration when
- the endpoint is specified to be local to
- the network element";
- }
-
- description
- "Configuration and operational state parameters
- relating to a local interface";
-
- container config {
- description
- "Configuration parameters relating to a local
- endpoint";
- uses instance-endpoint-local-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to a
- local endpoint";
- uses instance-endpoint-local-config;
- }
- }
-
- container remote {
- when "../config/type = 'REMOTE'" {
- description
- "Only include the remote configuration when
- the endpoint is specified to be remote to
- the network element";
- }
-
- description
- "Configuration and operational state parameters
- relating to a remote interface";
-
- container config {
- description
- "Configuration parameters relating to a remote
- endpoint";
- uses instance-endpoint-remote-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to
- a remote endpoint";
- uses instance-endpoint-remote-config;
- }
- }
- }
- }
- }
- }
-
- uses oc-mpls:mpls-top {
- when "config/type = 'DEFAULT_INSTANCE'" {
- description
- "MPLS configuration is only valid within the default
- network instance.";
- }
- }
-
- uses oc-sr:sr-top {
- when "config/type = 'DEFAULT_INSTANCE'" {
- description
- "Segment routing configuration is only valid with the default
- network instance.";
- }
- }
-
- uses oc-vlan:vlan-top;
-
- uses oc-pf:policy-forwarding-top;
-
- uses oc-aft:aft-top;
-
- container protocols {
- description
- "The routing protocols that are enabled for this
- network-instance.";
-
- list protocol {
- key "identifier name";
-
- description
- "A process (instance) of a routing protocol. Some
- systems may not support more than one instance of
- a particular routing protocol";
-
- leaf identifier {
- type leafref {
- path "../config/identifier";
- }
- description
- "The protocol name for the routing or forwarding
- protocol to be instantiated";
- }
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "An operator-assigned identifier for the routing
- or forwarding protocol. For some processes this
- leaf may be system defined.";
- }
-
- container config {
- description
- "Configuration parameters relating to the routing
- protocol instance";
-
- uses protocols-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the routing protocol
- instance";
-
- uses protocols-config;
- uses protocols-state;
- }
-
- uses oc-loc-rt:local-static-top {
- when "config/identifier = 'STATIC'" {
- description
- "Include static route parameters only when the
- protocol is set to static";
- }
- description
- "Configuration and state parameters relating to
- static routes";
- }
-
- uses oc-loc-rt:local-aggregate-top {
- when "config/identifier = 'LOCAL_AGGREGATE'" {
- description
- "Include aggregate route parameters only when the
- protocol is set to aggregate";
- }
- description
- "Configuration and state parameters relating to
- locally generated aggregate routes";
- }
-
- uses oc-bgp:bgp-top {
- when "config/identifier = 'BGP'" {
- description
- "Include BGP parameters only when the protocol
- is of type BGP";
- }
- description
- "Configuration and state parameters relating to
- Border Gateway Protocol (BGP)";
- }
-
- uses oc-ospfv2:ospfv2-top {
- when "config/identifier = 'OSPF'" {
- description
- "Include OSPFv2 parameters only when the protocol
- is of type OSPFv2";
- }
- }
-
- uses oc-isis:isis-top {
- when "config/identifier = 'ISIS'" {
- description
- "Include IS-IS configuration when the protocol is of type
- IS-IS";
- }
- description
- "Configuration and state parameters relating to Intermediate
- System to Intermediate System (IS-IS).";
- }
-
- uses oc-pim:pim-top {
- when "config/identifier = 'PIM'" {
- description
- "Include PIM configuration when the protocol is of type
- PIM";
- }
- description
- "Configuration and state parameters relating to Protocol
- Indepdendent Multicast (PIM).";
- }
-
- uses oc-igmp:igmp-top {
- when "config/identifier = 'IGMP'" {
- description
- "Include IGMP configuration when the protocol is of type
- IGMP";
- }
- description
- "Configuration and state parameters relating to the Internet
- Group Management Protocol (IGMP).";
- }
- }
- }
- }
- }
- }
-
- grouping network-instance-type-dependent-config {
- description
- "Type dependent network instance configuration";
-
- uses oc-ni-l3:l3ni-instance-common-config {
- when "type = 'L3VRF' or type = 'L2L3'" {
- description
- "Layer 3 VRF configuration parameters included when a
- network instance is a L3VRF or combined L2L3 instance";
- }
- }
-
- uses l2ni-instance-common-config {
- when "type = 'L2VSI' or type = 'L2P2P'" +
- " or type = 'L2L3'" {
- description
- "Layer 2 configuration parameters included when
- a network instance is a Layer 2 instance or a
- combined L2L3 instance";
- }
- }
- }
-
- grouping instance-endpoint-config {
- description
- "Configuration data relating to an forwarding-instance
- endpoint";
-
- leaf endpoint-id {
- type string;
- description
- "An identifier for the endpoint";
- }
-
- leaf precedence {
- type uint16;
- description
- "The precedence of the endpoint - the lowest precendence
- viable endpoint will be utilised as the active endpoint
- within a connection";
- }
-
- leaf type {
- type identityref {
- base "oc-ni-types:ENDPOINT_TYPE";
- }
- description
- "The type of endpoint that is referred to by the current
- endpoint";
- }
-
- }
-
- grouping instance-endpoint-local-config {
- description
- "Configuration parameters relating to an endpoint that is local
- to the current system";
-
- uses oc-if:interface-ref-common;
- }
-
- grouping instance-endpoint-remote-config {
- description
- "Configuration parameters relating to an endpoint that is
- remote from the local system";
- leaf remote-system {
- type inet:ip-address;
- description
- "The IP address of the device which hosts the
- remote end-point";
- }
-
- leaf virtual-circuit-identifier {
- type uint32;
- description
- "The virtual-circuit identifier that identifies the
- connection at the remote end-point";
- }
- }
-
- grouping instance-endpoint-state {
- description
- "Operational state data relating to a forwarding-instance
- endpoint";
- leaf active {
- type boolean;
- description
- "When the backup endpoint is active, the value of this
- parameter is set to true";
- }
- }
-
- grouping instance-connection-point-config {
- description
- "Configuration data relating to a forwarding-instance
- connection point";
-
- leaf connection-point-id {
- type string;
- description
- "An identifier for a connection point";
- }
- }
-
- grouping instance-connection-point-state {
- description
- "Operational state data relating to a forwarding-instance
- connection point";
- }
-
- grouping table-config {
- description
- "Config parameters relating to an L2/L2.5/L3 table that exists
- within a network instance";
-
- leaf protocol {
- type leafref {
- path "../../../../protocols/protocol/config/identifier";
- }
- description
- "Reference to the protocol that the table is associated with.";
- }
-
- leaf address-family {
- type identityref {
- base oc-types:ADDRESS_FAMILY;
- }
- description
- "The address family (IPv4, IPv6) of the table's entries";
- }
- }
-
- grouping instance-interfaces-config {
- description
- "Configuration parameters related to an interface associated
- with the network instance";
-
- leaf id {
- type string;
- description
- "A unique identifier for this interface - this is expressed
- as a free-text string";
- }
-
- uses oc-if:interface-ref-common;
-
- leaf-list associated-address-families {
- type identityref {
- base oc-types:ADDRESS_FAMILY;
- }
- description
- "The address families on the subinterface which are to be
- associated with this network instance. When this leaf-list
- is empty and the network instance requires Layer 3 information
- the address families for which the network instance is
- enabled should be imported. If the value of this leaf-list
- is specified then the association MUST only be made for
- those address families that are included in the list.";
- }
- }
-
- grouping instance-interfaces-state {
- description
- "Operational state parameters relating to an interface
- associated with this network instance";
- }
-
- grouping inter-table-policies-config {
- description
- "Configuration entries that relate to how RIB or FIB entries
- are propagated between tables within the same network
- instance";
-
- leaf src-protocol {
- type leafref {
- // we are at table-connections/table-connection/config/.
- path "../../../../tables/table/config/protocol";
- }
- description
- "The source protocol for the table connection";
- }
-
- leaf address-family {
- type leafref {
- // we are at table-connections/table-connection/config/.
- path "../../../../tables/" +
- "table[protocol=current()/../src-protocol]/" +
- "config/address-family";
- }
- description
- "The address family associated with the connection. This
- must be defined for the source protocol. The target
- address family is implicitly defined by the address family
- specified for the source protocol.";
- }
-
- leaf dst-protocol {
- type leafref {
- path "../../../../tables/table/config/protocol";
- }
- description
- "The destination protocol for the table connection";
- }
-
- uses oc-rpol:apply-policy-import-config;
- }
-
- grouping network-instance-config {
- description
- "Configuration parameters relating to a top-level network
- instance";
-
- leaf name {
- type string;
- description
- "An operator-assigned unique name for the forwarding
- instance";
- }
-
- leaf type {
- type identityref {
- base "oc-ni-types:NETWORK_INSTANCE_TYPE";
- }
- description
- "The type of network instance. The value of this leaf
- indicates the type of forwarding entries that should be
- supported by this network instance";
- }
-
- leaf enabled {
- type boolean;
- description
- "Whether the network instance should be configured to be
- active on the network element";
- }
-
- leaf description {
- type string;
- description
- "A free-form string to be used by the network operator to
- describe the function of this network instance";
- }
-
- leaf router-id {
- type yang:dotted-quad;
- description
- "A identifier for the local network instance - typically
- used within associated routing protocols or signalling
- routing information in another network instance";
- }
-
- leaf route-distinguisher {
- type oc-ni-types:route-distinguisher;
- description
- "The route distinguisher that should be used for the local
- VRF or VSI instance when it is signalled via BGP.";
- }
- }
-
- grouping network-instance-state {
- description
- "Operational state parameters relating to a network instance";
- }
-
- grouping protocols-config {
- description
- "Configuration parameters relating to a generic protocol
- instance within a network instance";
-
- leaf identifier {
- type identityref {
- base "oc-pol-types:INSTALL_PROTOCOL_TYPE";
- }
- description
- "The protocol identifier for the instance";
- }
-
- leaf name {
- type string;
- description
- "A unique name for the protocol instance";
- }
-
- leaf enabled {
- type boolean;
- description
- "A boolean value indicating whether the local protocol
- instance is enabled.";
- }
-
- leaf default-metric {
- type uint32;
- description
- "The default metric within the RIB for entries that are
- installed by this protocol instance. This value may
- be overridden by protocol specific configuration options.
- The lower the metric specified the more preferable the RIB
- entry is to be selected for use within the network instance.
- Where multiple entries have the same metric value then these
- equal cost paths should be treated according to the specified
- ECMP path selection behaviour for the instance";
- }
- }
-
- grouping protocols-state {
- description
- "Operational state parameters relating to a protocol instance";
- }
-
- grouping instance-interface-association-config {
- description
- "Grouping containing leaves that are to be augmented into an
- interface or subinterface to include mapping to a network
- instance";
-
- leaf network-instance {
- type leafref {
- path "/network-instances/network-instance/name";
- }
- description
- "The network instance that this interface is associated
- with";
- }
- }
-
- grouping encapsulation-config {
- description
- "Type agnostic configuration parameters relating to the
- encapsulation of the network instance";
-
- leaf encapsulation-type {
- type identityref {
- base oc-ni-types:ENCAPSULATION;
- }
- description
- "The on-the-wire encapsulation that should be used when
- sending traffic from this network instance";
- }
-
- // rjs: This is left here as I suspect that this can
- // be used in EVPN. Need to validate implementations, otherwise
- // move to L3. (TODO)
- leaf label-allocation-mode {
- type identityref {
- base oc-ni-types:LABEL_ALLOCATION_MODE;
- }
- description
- "The label allocation mode to be used for L3 entries
- in the network instance";
- }
- }
-
- uses network-instance-top;
-}
diff --git a/src/plugins/yang/openconfig/openconfig-openflow-types.yang b/src/plugins/yang/openconfig/openconfig-openflow-types.yang
deleted file mode 100644
index 41c5dc0..0000000
--- a/src/plugins/yang/openconfig/openconfig-openflow-types.yang
+++ /dev/null
@@ -1,93 +0,0 @@
-module openconfig-openflow-types {
-
- yang-version "1";
-
- namespace "http://openconfig.net/yang/openflow/types";
-
- prefix "openflow-types";
-
- import openconfig-extensions { prefix oc-ext; }
-
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines types related to the Openflow configuration
- and operational state model.";
-
- oc-ext:openconfig-version "0.1.1";
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.Initial revision";
- reference "0.1.1";
- }
-
- revision "2017-06-01" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
-
- typedef failure-mode {
- type enumeration {
- enum SECURE {
- description
- "Packets and messages destined to the controllers are
- dropped. Flow entries continue to expire according to
- their timeouts.";
- }
- enum STANDALONE {
- description
- "Processes all packets using the OFPP_NORMAL reserved
- port. The switch acts as a legacy Ethernet switch or
- router.";
- }
- }
- description
- "Type to define Openflow failure mode.";
- }
-
- typedef transport {
- type enumeration {
- enum TCP {
- description
- "Transmission Control Protocol (TCP).";
- }
- enum TLS {
- description
- "Transport Layer Security (TLS).";
- }
- }
- description
- "Type to define Openflow transport protocol.";
- }
-
- typedef auxiliary-id {
- type uint8 {
- range "0..15";
- }
- description
- "A Controller may have multiple auxiliary connections as
- specified by the Openflow protocol. The main Controller
- connection should always have the auxiliary-id set to zero.
- All other connections must have an auxiliary-id different
- from 0.";
- }
-
- typedef datapath-id {
- type string {
- pattern '^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){7}$';
- }
- description
- "The datapath-id type represents an OpenFlow
- datapath identifier. The lower 48-bits are for
- a MAC address, while the upper 16-bits are
- implementer-defined.";
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-openflow.yang b/src/plugins/yang/openconfig/openconfig-openflow.yang
deleted file mode 100644
index ab7a433..0000000
--- a/src/plugins/yang/openconfig/openconfig-openflow.yang
+++ /dev/null
@@ -1,314 +0,0 @@
-module openconfig-openflow {
-
- yang-version "1";
-
- namespace "http://openconfig.net/yang/openflow";
-
- prefix "openflow";
-
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-openflow-types { prefix of-types; }
- import openconfig-system { prefix oc-sys; }
-
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data for
- Openflow.";
-
- oc-ext:openconfig-version "0.1.1";
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.Initial revision";
- reference "0.1.1";
- }
-
- revision "2017-06-01" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- grouping openflow-controller-config {
- description
- "Openflow controller config";
-
- leaf name {
- type string;
- description "Name of this Openflow controller. All connections
- for the same controller need to have the same name.";
- }
- }
-
- grouping openflow-controller-state {
- description
- "Openflow controller state";
- }
-
- grouping openflow-controllers-top {
- description
- "Top-level for the Openflow controllers model";
-
- container controllers {
- description
- "Container for the Openflow controllers model";
-
- list controller {
- key "name";
-
- description
- "The Openflow Switch connects to all Openflow controllers
- configured";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "The name identifies the controller.";
- }
-
- container config {
- description
- "Container for the Openflow controller config.";
-
- uses openflow-controller-config;
- }
-
- container state {
- config false;
-
- description
- "Container for the Openflow controller state.";
-
- uses openflow-controller-config;
- uses openflow-controller-state;
- }
-
- uses openflow-connections-top;
- }
- }
- }
-
-
- grouping openflow-connections-config {
- description
- "Configuration data for OpenFlow controller connections";
-
- leaf aux-id {
- type of-types:auxiliary-id;
- description
- "Controller auxiliary ID. Must be 0 for the main controller.
- One controller may have multiple auxiliary connections as
- specified by the Openflow protocol. Besides configuring the
- main controller, it is also possible to configure auxiliary
- connections. The main controller must have the aux-id
- set to zero. All others must have an aux-id different
- from 0.";
- }
-
- leaf priority {
- type uint8;
- description
- "Optional value for servicing auxiliary connections with
- different priorities.";
- }
-
- leaf address {
- type oc-inet:ip-address;
- description
- "The IP address of the controller.";
- }
-
- leaf port {
- type oc-inet:port-number;
- default 6653;
- description
- "Controller port to use.";
- }
-
- leaf transport {
- type of-types:transport;
- default TCP;
- description
- "Controller transport protocol used.";
- }
-
- leaf certificate-id {
- type string;
- description
- "Certificate ID is used for TLS connections. When installed,
- certificates are associated with an ID. This ID specifies the
- certificate to use in a TLS connection.";
- }
-
- leaf source-interface {
- type oc-if:base-interface-ref;
- description
- "Optionally specify the source interface for the
- controller connection.";
- }
- }
-
- grouping openflow-connections-state {
- description
- "Operational state data for OpenFlow controller connections";
-
- leaf connected {
- type boolean;
- description
- "When set to true, indicates the connection between the
- switch and controller is established.";
- }
- }
-
- grouping openflow-connections-top {
- description
- "Top-level grouping for OpenFlow controller connections";
-
- container connections {
- description
- "Enclosing container for list of controller connections";
-
- list connection {
- key "aux-id";
- description
- "List of connections to the OpenFlow controller.
- The Openflow switch always connects to configured Openflow
- controllers. Each controller can have more than one
- connection, called auxiliary Openflow connections.";
-
- leaf aux-id {
- type leafref {
- path "../config/aux-id";
- }
- description
- "Reference to auxiliary id list key";
- }
-
- container config {
- description
- "Configuration data for OpenFlow controller connections";
-
- uses openflow-connections-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for OpenFlow controller
- connections";
-
- uses openflow-connections-config;
- uses openflow-connections-state;
- }
- }
- }
- }
-
-
- grouping openflow-agent-config {
- description
- "Openflow agent config";
-
- leaf datapath-id {
- type of-types:datapath-id;
- description
- "Datapath unique ID. The lower 48-bits are for
- a MAC address, while the upper 16-bits are
- implementer-defined.";
- }
-
- leaf failure-mode {
- type of-types:failure-mode;
- description
- "Failure mode for Openflow.";
- }
-
- leaf backoff-interval {
- type uint32;
- units seconds;
- description
- "Openflow agent connection backoff interval.";
- }
-
- leaf max-backoff {
- type uint32;
- units seconds;
- description
- "Openflow agent max backoff time.";
- }
-
- leaf inactivity-probe {
- type uint32;
- units seconds;
- description
- "Openflow agent inactivity probe period.";
- }
- }
-
- grouping openflow-agent-state {
- description
- "Openflow agent state";
- }
-
- grouping openflow-agent-top {
- description
- "Top-level for the Openflow agent model";
-
- container agent {
- description
- "Container for the Openflow agent model.";
-
- container config {
- description
- "Container for the Openflow agent config.";
-
- uses openflow-agent-config;
- }
-
- container state {
- config false;
-
- description
- "Container for the Openflow agent state.";
-
- uses openflow-agent-config;
- uses openflow-agent-state;
- }
- }
- }
-
-
- grouping openflow-top {
- description
- "Top-level for the Openflow model";
-
- container openflow {
- description
- "Container for Openflow model";
-
-
- uses openflow-controllers-top;
- uses openflow-agent-top;
- }
- }
-
-
- augment "/oc-sys:system" {
- description
- "Adding OpenConfig data to the system model";
-
- uses openflow-top;
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-optical-amplifier.yang b/src/plugins/yang/openconfig/openconfig-optical-amplifier.yang
deleted file mode 100644
index 1467148..0000000
--- a/src/plugins/yang/openconfig/openconfig-optical-amplifier.yang
+++ /dev/null
@@ -1,474 +0,0 @@
-module openconfig-optical-amplifier {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/optical-amplfier";
-
- prefix "oc-opt-amp";
-
- import openconfig-platform { prefix oc-platform; }
- import openconfig-transport-line-common { prefix oc-line-com; }
- import openconfig-types { prefix oc-types; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This model describes configuration and operational state data
- for optical amplifiers, deployed as part of a transport
- line system.";
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2017-10-02" {
- description
- "Add support for fiber type profile and physical component
- association for amplifier gain blocks.";
- reference "0.4.0";
- }
-
- revision "2017-09-08" {
- description
- "Correct bug with OSC interfaces";
- reference "0.3.1";
- }
-
- revision "2017-07-08" {
- description
- "Add monitor port type and refs to hw ports, ";
- reference "0.3.0";
- }
-
- revision "2017-03-28" {
- description
- "Added min/max/avg stats, status for media channels, OCM, APS";
- reference "0.2.0";
- }
-
- revision "2016-03-31" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity OPTICAL_AMPLIFIER_TYPE {
- description
- "Type definition for different types of optical amplifiers";
- }
-
- identity EDFA {
- base OPTICAL_AMPLIFIER_TYPE;
- description
- "Erbium doped fiber amplifer (EDFA)";
- }
-
- identity FORWARD_RAMAN {
- base OPTICAL_AMPLIFIER_TYPE;
- description
- "Forward pumping Raman amplifier";
- }
-
- identity BACKWARD_RAMAN {
- base OPTICAL_AMPLIFIER_TYPE;
- description
- "Backward pumping Raman amplifier";
- }
-
- identity HYBRID {
- base OPTICAL_AMPLIFIER_TYPE;
- description
- "Hybrid backward pumping Raman + EDFA amplifier";
- }
-
- identity GAIN_RANGE {
- description
- "Base type for expressing the gain range for a switched gain
- amplifier. The gain range is expressed as a generic setting,
- e.g., LOW/MID/HIGH. The actual db range will be determined
- by the implementation.";
- }
-
- identity LOW_GAIN_RANGE {
- base GAIN_RANGE;
- description
- "LOW gain range setting";
- }
-
- identity MID_GAIN_RANGE {
- base GAIN_RANGE;
- description
- "MID gain range setting";
- }
-
- identity HIGH_GAIN_RANGE {
- base GAIN_RANGE;
- description
- "HIGH gain range setting";
- }
-
- identity FIXED_GAIN_RANGE {
- base GAIN_RANGE;
- description
- "Fixed or non-switched gain amplfier";
- }
-
- identity OPTICAL_AMPLIFIER_MODE {
- description
- "Type definition for different types of optical amplifier
- operating modes";
- }
-
- identity CONSTANT_POWER {
- base OPTICAL_AMPLIFIER_MODE;
- description
- "Constant power mode";
- }
-
- identity CONSTANT_GAIN {
- base OPTICAL_AMPLIFIER_MODE;
- description
- "Constant gain mode";
- }
-
-
- identity FIBER_TYPE_PROFILE {
- description
- "Type definition for different profiles of fiber types";
- }
-
- identity DSF {
- base FIBER_TYPE_PROFILE;
- description
- "Dispersion shifted fiber";
- }
-
- identity LEAF {
- base FIBER_TYPE_PROFILE;
- description
- "Large effective area fiber";
- }
-
- identity SSMF {
- base FIBER_TYPE_PROFILE;
- description
- "Standard single mode fiber";
- }
-
- identity TWC {
- base FIBER_TYPE_PROFILE;
- description
- "True wave classic";
- }
-
- identity TWRS {
- base FIBER_TYPE_PROFILE;
- description
- "True wave reduced slope";
- }
-
- // grouping statements
-
- grouping optical-amplifier-config {
- description
- "Configuration data for optical amplifiers";
-
- leaf name {
- type string;
- description
- "User-defined name assigned to identify a specific amplifier
- in the device";
- }
-
- leaf type {
- type identityref {
- base OPTICAL_AMPLIFIER_TYPE;
- }
- description
- "Type of the amplifier";
- }
-
- leaf target-gain {
- type decimal64 {
- fraction-digits 2;
- range 0..max;
- }
- units dB;
- description
- "Positive gain applied by the amplifier.";
- }
-
- leaf target-gain-tilt {
- type decimal64 {
- fraction-digits 2;
- }
- units dB;
- description
- "Gain tilt control";
- }
-
- leaf gain-range {
- type identityref {
- base GAIN_RANGE;
- }
- description
- "Selected gain range. The gain range is a platform-defined
- value indicating the switched gain amplifier setting";
- }
-
- leaf amp-mode {
- type identityref {
- base OPTICAL_AMPLIFIER_MODE;
- }
- description
- "The operating mode of the amplifier";
- }
-
- leaf target-output-power {
- type decimal64 {
- fraction-digits 2;
- }
- units dBm;
- description
- "Output optical power of the amplifier.";
- }
-
- leaf enabled {
- type boolean;
- description
- "Turns power on / off to the amplifiers gain module.";
- }
-
- leaf fiber-type-profile {
- type identityref {
- base FIBER_TYPE_PROFILE;
- }
- description
- "The fiber type profile specifies details about the
- fiber type which are needed to accurately determine
- the gain and perform efficient amplification. This is
- only needed for Raman type amplifiers.";
- }
-
- }
-
- grouping optical-amplifier-state {
- description
- "Operational state data for optical amplifiers";
-
- leaf component {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to the system-supplied physical component that
- the amplifier gain block is contained within. Multiple
- amplifier gain blocks may be contained within the same
- physical component.";
- }
-
- leaf ingress-port {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to system-supplied name of the amplifier ingress
- port. This leaf is only valid for ports of type INGRESS.";
- }
-
- leaf egress-port {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to system-supplied name of the amplifier egress
- port. This leaf is only valid for ports of type EGRESS.";
- }
-
- container actual-gain {
- description
- "The actual gain applied by the amplifier in units of
- 0.01dB. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dB;
- }
-
- container actual-gain-tilt {
- description
- "The actual tilt applied by the amplifier in units of
- 0.01dB. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dB;
- }
-
- container input-power-total {
- description
- "The total input optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container input-power-c-band {
- description
- "The C band (consisting of approximately 191 to 195 THz or
- 1530nm to 1565 nm) input optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container input-power-l-band {
- description
- "The L band (consisting of approximately 184 to 191 THz or
- 1565 to 1625 nm) input optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container output-power-total {
- description
- "The total output optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container output-power-c-band {
- description
- "The C band (consisting of approximately 191 to 195 THz or
- 1530nm to 1565 nm)output optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container output-power-l-band {
- description
- "The L band (consisting of approximately 184 to 191 THz or
- 1565 to 1625 nm)output optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container laser-bias-current {
- description
- "The current applied by the system to the transmit laser to
- achieve the output power. The current is expressed in mA
- with up to two decimal precision. If avg/min/max statistics
- are not supported, just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-mA;
- }
-
- container optical-return-loss {
- description
- "The optical return loss (ORL) is the ratio of the light
- reflected back into the port to the light launched out of
- the port. ORL is in units of 0.01dBm. If avg/min/max
- statistics are not supported, just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
- }
-
- grouping optical-amplifier-top {
- description
- "Top-level grouping for optical amplifier data";
-
- container optical-amplifier {
- description
- "Enclosing container for amplifiers and supervisory channels";
-
- container amplifiers {
- description
- "Enclosing container for list of amplifiers";
-
- list amplifier {
- key "name";
- description
- "List of optical amplifiers present in the device";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the name of the amplifier";
- }
-
- container config {
- description
- "Configuration data for the amplifier";
-
- uses optical-amplifier-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the amplifier";
-
- uses optical-amplifier-config;
- uses optical-amplifier-state;
- }
- }
- }
-
- container supervisory-channels {
- description
- "Enclosing container for list of supervisory channels";
-
- list supervisory-channel {
- key "interface";
- description
- "List of supervisory channels";
-
- leaf interface {
- type leafref {
- path "../config/interface";
- }
- description
- "Reference to the interface of the supervisory channel";
- }
-
- uses oc-line-com:optical-osc-top;
- }
- }
- }
- }
-
- // data definition statements
-
- uses optical-amplifier-top;
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-ospf-policy.yang b/src/plugins/yang/openconfig/openconfig-ospf-policy.yang
deleted file mode 100644
index 35b915a..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospf-policy.yang
+++ /dev/null
@@ -1,188 +0,0 @@
-module openconfig-ospf-policy {
- yang-version "1";
-
- namespace "http://openconfig.net/yang/ospf-policy";
-
- prefix "oc-ospf-pol";
-
- import openconfig-routing-policy { prefix "oc-rpol"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-ospf-types { prefix "oc-ospf-types"; }
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines extensions to the OpenConfig policy
- model to add extensions for OSPF. This module is intended
- to be generic for both OSPFv2 and OSPFv3.";
-
- oc-ext:openconfig-version "0.1.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- revision "2016-08-22" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping ospf-match-config {
- description
- "Configuration parameters for OSPF match conditions";
-
- leaf area-eq {
- type oc-ospf-types:ospf-area-identifier;
- description
- "Match prefixes which are within a particular OSPF area";
- }
- }
-
- grouping ospf-match-conditions {
- description
- "Match conditions that are added by OSPF";
-
- container ospf-conditions {
- description
- "Match conditions specific to OSPF";
-
- container config {
- description
- "Configuration parameters relating to OSPF match conditions";
-
- uses ospf-match-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to OSPF match conditions";
-
- uses ospf-match-config;
- }
- }
- }
-
- grouping ospf-actions-config {
- description
- "Configuration parameters for OSPF policy actions";
-
- leaf set-area {
- type oc-ospf-types:ospf-area-identifier;
- description
- "Set the area for the matched route. This action is typically
- used when importing prefixes into OSPF, such that a route can
- be imported into a specific area within the instance.";
- }
- }
-
- grouping ospf-actions-set-metric-config {
- description
- "Configuration parameters relating to setting the OSPF metric";
-
- leaf metric-type {
- type enumeration {
- enum EXTERNAL_TYPE_1 {
- description
- "Set the external type 1 metric";
- }
- enum EXTERNAL_TYPE_2 {
- description
- "Set the external type 2 metric";
- }
- }
- default "EXTERNAL_TYPE_2";
- description
- "Specify the type of metric which is to be set by the policy";
- }
-
- leaf metric {
- type oc-ospf-types:ospf-metric;
- description
- "Set the metric of the routes matching the policy to the value
- specified by this leaf.";
- }
- }
-
- grouping ospf-actions {
- description
- "Actions that are added by OSPF to the action framework";
-
- container ospf-actions {
- description
- "Actions specific to OSPF";
-
- container config {
- description
- "Configuration parameters for OSPF actions";
-
- uses ospf-actions-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for OSPF actions";
-
- uses ospf-actions-config;
- }
-
- container set-metric {
- description
- "Configuration and state parameters relating to manipulating
- the OSPF metric";
-
- container config {
- description
- "Configuration parameters relating to setting the OSPF metric";
- uses ospf-actions-set-metric-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to setting the OSPF
- metric";
-
- uses ospf-actions-set-metric-config;
- }
- }
- }
- }
-
- // augment the groupings into the routing policy model
-
- // TODO: discuss whether igp-actions should be used or whether this should
- // be removed.
-
- augment "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:statements/oc-rpol:statement/" +
- "oc-rpol:conditions" {
- description
- "Add OSPF specific match conditions to the routing policy model";
- uses ospf-match-conditions;
- }
-
- augment "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:statements/oc-rpol:statement/" +
- "oc-rpol:actions" {
- description
- "Add OSPF specific actions to the routing policy model";
- uses ospf-actions;
- }
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-ospf-types.yang b/src/plugins/yang/openconfig/openconfig-ospf-types.yang
deleted file mode 100644
index 0544670..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospf-types.yang
+++ /dev/null
@@ -1,784 +0,0 @@
-module openconfig-ospf-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/ospf-types";
-
- prefix "oc-ospf-types";
-
- // import some basic types
- import ietf-yang-types { prefix "yang"; }
- import openconfig-extensions { prefix "oc-ext"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Type definitions for OSPF";
-
- oc-ext:openconfig-version "0.1.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- revision "2017-02-28"{
- description
- "Initial public release of OSPFv2";
- reference "0.1.0";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- // typedefs
- typedef ospf-area-identifier {
- type union {
- type uint32;
- type yang:dotted-quad;
- }
- description
- "An identifier for an area with OSPF version 2 or 3. This value
- is expressed as either a dotted-quad, or a unsigned 32-bit
- number";
- }
-
- typedef ospf-metric {
- type uint16;
- description
- "A common type that can be utilised to express an OSPF metric";
- }
-
- typedef sr-sid-type {
- type enumeration {
- enum LABEL {
- description
- "When the length of the SR/Label Sub-TLV is specified to be 3, then
- the right-most 20-bits represent a label value within the SR/Label
- Sub-TLV. When this leaf is set to a value of Label the first-entry
- leaf should be interpreted to be an MPLS label.";
- }
- enum SID {
- description
- "When the length of the SR/Label Sub-TLV is specified to be 4, then
- the value specified in the first-entry leaf should be specified to
- be a segment identifier.";
- }
- }
- description
- "A common type used to express the type of segment identifier that is
- used in LSDB entries relating to segment routing";
- }
-
- // identities
- identity OSPF_LSA_TYPE {
- description
- "Base identity for an OSPF LSA type. This identity is intended
- to be used across both OSPFv2 and OSPFv3. Identity values that
- correspond to only one OSPF version are marked as such.";
- }
-
- identity ROUTER_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 1 - ROUTER_LSA. An LSA originated by each router within
- the area describing the state and cost of the router's links
- in the area.";
- reference "RFC2328";
- }
-
- identity NETWORK_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 2 - NETWORK_LSA. An LSA originated for each broadcast and
- non-broadcast multiple access (NBMA) in the area. This LSA is
- originated by the designated router.";
- reference "RFC2328";
- }
-
- identity SUMMARY_IP_NETWORK_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 3 - SUMMARY_IP_NETWORK_LSA. An LSA originated by area
- border routers describing inter-area destinations. This LSA type
- is used when the destination is an IP network";
- reference "RFC2328";
- }
-
- identity SUMMARY_ASBR_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 4 - SUMMARY_ASBR_LSA. An LSA originated by an area border
- router describing inter-area destinations. This LSA type is used
- when the destination is an AS boundary router.";
- reference "RFC2328";
- }
-
- identity AS_EXTERNAL_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 5 - AS_EXTERNAL_LSA. This LSA type is used to describe
- destinations external to the autonomous system, and is
- originated by an AS boundary router (ASBR).";
- reference "RFC2328";
- }
-
- identity NSSA_AS_EXTERNAL_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 7 - NSSA_AS_EXTERNAL_LSA. This LSA type is used by
- systems within a not-so-stubby-area (NSSA) to inject external
- prefixes into the LSDB. They are translated to Type 5 LSAs
- at an ABR device.";
- reference "RFC3101";
- }
-
- identity OSPFV2_LINK_SCOPE_OPAQUE_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 9 - OSPFV2_LINK_SCOPE_OPAQUE_LSA. This LSA type is used
- in OSPFv2 to distribute arbitrary information via the OSPF
- protocol. The contents is specific to the application defining
- the Opaque Type specified within the LSDB. LSAs with Type 9 have
- a scope of the link that they are being transmitted on (and the
- associated network or subnetwork).";
- reference "RFC5250";
- }
-
- identity OSPFV2_AREA_SCOPE_OPAQUE_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 10 - OSPFV2_AREA_SCOPE_OPAQUE_LSA. This LSA type is used
- in OSPFv2 to distribute arbitrary information via the OSPF
- protocol. The contents is specific to the application defining
- the Opaque Type specified within the LSDB. LSAs with Type 10 have
- a scope of the area that they are transmitted within.";
- reference "RFC5250";
- }
-
- identity OSPFV2_AS_SCOPE_OPAQUE_LSA {
- base "OSPF_LSA_TYPE";
- description
- "Type 11 - OSPFV2_AS_SCOPE_OPAQUE_LSA. This LSA type is used
- in OSPFv2 to distribute arbitrary information via the OSPF
- protocol. The contents is specific to the application defining
- the Opaque Type specified within the LSDB. LSAs with Type 11
- have a scope of the autonomous system that they are transmitted
- within.";
- reference "RFC5250";
- }
-
- identity ROUTER_LSA_TYPES {
- description
- "Sub-types of the router LSA";
- }
-
- identity ROUTER_LSA_P2P {
- base "ROUTER_LSA_TYPES";
- description
- "The LSA represents a point-to-point connection to another
- router";
- }
-
- identity ROUTER_LSA_TRANSIT_NETWORK {
- base "ROUTER_LSA_TYPES";
- description
- "The LSA represents a connection to a transit network";
- }
-
- identity ROUTER_LSA_STUB_NETWORK {
- base "ROUTER_LSA_TYPES";
- description
- "The LSA represents a connection to a stub network";
- }
-
- identity ROUTER_LSA_VIRTUAL_LINK {
- base "ROUTER_LSA_TYPES";
- description
- "The LSA represents a virtual link connection";
- }
-
- identity OSPF_NEIGHBOR_STATE {
- description
- "The state of an adjacency between the local system and a remote
- device";
- }
-
- identity DOWN {
- base "OSPF_NEIGHBOR_STATE";
- description
- "The initial state of a neighbor, indicating that no recent
- information has been received from the neighbor.";
- reference "RFC2328";
- }
-
- identity ATTEMPT {
- base "OSPF_NEIGHBOR_STATE";
- description
- "Utilised for neighbors that are attached to NBMA networks, it
- indicates that no information has been recently received from
- the neighbor but that Hello packets should be directly sent
- to that neighbor.";
- reference "RFC2328";
- }
-
- identity INIT {
- base "OSPF_NEIGHBOR_STATE";
- description
- "Indicates that a Hello packet has been received from the
- neighbor but bi-directional communication has not yet been
- established. That is to say that the local Router ID does
- not appear in the list of neighbors in the remote system's
- Hello packet.";
- reference "RFC2328";
- }
-
- identity TWO_WAY {
- base "OSPF_NEIGHBOR_STATE";
- description
- "Communication between the local and remote system is
- bi-directional such that the local system's Router ID is listed
- in the received remote system's Hello packet.";
- reference "RFC2328";
- }
-
- identity EXSTART {
- base "OSPF_NEIGHBOR_STATE";
- description
- "An adjacency with the remote system is being formed. The local
- system is currently transmitting empty database description
- packets in order to establish the master/slave relationship for
- the adjacency.";
- reference "RFC2328";
- }
-
- identity EXCHANGE {
- base "OSPF_NEIGHBOR_STATE";
- description
- "The local and remote systems are currently exchanging database
- description packets in order to determine which elements of
- their local LSDBs are out of date.";
- reference "RFC2328";
- }
-
- identity LOADING {
- base "OSPF_NEIGHBOR_STATE";
- description
- "The local system is sending Link State Request packets to the
- remote system in order to receive the more recently LSAs that
- were discovered during the Exchange phase of the procedure
- establishing the adjacency.";
- reference "RFC2328";
- }
-
- identity FULL {
- base "OSPF_NEIGHBOR_STATE";
- description
- "The neighboring routers are fully adjacent such that both
- LSDBs are synchronized. The adjacency will appear in Router and
- Network LSAs";
- reference "RFC2328";
- }
-
- identity OSPF_NETWORK_TYPE {
- description
- "Types of network that OSPF should consider attached to an
- interface";
- }
-
- identity POINT_TO_POINT_NETWORK {
- base "OSPF_NETWORK_TYPE";
- description
- "A interface that connects two routers.";
- reference "RFC2328";
- }
-
- identity BROADCAST_NETWORK {
- base "OSPF_NETWORK_TYPE";
- description
- "An interface that supports >2 attached routers which has the
- ability to address all connected systems via a single
- (broadcast) address.";
- }
-
- identity NON_BROADCAST_NETWORK {
- base "OSPF_NETWORK_TYPE";
- description
- "An interface that supports >2 attached rotuers which does not
- have the ability to address all connected systems with a
- broadcast address.";
- }
-
- // rjs TODO: Maybe need p2mp here.
-
-
- identity OSPF_OPAQUE_LSA_TYPE {
- description
- "This identity is the base used for opaque LSA types. The values
- that extend this base are those that are described in the IANA
- OSPF Opaque Link-State Advertisements (LSA) Option Types registry";
- }
-
- identity TRAFFIC_ENGINEERING {
- base "OSPF_OPAQUE_LSA_TYPE";
- description
- "The Traffic Engineering LSA. This type is used only with area-scope
- Opaque LSAs - and is used to describe routers, point-to-point links
- and connections to multi-access networks for traffic engineering
- purposes.";
- reference "RFC3630";
- }
-
- identity GRACE_LSA {
- base "OSPF_OPAQUE_LSA_TYPE";
- description
- "Grace LSAs are announced by a system undergoing graceful-restart.
- A system that is attempting an OSPF graceful restart announces
- Grace-LSAs with a specified grace period, indicating the intention
- to have completed an restart within the specified period.";
- reference "RFC3623";
- }
-
- identity ROUTER_INFORMATION {
- base "OSPF_OPAQUE_LSA_TYPE";
- description
- "The Router Information LSA is used by an OSPFv2 system to announce
- optional capabilities of the local system, over and above those that
- are included within the OSPF hello message field. The flooding scope
- of the LSA can be link-, area-, or AS-wide (i.e., the LSA type can
- be 9, 10 or 11).";
- reference "RFC7770";
- }
-
- identity OSPFV2_EXTENDED_PREFIX {
- base "OSPF_OPAQUE_LSA_TYPE";
- description
- "The Extended Prefix LSA is used in OSPFv2 to carry a set of attributes
- that are to be associated with a prefix that is advertised in OSPF. The
- attributes are carried as one or more TLV tuples. The flooding scope
- of the LSA can be link-, area-, or AS-wide as specified by the
- advertising system. The flooding scope of the LSA may exceed the scope
- of the corresponding prefix.";
- reference "RFC7684";
- }
-
- identity OSPFV2_EXTENDED_LINK {
- base "OSPF_OPAQUE_LSA_TYPE";
- description
- "The Extended Link LSA is used in OSPFv2 to carry a set of attributes
- that are to be associated with a link that is advertised in OSPF. The
- link attributes are carried as one or more TLV tuples. The flooding
- scope of the link LSA is area-local - i.e., it is carried in a Type 10
- opaque LSA.";
- reference "RFC7684";
- }
-
- identity OSPF_TE_LSA_TLV_TYPE {
- description
- "This identity is the base used for the type field of TLVs that are
- included within the Traffic Engineering Opaque LSA.";
- }
-
- identity TE_ROUTER_ADDRESS {
- base "OSPF_TE_LSA_TLV_TYPE";
- description
- "A stable IP address of the advertising router that is always reachable
- if the node has connectivity.";
- }
-
- identity TE_LINK {
- base "OSPF_TE_LSA_TLV_TYPE";
- description
- "A single link within a traffic engineering topology. A set of sub-TLVs
- are carried within this attribute to indicate traffic engineering
- characteristics of the link.";
- }
-
- identity TE_ROUTER_IPV6_ADDRESS {
- base "OSPF_TE_LSA_TLV_TYPE";
- description
- "A stable IPv6 address of the advertising router that is always
- reachable if the node has connectivity. This TLV is used only with
- OSPFv3";
- reference "RFC5329";
- }
-
- identity TE_LINK_LOCAL {
- base "OSPF_TE_LSA_TLV_TYPE";
- description
- "Attributes associated with the local link by the system.";
- reference "RFC4203";
- }
-
- identity TE_NODE_ATTRIBUTE {
- base "OSPF_TE_LSA_TLV_TYPE";
- description
- "Attributes associted with the local system";
- reference "RFC5786";
- }
-
- identity TE_OPTICAL_NODE_PROPERTY {
- base "OSPF_TE_LSA_TLV_TYPE";
- description
- "Attributes associated with the local optical node. A set of sub-TLVs
- are carried within this TLV which are used within the GMPLS control
- plane when using OSPF";
- }
-
- identity OSPF_TE_LINK_TLV_TYPE {
- description
- "This identity is the based used for the type field for sub-TLVs of the
- Link TLV of the OSPF Traffic Engineering Opaque LSA";
- }
-
- identity TE_LINK_TYPE {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE Link Type sub-TLV appears exactly once per OSPF-TE Link
- and describes the type of the link";
- }
-
- identity TE_LINK_ID {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE Link ID sub-TLV appears exactly once per OSPF-TE link and
- identifies the remote end of the link.";
- }
-
- identity TE_LINK_LOCAL_IP {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE Local IP specifies a list of the interface addresses of the
- local system corresponding to the traffic engineering link.";
- }
-
- identity TE_LINK_REMOTE_IP {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE Remote IP specifies a list of IP addresses of the remote
- neighbors associated with the traffic engineering link.";
- }
-
- identity TE_LINK_METRIC {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE Metric specifies the link metric for traffic engineering
- purposes";
- }
-
- identity TE_LINK_MAXIMUM_BANDWIDTH {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE Maximum Bandwidth specifies the maximum bandwidth of the
- link that it is associated with.";
- }
-
- identity TE_LINK_MAXIMUM_RESERVABLE_BANDWIDTH {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE Maximum Reservable Bandwidth specifies the maximum
- bandwidth that may be reserved on the link in bytes per second";
- }
-
- identity TE_LINK_UNRESERVED_BANDWIDTH {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE unreserved bandwidth indicates the amount of bandwidth
- at each priority level that is currently not reserved";
- }
-
- identity TE_LINK_ADMIN_GROUP {
- base "OSPF_TE_LINK_TLV_TYPE";
- description
- "The OSPF-TE administrative group indicates the administrative group
- that the is assigned to the interface";
- }
-
- identity TE_NODE_ATTRIBUTE_TLV_TYPE {
- description
- "This identity forms the base for sub-TLVs of the Node Attribute TLV
- of the Traffic Engineering LSA";
- }
-
- identity NODE_IPV4_LOCAL_ADDRESS {
- base "TE_NODE_ATTRIBUTE_TLV_TYPE";
- description
- "The Node Attribute Sub-TLV contains a list of the IPv4 addresses of
- the local system";
- }
-
- identity NODE_IPV6_LOCAL_ADDRESS {
- base "TE_NODE_ATTRIBUTE_TLV_TYPE";
- description
- "The Node Attribute Sub-TLV contains a list of the IPv6 addresses of
- the local system";
- }
-
- identity GRACE_LSA_TLV_TYPES {
- description
- "This identity is used as the base for TLVs within the Grace LSA";
- }
-
- identity GRACE_PERIOD {
- base "GRACE_LSA_TLV_TYPES";
- description
- "This sub-TLV describes the period for which adjacencies should be
- maintained with the restarting system";
- }
-
- identity GRACE_RESTART_REASON {
- base "GRACE_LSA_TLV_TYPES";
- description
- "This sub-TLV describes the reason for the OSPF restart of the system
- that is restarting";
- }
-
- identity GRACE_IP_INTERFACE_ADDRESS {
- base "GRACE_LSA_TLV_TYPES";
- description
- "This sub-TLV specifies the restarting system's IP address on the
- interface via which it is advertising the Grace LSA";
- }
-
- identity RI_LSA_TLV_TYPES {
- description
- "This identity is used as the base for the TLVs within the Router
- Information LSA";
- reference "RFC7770";
- }
-
- identity RI_INFORMATIONAL_CAPABILITIES {
- base "RI_LSA_TLV_TYPES";
- description
- "Informational capabilities of the advertising system";
- reference "RFC7770";
- }
-
- identity RI_FUNCTIONAL_CAPABILITIES {
- base "RI_LSA_TLV_TYPES";
- description
- "Functional capabilities of the advertising system";
- reference "RFC7770";
- }
-
- identity RI_NODE_ADMIN_TAG {
- base "RI_LSA_TLV_TYPES";
- description
- "Operator-defined administrative tags associated with the advertising
- system";
- reference "RFC7777";
- }
-
- identity RI_SR_SID_LABEL_RANGE {
- base "RI_LSA_TLV_TYPES";
- description
- "SID or Label ranges for use with segment routing when forwarding to
- the advertising system";
- reference "draft-ietf-ospf-segment-routing-extensions";
- }
-
- identity RI_SR_ALGORITHM {
- base "RI_LSA_TLV_TYPES";
- description
- "The algorithms that are supported for segment routing by the
- advertising system";
- reference "draft-ietf-ospf-segment-routing-extensions";
- }
-
- // will be shared with IS-IS
- identity SR_ALGORITHM {
- description
- "This identity is used as a base for the algorithms that can be
- supported for segment routing and are advertised by a system in the RI
- LSA";
- }
-
- identity SPF {
- base "SR_ALGORITHM";
- description
- "The standard shortest path algorithm based on link metric,
- as used by the OSPF protocol";
- }
-
- identity STRICT_SPF {
- base "SR_ALGORITHM";
- description
- "The standard shortest path algorithm based on link metric, with the
- requirement that all nodes along the path honor the SPF decision. That
- is to say that the SPF decision cannot be altered by local policy at
- the node";
- }
-
- identity OSPF_RI_SR_SID_LABEL_TLV_TYPES {
- description
- "This identity is used as a base for the sub-TLVs of the Segment
- Routing SID/Label Range TLV";
- }
-
- identity SR_SID_LABEL_TLV {
- base "OSPF_RI_SR_SID_LABEL_TLV_TYPES";
- description
- "A range of SID/Label values used by the local system";
- reference "draft-ietf-ospf-segment-routing-extensions";
- }
-
- identity OSPFV2_ROUTER_LINK_TYPE {
- description
- "OSPFv2 Router Link Types as per the IANA registry defined in
- RFC2740";
- }
-
- identity POINT_TO_POINT_LINK {
- base "OSPFV2_ROUTER_LINK_TYPE";
- description
- "The link is a point-to-point connection to another router";
- }
-
- identity TRANSIT_NETWORK_LINK {
- base "OSPFV2_ROUTER_LINK_TYPE";
- description
- "The link is a connection to a transit network";
- }
-
- identity STUB_NETWORK_LINK {
- base "OSPFV2_ROUTER_LINK_TYPE";
- description
- "The link is a connection to a stub network";
- }
-
- identity VIRTUAL_LINK {
- base "OSPFV2_ROUTER_LINK_TYPE";
- description
- "The link is a virtual connection to another router";
- }
-
- identity OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE {
- description
- "Sub-TLVs of the OSPFv2 Extended Prefix LSA as defined by
- RFC7684";
- }
-
- identity EXTENDED_PREFIX_RANGE {
- base "OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE";
- description
- "The attributes being described relate to a range of prefixes";
- }
-
- identity PREFIX_SID {
- base "OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE";
- description
- "The TLV describes a Segment Routing Prefix Segment Identifier
- associated with a prefix";
- }
-
- identity SID_LABEL_BINDING {
- base "OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE";
- description
- "The TLV describes a binding of a SID to a path to the prefix,
- which may have associated path characteristics";
- }
-
- identity OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE {
- description
- "Sub-TLV types carried in the SID/Label Binding Sub-TLV of
- the Extended Prefix Sub-TLV";
- }
-
- identity SID_MPLS_LABEL_BINDING {
- base "OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE";
- description
- "This sub-TLV indicates a binding between an SR SID and an
- MPLS label and must be present in the sub-TLV";
- }
-
- identity ERO_METRIC {
- base "OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE";
- description
- "This sub-TLV indicates the cost of the ERO path being
- advertised in the SID/Label TLV";
- }
-
- identity ERO_PATH {
- base "OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE";
- description
- "This sub-TLV indicates the path associated with an ERO
- being advertised in the SID/Label TLV";
- }
-
- identity OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE {
- description
- "The types of segment included within an ERO Path described
- within the SID/Label binding sub-TLV";
- }
-
- identity IPV4_SEGMENT {
- base "OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE";
- description
- "The segment is specified as an IPv4 address";
- }
-
- identity UNNUMBERED_INTERFACE_SEGMENT {
- base "OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE";
- description
- "The segment is specified as an unnumbered interface of
- a remote system";
- }
-
- identity OSPFV2_EXTENDED_LINK_SUBTLV_TYPE {
- description
- "Sub-TLVs of the Extended Link TLV for OSPFv2";
- }
-
- identity ADJACENCY_SID {
- base "OSPFV2_EXTENDED_LINK_SUBTLV_TYPE";
- description
- "The extended link sub-TLV indicates an Adjacency SID";
- }
-
- identity MAX_METRIC_TRIGGER {
- description
- "Triggers which cause the maximum metric to be set for
- entities advertised in OSPF";
- }
-
- identity MAX_METRIC_ON_SYSTEM_BOOT {
- base "MAX_METRIC_TRIGGER";
- description
- "Set the maximum metric when the system boots.";
- }
-
- identity MAX_METRIC_INCLUDE {
- description
- "Entities that may optionally be included when advertising
- the maximum metric.";
- }
-
- identity MAX_METRIC_INCLUDE_STUB {
- base "MAX_METRIC_INCLUDE";
- description
- "Include stub networks when advertising the maximum metric.";
- }
-
- identity MAX_METRIC_INCLUDE_TYPE2_EXTERNAL {
- base "MAX_METRIC_INCLUDE";
- description
- "Include OSPF Type 2 external routes when advertising
- the maximum metric.";
- }
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-ospfv2-area-interface.yang b/src/plugins/yang/openconfig/openconfig-ospfv2-area-interface.yang
deleted file mode 100644
index f2454c0..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospfv2-area-interface.yang
+++ /dev/null
@@ -1,472 +0,0 @@
-submodule openconfig-ospfv2-area-interface {
-
- belongs-to openconfig-ospfv2 {
- prefix "oc-ospfv2";
- }
-
- import ietf-yang-types { prefix "yang"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-interfaces { prefix "oc-if"; }
- import openconfig-ospf-types { prefix "oc-ospf-types"; }
-
- // include common submodule
- include openconfig-ospfv2-common;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule provides OSPFv2 configuration and operational
- state parameters that are specific to the area context";
-
- oc-ext:openconfig-version "0.1.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- revision "2017-02-28"{
- description
- "Initial public release of OSPFv2";
- reference "0.1.0";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping ospfv2-area-interface-config {
- description
- "Configuration parameters for an OSPF interface";
-
- leaf id {
- type string;
- description
- "An operator-specified string utilised to uniquely
- reference this interface";
- }
-
- leaf network-type {
- type identityref {
- base "oc-ospf-types:OSPF_NETWORK_TYPE";
- }
- description
- "The type of network that OSPFv2 should use for the specified
- interface.";
- }
-
- leaf priority {
- type uint8;
- description
- "The local system's priority to become the designated
- router";
- }
-
- leaf multi-area-adjacency-primary {
- type boolean;
- default true;
- description
- "When the specified interface is included in more than one
- area's configuration, this leaf marks whether the area should
- be considered the primary (when the value is true). In the
- case that this value is false, the area is considered a
- secondary area.";
- }
-
- leaf authentication-type {
- type string;
- // rjs TODO: discuss with bogdanov@ what the approach for auth
- // links should be.
- description
- "The type of authentication that should be used on this
- interface";
- }
-
- leaf metric {
- type oc-ospf-types:ospf-metric;
- description
- "The metric for the interface";
- }
-
- leaf passive {
- type boolean;
- description
- "When this leaf is set to true, the interface should be
- advertised within the OSPF area but OSPF adjacencies should
- not be established over the interface";
- }
-
- leaf hide-network {
- type boolean;
- description
- "When this leaf is set to true, the network connected to
- the interface should be hidden from OSPFv2 advertisements
- per the procedure described in RFC6860.";
- reference
- "RFC6860 - Hiding Transit-Only Networks in OSFF";
- }
- }
-
- grouping ospfv2-area-interface-timers-config {
- description
- "Configuration parameters relating to per-interface OSPFv2
- timers";
-
- leaf dead-interval {
- type uint32;
- units seconds;
- description
- "The number of seconds that the local system should let
- elapse before declaring a silent router down";
- reference "RFC2328";
- }
-
- leaf hello-interval {
- type uint32;
- units seconds;
- description
- "The number of seconds the local system waits between the
- transmission of subsequent Hello packets";
- }
-
- leaf retransmission-interval {
- type uint32;
- units seconds;
- description
- "The number of seconds that the local system waits before
- retransmitting an unacknowledged LSA.";
- }
- }
-
- grouping ospfv2-area-interface-mpls-config {
- description
- "Configuration parameters relating to MPLS extensions for OSPF";
-
- leaf traffic-engineering-metric {
- type uint32;
- description
- "A link metric that should only be considered for traffic
- engineering purposes.";
- reference "RFC3630, #2.5.5";
- }
- }
-
- grouping ospfv2-area-interface-neighbor-config {
- description
- "Configuration parameters relating to an individual neighbor
- system on an interface within an OSPF area";
-
- leaf router-id {
- type yang:dotted-quad;
- description
- "The router ID of the remote system.";
- }
-
- leaf metric {
- type oc-ospf-types:ospf-metric;
- description
- "The metric that should be considered to the remote neighbor
- over this interface. This configuration is only applicable
- for multiple-access networks";
- }
- }
-
- grouping ospfv2-area-interface-neighbor-state {
- description
- "Operational state parameters relating an individual neighbor
- system on an interface within an OSPF area";
-
- leaf priority {
- type uint8;
- description
- "The remote system's priority to become the designated
- router";
- }
-
- leaf dead-time {
- // rjs TODO: discussion with aashaikh@ + hines@ around how this
- // value should be represented, usually is a timer that
- // continually counts down but this sounds challenging for
- // telemetry.
- type oc-types:timeticks64;
- description
- "The time at which this neighbor's adjacency will be
- considered dead. This value is expressed as a number of
- seconds since the Unix Epoch";
- }
-
- leaf designated-router {
- type yang:dotted-quad;
- description
- "The designated router for the adjacency. This device
- advertises the Network LSA for broadcast and NBMA networks.";
- }
-
- leaf backup-designated-router {
- type yang:dotted-quad;
- description
- "The backup designated router for the adjacency.";
- }
-
- leaf optional-capabilities {
- // rjs TODO: should this be anything more than the hex-string
- // this is currently what is shown in IOS/JUNOS
- type yang:hex-string;
- description
- "The optional capabilities field received in the Hello
- message from the neighbor";
- }
-
- leaf last-established-time {
- type oc-types:timeticks64;
- units seconds;
- // rjs TODO: check implementations - is FULL considered 'up'
- // since the adjacency is probably up since ExStart
- description
- "The time at which the adjacency was last established with
- the neighbor. That is to say the time at which the
- adjacency last transitioned into the FULL state.
-
- This value is expressed as the number of seconds, relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- }
-
- leaf adjacency-state {
- type identityref {
- base "oc-ospf-types:OSPF_NEIGHBOR_STATE";
- }
- description
- "The state of the adjacency with the neighbor.";
- }
-
- leaf state-changes {
- type uint32;
- description
- "The number of transitions out of the FULL state that this
- neighbor has been through";
- }
-
- leaf retranmission-queue-length {
- type uint32;
- description
- "The number of LSAs that are currently in the queue to be
- retransmitted to the neighbor";
- }
- }
-
- grouping ospfv2-area-interface-lsa-filter-config {
- description
- "Configuration options relating to filtering LSAs
- on an interface.";
-
- leaf all {
- type boolean;
- description
- "When this leaf is set to true, all LSAs should be
- filtered to the neighbours with whom adjacencies are
- formed on the interface.";
- }
-
- // NB: this container can be augmented to add additional
- // filtering options which exist in some implementations.
- }
-
- grouping ospfv2-area-interface-mpls-igp-ldp-sync-state {
- description
- "Operational state parameters relating to MPLS LDP/IGP
- synchronization on a per-neighbor basis";
-
- leaf synchronized {
- type boolean;
- description
- "When the value of this leaf is set to true, the
- LDP neighbors reachable via this interface are considered
- to be synchronized, and hence the link is considered
- usable by the IGP.";
- }
- }
-
- grouping ospfv2-area-interfaces-structure {
- description
- "Structural grouping for configuration and operational state
- parameters that relate to an interface";
-
- container interfaces {
- description
- "Enclosing container for a list of interfaces enabled within
- this area";
-
- list interface {
- key "id";
-
- description
- "List of interfaces which are enabled within this area";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "A pointer to the identifier for the interface.";
- }
-
- container config {
- description
- "Configuration parameters for the interface on which
- OSPFv2 is enabled";
-
- uses ospfv2-area-interface-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the interface on which
- OSPFv2 is enabled";
- uses ospfv2-area-interface-config;
- }
-
- uses oc-if:interface-ref;
-
- container timers {
- description
- "Timers relating to OSPFv2 on the interface";
-
- container config {
- description
- "Configuration parameters for OSPFv2 timers on the
- interface";
- uses ospfv2-area-interface-timers-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for OSPFv2 timers on
- the interface";
-
- uses ospfv2-area-interface-timers-config;
- }
- }
-
- container mpls {
- description
- "Configuration and operational state parameters for
- OSPFv2 extensions related to MPLS on the interface.";
-
- container config {
- description
- "Configuration parameters for OSPFv2 extensions relating
- to MPLS for the interface";
- uses ospfv2-area-interface-mpls-config;
- }
-
- container state {
- config false;
- description
- "Operational state for OSPFv2 extensions relating to
- MPLS for the interface";
- uses ospfv2-area-interface-mpls-config;
- }
-
- container igp-ldp-sync {
- description
- "OSPFv2 parameters relating to LDP/IGP synchronization";
-
- container config {
- description
- "Configuration parameters relating to LDP/IG
- synchronization.";
- uses ospfv2-common-mpls-igp-ldp-sync-config;
- }
-
- container state {
- config false;
- description
- "Operational state variables relating to LDP/IGP
- synchronization";
- uses ospfv2-common-mpls-igp-ldp-sync-config;
- uses ospfv2-area-interface-mpls-igp-ldp-sync-state;
- }
- }
- }
-
- container lsa-filter {
- description
- "OSPFv2 parameters relating to filtering of LSAs to
- neighbors the specified interface.";
-
- container config {
- description
- "Configuration parameters relating to filtering LSAs
- on the specified interface.";
- uses ospfv2-area-interface-lsa-filter-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to filtering
- LSAs on the specified interface";
- uses ospfv2-area-interface-lsa-filter-config;
- }
- }
-
- container neighbors {
- description
- "Enclosing container for the list of neighbors that
- an adjacency has been established with on the interface";
-
- list neighbor {
- key "router-id";
-
- description
- "A neighbor with which an OSPFv2 adjacency has been
- established within this area";
-
- leaf router-id {
- type leafref {
- path "../config/router-id";
- }
- description
- "Reference to the router ID of the adjacent system";
- }
-
- container config {
- description
- "Configuration parameters relating to the adjacent
- system";
- uses ospfv2-area-interface-neighbor-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the adjacent
- system";
- uses ospfv2-area-interface-neighbor-config;
- uses ospfv2-area-interface-neighbor-state;
- }
- }
- }
-
- }
- }
- }
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-ospfv2-area.yang b/src/plugins/yang/openconfig/openconfig-ospfv2-area.yang
deleted file mode 100644
index 2ee4ab4..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospfv2-area.yang
+++ /dev/null
@@ -1,169 +0,0 @@
-submodule openconfig-ospfv2-area {
-
- belongs-to openconfig-ospfv2 {
- prefix "oc-ospfv2";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-ospf-types { prefix "oc-ospf-types"; }
- import ietf-inet-types { prefix "inet"; }
-
- // include other required submodules
- include openconfig-ospfv2-area-interface;
- include openconfig-ospfv2-lsdb;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule provides OSPFv2 configuration and operational
- state parameters that are specific to the area context";
-
- oc-ext:openconfig-version "0.1.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- revision "2017-02-28"{
- description
- "Initial public release of OSPFv2";
- reference "0.1.0";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping ospfv2-area-config {
- description
- "Configuration parameters relating to an OSPF area";
-
- leaf identifier {
- type oc-ospf-types:ospf-area-identifier;
- description
- "An identifier for the OSPFv2 area - described as either a
- 32-bit unsigned integer, or a dotted-quad";
- }
- }
-
- grouping ospfv2-area-mpls-config {
- description
- "Configuration parameters relating to OSPFv2 extensions for
- MPLS";
-
- leaf traffic-engineering-enabled {
- type boolean;
- description
- "Specifies whether traffic engineering extensions should be
- advertised within the area";
- }
- }
-
- grouping ospfv2-area-virtual-link-config {
- description
- "Configuration parameters relating to a virtual-link within
- the OSPF area";
-
- leaf remote-router-id {
- type inet:ipv4-address-no-zone;
- description
- "The router ID of the device which terminates the remote end
- of the virtual link";
- }
- }
-
- grouping ospfv2-area-structure {
- description
- "Structural grouping for configuration and operational state
- parameters that relate to an individual area";
-
- container config {
- description
- "Configuration parameters relating to an OSPFv2 area";
-
- uses ospfv2-area-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to an OSPFv2 area";
- uses ospfv2-area-config;
- }
-
- container mpls {
- description
- "Configuration and operational state parameters for OSPFv2
- extensions relating to MPLS";
-
- container config {
- description
- "Configuration parameters relating to MPLS extensions for
- OSPFv2";
- uses ospfv2-area-mpls-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to MPLS extensions
- for OSPFv2";
- uses ospfv2-area-mpls-config;
- }
- }
-
- uses ospfv2-lsdb-structure;
- uses ospfv2-area-interfaces-structure;
-
- container virtual-links {
- description
- "Configuration and state parameters relating to virtual
- links from the source area to a remote router";
-
- list virtual-link {
- key "remote-router-id";
-
- description
- "Configuration and state parameters relating to a
- virtual link";
-
- leaf remote-router-id {
- type leafref {
- path "../config/remote-router-id";
- }
- description
- "Reference to the remote router ID";
- }
-
- container config {
- description
- "Configuration parameters relating to the OSPF virtual link";
- uses ospfv2-area-virtual-link-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the OSPF virtual link";
- uses ospfv2-area-virtual-link-config;
- uses ospfv2-area-interface-neighbor-state;
- }
- }
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-ospfv2-common.yang b/src/plugins/yang/openconfig/openconfig-ospfv2-common.yang
deleted file mode 100644
index 12df35e..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospfv2-common.yang
+++ /dev/null
@@ -1,91 +0,0 @@
-submodule openconfig-ospfv2-common {
-
- belongs-to openconfig-ospfv2 {
- prefix "oc-ospfv2";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule provides OSPFv2 configuration and operational
- state parameters that are shared across multiple contexts";
-
- oc-ext:openconfig-version "0.1.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- revision "2017-02-28"{
- description
- "Initial public release of OSPFv2";
- reference "0.1.0";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping ospfv2-common-mpls-igp-ldp-sync-config {
- description
- "Configuration parameters used for OSPFv2 MPLS/IGP
- synchronization";
-
- leaf enabled {
- type boolean;
- description
- "When this leaf is set to true, do not utilise this link for
- forwarding via the IGP until such time as LDP adjacencies to
- the neighbor(s) over the link are established.";
- }
-
- leaf post-session-up-delay {
- type uint32;
- units milliseconds;
- description
- "This leaf specifies a delay, expressed in units of milliseconds,
- between the LDP session to the IGP neighbor being established, and
- it being considered synchronized by the IGP.";
- }
- }
-
- grouping ospfv2-common-timers {
- description
- "Common definition of the type of timers that the OSPFv2 implementation
- uses";
-
- leaf timer-type {
- type enumeration {
- enum LINEAR_BACKOFF {
- description
- "The backoff used by the OSPFv2 implementation is linear, such that
- a common delay is added following each event.";
- }
- enum EXPONENTIAL_BACKOFF {
- description
- "The backoff used by the OSPFv2 implementation is exponential, such
- that the delay added following each event increases.";
- }
- }
- description
- "The timer mode that is utilised by the implementation.";
- }
- }
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-ospfv2-global.yang b/src/plugins/yang/openconfig/openconfig-ospfv2-global.yang
deleted file mode 100644
index 6e82c9a..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospfv2-global.yang
+++ /dev/null
@@ -1,509 +0,0 @@
-submodule openconfig-ospfv2-global {
-
- belongs-to openconfig-ospfv2 {
- prefix "oc-ospfv2";
- }
-
- import ietf-yang-types { prefix "yang"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-routing-policy { prefix "oc-rpol"; }
- import openconfig-ospf-types { prefix "oc-ospft"; }
-
- // Include common submodule
- include openconfig-ospfv2-common;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule provides OSPFv2 configuration and operational
- state parameters that are global to a particular OSPF instance";
-
- oc-ext:openconfig-version "0.1.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- revision "2017-02-28"{
- description
- "Initial public release of OSPFv2";
- reference "0.1.0";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping ospfv2-global-config {
- description
- "Global configuration for OSPFv2";
-
- leaf router-id {
- type yang:dotted-quad;
- description
- "A 32-bit number represented as a dotted quad assigned to
- each router running the OSPFv2 protocol. This number should
- be unique within the autonomous system";
- reference "rfc2828";
- }
-
- leaf summary-route-cost-mode {
- type enumeration {
- enum RFC1583_COMPATIBLE {
- description
- "Specify that summary routes should assume the cost of
- the lowest-cost more-specific route as per the behaviour
- specified in RFC1583";
- }
- enum RFC2328_COMPATIBLE {
- description
- "Specify that summary routes should assume the cost of the
- highest-cost more-specific route as per the revised
- behaviour specified in RFC2328";
- }
- }
- default "RFC2328_COMPATIBLE";
- description
- "Specify how costs for the summary routes should be specified
- as per the behaviour in the original OSPF specification
- RFC1583, or alternatively whether the revised behaviour
- described in RFC2328 should be utilised";
- }
-
- leaf igp-shortcuts {
- type boolean;
- description
- "When this leaf is set to true, OSPFv2 will route traffic to
- a remote system via any LSP to the system that is marked as
- shortcut eligible.";
- }
-
- leaf log-adjacency-changes {
- type boolean;
- description
- "When this leaf is set to true, a log message will be
- generated when the state of an OSPFv2 neighbour changes.";
- }
-
- leaf hide-transit-only-networks {
- type boolean;
- description
- "When this leaf is set to true, do not advertise prefixes
- into OSPFv2 that correspond to transit interfaces, as per
- the behaviour discussed in RFC6860.";
- reference
- "RFC6860 - Hiding Transit-Only Networks in OSPF";
- }
- }
-
- grouping ospfv2-global-spf-timers-config {
- description
- "Configuration parameters relating to global SPF timer
- parameters for OSPFv2";
-
- leaf initial-delay {
- // rjs TODO: IS-IS model has this as decimal64 - should it be
- // that or uint32 msec?
- type uint32;
- units msec;
- description
- "The value of this leaf specifies the time between a change
- in topology being detected and the first run of the SPF
- algorithm.";
- }
-
- leaf maximum-delay {
- // rjs TODO: same question as above
- type uint32;
- units msec;
- description
- "The value of this leaf specifies the maximum delay between
- a topology change being detected and the SPF algorithm
- running. This value is used for implementations that support
- increasing the wait time between SPF runs.";
- }
-
- // rjs TODO: some questions here around what we should specify:
- // JUNOS has rapid-runs and holddown
- // Cisco has maximum time between runs, and then a doubling of
- // the wait interval up to that maximum.
- // ALU has first-wait, second-wait, max-wait
- }
-
- grouping ospfv2-global-lsa-generation-timers-config {
- description
- "Configuration parameters relating to global LSA generation
- parameters for OSPFv2";
-
- leaf initial-delay {
- type uint32;
- units msec;
- description
- "The value of this leaf specifies the time between the first
- time an LSA is generated and advertised and the subsequent
- generation of that LSA.";
- }
-
- leaf maximum-delay {
- type uint32;
- units msec;
- description
- "The value of this leaf specifies the maximum time between the
- generation of an LSA and the subsequent re-generation of that
- LSA. This value is used in implementations that support
- increasing delay between generation of an LSA";
- }
- }
-
- grouping ospfv2-global-spf-timers-state {
- description
- "Operational state parameters relating to OSPFv2 global
- timers";
-
- uses ospfv2-common-timers;
- }
-
- grouping ospfv2-global-lsa-generation-timers-state {
- description
- "Operational state parameters relating to OSPFv2 global
- timers";
-
- uses ospfv2-common-timers;
- }
-
- grouping ospfv2-global-graceful-restart-config {
- description
- "Configuration parameters relating to graceful restart for
- OSPFv2";
-
- leaf enabled {
- type boolean;
- description
- "When the value of this leaf is set to true, graceful restart
- is enabled on the local system. In this case, the system will
- use Grace-LSAs to signal that it is restarting to its
- neighbors.";
- }
-
- leaf helper-only {
- type boolean;
- description
- "Operate graceful-restart only in helper mode. When this leaf
- is set to true, the local system does not use Grace-LSAs to
- indicate that it is restarting, but will accept Grace-LSAs
- from remote systems, and suppress withdrawl of adjacencies
- of the system for the grace period specified";
- }
- }
-
- grouping ospfv2-global-mpls-config {
- description
- "Configuration parameters for OSPFv2 options which
- relate to MPLS";
-
- leaf traffic-engineering-extensions {
- type boolean;
- description
- "When this leaf is set to true, use traffic engineering
- extensions for OSPF to advertise TE parameters via type 10
- Opaque LSAs";
- }
- }
-
- grouping ospfv2-global-inter-areapp-config {
- description
- "Configuration parameters for OSPFv2 policies which propagate
- prefixes between areas";
-
- leaf src-area {
- type leafref {
- // we are at ospf/global/inter-area-propagation-policies/...
- // inter-area-propagation-policy/config/src-area
- path "../../../../../areas/area/identifier";
- }
- description
- "The area from which prefixes are to be exported.";
- }
-
- leaf dst-area {
- type leafref {
- // we are at ospf/global/inter-area-propagation-policies/...
- // inter-area-propagation-policy/config/src-area
- path "../../../../../areas/area/identifier";
- }
- description
- "The destination area to which prefixes are to be imported";
- }
-
- uses oc-rpol:apply-policy-import-config;
- }
-
- grouping ospfv2-global-max-metric-config {
- description
- "Configuration paramters relating to setting the OSPFv2
- maximum metric.";
-
- leaf set {
- type boolean;
- description
- "When this leaf is set to true, all non-stub interfaces of
- the local system are advertised with the maximum metric,
- such that the router does not act as a transit system,
- (similarly to the IS-IS overload functionality).";
- reference
- "RFC3137 - OSPF Stub Router Advertisement";
- }
-
- leaf timeout {
- type uint64;
- units "seconds";
- description
- "The delay, in seconds, after which the advertisement of
- entities with the maximum metric should be cleared, and
- the system reverts to the default, or configured, metrics.";
- }
-
- leaf-list include {
- type identityref {
- base "oc-ospft:MAX_METRIC_INCLUDE";
- }
- description
- "By default, the maximum metric is advertised for all
- non-stub interfaces of a device. When identities are
- specified within this leaf-list, additional entities
- are also advertised with the maximum metric according
- to the values within the list.";
- }
-
- leaf-list trigger {
- type identityref {
- base "oc-ospft:MAX_METRIC_TRIGGER";
- }
- description
- "By default, the maximum metric is only advertised
- when the max-metric/set leaf is specified as true.
- In the case that identities are specified within this
- list, they provide additional triggers (e.g., system
- boot) that may cause the max-metric to be set. In this
- case, the system should still honour the timeout specified
- by the max-metric/timeout leaf, and clear the max-metric
- advertisements after the expiration of this timer.";
- }
- }
-
- grouping ospfv2-global-structural {
- description
- "Top level structural grouping for OSPFv2 global parameters";
-
- container global {
- description
- "Configuration and operational state parameters for settings
- that are global to the OSPFv2 instance";
-
- container config {
- description
- "Global configuration parameters for OSPFv2";
- uses ospfv2-global-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for OSPFv2";
- uses ospfv2-global-config;
- }
-
- container timers {
- description
- "Configuration and operational state parameters for OSPFv2
- timers";
-
- container spf {
- description
- "Configuration and operational state parameters relating
- to timers governing the operation of SPF runs";
-
- container config {
- description
- "Configuration parameters relating to global OSPFv2
- SPF timers";
- uses ospfv2-global-spf-timers-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the global
- OSPFv2 SPF timers";
- uses ospfv2-global-spf-timers-config;
- uses ospfv2-global-spf-timers-state;
- }
- }
-
- container max-metric {
- description
- "Configuration and operational state parameters relating
- to setting the OSPFv2 maximum metric.";
-
- container config {
- description
- "Configuration parameters relating to setting the OSPFv2
- maximum metric for a set of advertised entities.";
- uses ospfv2-global-max-metric-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to setting the
- OSPFv2 maximum metric for a set of advertised entities.";
- uses ospfv2-global-max-metric-config;
- }
- }
-
- container lsa-generation {
- description
- "Configuration and operational state parameters relating
- to timers governing the generation of LSAs by the local
- system";
-
- container config {
- description
- "Configuration parameters relating to the generation of
- LSAs by the local system";
- uses ospfv2-global-lsa-generation-timers-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the generation
- of LSAs by the local system";
- uses ospfv2-global-lsa-generation-timers-config;
- uses ospfv2-global-lsa-generation-timers-state;
- }
- }
- }
-
- container graceful-restart {
- description
- "Configuration and operational state parameters for OSPFv2
- graceful restart";
-
- container config {
- description
- "Configuration parameters relating to OSPFv2 graceful
- restart";
- uses ospfv2-global-graceful-restart-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to OSPFv2 graceful
- restart";
- uses ospfv2-global-graceful-restart-config;
- }
- }
-
- container mpls {
- description
- "OSPFv2 parameters relating to MPLS";
-
- container config {
- description
- "Configuration parameters relating to MPLS for OSPFv2";
- uses ospfv2-global-mpls-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to MPLS for
- OSPFv2";
- uses ospfv2-global-mpls-config;
- }
-
- container igp-ldp-sync {
- description
- "OSPFv2 parameters relating to LDP/IGP synchronization";
-
- container config {
- description
- "Configuration parameters relating to LDP/IG
- synchronization.";
- uses ospfv2-common-mpls-igp-ldp-sync-config;
- }
-
- container state {
- config false;
- description
- "Operational state variables relating to LDP/IGP
- synchronization";
- uses ospfv2-common-mpls-igp-ldp-sync-config;
- }
- }
- }
-
- container inter-area-propagation-policies {
- description
- "Policies defining how inter-area propagation should be performed
- by the OSPF instance";
-
- list inter-area-propagation-policy {
- key "src-area dst-area";
- description
- "A list of connections between pairs of areas - routes are
- propagated from the source (src) area to the destination (dst)
- area according to the policy specified";
-
- leaf src-area {
- type leafref {
- path "../config/src-area";
- }
- description
- "Reference to the source area";
- }
-
- leaf dst-area {
- type leafref {
- path "../config/dst-area";
- }
- description
- "Reference to the destination area";
- }
-
- container config {
- description
- "Configuration parameters relating to the inter-area
- propagation policy";
- uses ospfv2-global-inter-areapp-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the inter-area
- propagation policy";
- uses ospfv2-global-inter-areapp-config;
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang b/src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang
deleted file mode 100644
index b345724..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospfv2-lsdb.yang
+++ /dev/null
@@ -1,2355 +0,0 @@
-submodule openconfig-ospfv2-lsdb {
-
- belongs-to openconfig-ospfv2 {
- prefix "oc-ospfv2";
- }
-
- // import some basic types
- import ietf-yang-types { prefix "yang"; }
- import ietf-inet-types { prefix "inet"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-ospf-types { prefix "oc-ospf-types"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "An OpenConfig model for the Open Shortest Path First (OSPF)
- version 2 link-state database (LSDB)";
-
- oc-ext:openconfig-version "0.1.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- revision "2017-02-28"{
- description
- "Initial public release of OSPFv2";
- reference "0.1.0";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping ospfv2-lsdb-common-prefix-properties {
- description
- "Common properties used in the LSDB that relate to IPv4 prefixes";
-
- leaf prefix-length {
- type uint8 {
- range "0..32";
- }
- description
- "The length of the IPv4 prefix contained in the Extended Prefix LSA";
- }
-
- leaf address-family {
- // TODO: should this be an identity?
- type enumeration {
- enum IPV4_UNICAST {
- value 0;
- description
- "The prefix contained within the Extended Prefix LSA is an IPv4
- unicast prefix";
- }
- }
- description
- "The address family of the prefix contained in the Extended Prefix
- LSA";
- }
- }
-
- grouping ospfv2-lsdb-common-link-specification {
- description
- "Generic attributes used to identify links within OSPFv2";
-
- leaf link-id {
- type yang:dotted-quad;
- description
- "The identifier for the link specified. The value of the link
- identifier is dependent upon the type of the LSA. The value is
- specified to be, per sub-type:
- 1) Neighbouring router's router ID.
- 2) IP address of DR.
- 3) IP network address.
- 4) Neighbouring router router's ID.";
- }
-
- leaf link-data {
- type union {
- type yang:dotted-quad;
- type uint32;
- }
- description
- "The data associated with the link type. The value is
- dependent upon the subtype of the LSA. When the connection is
- to a stub network it represents the mask; for p2p connections
- that are unnumbered it represents the ifIndex value of the
- router's interface; for all other connections it represents
- the local system's IP address";
- }
-
- }
-
- grouping ospfv2-lsdb-common-unknown-tlv {
- description
- "A generic specification of a TLV to be used when the
- value cannot be decoded by the local system";
-
- leaf type {
- type uint16;
- description
- "The type value of the unknown TLV";
- }
-
- leaf length {
- type uint16;
- description
- "The length value of the unknown TLV";
- }
-
- leaf value {
- type binary;
- description
- "The value portion of the unknwon TLV";
- }
- }
-
- grouping ospfv2-lsdb-common-unknown-tlv-structure {
- description
- "A generic specification of an unknown TLV";
-
- container unknown-tlv {
- description
- "An unknown TLV within the context. Unknown TLVs are
- defined to be the set of TLVs that are not modelled
- within the OpenConfig model, or are unknown to the
- local system such that it cannot decode their value.";
-
- container state {
- description
- "Contents of an unknown TLV within the LSA";
- uses ospfv2-lsdb-common-unknown-tlv;
- }
- }
- }
-
- grouping ospfv2-lsdb-common-unknown-subtlv-structure {
- description
- "A generic specification of an unknown TLV";
-
- container unknown-subtlv {
- description
- "An unknown SubTLV within the context. Unknown Sub-TLV
- are defined to be the set of SubTLVs that are not modelled
- by the OpenConfig schema, or are unknown to the local system
- such that it cannot decode their value.";
-
- container state {
- description
- "Contents of an unknown TLV within the LSA";
- uses ospfv2-lsdb-common-unknown-tlv;
- }
- }
- }
-
- grouping ospfv2-lsdb-common-tos-metric {
- description
- "Common LSDB LSA parameters for type of service and metric";
-
- leaf tos {
- type uint8;
- description
- "OSPF encoding of the type of service referred to by this
- LSA. Encoding for OSPF TOS are described in RFC2328.";
- }
-
- leaf metric {
- type oc-ospf-types:ospf-metric;
- description
- "The metric value to be used for the TOS specified. This value
- represents the cost of use of the link for the specific type
- of service.";
- }
- }
-
- grouping ospfv2-lsdb-common-sr-sid-spec {
- description
- "Re-usable specification of a segment routing SID";
-
- leaf sid-type {
- type oc-ospf-types:sr-sid-type;
- description
- "The type of the value contained within the sub-TLV";
- }
-
- leaf sid-value {
- type uint32;
- description
- "The value of the binding included within the sub-TLV. The type of
- this binding is indicated by the type leaf.";
- }
- }
-
- grouping ospfv2-lsdb-area-state {
- description
- "Per-area operational state parameters for an OSPFv2 area";
-
- leaf identifier {
- type oc-ospf-types:ospf-area-identifier;
- description
- "An identifier for the area, expressed as a dotted quad or
- an unsigned 32-bit integer";
- }
- }
-
- grouping ospfv2-lsdb-area-lsa-type-state {
- description
- "Per-LSA type operational state parameters for an OSPFv2 area";
-
- leaf type {
- type identityref {
- base "oc-ospf-types:OSPF_LSA_TYPE";
- }
- description
- "The type of LSA being described. The type of the LSA is
- expressed as a canonical name.";
- }
- }
-
- grouping ospfv2-lsdb-area-lsa-state {
- description
- "Generic parameters of an OSPFv2 LSA";
-
- leaf link-state-id {
- type yang:dotted-quad;
- description
- "The Link State ID for the specified LSA type. The exact
- defined value of the Link State ID is dependent on the LSA
- type.";
- }
-
- leaf advertising-router {
- type yang:dotted-quad;
- description
- "The router ID of the router that originated the LSA";
- }
-
- leaf sequence-number {
- type int32;
- description
- "A signed 32-bit integer used to detect old and duplicate
- LSAs. The greater the sequence number the more recent the
- LSA.";
- }
-
- leaf checksum {
- type uint16;
- description
- "The checksum of the complete contents of the LSA excluding
- the age field.";
- }
-
- leaf age {
- type uint16;
- units seconds;
- description
- "The time since the LSA's generation in seconds";
- }
- }
-
- grouping ospfv2-lsdb-router-lsa-structure {
- description
- "Structural grouping for Router LSA contents within the LSDB";
-
- container router-lsa {
- description
- "Contents of the router LSA";
-
- container state {
- description
- "State parameters of the router LSA";
- uses ospfv2-lsdb-router-lsa-state;
- }
-
- uses ospfv2-lsdb-generic-lsa-tos-metric-structure;
- }
- }
-
- grouping ospfv2-lsdb-generic-lsa-tos-metric-structure {
- description
- "Grouping including a generic TOS/metric structure for an
- LSA";
-
- container types-of-service {
- description
- "Breakdown of LSA contents specifying multiple
- TOS values";
-
- list type-of-service {
- key "tos";
- description
- "Per-type of service parameters for the LSA";
-
- leaf tos {
- type leafref {
- path "../state/tos";
- }
- description
- "Reference to the type of service identifier which is
- specified in the LSA";
- }
-
- container state {
- description
- "Per-TOS parameters for the LSA";
-
- uses ospfv2-lsdb-generic-lsa-tos-metric-state;
- }
- }
- }
- }
-
- grouping ospfv2-lsdb-network-lsa-structure {
- description
- "Structural grouping for Network LSA contents within the LSDB";
-
- container network-lsa {
- description
- "Contents of the network LSA";
-
- container state {
- description
- "State parameters of the network LSA";
- uses ospfv2-lsdb-network-lsa-state;
- }
- }
- }
-
- grouping ospfv2-lsdb-summary-lsa-structure {
- description
- "Structural grouping for the Summary LSA contents within the
- LSDB";
-
- container summary-lsa {
- description
- "Contents of the summary LSA";
-
- container state {
- description
- "State parameters of the summary LSA";
- uses ospfv2-lsdb-summary-lsa-state;
- }
-
- uses ospfv2-lsdb-generic-lsa-tos-metric-structure;
- }
- }
-
- grouping ospfv2-lsdb-asexternal-lsa-structure {
- description
- "Structural grouping for the AS External LSA contents within
- the LSDB";
-
- container as-external-lsa {
- description
- "Contents of the AS External LSA";
-
- container state {
- description
- "State parameters for the AS external LSA";
- uses ospfv2-lsdb-asexternal-lsa-state;
- }
-
- container types-of-service {
- description
- "Breakdown of External LSA contents specifying multiple
- TOS values";
-
- list type-of-service {
- key "tos";
- description
- "Per-type of service parameters for the AS External LSA";
-
- leaf tos {
- type leafref {
- path "../state/tos";
- }
- description
- "Reference to the type of service identifier which is
- specified in the AS External LSA";
- }
-
- container state {
- description
- "Per-TOS parameters for the LSA";
-
- uses ospfv2-lsdb-asexternal-tos-state;
- }
- }
- }
-
- }
- }
-
- grouping ospfv2-lsdb-nssa-external-lsa-structure {
- description
- "Structural grouping for the NSSA External LSA contents within
- the LSDB";
-
- container nssa-external-lsa {
- description
- "Contents of the NSSA External LSA";
-
- container state {
- description
- "State parameters for the AS external LSA";
- // Type 7 LSAs are are a super-set of Type 5 LSAs so we simply
- // include the Type 5
- uses ospfv2-lsdb-asexternal-lsa-state;
- uses ospfv2-lsdb-nssa-external-lsa-state;
- }
-
- container types-of-service {
- description
- "Breakdown of the NSSA External LSA contents specifying multiple
- TOS values";
-
- list type-of-service {
- key "tos";
- description
- "Per-type of service parameters for the NSSA external LSA";
-
- leaf tos {
- type leafref {
- path "../state/tos";
- }
- description
- "Reference to the type of services identifier which is specified
- in the NSSA External LSA";
- }
-
- container state {
- description
- "Per-TOS parameters for the LSA";
- uses ospfv2-lsdb-asexternal-tos-state;
- }
- }
- }
- }
- }
-
- grouping ospfv2-lsdb-opaque-lsa-structure {
- description
- "Structural grouping for Opaque LSA contents within the LSDB";
-
- container opaque-lsa {
- description
- "Contents of the opaque LSA";
-
- container state {
- description
- "State parameters for the opaque LSA";
- uses ospfv2-lsdb-opaque-lsa-state;
- }
-
- container traffic-engineering {
- when "../state/type = 'TRAFFIC_ENGINEERING'" {
- description
- "Include the traffic-engineering information when
- the Opaque LSA being described is a Traffic Engineering
- LSA";
- }
- description
- "Contents of the Traffic Engineering Opaque LSA";
-
- container tlvs {
- description
- "The TLVs contained in the TE Opaque LSA";
- list tlv {
- // this is an unkeyed list
- description
- "The Type-Length-Value tuples included in the TE LSA";
-
- container state {
- description
- "The contents of the TLV tuple within the TE LSA";
- uses ospfv2-lsdb-opaque-lsa-te-tlv-state;
- }
-
- uses ospfv2-lsdb-common-unknown-tlv-structure;
-
- container router-address {
- when "../state/type = 'TE_ROUTER_ADDRESS'" {
- description
- "Include the router address container only when the type
- of the TLV is Router Address";
- }
-
- description
- "Parameters included in the Router Address TLV";
-
- container state {
- description
- "State parameters of the router address TLV";
- uses ospfv2-lsdb-opaque-te-router-address-state;
- }
- }
-
- container link {
- when "../state/type = 'TE_ROUTER_LINK'" {
- description
- "Include the link container only when the type of the
- TLV describes a traffic engineering link";
- }
-
- description
- "Parameters included in the Link TLV";
- container sub-tlvs {
- description
- "Sub-TLVs included in the Link TLV";
-
- list sub-tlv {
- // unkeyed list
- description
- "The Sub-TLVs included within the Traffic Engineering
- LSA's sub-TLV";
-
- container state {
- description
- "State parameters of the Link Sub-TLV";
-
- uses ospfv2-lsdb-opaque-te-link-state;
- }
-
- uses ospfv2-lsdb-common-unknown-subtlv-structure;
-
- container unreserved-bandwidths {
- description
- "The unreserved link bandwidths for the Traffic
- Engineering LSA - utilised when the sub-TLV type
- indicates that the sub-TLV describes unreserved
- bandwidth";
-
- list unreserved-bandwidth {
- key "priority";
-
- description
- "The unreserved bandwidth at each priority level";
-
- leaf priority {
- type leafref {
- path "../state/priority";
- }
- description
- "A reference to the priority level being described";
- }
-
- container state {
- description
- "State parameters relating to the unreserved
- bandwidth of the link being described";
- uses ospfv2-lsdb-opaque-te-link-unreserved-bw-state;
- }
- }
- }
-
- container administrative-groups {
- description
- "The administrative groups that are set for the
- Traffic Engineering LSA - utilised when the sub-TLV type
- indicates that the sub-TLV describes administrative
- groups";
-
- list admin-group {
- key "bit-index";
-
- description
- "The administrative group described within the
- sub-TLV";
-
- leaf bit-index {
- type leafref {
- path "../state/bit-index";
- }
- description
- "A reference to the bit index being described";
- }
-
- container state {
- description
- "State parameters relating to the administrative
- groups being described for the link";
- uses ospfv2-lsdb-opaque-te-link-admin-group-state;
- }
- }
- }
- }
- }
- }
-
- container node-attribute {
- when "../state/type = 'TE_NODE_ATTRIBUTE'" {
- description
- "Include the node-attribute container only when the type of
- the TLV describes a node attribute";
- }
-
- description
- "Parameters included in the Node Attribute TLV";
-
- container sub-tlvs {
- description
- "Sub-TLVs of the Node Attribute TLV of the Traffic
- Engineering LSA";
-
- list sub-tlv {
- // unkeyed list
- description
- "List of the Sub-TLVs contained within the Node Attribute
- TLV";
-
- container state {
- description
- "State parameters of the Node Attribute TLV sub-TLV";
- uses ospfv2-lsdb-opaque-te-node-attribute-state;
- }
-
- uses ospfv2-lsdb-common-unknown-subtlv-structure;
- }
- }
- }
-
- // A set of TLVs are omitted here - based on operational
- // requirements, these are:
- // * link-local
- // * ipv6-address (OSPFv3 only)
- // * optical-node-property
- }
- }
- } // traffic-engineering
-
- container grace-lsa {
- when "../state/type = 'GRACE_LSA'" {
- description
- "Include the grace-lsa container when the opaque LSA is specified
- to be of that type.";
- }
-
- description
- "The Grace LSA is utilised when a remote system is undergoing
- graceful restart";
-
- container tlvs {
- description
- "TLVs of the Grace LSA";
-
- list tlv {
- description
- "TLV entry in the Grace LSA, advertised by a system undergoing
- graceful restart";
-
- // unkeyed list
- container state {
- description
- "Per-TLV state parameters of the Grace LSA";
- uses ospfv2-lsdb-opaque-grace-state;
- }
- uses ospfv2-lsdb-common-unknown-tlv-structure;
- }
- }
- } // grace LSA
-
- container router-information {
- when "../state/type = 'ROUTER_INFORMATION_LSA'" {
- description
- "Include the router-information container when the opaque LSA
- type is specified to be an RI LSA";
- }
-
- description
- "The router information LSA is utilised to advertise capabilities
- of a system to other systems who receive the LSA";
-
- container tlvs {
- description
- "The TLVs included within the Router Information LSA.";
-
- list tlv {
- description
- "TLV entry in the Router Information LSA";
-
- // unkeyed list
- container state {
- description
- "Per-TLV state parameters of the RI LSA";
- uses ospfv2-lsdb-opaque-ri-state;
- }
-
- uses ospfv2-lsdb-common-unknown-tlv-structure;
-
- container informational-capabilities {
- when "../state/type = 'RI_INFORMATIONAL_CAPABILITIES'" {
- description
- "Include the informational capabilities specification when
- the TLV of the RI LSA is specified to be of this type";
- }
-
- description
- "Information related to the capabilities of the advertising
- router within the scope that the opaque RI LSA is being
- advertised";
-
- container state {
- description
- "State parameters of the informational capabilitis of the
- RI LSA";
- uses ospfv2-lsdb-opaque-ri-informational-state;
- }
- }
-
- container node-administrative-tags {
- when "../state/type = 'RI_NODE_ADMIN_TAG'" {
- description
- "Include the node administrative tags specification when
- the TLV of the RI LSA is specified to be of this type";
- }
-
- description
- "Per-node administrative tags associated with the local system
- specified by the operator";
-
- container state {
- description
- "State parameters of the node administrative tags advertised
- in the RI LSA";
- uses ospfv2-lsdb-opaque-ri-admintag-state;
- }
- }
-
- container segment-routing-algorithm {
- when "../state/type = 'RI_SR_ALGORITHM'" {
- description
- "Include the segment routing algorithm specific parameters when
- the TLV of the RI LSA is specified to be of this type";
- }
-
- description
- "The algorithms supported for Segment Routing by the local system";
-
- container state {
- description
- "State parameters of the Segment Routing algorithm advertised in
- the RI LSA";
- uses ospfv2-lsdb-opaque-ri-sralgo-state;
- }
- }
-
- container segment-routing-sid-label-range {
- when "../state/type = 'RI_SR_SID_LABEL_RANGE'" {
- description
- "Include the segment routing SID/Label range TLV specific state when
- the TLV of the RI LSA is specified to be of this type";
- }
-
- description
- "The Segment Identifier (SID) or label ranges that are supported by
- the local system for Segment Routing";
-
- container tlvs {
- description
- "Sub-TLVs of the SID/Label range TLV of the RI LSA";
-
- list tlv {
- // unkeyed list
- description
- "Sub-TLVs of the SID/Label range TLV";
-
- uses ospfv2-lsdb-common-unknown-tlv-structure;
-
- container state {
- description
- "State parameters of the sub-TLVs of the SR/Label range TLV";
- uses ospfv2-lsdb-opaque-ri-srrange-tlv-state;
- }
-
- container sid-label {
- description
- "Sub-TLV used to advertise the SID or label associated with the
- subset of the SRGB being advertised";
-
- container state {
- description
- "State parameters of the SID/Label sub-TLV of the SR/Label
- range TLV of the RI LSA";
- uses ospfv2-lsdb-opaque-ri-srrange-sid-label-tlv-state;
- }
- }
- }
- }
- }
- }
- }
- } // router-information
-
- container extended-prefix {
- when "../state/type = 'OSPFV2_EXTENDED_PREFIX'" {
- description
- "Include the extended-prefix container when the opaque LSA
- type is specified to be an extended prefix LSA";
- }
-
- description
- "An OSPFv2 Extended Prefix Opaque LSA, used to encapsulate
- TLV attributes associated with a prefix advertised in OSPF.";
-
- reference "RFC7684 - OSPFv2 Prefix/Link Attribute Advertisement";
-
- container state {
- description
- "State parameters of the Extended Prefix LSA";
- uses ospfv2-lsdb-extended-prefix-state;
- }
-
- container tlvs {
- description
- "TLVs contained within the Extended Prefix LSA";
-
- list tlv {
- // unkeyed list
- description
- "A TLV contained within the extended prefix LSA";
-
- container state {
- description
- "State parameters relating to the sub-TLV of the extended
- prefix LSA";
- uses ospfv2-lsdb-extended-prefix-tlv-state;
- }
-
- container extended-prefix-range {
- when "../state/type = 'EXTENDED_PREFIX_RANGE'" {
- description
- "Include the prefix range sub-TLV when the type of the
- sub-TLV is specified as such";
- }
-
- description
- "State parameters relating to the extended prefix range
- sub-TLV of the extended prefix LSA";
-
- container state {
- description
- "State parameters relating to the Extended Prefix Range
- sub-TLV of the Extended Prefix LSA";
- uses ospfv2-lsdb-extended-prefix-range-state;
- }
- }
-
- container prefix-sid {
- when "../state/type = 'PREFIX_SID'" {
- description
- "Include parameters relating to the Prefix SID when the type
- of the sub-TLV is indicated as such";
- }
-
- description
- "State parameters relating to the Prefix SID sub-TLV of the
- extended prefix LSA";
-
- container state {
- description
- "State parameters relating to the Prefix SID sub-TLV of the
- extended prefix LSA";
- uses ospfv2-lsdb-extended-prefix-prefix-sid-state;
- }
- } // prefix-sid
-
- container sid-label-binding {
- when "../state/type = 'SID_LABEL_BINDING'" {
- description
- "Include parameters relating to the SID/Label binding sub-TLV
- only when the type is indicated as such";
- }
-
- description
- "State parameters relating to the SID/Label binding sub-TLV
- of the extended prefix LSA";
-
- container state {
- description
- "State parameters relating to the SID/Label binding sub-TLV
- of the extended prefix LSA";
- uses ospfv2-lsdb-extended-prefix-sid-label-binding-state;
- }
-
- container tlvs {
- description
- "TLVs contained within the SID/Label Binding sub-TLV of the
- SID/Label Binding TLV";
-
- list tlv {
- description
- "A TLV contained within the SID/Label Binding sub-TLV";
-
- container state {
- description
- "State parameters relating to the SID/Label Binding
- sub-TLV";
- uses ospfv2-lsdb-extended-prefix-sid-label-binding-tlv-state;
- }
-
- container sid-label-binding {
- when "../state/type = 'SID_LABEL_BINDING'" {
- description
- "Include the SID/Label Binding sub-TLV parameters only
- when the type is indicated as such";
- }
-
- description
- "Parameters for the SID/Label Binding sub-TLV of the
- SID/Label binding TLV";
-
- container state {
- description
- "State parameteres relating to the SID/Label Binding
- sub-TLV";
- uses ospfv2-lsdb-extprefix-sid-label-binding-state;
- }
- } // sid-label-binding
-
- container ero-metric {
- when "../state/type = 'ERO_METRIC'" {
- description
- "Include the ERO Metric sub-TLV parameters only when
- the type is indicated as such";
- }
-
- description
- "Parameters for the ERO Metric Sub-TLV of the SID/Label
- binding TLV";
-
- container state {
- description
- "State parameters relating to the ERO Metric Sub-TLV of
- the SID/Label binding TLV";
- uses ospfv2-lsdb-extprefix-sid-label-ero-metric-state;
- }
- } // ero-metric
-
- container ero-path {
- when "../state/type = 'ERO_PATH'" {
- description
- "Include the ERO Path sub-TLV parameters only when the
- type is indicated as such";
- }
-
- description
- "Parameters for the ERO Path Sub-TLV of the SID/Label
- binding TLV";
-
- container segments {
- description
- "Segments of the path described within the SID/Label
- Binding sub-TLV";
-
- list segment {
- description
- "A segment of the path described within the sub-TLV";
-
- container state {
- description
- "State parameters relating to the path segment
- contained within the sub-TLV";
- uses ospfv2-lsdb-extprefix-sid-lbl-ero-path-seg-state;
- }
-
- container ipv4-segment {
- when "../state/type = 'IPV4_SEGMENT'" {
- description
- "Include the IPv4 segment only when the type is
- indicated as such";
- }
-
- description
- "Details of the IPv4 segment interface of the ERO";
-
- container state {
- description
- "State parameters of the IPv4 segment of the ERO";
- uses ospfv2-lsdb-extprefix-sid-lbl-ero-ipv4-state;
- }
- } // ipv4-segment
-
- container unnumbered-hop {
- when "../state/type = 'UNNUMBERED_INTERFACE_SEGMENT'" {
- description
- "Include the unnumbered segment only when the
- type is indicated as such";
- }
-
- description
- "Details of the unnumbered interface segment of the
- ERO";
-
- container state {
- description
- "State parameters of the unnumbered interface
- segment of the ERO";
- uses ospfv2-lsdb-extprefix-sid-lbl-ero-unnum-state;
- }
- } // unnumbered-hop
- } // tlv
- } // tlvs
- }
- }
- }
- } // sid-label-binding
-
- uses ospfv2-lsdb-common-unknown-tlv-structure;
- }
- }
- } // extended-prefix
-
- container extended-link {
- description
- "The OSPFv2 Extended Link Opaque LSA, used to encapsulate TLV
- attributes associated with a link advertised in OSPF.";
-
- reference "RFC7684 - OSPFv2 Prefix/Link Attribute Advertisement";
-
- container state {
- description
- "State parameters of the Extended Link LSA";
- uses ospfv2-lsdb-extended-link-state;
- }
-
- container tlvs {
- description
- "TLVs contained within the Extended Link LSA";
-
- list tlv {
- description
- "List of TLVs within the Extended Link LSA";
-
- container state {
- description
- "State parameters relating to the sub-TLV of the extended link
- LSA";
- uses ospfv2-lsdb-extended-link-tlv-state;
- }
-
- uses ospfv2-lsdb-common-unknown-tlv-structure;
-
- container adjacency-sid {
- when "../state/type = 'ADJACENCY_SID'" {
- description
- "Include the Adjacency SID parameters only when the type of
- the sub-TLV is indicated as such";
- }
-
- description
- "Parameters relating to an Adjacency SID sub-TLV of the
- extended link LSA";
-
- container state {
- description
- "State parameters relating to an Adjacency SID";
-
- uses ospfv2-lsdb-extended-link-adj-sid-state;
- }
- }
- }
- }
-
- } // extended-link
-
- uses ospfv2-lsdb-common-unknown-tlv-structure;
- }
- }
-
- grouping ospfv2-lsdb-generic-lsa-tos-metric-state {
- description
- "Per-TOS state parameters for the Router LSA";
-
- uses ospfv2-lsdb-common-tos-metric;
- }
-
- grouping ospfv2-lsdb-router-lsa-state {
- description
- "Parameters of the router LSA";
-
- leaf type {
- type identityref {
- base "oc-ospf-types:ROUTER_LSA_TYPES";
- }
- description
- "The sub-type of the Router LSA.";
- }
-
- uses ospfv2-lsdb-common-link-specification;
-
- leaf metric {
- type oc-ospf-types:ospf-metric;
- description
- "The cost of utilising the link specified independent of TOS";
- }
-
- leaf number-links {
- type uint16;
- description
- "The number of links that are described within the LSA";
- }
-
- leaf number-tos-metrics {
- type uint16;
- description
- "The number of different TOS metrics given for this link, not
- including the link metric (which is referred to as TOS 0).";
- }
- }
-
- grouping ospfv2-lsdb-network-lsa-state {
- description
- "Parameters of the Network LSA";
-
- leaf network-mask {
- type uint8 {
- range "0..32";
- }
- description
- "The mask of the network described by the Network LSA
- represented as a CIDR mask.";
- }
-
- leaf-list attached-router {
- type yang:dotted-quad;
- description
- "A list of the router ID of the routers that are attached to
- the network described by the Network LSA";
- }
- }
-
- grouping ospfv2-lsdb-summary-lsa-state {
- description
- "Parameters of the Summary LSA";
-
- leaf network-mask {
- type uint8 {
- range "0..32";
- }
- description
- "The mask of the network described by the Summary LSA
- represented as a CIDR mask.";
- }
- }
-
- grouping ospfv2-lsdb-asexternal-lsa-common-parameters {
- description
- "Common parameters that are used for OSPFv2 AS External LSAs";
-
- leaf forwarding-address {
- type inet:ipv4-address-no-zone;
- description
- "The destination to which traffic for the external prefix
- should be advertised. When this value is set to 0.0.0.0 then
- traffic should be forwarded to the LSA's originator";
- }
-
- leaf external-route-tag {
- type uint32;
- description
- "An opaque tag that set by the LSA originator to carry
- information relating to the external route";
- }
- }
-
- grouping ospfv2-lsdb-asexternal-lsa-state {
- description
- "Parameters for the AS External LSA";
-
- leaf mask {
- type uint8 {
- range "0..32";
- }
- description
- "The subnet mask for the advertised destination";
- }
-
- leaf metric-type {
- type enumeration {
- enum "TYPE_1" {
- description
- "When the metric of a prefix is specified as Type 1
- then it is considered to be expressed in the same units as
- the link-state metrics carried in OSPF. That is to say
- that the metric advertised is directly compared to the
- internal cost";
- }
- enum "TYPE_2" {
- description
- "When the metric of a prefix is specified as Type 2 then
- it is considered to be expressed as a cost in addition to
- that of the link-state metric to the advertising router.
- That is to say that the metric is considered to be the
- cost to the advertising router plus the advertised metric
- for the external entity";
- }
- }
- description
- "The type of metric included within the AS External LSA.";
- }
-
- leaf metric {
- type oc-ospf-types:ospf-metric;
- description
- "The cost to reach the external network specified. The exact
- interpretation of this cost is dependent on the type of
- metric specified";
- }
-
- uses ospfv2-lsdb-asexternal-lsa-common-parameters;
- }
-
- grouping ospfv2-lsdb-asexternal-tos-state {
- description
- "Per-TOS parameters for the AS External LSA";
-
- uses ospfv2-lsdb-asexternal-lsa-common-parameters;
- uses ospfv2-lsdb-common-tos-metric;
- }
-
- grouping ospfv2-lsdb-nssa-external-lsa-state {
- description
- "Operational state parameters specific to the NSSA External
- LSA";
-
- leaf propagate {
- type boolean;
- description
- "When this bit is set to true, an NSSA border router will
- translate a Type 7 LSA (NSSA External) to a Type 5 LSA
- (AS External).";
- reference "RFC3101, Section 2.3";
- }
- }
-
- grouping ospfv2-lsdb-opaque-lsa-state {
- description
- "Operational state parameters specific to an Opaque LSA";
-
- leaf scope {
- type enumeration {
- enum LINK {
- description
- "The scope of the LSA is the current link. The LSA
- is not flooded beyond the local network. This
- enumeration denotes a Type 9 LSA.";
- }
- enum AREA {
- description
- "The scope of the LSA is the local area. The LSA
- is not flooded beyond the area of origin. This
- enumeration denotes a Type 10 LSA.";
- }
- enum AS {
- description
- "The scope of the LSA is the local autonomous
- system (AS). The flooding domain is the same
- as a Type 5 LSA - it is not flooded into
- stub areas or NSSAs. This enumeration denotes a
- Type 11 LSA.";
- }
- }
- description
- "The scope of the opaque LSA. The type of the LSA
- indicates its scope - the value of this leaf
- determines both the flooding domain, and the type
- of the LSA.";
- }
-
- leaf type {
- type identityref {
- base "oc-ospf-types:OSPF_OPAQUE_LSA_TYPE";
- }
- description
- "The Opaque Type of the LSA. This value is used to
- indicate the type of data carried by the opaque LSA";
- }
- }
-
- grouping ospfv2-lsdb-opaque-lsa-te-tlv-state {
- description
- "The contents of the Traffic Engineering LSA";
-
- leaf type {
- type identityref {
- base "oc-ospf-types:OSPF_TE_LSA_TLV_TYPE";
- }
- description
- "The type of TLV within the Traffic Engineering LSA";
- }
- }
-
- grouping ospfv2-lsdb-opaque-te-unknown-state {
- description
- "The contents of the unknown TLV within the Traffic Engineering LSA";
-
- uses ospfv2-lsdb-common-unknown-tlv;
- }
-
- grouping ospfv2-lsdb-opaque-te-link-state {
- description
- "The contents of the sub-TLVs of a Traffic Engineering LSA Link TLV";
-
- leaf type {
- type union {
- type identityref {
- base "oc-ospf-types:OSPF_TE_LINK_TLV_TYPE";
- }
- type enumeration {
- enum UNKNOWN {
- description
- "The sub-TLV received in the LSA is unknown to the local
- system";
- }
- }
- }
- description
- "The sub-TLV type specified in the Link TLV. When the value is
- known by the local system, a canonical name of the sub-TLV is utilised
- - the special UNKNOWN value indicates that the system did not
- support the sub-TLV type received in the LSA.";
- }
-
- leaf unknown-type {
- when "../type = 'UNKNOWN'" {
- description
- "Include the unknown type field only when the sub-TLV was not
- known to the local system";
- }
-
- type uint16;
- description
- "The value of the type field of an unknown sub-TLV";
- }
-
- leaf unknown-value {
- when "../type = 'UNKNOWN'" {
- description
- "Include the unknown value field only when the sub-TLV was not
- known to the local system";
- }
-
- type binary;
- description
- "The binary contents of the unknown TLV";
- }
-
- leaf link-type {
- when "../type = 'TE_LINK_TYPE'" {
- description
- "Include the link-type field only when the sub-TLV type was a TE
- link type";
- }
-
- type enumeration {
- enum POINT_TO_POINT {
- description
- "The link being described by the TE LSA Link sub-TLV is a
- point-to-point link to exactly one other system";
- }
- enum MULTI_ACCESS {
- description
- "The link being described by the TE LSA Link sub-TLV is a
- multi-access link that supports connectivity to multiple remote
- systems";
- }
- enum UNKNOWN {
- description
- "The link type received was unknown to the local system";
- }
- }
- description
- "The type of the link that is being described by the TE LSA Link
- sub-TLV";
- }
-
- leaf link-id {
- when "../type = 'TE_LINK_ID'" {
- description
- "Include the link ID field only when the sub-TLV type was a TE
- Link identifier";
- }
-
- type yang:dotted-quad;
- description
- "The ID of the remote system. For point-to-point links, this is the
- router ID of the neighbor. For multi-access links it is the address
- of the designated router.";
- }
-
- leaf-list local-ip-address {
- when "../type = 'TE_LINK_LOCAL_IP'" {
- description
- "Include the local IP address field only when the sub-TLV type was
- a local IP address";
- }
-
- type inet:ipv4-address-no-zone;
- description
- "The IP address(es) of the local system that correspond to the
- specified TE link";
- }
-
- leaf-list remote-ip-address {
- when "../type = 'TE_LINK_REMOTE_IP'" {
- description
- "Include the remote IP address field only when the sub-TLV type was
- a remote IP address";
- }
-
- type inet:ipv4-address-no-zone;
- description
- "The IP address(es) of the remote systems that are attached to the
- specified TE link";
- }
-
- leaf metric {
- when "../type = 'TE_LINK_METRIC'" {
- description
- "Include the traffic engineering metric only when the sub-TLV type
- is a TE metric";
- }
-
- type uint32;
- description
- "The metric of the link that should be used for traffic engineering
- purposes. This link may be different than the standard OSPF link
- metric.";
- }
-
- leaf maximum-bandwidth {
- when "../type = 'TE_LINK_MAXIMUM_BANDWIDTH'" {
- description
- "Include the traffic engineering metric only when the sub-TLV type
- is the maximum bandwidth";
- }
-
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The maximum bandwidth of the link. This value reflects the actual
- bandwidth of the link expressed asn IEEE 32-bit floating point
- number";
- }
-
- leaf maximum-reservable-bandwidth {
- when "../type = 'TE_LINK_MAXIUMUM_RESERVABLE_BANDWIDTH'" {
- description
- "Include the maximum reservable bandwidth field only when the
- sub-TLV type is the maximum reservable bandwidth";
- }
-
- type oc-types:ieeefloat32;
- units "bytes per second";
- description
- "The maximum reservable bandwidth for the link. This value represents
- the total bandwidth which may be used for traffic engineering
- purposes. The value may exceed the maximum-bandwidth value
- in cases where the link is oversubscribed. The value is reflected as
- a 32-bit IEEE floating-point number";
- }
- }
-
- grouping ospfv2-lsdb-opaque-te-link-unreserved-bw-state {
- description
- "The per-priority unreserved bandwidth described within the unreserved
- bandwidth sub-TLV of the Link TLV of the Traffic Engineering LSA";
-
- leaf priority {
- type uint8 {
- range "0..7";
- }
- description
- "The priority level being described";
- }
-
- leaf unreserved-bandwidth {
- type oc-types:ieeefloat32;
- description
- "The unreserved bandwidth for at priority level P, where P is
- equal to the priority of the current list entry. The reservable
- bandwidth at priority P is equal to the sum of the reservable
- bandwidth at all levels 0..P.";
- }
- }
-
- grouping ospfv2-lsdb-opaque-te-link-admin-group-state {
- description
- "Per bit administrative group status";
-
- leaf bit-index {
- type uint8 {
- range "0..31";
- }
- description
- "The index of the bit within the 32-bit administrative group field
- of the Administrative Group sub-TLV of the Traffic Engineering LSA";
- }
-
- leaf set {
- type boolean;
- default false;
- description
- "Whether the bit is set within the administrative group field";
- }
- }
-
- grouping ospfv2-lsdb-opaque-te-node-attribute-state {
- description
- "State parameters relating to the Traffic Engineering Node Attribute
- TLV of the Traffic Engineering LSA";
-
- leaf type {
- type union {
- type identityref {
- base "oc-ospf-types:TE_NODE_ATTRIBUTE_TLV_TYPE";
- }
- type enumeration {
- enum UNKNOWN {
- description
- "The sub-TLV type received within the TE LSA Node Attribute TLV
- was unknown the the local system";
- }
- }
- }
- description
- "The type of the sub-TLV of the Node Attribute TLV contained within
- the TE LSA. If the local system can interpret the value received the
- canonical name of the type is utilised, otherwise the special UNKNOWN
- value is used";
- }
-
- leaf-list local-ipv4-addresses {
- when "../type = 'NODE_IPV4_LOCAL_ADDRESS'" {
- description
- "Include the local IPv4 addresses when the type of the sub-TLV
- indicates that this is the contained data";
- }
-
- type inet:ipv4-prefix;
- description
- "The local IPv4 addresses of the node expressed in CIDR notation";
- }
-
- leaf-list local-ipv6-addresses {
- when "../type = 'NODE_LOCAL_IPV6_ADDRESS'" {
- description
- "Include the local IPv6 addresses when the type of the sub-TLV
- indicfates that this is the contained data";
- }
-
- type inet:ipv6-prefix;
- description
- "The local IPv6 addreses of the node";
- }
- }
-
- grouping ospfv2-lsdb-opaque-te-router-address-state {
- description
- "The contents of the value field of the Router Address TLV of the
- Traffic Engineering LSA.";
-
- leaf address {
- type inet:ipv4-address-no-zone;
- description
- "A stable IP address of the advertising router, that is always
- reachable when the router is connected to the network. Typically this
- is a loopback address.";
- }
- }
-
- grouping ospfv2-lsdb-opaque-grace-state {
- description
- "State parameters on a per-TLV basis of the Grace LSA";
-
- leaf type {
- type identityref {
- base "oc-ospf-types:GRACE_LSA_TLV_TYPES";
- }
- description
- "The type of the sub-TLV received within the Grace LSA";
- }
-
- leaf period {
- when "../type = 'GRACE_PERIOD'" {
- description
- "Include the period specification when the sub-TLV type is indicated
- to be of this type";
- }
-
- type uint32;
- units seconds;
- description
- "The number of seconds that the router's neighbors should advertise
- the local system as fully adjacent regardless of database
- synchronization state";
- reference "RFC3623";
- }
-
- leaf reason {
- when "../type = 'GRACE_RESTART_REASON'" {
- description
- "Include the restart reason when the sub-TLV type specifies this
- is included";
- }
-
- type enumeration {
- enum UNKNOWN {
- value 0;
- description
- "The reason for the graceful restart is unknown";
- }
- enum SOFTWARE_RESTART {
- value 1;
- description
- "The local system is restarting due to a software component
- restart";
- }
- enum SOFTWARE_RELOAD_UPGRADE {
- value 2;
- description
- "The local system is restarting due to a software reload or
- upgrade";
- }
- enum CONTROL_PROCESSOR_SWITCH {
- value 3;
- description
- "The local system is restarting due to a switch to a redundant
- control plane element";
- }
- }
- description
- "The reason for the graceful restart event occurring, as advertised
- by the restarting system";
- reference "RFC3623";
- }
-
- leaf ip-interface-address {
- when "../type = 'GRACE_IP_INTERFACE_ADDRESS'" {
- description
- "Include the interface address when the sub-TLV type specifies that
- it is included";
- }
-
- type inet:ipv4-address-no-zone;
- description
- "The restarting system's IP address on the interface via which the
- Grace LSA is being advertised.";
- }
- }
-
- grouping ospfv2-lsdb-opaque-ri-state {
- description
- "State parameters of the Router Information Opaque LSA";
-
- leaf type {
- type union {
- type identityref {
- base "oc-ospf-types:RI_LSA_TLV_TYPES";
- }
- type enumeration {
- enum UNKNOWN {
- description
- "The TLV received within the RI LSA is unknown";
- }
- }
- }
- description
- "The type of sub-TLV of the Router Information opaque LSA";
- }
- }
-
- grouping ospfv2-lsdb-opaque-ri-informational-state {
- description
- "State parmaeters of the Router Information Informational Capabilities
- sub-TLV";
-
- leaf graceful-restart-capable {
- type boolean;
- default false;
- description
- "When this leaf is set to true, the advertising system is capable of
- OSPF graceful restart.";
- }
-
- leaf graceful-restart-helper {
- type boolean;
- default false;
- description
- "When this leaf is set to true, the advertising system is capable of
- being a helper for OSPF graceful restart";
- }
-
- leaf stub-router {
- type boolean;
- default false;
- description
- "When this leaf is set to true, the advertising system is able to
- advertise its status as a stub router";
- reference "RFC6987";
- }
-
- leaf traffic-engineering {
- type boolean;
- default false;
- description
- "When this leaf is set to true, the advertising system supports OSPFv2
- traffic engineering capabilities";
- }
-
- leaf point-to-point-over-lan {
- type boolean;
- default false;
- description
- "When this leaf is set to true, the advertising system supports treating
- LAN adjacencies as though they were point to point";
- reference "RFC5309";
- }
-
- leaf experimental-te {
- type boolean;
- default false;
- description
- "When this leaf is set to ture, the advertising system supports the
- experimental extensions to OSPF for TE described in RFC4973";
- reference "RFC4973";
- }
- }
-
- grouping ospfv2-lsdb-opaque-ri-admintag-state {
- description
- "State parameters relating to the administrative tags specified for
- a node within the RI LSA";
-
- leaf-list administrative-tags {
- type uint32;
- description
- "The set of administrative tags assigned to the local system by
- the network operator. The meaning of these tags is opaque to OSPF
- - and their interpretation is per-domain specific";
- reference "RFC7777";
- }
- }
-
- grouping ospfv2-lsdb-opaque-ri-unknown-state {
- description
- "State parameters relating to an unknown TLV within the RI LSA";
- uses ospfv2-lsdb-common-unknown-tlv;
- }
-
- grouping ospfv2-lsdb-opaque-ri-sralgo-state {
- description
- "State parameters relating to the SR Algorithms TLV of the RI LSA";
-
- leaf-list supported-algorithms {
- type identityref {
- base "oc-ospf-types:SR_ALGORITHM";
- }
- description
- "A list of the algorithms that are supported for segment routing
- by the advertising system";
- }
- }
-
- grouping ospfv2-lsdb-opaque-ri-srrange-tlv-state {
- description
- "State parameters relating to the SR SID/Label range TLV of the
- RI LSA";
-
- leaf type {
- type union {
- type identityref {
- base "oc-ospf-types:OSPF_RI_SR_SID_LABEL_TLV_TYPES";
- }
- type enumeration {
- enum UNKNOWN {
- description
- "The type of the sub-TLV advertised with the SID/Label range
- TLV of the RI LSA is unknown to the receiving system";
- }
- }
- }
- description
- "The type of the sub-TLV received by the local system within the
- SR SID/Label Range TLV of the RI LSA";
- }
-
- leaf range-size {
- type uint32 {
- range "0..16777216";
- }
- description
- "The number of entries within the range being described within the
- SID/Label range TLV";
- }
- }
-
- grouping ospfv2-lsdb-opaque-ri-srrange-sid-label-tlv-state {
- description
- "State parameters relating to the SR SID/Label sub-TLV of the SR SID/Label
- range TLV of the RI LSA";
-
- leaf entry-type {
- type oc-ospf-types:sr-sid-type;
- description
- "The type of entry that is contained within the sub-TLV. The range may
- be represented as either a range of MPLS labels, or numeric segment
- identifiers";
- }
-
- leaf first-value {
- type uint32;
- description
- "The first value within the SRGB range being specified. The type of the
- entry is determined based on the value of the entry type as this value
- may represent either a segment identifier or an MPLS label.";
- }
- }
-
- grouping ospfv2-lsdb-extended-prefix-state {
- description
- "State parameters relating to an Extended Prefix LSA";
-
- leaf route-type {
- type enumeration {
- enum UNSPECIFIED {
- value 0;
- description
- "The prefix described in the extended prefix LSA is of an
- unspecified type";
- }
- enum INTRA_AREA {
- value 1;
- description
- "The prefix described in the extended prefix LSA is an intra-area
- prefix for the advertising system";
- }
- enum INTER_AREA {
- value 3;
- description
- "The prefix described in the extended prefix LSA is an inter-area
- prefix for the advertising system";
- }
- enum AS_EXTERNAL {
- value 5;
- description
- "The prefix described in the extended prefix LSA is external to the
- autonomous system of the advertising system";
- }
- enum NSSA_EXTERNAL {
- value 7;
- description
- "The prefix described in the extended prefix LSA externally
- advertised from an NSSA area visibile to the advertising system";
- }
- }
- description
- "The type of prefix that is contained within the Extended Prefix LSA.
- The information contained in sub-TLVs of the attribute is applicable
- regardless of this value.";
- }
-
- uses ospfv2-lsdb-common-prefix-properties;
-
- leaf attached {
- type boolean;
- default false;
- description
- "If this value is set to true, the prefix being advertised was
- generated by an ABR for an inter-area prefix. The value corresponds
- to the A-flag of the flags field of the Extended Prefix LSA";
- }
-
- leaf node {
- type boolean;
- default false;
- description
- "If this value is set to true, the prefix being advertised represents
- the advertising router. Typically, the prefix within the LSA is
- expected to be globally-reachable prefix associated with a loopback
- interface";
- }
-
- leaf prefix {
- type inet:ipv4-address-no-zone;
- description
- "The IPv4 prefix contained within the extended prefix LSA";
- }
- }
-
- grouping ospfv2-lsdb-extended-link-state {
- description
- "State parameters related to an extended link LSA";
-
- leaf link-type {
- type identityref {
- base "oc-ospf-types:OSPFV2_ROUTER_LINK_TYPE";
- }
- description
- "The type of link with which extended attributes are associated";
- }
-
- uses ospfv2-lsdb-common-link-specification;
-
- }
-
- grouping ospfv2-lsdb-extended-link-tlv-state {
- description
- "State parameters relating to a sub-TLV of the extended link LSA";
-
- leaf type {
- type identityref {
- base "oc-ospf-types:OSPFV2_EXTENDED_LINK_SUBTLV_TYPE";
- }
- description
- "The type of the sub-TLV contained within the extended link TLV";
- }
- }
-
- grouping ospfv2-lsdb-extended-prefix-tlv-state {
- description
- "State parameters related to a sub-TLV of an Extended Prefix LSA";
-
- leaf type {
- type identityref {
- base "oc-ospf-types:OSPFV2_EXTENDED_PREFIX_SUBTLV_TYPE";
- }
- description
- "The type of sub-TLV as indicated by the Extended Prefix LSA";
- }
- }
-
- grouping ospfv2-lsdb-extended-prefix-range-state {
- description
- "Parameters of the Extended Prefix Range SubTLV";
-
- uses ospfv2-lsdb-common-prefix-properties;
-
- leaf range-size {
- type uint16;
- description
- "The number of prefixes that are covered by the advertisement.";
- }
-
- leaf inter-area {
- type boolean;
- default false;
- description
- "When this leaf is set to true, then the prefix range is inter-area -
- the flag is set by the ABR that advertises the Extended Prefix Range
- TLV";
- }
-
- leaf prefix {
- type inet:ipv4-prefix;
- description
- "The first prefix in the range of prefixes being described by the
- extended prefix range sub-TLV";
- }
- }
-
- grouping ospfv2-lsdb-extended-prefix-prefix-sid-state {
- description
- "Parameters of the Prefix-SID sub-TLV";
-
- leaf no-php {
- type boolean;
- default false;
- description
- "If this leaf is set the advertising system has indicated that the
- prefix SID must not be popped before delivering packets to it";
- }
-
- leaf mapping-server {
- type boolean;
- default false;
- description
- "If this leaf is set the SID was advertised by a Segment Routing
- mapping server";
- }
-
- leaf explicit-null {
- type boolean;
- default false;
- description
- "If this leaf is set, the advertising system has requested that the
- prefix SID value should be replaced with the explicit null label
- value";
- }
-
- leaf sid-value-type {
- type enumeration {
- enum ABSOLUTE {
- description
- "The SID contained in the Prefix-SID sub-TLV is an absolute
- value";
- }
- enum INDEX {
- description
- "The SID contained in the Prefix-SID sub-TLV is an index to the
- SRGB";
- }
- }
- description
- "Specifies the type of the value specified within the Prefix SID
- sub-TLV - in particular, whether the value is an index or an
- absolute value. This value corresponds with the V-flag of the Prefix
- SID sub-TLV";
- }
-
- leaf sid-scope {
- type enumeration {
- enum LOCAL {
- description
- "The value of the SID is
- significant only to the advertising system";
- }
- enum GLOBAL {
- description
- "The value of the SID is globally significant";
- }
- }
- description
- "Specifies the scope of the SID advertisement within the Prefix SID
- sub-TLV. The scope of the SID is independent of whether the SID
- contained is an index, or an absolute value";
- }
-
- leaf multi-topology-identifier {
- type uint8;
- description
- "The identifier for the topology to which the Prefix SID relates. The
- value of this leaf is a MT-ID as defined in RFC4915";
- }
-
- leaf algorithm {
- type uint8;
- description
- "The algorithm that computes the path associated with the Prefix SID";
- }
-
- leaf sid-value {
- type uint32;
- description
- "The value of the Prefix SID. The meaning of this value is dependent
- upon the type of SID, and its scope. The value contained is either a
- 32-bit value indicating the index of the SID, or a 24-bit label where
- the 20 right-most bits are used for encoding the label value";
- }
- }
-
- grouping ospfv2-lsdb-extended-prefix-sid-label-binding-state {
- description
- "State parameters relating to the extended prefix SID SID/Label binding
- sub-TLV";
-
- leaf mirroring {
- type boolean;
- default false;
- description
- "When set to true, this indicates that the SID/Label Binding sub-TLV
- entries contained within this TLV are indicative of a mirroring
- context";
- }
-
- leaf multi-topology-identifier {
- type uint8;
- description
- "The identifier for the topology to which the SID/Label Binding
- sub-TLV is associated. The value of this leaf is a MT-ID as defined
- in RFC4915";
- }
-
- leaf weight {
- type uint8;
- description
- "The weight of the advertised binding when used for load-balancing
- purposes";
- }
- }
-
- grouping ospfv2-lsdb-extended-prefix-sid-label-binding-tlv-state {
- description
- "State parameters directly relating to the SID/Label Binding TLV";
-
- leaf type {
- type identityref {
- base
- "oc-ospf-types:OSPFV2_EXTENDED_PREFIX_SID_LABEL_BINDING_SUBTLV_TYPE";
- }
- description
- "The type of sub-TLV that is being contained within the SID/Label
- sub-TLV";
- }
- }
-
- grouping ospfv2-lsdb-extprefix-sid-label-binding-state {
- description
- "State parameters relating to the SID/Label binding sub-TLV of the
- SID/Label/Binding TLV";
-
- uses ospfv2-lsdb-common-sr-sid-spec;
- }
-
- grouping ospfv2-lsdb-extprefix-sid-label-ero-metric-state {
- description
- "State parameters relating to the ERO Metric Sub-TLV of the SID/Label
- Binding TLV";
-
- leaf metric {
- type uint32;
- description
- "The metric representing the aggregate IGP or TE path cost for the
- binding included within the SID/Label Binding TLV";
- }
- }
-
- grouping ospfv2-lsdb-extprefix-sid-lbl-ero-path-seg-state {
- description
- "State parameters relating to the a segment included within the
- ERO Path Sub-TLV of the SID/Label Binding TLV";
-
- leaf type {
- type identityref {
- base "oc-ospf-types:OSPFV2_EXTPREFIX_BINDING_ERO_PATH_SEGMENT_TYPE";
- }
- description
- "The type of the segment being specified as part of the ERO";
- }
-
- leaf loose {
- type boolean;
- default false;
- description
- "If this leaf is set the segment is identifier as a loose path
- segment, otherwise the path strictly follows the path specified";
- }
- }
-
- grouping ospfv2-lsdb-extprefix-sid-lbl-ero-ipv4-state {
- description
- "State parameters relating to an IPv4 address segment included within
- the ERO path";
-
- leaf address {
- type inet:ipv4-address-no-zone;
- description
- "The IPv4 address of the hop within the ERO";
- }
- }
-
- grouping ospfv2-lsdb-extprefix-sid-lbl-ero-unnum-state {
- description
- "State parameters relating to an unnumbered hop within the ERO path";
-
- leaf router-id {
- type inet:ipv4-address-no-zone;
- description
- "The IPv4 router identtifier of the remote system";
- }
-
- leaf interface-id {
- type uint32;
- description
- "The identifier assigned to the link by the remote system";
- }
- }
-
- grouping ospfv2-lsdb-extended-link-adj-sid-state {
- description
- "State parameters relating to the Adjacency SID sub-TLV of the
- Extended Link LSA";
-
- leaf backup {
- type boolean;
- default false;
- description
- "When this flag is set, it indicates that the adjacency SID refers to
- an adjacency which is eligible for protection";
- }
-
- leaf group {
- type boolean;
- default false;
- description
- "When this flag is set it indicates that the adjacency SID refers to
- a group of adjacencies that have a common value";
- }
-
- uses ospfv2-lsdb-common-sr-sid-spec;
-
- leaf weight {
- type uint8;
- description
- "The weight of the Adjacency SID when used for load-balancing";
- }
-
- leaf multi-topology-identifier {
- type uint8;
- description
- "The multi-topology identifier with which the adjacency SID is
- associated";
- }
- }
-
- grouping ospfv2-lsdb-structure {
- description
- "Structural grouping for per-area LSDB contents";
-
- container lsdb {
- // Top-level RO, if this were ever to become writeable then
- // the state containers lower down need config false added
- config false;
- description
- "The link-state database for the OSPFv2 area";
-
- container state {
- description
- "Operational state parameters relating to the OSPFv2
- area";
-
- uses ospfv2-lsdb-area-state;
- }
-
- container lsa-types {
- description
- "Enclosing container for a list of LSA types that are
- in the LSDB for the specified area";
-
- list lsa-type {
- key "type";
-
- description
- "List of LSA types in the LSDB for the specified
- area";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "A reference for the LSA type being described within
- the LSDB";
- }
-
- container state {
- description
- "Top-level operational state parameters relating to
- an LSA within the area";
- uses ospfv2-lsdb-area-lsa-type-state;
- }
-
- container lsas {
- description
- "Enclosing container for a list of the LSAs of
- the specified type received by the system";
-
- list lsa {
- key "link-state-id";
-
- description
- "List of the LSAs of a specified type in the
- LSDB for the specified area";
-
- leaf link-state-id {
- type leafref {
- path "../state/link-state-id";
- }
- description
- "Reference to the Link State ID of the LSA";
- }
-
- container state {
- description
- "Operational state parameters relating to all
- LSA types";
- uses ospfv2-lsdb-area-lsa-state;
- }
-
- uses ospfv2-lsdb-router-lsa-structure {
- when "../../state/type = 'ROUTER_LSA'" {
- description
- "Include the router LSA hierarchy solely when
- that LSA type is being described";
- }
- }
-
- uses ospfv2-lsdb-network-lsa-structure {
- when "../../state/type = 'NETWORK_LSA'" {
- description
- "Include the network LSA hierarchy solely when
- that LSA type is being described";
- }
- }
-
- uses ospfv2-lsdb-summary-lsa-structure {
- // rjs TODO: check this syntax
- when "../../state/type = " +
- "'SUMMARY_IP_NETWORK_LSA' or " +
- "../../state/type = 'SUMMARY_ASBR_LSA'" {
- description
- "Include the summary LSA hierarchy solely when
- that LSA type is being described";
- }
- }
-
- uses ospfv2-lsdb-asexternal-lsa-structure {
- when "../../state/type = 'AS_EXTERNAL_LSA'" {
- description
- "Include the AS external LSA hierarchy solely when
- that LSA type is being described";
- }
- }
-
- uses ospfv2-lsdb-nssa-external-lsa-structure {
- when "../../state/type = 'NSSA_AS_EXTERNAL_LSA'" {
- description
- "Include the NSSA External LSA hierarchy solely
- when that LSA type is being described";
- }
- }
-
- uses ospfv2-lsdb-opaque-lsa-structure {
- when "../../state/type = 'OSPFV2_LINK_SCOPE_OPAQUE_LSA'
- or ../../state/type = 'OSPFV2_AREA_SCOPE_OPAQUE_LSA'
- or ../../state/type = 'OSPFV2_AS_SCOPE_OPAQUE_LSA'" {
- description
- "Include the Opaque LSA structure when type of entry
- being described in an opaque LSA";
- }
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-ospfv2.yang b/src/plugins/yang/openconfig/openconfig-ospfv2.yang
deleted file mode 100644
index 6ff43c4..0000000
--- a/src/plugins/yang/openconfig/openconfig-ospfv2.yang
+++ /dev/null
@@ -1,98 +0,0 @@
-module openconfig-ospfv2 {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/ospfv2";
-
- prefix "oc-ospfv2";
-
- // import some basic types
- //import ietf-inet-types { prefix inet; }
- import openconfig-extensions { prefix "oc-ext"; }
-
- // Include submodules
- // Global: All global context groupings;
- include openconfig-ospfv2-global;
- // Area: Config/opstate for an area
- include openconfig-ospfv2-area;
- // Area Interface: Config/opstate for an Interface
- include openconfig-ospfv2-area-interface;
- // LSDB: Operational state model covering the LSDB
- include openconfig-ospfv2-lsdb;
- // Common: Content included in >1 context
- include openconfig-ospfv2-common;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "An OpenConfig model for Open Shortest Path First (OSPF)
- version 2";
-
- oc-ext:openconfig-version "0.1.2";
-
- revision "2018-06-05" {
- description
- "Bug fixes in when statements in lsdb";
- reference "0.1.2";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes.";
- reference "0.1.1";
- }
-
- revision "2017-02-28"{
- description
- "Initial public release of OSPFv2";
- reference "0.1.0";
- }
-
- revision "2016-06-24" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping ospfv2-top {
- description
- "Top-level OSPF configuration and operational state";
-
- container ospfv2 {
- description
- "Top-level configuration and operational state for
- Open Shortest Path First (OSPF) v2";
-
- uses ospfv2-global-structural;
-
- container areas {
- description
- "Configuration and operational state relating to an
- OSPFv2 area.";
-
- list area {
- key "identifier";
-
- description
- "The OSPFv2 areas within which the local system exists";
-
- leaf identifier {
- type leafref {
- path "../config/identifier";
- }
- description
- "A reference to the identifier for the area.";
- }
-
- uses ospfv2-area-structure;
- }
- }
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-packet-match-types.yang b/src/plugins/yang/openconfig/openconfig-packet-match-types.yang
deleted file mode 100644
index d23cc61..0000000
--- a/src/plugins/yang/openconfig/openconfig-packet-match-types.yang
+++ /dev/null
@@ -1,297 +0,0 @@
-module openconfig-packet-match-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/packet-match-types";
-
- prefix "oc-pkt-match-types";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines common types for use in models requiring
- data definitions related to packet matches.";
-
- oc-ext:openconfig-version "1.0.1";
-
- revision "2018-04-15" {
- description
- "Corrected description and range for ethertype typedef";
- reference "1.0.1";
- }
-
- revision "2017-05-26" {
- description
- "Separated IP matches into AFs";
- reference "1.0.0";
- }
-
- revision "2016-08-08" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
- revision "2016-04-27" {
- description
- "Initial revision";
- reference "TBD";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
-
- //TODO: should replace this with an official IEEE module
- // when available. Only a select number of types are
- // defined in this identity.
- identity ETHERTYPE {
- description
- "Base identity for commonly used Ethertype values used
- in packet header matches on Ethernet frames. The Ethertype
- indicates which protocol is encapsulated in the Ethernet
- payload.";
- reference
- "IEEE 802.3";
- }
-
- identity ETHERTYPE_IPV4 {
- base ETHERTYPE;
- description
- "IPv4 protocol (0x0800)";
- }
-
- identity ETHERTYPE_ARP {
- base ETHERTYPE;
- description
- "Address resolution protocol (0x0806)";
- }
-
- identity ETHERTYPE_VLAN {
- base ETHERTYPE;
- description
- "VLAN-tagged frame (as defined by IEEE 802.1q) (0x8100). Note
- that this value is also used to represent Shortest Path
- Bridging (IEEE 801.1aq) frames.";
- }
-
- identity ETHERTYPE_IPV6 {
- base ETHERTYPE;
- description
- "IPv6 protocol (0x86DD)";
- }
-
- identity ETHERTYPE_MPLS {
- base ETHERTYPE;
- description
- "MPLS unicast (0x8847)";
- }
-
- identity ETHERTYPE_LLDP {
- base ETHERTYPE;
- description
- "Link Layer Discovery Protocol (0x88CC)";
- }
-
- identity ETHERTYPE_ROCE {
- base ETHERTYPE;
- description
- "RDMA over Converged Ethernet (0x8915)";
- }
-
-
- //TODO: should replace this with an official IANA module when
- //available. Only a select set of protocols are defined with
- //this identity.
- identity IP_PROTOCOL {
- description
- "Base identity for commonly used IP protocols used in
- packet header matches";
- reference
- "IANA Assigned Internet Protocol Numbers";
- }
-
- identity IP_TCP {
- base IP_PROTOCOL;
- description
- "Transmission Control Protocol (6)";
- }
-
- identity IP_UDP {
- base IP_PROTOCOL;
- description
- "User Datagram Protocol (17)";
- }
-
- identity IP_ICMP {
- base IP_PROTOCOL;
- description
- "Internet Control Message Protocol (1)";
- }
-
- identity IP_IGMP {
- base IP_PROTOCOL;
- description
- "Internet Group Membership Protocol (2)";
- }
-
- identity IP_PIM {
- base IP_PROTOCOL;
- description
- "Protocol Independent Multicast (103)";
- }
-
- identity IP_RSVP {
- base IP_PROTOCOL;
- description
- "Resource Reservation Protocol (46)";
- }
-
- identity IP_GRE {
- base IP_PROTOCOL;
- description
- "Generic Routing Encapsulation (47)";
- }
-
- identity IP_AUTH {
- base IP_PROTOCOL;
- description
- "Authentication header, e.g., for IPSEC (51)";
- }
-
- identity IP_L2TP {
- base IP_PROTOCOL;
- description
- "Layer Two Tunneling Protocol v.3 (115)";
- }
-
-
-
- identity TCP_FLAGS {
- description
- "Common TCP flags used in packet header matches";
- reference
- "IETF RFC 793 - Transmission Control Protocol
- IETF RFC 3168 - The Addition of Explicit Congestion
- Notification (ECN) to IP";
- }
-
- identity TCP_SYN {
- base TCP_FLAGS;
- description
- "TCP SYN flag";
- }
-
- identity TCP_FIN {
- base TCP_FLAGS;
- description
- "TCP FIN flag";
- }
-
- identity TCP_RST {
- base TCP_FLAGS;
- description
- "TCP RST flag";
- }
-
- identity TCP_PSH {
- base TCP_FLAGS;
- description
- "TCP push flag";
- }
-
- identity TCP_ACK {
- base TCP_FLAGS;
- description
- "TCP ACK flag";
- }
-
- identity TCP_URG {
- base TCP_FLAGS;
- description
- "TCP urgent flag";
- }
-
- identity TCP_ECE {
- base TCP_FLAGS;
- description
- "TCP ECN-Echo flag. If the SYN flag is set, indicates that
- the TCP peer is ECN-capable, otherwise indicates that a
- packet with Congestion Experienced flag in the IP header
- is set";
- }
-
- identity TCP_CWR {
- base TCP_FLAGS;
- description
- "TCP Congestion Window Reduced flag";
- }
-
- // typedef statements
-
- typedef port-num-range {
- type union {
- type string {
- pattern '^(6[0-5][0-5][0-3][0-5]|[0-5]?[0-9]?[0-9]?[0-9]?' +
- '[0-9]?)\.\.(6[0-5][0-5][0-3][0-5]|[0-5]?[0-9]?[0-9]?' +
- '[0-9]?[0-9]?)$';
- }
- type oc-inet:port-number;
- type enumeration {
- enum ANY {
- description
- "Indicates any valid port number (e.g., wildcard)";
- }
- }
- }
- description
- "Port numbers may be represented as a single value,
- an inclusive range as <lower>..<higher>, or as ANY to
- indicate a wildcard.";
- }
-
- typedef ip-protocol-type {
- type union {
- type uint8 {
- range 0..254;
- }
- type identityref {
- base IP_PROTOCOL;
- }
- }
- description
- "The IP protocol number may be expressed as a valid protocol
- number (integer) or using a protocol type defined by the
- IP_PROTOCOL identity";
- }
-
- typedef ethertype-type {
- type union {
- type uint16 {
- range 1536..65535;
- }
- type identityref {
- base ETHERTYPE;
- }
- }
- description
- "The Ethertype value may be expressed as a 16-bit number in
- decimal notation, or using a type defined by the
- ETHERTYPE identity";
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-packet-match.yang b/src/plugins/yang/openconfig/openconfig-packet-match.yang
deleted file mode 100644
index 7dcf037..0000000
--- a/src/plugins/yang/openconfig/openconfig-packet-match.yang
+++ /dev/null
@@ -1,360 +0,0 @@
-module openconfig-packet-match {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/header-fields";
-
- prefix "oc-pkt-match";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-packet-match-types { prefix oc-pkt-match-types; }
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines data related to packet header fields
- used in matching operations, for example in ACLs. When a
- field is omitted from a match expression, the effect is a
- wildcard ('any') for that field.";
-
- oc-ext:openconfig-version "1.1.0";
-
- revision "2017-12-15" {
- description
- "Add MPLS packet field matches";
- reference "1.1.0";
- }
-
- revision "2017-05-26" {
- description
- "Separated IP matches into AFs";
- reference "1.0.0";
- }
-
- revision "2016-08-08" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
- revision "2016-04-27" {
- description
- "Initial revision";
- reference "TBD";
- }
-
-
- // Physical Layer fields
- // ethernet-header
- grouping ethernet-header-config {
- description
- "Configuration data of fields in Ethernet header.";
-
- leaf source-mac {
- type oc-yang:mac-address;
- description
- "Source IEEE 802 MAC address.";
- }
-
- leaf source-mac-mask {
- type oc-yang:mac-address;
- description
- "Source IEEE 802 MAC address mask.";
- }
-
- leaf destination-mac {
- type oc-yang:mac-address;
- description
- "Destination IEEE 802 MAC address.";
- }
-
- leaf destination-mac-mask {
- type oc-yang:mac-address;
- description
- "Destination IEEE 802 MAC address mask.";
- }
-
- leaf ethertype {
- type oc-pkt-match-types:ethertype-type;
- description
- "Ethertype field to match in Ethernet packets";
- }
- }
-
- grouping ethernet-header-state {
- description
- "State information of fields in Ethernet header.";
- }
-
- grouping ethernet-header-top {
- description
- "Top level container for fields in Ethernet header.";
-
- container l2 {
- description
- "Ethernet header fields";
-
- container config {
- description
- "Configuration data";
- uses ethernet-header-config;
- }
-
- container state {
- config false;
- description
- "State Information.";
- uses ethernet-header-config;
- uses ethernet-header-state;
- }
- }
- }
-
- grouping mpls-header-top {
- description
- "Top-level container for fields in an MPLS header.";
-
- container mpls {
- description
- "MPLS header fields";
-
- container config {
- description
- "Configuration parameters relating to fields within
- the MPLS header.";
- uses mpls-header-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to fields
- within the MPLS header";
- uses mpls-header-config;
- }
- }
- }
-
- grouping mpls-header-config {
- description
- "Configuration parameters relating to matches within
- MPLS header fields.";
-
- leaf traffic-class {
- type uint8 {
- range "0..7";
- }
- description
- "The value of the MPLS traffic class (TC) bits,
- formerly known as the EXP bits.";
- }
- }
-
- grouping ip-protocol-fields-common-config {
- description
- "IP protocol fields common to IPv4 and IPv6";
-
- leaf dscp {
- type oc-inet:dscp;
- description
- "Value of diffserv codepoint.";
- }
-
- leaf protocol {
- type oc-pkt-match-types:ip-protocol-type;
- description
- "The protocol carried in the IP packet, expressed either
- as its IP protocol number, or by a defined identity.";
- }
-
- leaf hop-limit {
- type uint8 {
- range 0..255;
- }
- description
- "The IP packet's hop limit -- known as TTL (in hops) in
- IPv4 packets, and hop limit in IPv6";
- }
- }
-
- // IP Layer
- // ip-protocol-fields
- grouping ipv4-protocol-fields-config {
- description
- "Configuration data of IP protocol fields
- for IPv4";
-
- leaf source-address {
- type oc-inet:ipv4-prefix;
- description
- "Source IPv4 address prefix.";
- }
-
- leaf destination-address {
- type oc-inet:ipv4-prefix;
- description
- "Destination IPv4 address prefix.";
- }
-
- uses ip-protocol-fields-common-config;
-
- }
-
- grouping ipv4-protocol-fields-state {
- description
- "State information of IP header fields for IPv4";
- }
-
- grouping ipv4-protocol-fields-top {
- description
- "IP header fields for IPv4";
-
- container ipv4 {
- description
- "Top level container for IPv4 match field data";
-
- container config {
- description
- "Configuration data for IPv4 match fields";
- uses ipv4-protocol-fields-config;
- }
-
- container state {
- config false;
- description
- "State information for IPv4 match fields";
- uses ipv4-protocol-fields-config;
- uses ipv4-protocol-fields-state;
- }
- }
- }
-
- grouping ipv6-protocol-fields-config {
- description
- "Configuration data for IPv6 match fields";
-
- leaf source-address {
- type oc-inet:ipv6-prefix;
- description
- "Source IPv6 address prefix.";
- }
-
- leaf source-flow-label {
- type oc-inet:ipv6-flow-label;
- description
- "Source IPv6 Flow label.";
- }
-
- leaf destination-address {
- type oc-inet:ipv6-prefix;
- description
- "Destination IPv6 address prefix.";
- }
-
- leaf destination-flow-label {
- type oc-inet:ipv6-flow-label;
- description
- "Destination IPv6 Flow label.";
- }
-
- uses ip-protocol-fields-common-config;
- }
-
- grouping ipv6-protocol-fields-state {
- description
- "Operational state data for IPv6 match fields";
- }
-
- grouping ipv6-protocol-fields-top {
- description
- "Top-level grouping for IPv6 match fields";
-
- container ipv6 {
- description
- "Top-level container for IPv6 match field data";
-
- container config {
- description
- "Configuration data for IPv6 match fields";
-
- uses ipv6-protocol-fields-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for IPv6 match fields";
-
- uses ipv6-protocol-fields-config;
- uses ipv6-protocol-fields-state;
- }
- }
- }
-
- // Transport fields
- grouping transport-fields-config {
- description
- "Configuration data of transport-layer packet fields";
-
- leaf source-port {
- type oc-pkt-match-types:port-num-range;
- description
- "Source port or range";
- }
-
- leaf destination-port {
- type oc-pkt-match-types:port-num-range;
- description
- "Destination port or range";
- }
-
- leaf-list tcp-flags {
- type identityref {
- base oc-pkt-match-types:TCP_FLAGS;
- }
- description
- "List of TCP flags to match";
- }
- }
-
- grouping transport-fields-state {
- description
- "State data of transport-fields";
- }
-
- grouping transport-fields-top {
- description
- "Destination transport-fields top level grouping";
-
- container transport {
- description
- "Transport fields container";
-
- container config {
- description
- "Configuration data";
- uses transport-fields-config;
- }
-
- container state {
- config false;
- description
- "State data";
- uses transport-fields-config;
- uses transport-fields-state;
- }
- }
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-pf-forwarding-policies.yang b/src/plugins/yang/openconfig/openconfig-pf-forwarding-policies.yang
deleted file mode 100644
index 6b08c87..0000000
--- a/src/plugins/yang/openconfig/openconfig-pf-forwarding-policies.yang
+++ /dev/null
@@ -1,385 +0,0 @@
-submodule openconfig-pf-forwarding-policies {
- belongs-to openconfig-policy-forwarding {
- prefix "oc-pf";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-packet-match { prefix "oc-pmatch"; }
- import openconfig-yang-types { prefix "oc-yang"; }
- import openconfig-inet-types { prefix "oc-inet"; }
-
- include openconfig-pf-path-groups;
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule contains configuration and operational state
- relating to the definition of policy-forwarding policies.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2017-06-21" {
- description
- "Amend policy forwarding model based on ACL changes.";
- reference "0.2.0";
- }
-
- revision "2017-02-28" {
- description
- "Initial public release of policy forwarding.";
- reference "0.1.0";
- }
-
- revision "2016-11-08" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping pf-forwarding-policy-structural {
- description
- "Structural grouping defining forwarding policies under the
- policy- forwarding module.";
-
- container policies {
- description
- "Forwarding policies defined to enact policy-based forwarding
- on the local system.";
-
- list policy {
- key "policy-id";
-
- description
- "A forwarding policy is defined to have a set of match
- criteria, allowing particular fields of a packet's header to
- be matched, and a set of forwarding actions which determines
- how the local system should forward the packet.";
-
- leaf policy-id {
- type leafref {
- path "../config/policy-id";
- }
- description
- "Reference to the identifier for the forwarding-policy.";
- }
-
- container config {
- description
- "Configuration options relating to the forwarding
- policy.";
- uses pf-forwarding-policy-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the forwarding
- policy.";
- uses pf-forwarding-policy-config;
- }
-
- container rules {
- description
- "The criteria that should be matched for a packet to be
- forwarded according to the policy action.";
-
- list rule {
- key "sequence-id";
-
- description
- "A match rule for the policy. In the case that multiple
- criteria are specified within a single rule, all criteria
- must be met for the rule to be applied to a packet.";
-
- leaf sequence-id {
- type leafref {
- path "../config/sequence-id";
- }
- description
- "A unique sequence identifier for the match rule.";
- }
-
- container config {
- description
- "Configuration parameters relating to the match
- rule.";
- uses pf-forwarding-policy-rule-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the match
- rule.";
- uses pf-forwarding-policy-rule-config;
- uses pf-forwarding-policy-rule-state;
- }
-
- uses oc-pmatch:ethernet-header-top;
- uses oc-pmatch:ipv4-protocol-fields-top;
- uses oc-pmatch:ipv6-protocol-fields-top;
- uses oc-pmatch:transport-fields-top;
-
- container action {
- description
- "The forwarding policy action to be applied for
- packets matching the rule.";
-
- container config {
- description
- "Configuration parameters relating to the forwarding
- rule's action.";
- uses pf-forwarding-policy-action-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the
- forwarding rule's action.";
- uses pf-forwarding-policy-action-config;
- }
-
- uses pf-forwarding-policy-action-encapsulate-gre;
- }
- }
- }
- }
- }
- }
-
- grouping pf-forwarding-policy-config {
- description
- "Configuration parameters relating to the forwarding policy.";
-
- leaf policy-id {
- type string;
- description
- "A unique name identifying the forwarding policy. This name is
- used when applying the policy to a particular interface.";
- }
- }
-
- grouping pf-forwarding-policy-rule-config {
- description
- "Configuration parameters relating to a policy rule.";
-
- leaf sequence-id {
- type uint32;
- description
- "Unique sequence number for the policy rule.";
- }
- }
-
- grouping pf-forwarding-policy-rule-state {
- description
- "Operational state parameters relating to a policy rule.";
-
- leaf matched-pkts {
- type oc-yang:counter64;
- description
- "Number of packets matched by the rule.";
- }
-
- leaf matched-octets {
- type oc-yang:counter64;
- description
- "Bytes matched by the rule.";
- }
- }
-
- grouping pf-forwarding-policy-action-config {
- description
- "Forwarding policy action configuration parameters.";
-
- leaf discard {
- type boolean;
- default false;
- description
- "When this leaf is set to true, the local system should drop
- packets that match the rule.";
- }
-
- leaf decapsulate-gre {
- type boolean;
- default false;
- description
- "When this leaf is set to true, the local system should remove
- the GRE header from the packet matching the rule. Following
- the decapsulation it should subsequently forward the
- encapsulated packet according to the relevant lookup (e.g., if
- the encapsulated packet is IP, the packet should be routed
- according to the IP destination).";
- }
-
- leaf network-instance {
- type leafref {
-
- // We are at:
- // $NIROOT/policy-forwarding/policies/
- // policy/rules/rule/action/config/
- // network-instance
- path "../../../../../../../../config/name";
- }
- description
- "When this leaf is set, packets matching the match criteria
- for the forwarding rule should be looked up in the
- network-instance that is referenced rather than the
- network-instance with which the interface is associated.
- Such configuration allows policy-routing into multiple
- sub-topologies from a single ingress access interface, or
- different send and receive contexts for a particular
- interface (sometimes referred to as half-duplex VRF).";
- }
-
- leaf path-selection-group {
- type leafref {
- // We are at:
- // $NIROOT/policy-forwarding/policies/
- // policy/rules/rule/action/config/to-path-group
- path "../../../../../../../path-selection-groups/" +
- "path-selection-group/config/group-id";
- }
- description
- "When path-selection-group is set, packets matching the
- match criteria for the forwarding rule should be forwarded
- only via one of the paths that is specified within the
- referenced path-selection-group. The next-hop of the packet
- within the routing context should be used to determine between
- multiple paths that are specified within the group.";
- }
-
- leaf next-hop {
- type oc-inet:ip-address;
- description
- "When an IP next-hop is specified in the next-hop field,
- packets matching the match criteria for the forwarding rule
- should be forwarded to the next-hop IP address, bypassing any
- lookup on the local system.";
- }
- }
-
- grouping pf-forwarding-policy-action-encapsulate-gre {
- description
- "Structural grouping covering the encapsulate-gre action of the
- policy forwarding rule.";
-
- container encapsulate-gre {
- description
- "Packets matching the policy rule should be GRE encapsulated
- towards the set of targets defined within the target list. Where
- more than one target is specified, or the target subnet expands
- to more than one endpoint, packets should be load-balanced across
- the destination addresses within the subnets.";
-
- container config {
- description
- "Configuration parameters for the GRE encapsulation rules action.";
- uses pf-forwarding-policy-action-gre-config;
- }
-
- container state {
- description
- "Operational state parameters for the GRE encapsulation rule
- action.";
- config false;
- uses pf-forwarding-policy-action-gre-config;
- }
-
- container targets {
- description
- "Surrounding container for the list of GRE tunnel targets that
- should be encapsulated towards.";
-
- list target {
- key "id";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "Reference to the unique identifier for the target.";
- }
-
- description
- "Each target specified within this list should be treated as a
- endpoint to which packets should be GRE encapsulated. Where the
- set of destinations described within a single entry expands to
- more than one destination IP address, packets should be load
- shared across the destination using the local system's ECMP hashing
- mechanisms.";
-
- container config {
- description
- "Configuration parameters for the GRE target.";
- uses pf-forwarding-policy-action-gre-target-config;
- }
-
- container state {
- description
- "Operational state parameters for the GRE target.";
- config false;
- uses pf-forwarding-policy-action-gre-target-config;
- }
- }
- }
- }
- }
-
- grouping pf-forwarding-policy-action-gre-config {
- description
- "Configuration parameters for the encapsulate-gre forwarding
- policy action.";
-
- leaf identifying-prefix {
- type oc-inet:ip-prefix;
- description
- "An IP prefix that can be used to identify the group of
- GRE endpoints that are being encapsulated towards. Systems
- that require an IP identifier for the tunnel set
- should use this prefix as the next-hop identifier.";
- }
- }
-
- grouping pf-forwarding-policy-action-gre-target-config {
- description
- "Configuration parameters for each target of a GRE Encapsulation
- rule";
-
- leaf id {
- type string;
- description
- "A unique identifier for the target.";
- }
-
- leaf source {
- type oc-inet:ip-address;
- description
- "The source IP address that should be used when encapsulating
- packets from the local system.";
- }
-
- leaf destination {
- type oc-inet:ip-prefix;
- description
- "The set of destination addresses that should be encapsulated towards.
- Where a subnet is specified, each address within the subnet should be
- treated as an independent destination for encapsulated traffic. Packets
- should be distributed with ECMP across the set of tunnel destination
- addresses.";
- }
-
- leaf ip-ttl {
- type uint8;
- description
- "The TTL that should be specified in the IP header of the GRE packet
- encapsulating the packet matching the rule.";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-pf-interfaces.yang b/src/plugins/yang/openconfig/openconfig-pf-interfaces.yang
deleted file mode 100644
index 41ba545..0000000
--- a/src/plugins/yang/openconfig/openconfig-pf-interfaces.yang
+++ /dev/null
@@ -1,121 +0,0 @@
-submodule openconfig-pf-interfaces {
- belongs-to openconfig-policy-forwarding {
- prefix "oc-pf";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-interfaces { prefix "oc-if"; }
-
- include openconfig-pf-forwarding-policies;
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule contains groupings related to the association
- between interfaces and policy forwarding rules.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2017-06-21" {
- description
- "Amend policy forwarding model based on ACL changes.";
- reference "0.2.0";
- }
-
- revision "2017-02-28" {
- description
- "Initial public release of policy forwarding.";
- reference "0.1.0";
- }
-
- revision "2016-11-08" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
-
- grouping pf-interfaces-structural {
- description
- "Structural grouping for interface to forwarding policy bindings
- within the policy-forwarding model.";
-
- container interfaces {
- description
- "Configuration and operational state relating policy
- forwarding on interfaces.";
-
- list interface {
- key "interface-id";
-
- description
- "Configuration and operationals state relating to the
- relationship between interfaces and policy-based forwarding
- rules.";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "A reference to the unique identifier for the interface
- being referenced by the policy.";
- }
-
- container config {
- description
- "Configuration parameters relating to an interface to
- policy forwarding rule binding.";
-
- uses pf-interface-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to an interface to
- policy forwarding rule binding.";
-
- uses pf-interface-config;
- }
-
- uses oc-if:interface-ref;
- }
- }
- }
-
- grouping pf-interface-config {
- description
- "Configuration parameters relating to an interface to policy
- forwarding rule binding.";
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "A unique identifier for the interface.";
- }
-
- leaf apply-forwarding-policy {
- type leafref {
- // We are at /network-instances/network-instance/
- // policy-forwarding/interfaces/interface/config/
- // apply-forwarding-policy
- path "../../../../policies/policy/" +
- "config/policy-id";
- }
- description
- "The policy to be applied on the interface. Packets ingress on
- the referenced interface should be compared to the match
- criteria within the specified policy, and in the case that
- these criteria are met, the forwarding actions specified
- applied. These policies should be applied following quality of
- service classification, and ACL actions if such entities are
- referenced by the corresponding interface.";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-pf-path-groups.yang b/src/plugins/yang/openconfig/openconfig-pf-path-groups.yang
deleted file mode 100644
index aa96595..0000000
--- a/src/plugins/yang/openconfig/openconfig-pf-path-groups.yang
+++ /dev/null
@@ -1,125 +0,0 @@
-submodule openconfig-pf-path-groups {
- belongs-to openconfig-policy-forwarding {
- prefix "oc-pf";
- }
-
- import openconfig-extensions { prefix "oc-ext"; }
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule contains configuration and operational state
- relating to path-selection-groups which are used to group
- forwarding entities together to be used as policy forwarding
- targets.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2017-06-21" {
- description
- "Amend policy forwarding model based on ACL changes.";
- reference "0.2.0";
- }
-
- revision "2017-02-28" {
- description
- "Initial public release of policy forwarding.";
- reference "0.1.0";
- }
-
- revision "2016-11-08" {
- description
- "Initial revision";
- reference "0.0.1";
- }
-
- grouping pf-path-groups-structural {
- description
- "Structural grouping containing the definition of path groups
- within the context of policy-based forwarding.";
-
- container path-selection-groups {
- description
- "Surrounding container for the path selection groups defined
- within the policy forwarding model.";
-
- list path-selection-group {
- key "group-id";
-
- leaf group-id {
- type leafref {
- path "../config/group-id";
- }
- description
- "Reference to a unique identifier for the path selection
- group";
-
- }
-
- description
- "A path selection group is a set of forwarding resources,
- which are grouped as eligible paths for a particular
- policy-based forwarding rule. A policy rule may select a
- path-selection-group as the egress for a particular type of
- traffic (e.g., DSCP value). The system then utilises its
- standard forwarding lookup mechanism to select from the
- paths that are specified within the group - for IP packets,
- the destination IP address is used such that the packet is
- routed to the entity within the path-selection-group that
- corresponds to the next-hop for the destination IP address
- of the packet; for L2 packets, the selection is based on the
- destination MAC address. If multiple paths within the
- selection group are eligible to be used for forwarding,
- the packets are load-balanced between them according to
- the system's usual load balancing logic.";
-
- container config {
- description
- "Configuration parameters relating to the path selection
- group.";
- uses pf-path-selection-group-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the path
- selection group.";
- uses pf-path-selection-group-config;
- }
- }
- }
- }
-
- grouping pf-path-selection-group-config {
- description
- "Configuration parameters relating to a path selection group.";
-
- leaf group-id {
- type string;
- description
- "A unique name for the path-selection-group";
- }
-
- leaf-list mpls-lsp {
- type leafref {
- // We are at /network-instances/network-instance/
- // policy-forwarding/path-selection-groups/
- // path-selection-group/config/mpls-lsp
- path "../../../../../mpls/lsps/constrained-path/tunnels/" +
- "tunnel/config/name";
- }
- description
- "A set of MPLS constrained-path LSPs which should be
- considered for the policy forwarding next-hop. In order to
- select between the LSPs within the path-selection-group, the
- system should determine which LSP provides the best path to
- the next-hop for the routed packet.";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-pf-srte.yang b/src/plugins/yang/openconfig/openconfig-pf-srte.yang
deleted file mode 100644
index 07e6cc5..0000000
--- a/src/plugins/yang/openconfig/openconfig-pf-srte.yang
+++ /dev/null
@@ -1,280 +0,0 @@
-module openconfig-pf-srte {
- yang-version "1";
- namespace "http://openconfig.net/yang/policy-forwarding/sr-te";
- prefix "oc-pf-srte";
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-network-instance { prefix "oc-ni"; }
- import openconfig-mpls-types { prefix "oc-mplst"; }
- import openconfig-inet-types { prefix "oc-inet"; }
- import openconfig-segment-routing { prefix "oc-sr"; }
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig Working group
- www.openconfig.net";
-
- description
- "This module defines extensions to the OpenConfig policy forwarding
- module to support static segment routing traffic engineering policy
- definitions. Extensions are provided to match:
-
- - Ingress binding SIDs, such that traffic can be mapped based on
- an ingress label.
- - A colour community and endpoint combination, such that the
- routes can be resolved according to the policy forwarding
- entries that are to be installed.
-
- In addition, policy forwarding actions associated with next-hops are
- added to the model. The next-hop set to be forwarded to is augmented
- to cover a set of lists of segments. The most common application of
- such segment lists is to express stacks of MPLS labels which are used
- as SR segments. In addition, they may be used to expressed segments
- in the form of IPv6 addresses.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision 2017-10-01 {
- description
- "Initial revision of the SR-TE policy SAFI model.";
- reference "0.1.0";
- }
-
- grouping oc-pf-srte-match-top {
- description
- "Top-level grouping used for SR-TE policy match criteria within
- a policy forwarding rule.";
-
- container srte {
- description
- "Match criteria associated with Segment Routing Traffic Engineering
- policies.";
-
- container config {
- description
- "Configuration parameters associated with SR-TE policies.";
- uses oc-pf-srte-match-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters associated with SR-TE policies.";
- uses oc-pf-srte-match-config;
- }
- }
- }
-
- grouping oc-pf-srte-match-config {
- description
- "Configuration parameters specific to Segment Routing traffic
- Engineering.";
-
- leaf mpls-bsid {
- type oc-mplst:mpls-label;
- description
- "The Binding SID (BSID) to be matched expressed as an MPLS label. Packets
- that are ingress to the system with the top-most label matching
- the SID value specified in this leaf should be forwarded according
- to the policy. The top-most label (the specified Binding SID)
- must be popped from the label stack by the system.";
- }
-
- leaf srte-endpoint {
- type oc-inet:ip-address;
- description
- "When the policy forwarding rule is used for RIB resolution
- to a Segment Routing Traffic Engineering path, the policy is used
- when the required endpoint (which may be the protocol next-hop)
- matches the endpoint address specified in this
- leaf. When the leaf is set to all zeros (0.0.0.0 or ::), the endpoint
- acts as a wildcard in the policy resolution.";
- }
-
- leaf srte-color {
- type uint32;
- description
- "When the policy forwarding rule is used for RIB resolution to a
- specific Segment Routing Traffic Engineering path, the policy is
- used when the colour required in the policy (which may be specified
- based on the value of a BGP extended colour community) matches the
- value of this leaf. The colour being set to 0 indicates that the
- colour is a wildcard in the policy resolution.";
- }
-
- leaf srte-preference {
- type uint32;
- description
- "When there are multiple policy forwarding rules specified for
- a particular SR-TE endpoint. The preference is used to resolve
- between them. These rules may be learnt from a dynamic routing
- protocol, or interface to the device, or from other static
- entries configured on the system.";
- }
- }
-
- grouping oc-pf-srte-segment-list-top {
- description
- "Top-level grouping for specifying segment lists under a policy
- forwarding action.";
-
- container segment-lists {
- description
- "A list of SR-TE segment lists that should be applied as an
- action within this policy. Where a system selects the SR-TE
- policy to be used, the list of segment lists that is specified
- should be used as forwarding next-hops.";
-
- list segment-list {
- key "index";
- description
- "An individual segment list within the list of segment
- lists used for SR-TE policies.";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the index leaf which act as a key to the
- segment-list list.";
- }
-
- container config {
- description
- "Configuration parameters for the SR-TE segment list.";
- uses oc-pf-srte-segment-list-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the SR-TE
- segment list.";
- uses oc-pf-srte-segment-list-config;
- }
-
- container sids {
- description
- "Surrounding container for the list of SIDs that makes up the
- segment list.";
-
- list sid {
- key "index";
-
- description
- "List of SIDs that make up the segment list. The segment list
- is formed by ordering the set of SIDs that are specified by
- their index in ascending numerical order.";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the SID's index within the segment list which
- acts as the key of the list.";
- }
-
- container config {
- description
- "Configuration parameters relating to the SID within the
- segment list.";
- uses oc-pf-srte-segment-list-sid-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the SID within
- the segment list.";
- uses oc-pf-srte-segment-list-sid-config;
- }
- }
- }
- }
- }
- }
-
- grouping oc-pf-srte-segment-list-config {
- description
- "Configuration parameters relating to a segment list.";
-
- leaf index {
- type uint64;
- description
- "Unique integer identifying the segment list within the set
- of segment lists used for the SR-TE policy action.";
- }
-
- leaf weight {
- type uint32;
- description
- "The weight of the segment list within the set of segment lists
- specified for the policy. The traffic that is forwarded according
- to the policy is distributed across the set of paths such that
- each list receives weight/(sum of all weights) traffic.";
- }
- }
-
- grouping oc-pf-srte-segment-list-sid-config {
- description
- "Configuration parameters relating to a SID within an SR-TE segment
- list";
-
- leaf index {
- type uint64;
- description
- "The index of the SID within the segment list. The segment list is
- applied by ordering the SID entries in ascending numerical order
- beginning at 0.";
- }
-
- leaf value {
- type oc-sr:sr-sid-type;
- description
- "The value of the SID that is to be used. Specified as an MPLS
- label or IPv6 address.";
- }
-
- leaf mpls-ttl {
- type uint8;
- default 0;
- description
- "The TTL to be set if the type of the SID is an MPLS label. If the
- value of the TTL is set to be 0, the value is picked by the local
- implementation.";
- }
-
- leaf mpls-tc {
- type uint8 {
- range "0..7";
- }
- default 0;
- description
- "The value of the MPLS Traffic Class (TC) bits to be used if the
- value of the SID is an MPLS label. In the case that the value is
- set to 0, then the local implementation should choose the value.";
- }
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:policy-forwarding/" +
- "oc-ni:policies/oc-ni:policy/oc-ni:rules/oc-ni:rule" {
- description
- "Add the SR-TE specific policy forwarding match criteria to the
- policy forwarding model.";
-
- uses oc-pf-srte-match-top;
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:policy-forwarding/" +
- "oc-ni:policies/oc-ni:policy/oc-ni:rules/oc-ni:rule/oc-ni:action" {
- description
- "Add the SR-TE specific policy forwarding actions to the
- policy forwarding model.";
-
- uses oc-pf-srte-segment-list-top;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-pim-types.yang b/src/plugins/yang/openconfig/openconfig-pim-types.yang
deleted file mode 100644
index 86cf78c..0000000
--- a/src/plugins/yang/openconfig/openconfig-pim-types.yang
+++ /dev/null
@@ -1,74 +0,0 @@
-module openconfig-pim-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/pim/types";
-
- prefix "oc-pim-types";
-
- // import some basic types
- import openconfig-extensions { prefix "oc-ext"; }
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines types related to the PIM protocol model.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-02-19" {
- description
- "Initial revision.";
- reference "0.1.0";
- }
-
- // identity statements
-
- identity PIM_MODE {
- description
- "Base identity for the operating modes of Protocol-Independent
- Multicast.";
- }
-
- identity PIM_MODE_SPARSE {
- base PIM_MODE;
- description
- "PIM sparse mode (PIM-SM).";
- reference "RFC7761";
- }
-
- identity PIM_MODE_DENSE {
- base PIM_MODE;
- description
- "PIM dense mode (PIM-DM).";
- reference "RFC3973";
- }
-
- // typedef statements
-
- typedef dr-priority-type {
- type uint32;
- description
- "The port's designated router priority. Larger always preferred.
- DR Priority is a 32-bit unsigned number, ranges 0-4294967295.";
- reference "RFC7761 4.3.1 page 33";
- }
-
- typedef pim-interval-type {
- type uint8 {
- range 1..255;
- }
- units "seconds";
- description
- "Interval at which the router sends the PIM message toward the
- upstream RPF neighbor.";
- reference "RFC7761 4.5 page 44, 4.3.1 page 29";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-pim.yang b/src/plugins/yang/openconfig/openconfig-pim.yang
deleted file mode 100644
index 7389f9c..0000000
--- a/src/plugins/yang/openconfig/openconfig-pim.yang
+++ /dev/null
@@ -1,464 +0,0 @@
-module openconfig-pim {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/pim";
-
- prefix "oc-pim";
-
- // import some basic types/interfaces
- import openconfig-pim-types { prefix oc-pim-types; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-acl { prefix oc-acl; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-extensions { prefix "oc-ext"; }
- import ietf-inet-types { prefix "inet"; }
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "An OpenConfig model for Protocol Independent Multicast (PIM).";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-02-09" {
- description
- "Initial revision.";
- reference "0.1.0";
- }
-
- grouping admin-config {
- description
- "Re-usable grouping to enable or disable a particular feature.";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "When set to true, the functionality within which this
- leaf is defined is enabled, when set to false it is
- explicitly disabled.";
- }
- }
-
- grouping pim-counters-state {
- description
- "Counters related to PIM messages.";
-
- leaf hello-messages {
- type uint32;
- description
- "Number of hello messages received.";
- reference "RFC7761 4.9.2 page 108";
- }
-
- leaf join-prune-messages {
- type uint32;
- description
- "Number of join/prune messages received.";
- reference "RFC7761 4.5 page 44";
- }
-
- leaf bootstrap-messages {
- type uint32;
- description
- "Number of bootstrap router messages received.";
- reference "RFC7761 3.7 page 12";
- }
- }
-
- grouping pim-interface-config {
- description
- "Configuration data for PIM on each interface.";
-
- uses admin-config;
-
- leaf interface-id {
- type oc-if:interface-id;
- description
- "Reference to an interface on which PIM is enabled.";
- }
-
- leaf mode {
- type identityref {
- base oc-pim-types:PIM_MODE;
- }
- description
- "PIM mode to use when delivering multicast traffic via this
- interface.";
- }
-
- leaf bsr-border {
- type boolean;
- default false;
- description
- "When set to true the device will not send bootstrap router
- messages over this interface. By default these are transmitted
- over all PIM sparse mode (PIM-SM) enabled interfaces.";
- }
-
- leaf border-router {
- type boolean;
- default false;
- description
- "When set to true the interface is set as MBR (multicast border
- router) and allows multicast traffic from sources that are
- outside of the PIM domain.";
- }
-
-
- leaf dr-priority {
- type oc-pim-types:dr-priority-type;
- description
- "The designated router priority of this interface. Larger always
- preferred.";
- }
-
- leaf join-prune-interval {
- type oc-pim-types:pim-interval-type;
- description
- "Interval at which the router sends the PIM join/prune messages
- toward the upstream RPF neighbor.";
- }
-
- leaf hello-interval {
- type oc-pim-types:pim-interval-type;
- description
- "Interval at which the router sends the PIM hello messages.";
- }
-
- leaf dead-timer {
- type uint16 {
- range 1..65535;
- }
- description
- "Number of missed hello messages after which a neighbor is
- expired.";
- }
- }
-
- grouping pim-neighbor-state {
- description
- "PIM neighbor state.";
-
- leaf neighbor-address {
- type inet:ipv4-address;
- description
- "IPv4 address of neighbor router.";
- }
-
- leaf dr-address {
- type inet:ipv4-address;
- description
- "IPv4 address of designated router.";
- }
-
- leaf neighbor-established {
- type oc-types:timeticks64;
- description
- "This timestamp indicates the time that the
- PIM neighbor adjacency established. The value is the
- timestamp in seconds relative to the Unix Epoch
- (Jan 1, 1970 00:00:00 UTC).
-
- The PIM session uptime can be computed by clients
- as the difference between this value and the
- current time in UTC.";
- }
-
- leaf neighbor-expires {
- type oc-types:timeticks64;
- description
- "This timestamp indicates the time that the
- PIM neighbor adjacency will expire should hello
- messages fail to arrive from the neighbor.
- The value is the timestamp in seconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- }
-
- leaf mode {
- type identityref {
- base oc-pim-types:PIM_MODE;
- }
- description
- "PIM mode in use when delivering multicast traffic
- via this neighbor.";
- }
- }
-
- grouping pim-neighbors-top {
- description
- "Details about PIM neighbors.";
-
- container neighbors {
- config false;
- description
- "Details about PIM neighbors.";
-
- list neighbor {
- key "neighbor-address";
- description
- "Details about a specific PIM neighbor.";
-
- leaf neighbor-address {
- type leafref {
- path "../state/neighbor-address";
- }
- description
- "IPv4 address of neighbor router.";
- }
-
- container state {
- config false;
- description
- "Details about a specific PIM neighbor.";
-
- uses pim-neighbor-state;
- }
- }
- }
- }
-
- grouping pim-interfaces-top {
- description
- "Configuration and state data for PIM on each interface.";
-
- container interfaces {
- description
- "Configuration and state data for PIM on each interface.";
-
- list interface {
- key "interface-id";
- description
- "This container defines interface PIM configuration and
- state information.";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "Reference to an interface on which PIM is enabled.";
- }
-
- container config {
- description
- "PIM interface configuration.";
-
- uses pim-interface-config;
- }
-
- container state {
- config false;
- description
- "State information for PIM interfaces.";
-
- uses pim-interface-config;
- container counters {
- description
- "PIM counters for each interface.";
-
- uses pim-counters-state;
- }
- }
-
- uses pim-neighbors-top;
- uses oc-if:interface-ref;
- }
- }
- }
-
- grouping pim-global-state {
- description
- "State and session data for PIM on each interface.";
-
- leaf neighbor-count {
- type uint8;
- description
- "Number of adjacent PIM neighbors.";
- }
-
- container counters {
- description
- "Global PIM counters.";
-
- uses pim-counters-state;
- }
- }
-
- grouping pim-sources-joined-top {
- description
- "List of multicast sources joined.";
-
- container sources-joined {
- config false;
- description
- "List of multicast sources joined.";
-
- list source {
- key "address";
- description
- "A multicast source that has been joined.";
-
- leaf address {
- type leafref {
- path "../state/address";
- }
- description
- "Source address of multicast.";
- }
-
- container state {
- config false;
- description
- "State for a multicast source that has been joined.";
-
- leaf address {
- type inet:ipv4-address;
- description
- "Source address of multicast.";
- }
-
- leaf group {
- type inet:ipv4-address;
- description
- "Multicast address.";
- }
-
- leaf upstream-interface-id {
- type oc-if:interface-id;
- description
- "The upstream interface for this multicast source.";
- }
- }
- }
- }
- }
-
- grouping pim-global-ssm-config {
- description
- "Source specific multicast (SSM) configuration.";
-
- leaf ssm-ranges {
- type leafref {
- path "/oc-acl:acl/oc-acl:acl-sets/oc-acl:acl-set/" +
- "oc-acl:config/oc-acl:name";
- }
- description
- "List of accepted source specific multicast (SSM) address
- ranges.";
- }
- }
-
- grouping pim-global-rp-addresses-config {
- description
- "Defines rendezvous points for sparse mode multicast.";
-
- leaf address {
- type inet:ipv4-address;
- description
- "IPv4 address of rendezvous point.";
- }
-
- leaf multicast-groups {
- type string;
- // TODO should this be an ACL or prefix-list reference or prefix list?
- // Cisco it's an ACL, Juniper it's an inline prefix list
- description
- "List of multicast groups (multicast IP address ranges) for which
- this entry will be used as a rendezvous point. When not
- present the default is equivalent to all valid IP multicast
- addresses.";
- }
- }
-
- grouping pim-global-top {
- description
- "Top level grouping for global PIM configuration.";
-
- container ssm {
- description
- "Source specific multicast (SSM).";
-
- container config {
- description
- "Configuration for source specific multicast (SSM).";
- uses pim-global-ssm-config;
- }
- container state {
- config false;
- description
- "State for source specific multicast (SSM).";
- uses pim-global-ssm-config;
- }
- }
-
- container rendezvous-points {
- description
- "Defines rendezvous points for sparse mode multicast.";
-
- list rendezvous-point {
- key "address";
- description
- "Defines a rendezvous point (RP) for sparse mode multicast.";
-
- leaf address {
- type leafref {
- path "../config/address";
- }
- description
- "IPv4 address of rendezvous point.";
- }
-
- container config {
- description
- "Rendezvous point configuration.";
- uses pim-global-rp-addresses-config;
- }
- container state {
- config false;
- description
- "Rendezvous point state.";
- uses pim-global-rp-addresses-config;
- }
- }
- }
-
- container state {
- config false;
- description
- "Global PIM state.";
- uses pim-global-state;
- }
-
- uses pim-sources-joined-top;
- }
-
- grouping pim-top {
- description
- "Top-level grouping for PIM.";
-
- container pim {
- description
- "Top-level PIM configuration and operational state.";
-
- container global {
- description
- "This container defines global PIM configuration and state
- information.";
- uses pim-global-top;
- }
-
- uses pim-interfaces-top;
- }
- }
-
- // data definition statements
-}
diff --git a/src/plugins/yang/openconfig/openconfig-platform-cpu.yang b/src/plugins/yang/openconfig/openconfig-platform-cpu.yang
deleted file mode 100644
index 5ea25f1..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-cpu.yang
+++ /dev/null
@@ -1,61 +0,0 @@
-module openconfig-platform-cpu {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform/cpu";
-
- prefix "oc-cpu";
-
- import openconfig-platform { prefix oc-platform; }
- import openconfig-types { prefix oc-types; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines data related to FAN components in the
- OpenConfig platform model.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-01-30" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- grouping component-cpu-utilization {
- description
- "Per-component CPU statistics";
-
- container utilization {
- description
- "Statistics representing CPU utilization of the
- component.";
-
- container state {
- config false;
- description
- "Operational state variables relating to the utilization
- of the CPU.";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
- }
- }
-
- augment "/oc-platform:components/oc-platform:component/" +
- "oc-platform:cpu" {
- description
- "Adding CPU utilization data to component model";
-
- uses component-cpu-utilization;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-platform-ext.yang b/src/plugins/yang/openconfig/openconfig-platform-ext.yang
deleted file mode 100644
index f47293e..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-ext.yang
+++ /dev/null
@@ -1,72 +0,0 @@
-module openconfig-platform-ext {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform/extension";
-
- prefix "oc-platform-ext";
-
- import openconfig-platform { prefix oc-platform; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines optional extensions to the OpenConfig
- platform model.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-01-18" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
-
- grouping platform-component-ext-state {
- description
- "Operational state data for platform components";
-
- leaf entity-id {
- type uint32;
- description
- "A unique numeric identifier assigned by the system to the
- component. This identifier may be used to represent the
- corresponding SNMP Entity MIB identifier.";
- }
- }
-
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component/" +
- "oc-platform:state" {
- description
- "Adding extension state data to components";
-
- uses platform-component-ext-state;
- }
-
- // rpc statements
-
- // notification statements
-
-}
-
diff --git a/src/plugins/yang/openconfig/openconfig-platform-fan.yang b/src/plugins/yang/openconfig/openconfig-platform-fan.yang
deleted file mode 100644
index 92b5dbe..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-fan.yang
+++ /dev/null
@@ -1,65 +0,0 @@
-module openconfig-platform-fan {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform/fan";
-
- prefix "oc-fan";
-
- import openconfig-platform { prefix oc-platform; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines data related to FAN components in the
- OpenConfig platform model.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2018-01-18" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping fan-state {
- description
- "Operational state data for fan components";
-
- leaf speed {
- type uint32;
- units rpm;
- description
- "Current (instantaneous) fan speed";
- }
- }
-
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component/" +
- "oc-platform:fan/oc-platform:state" {
- description
- "Adding fan data to component model";
-
- uses fan-state;
- }
-
-}
-
diff --git a/src/plugins/yang/openconfig/openconfig-platform-linecard.yang b/src/plugins/yang/openconfig/openconfig-platform-linecard.yang
deleted file mode 100644
index 46d9c7f..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-linecard.yang
+++ /dev/null
@@ -1,118 +0,0 @@
-module openconfig-platform-linecard {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform/linecard";
-
- prefix "oc-linecard";
-
- import openconfig-platform { prefix oc-platform; }
- import openconfig-platform-types { prefix oc-platform-types; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines data related to LINECARD components in
- the openconfig-platform model";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2017-08-03" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping linecard-config {
- description
- "Configuration data for linecard components";
-
- leaf power-admin-state {
- type oc-platform-types:component-power-type;
- default POWER_ENABLED;
- description
- "Enable or disable power to the linecard";
- }
- }
-
- grouping linecard-state {
- description
- "Operational state data for linecard components";
-
- leaf slot-id {
- type string;
- description
- "Identifier for the slot or chassis position in which the
- linecard is installed";
- }
- }
-
- grouping linecard-top {
- description
- "Top-level grouping for linecard data";
-
- container linecard {
- description
- "Top-level container for linecard data";
-
- container config {
- description
- "Configuration data for linecards";
-
- uses linecard-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for linecards";
-
- uses linecard-config;
- uses linecard-state;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component" {
- description
- "Adding linecard data to physical inventory";
-
- uses linecard-top {
- when "current()/oc-platform:state/" +
- "oc-platform:type = 'LINECARD'" {
- description
- "Augment is active when component is of type LINECARD";
- }
- }
- }
-
- // rpc statements
-
- // notification statements
-
-}
-
diff --git a/src/plugins/yang/openconfig/openconfig-platform-port.yang b/src/plugins/yang/openconfig/openconfig-platform-port.yang
deleted file mode 100644
index 2039a8e..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-port.yang
+++ /dev/null
@@ -1,149 +0,0 @@
-module openconfig-platform-port {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform/port";
-
- prefix "oc-port";
-
- // import some basic types
- import openconfig-platform { prefix oc-platform; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-if-ethernet { prefix oc-eth; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines data related to PORT components in the openconfig-platform model";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2018-01-20" {
- description
- "Added augmentation for interface-to-port reference";
- reference "0.3.0";
- }
-
- revision "2017-11-17" {
- description
- "Corrected augmentation path for port data";
- reference "0.2.0";
- }
-
- revision "2016-10-24" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping port-breakout-config {
- description
- "Configuration data for the port breakout mode";
-
- leaf num-channels {
- type uint8;
- description
- "Sets the number of channels to 'breakout' on a port
- capable of channelization";
- }
-
- leaf channel-speed {
- type identityref {
- base oc-eth:ETHERNET_SPEED;
- }
- description
- "Sets the channel speed on each channel -- the
- supported values are defined by the
- ETHERNET_SPEED identity";
- }
- }
-
- grouping port-breakout-state {
- description
- "Operational state data for the port breakout mode ";
- }
-
- grouping port-breakout-top {
- description
- "Top-level grouping for port breakout data";
-
- container breakout-mode {
- description
- "Top-level container for port breakout data";
-
- container config {
- description
- "Configuration data for port breakout";
-
- uses port-breakout-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for port breakout";
-
- uses port-breakout-config;
- uses port-breakout-state;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component/" +
- "oc-platform:port" {
- description
- "Adding port breakout data to physical platform data";
-
- uses port-breakout-top {
- when "./state/type = 'PORT'" {
- description
- "This data is valid only for PORT components";
- }
- }
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
- description
- "Adds a reference from the base interface to the corresponding
- port component in the device inventory.";
-
- leaf hardware-port {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "For non-channelized interfaces, references the hardware port
- corresponding to the base interface.";
- }
- }
-
- // rpc statements
-
- // notification statements
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-platform-psu.yang b/src/plugins/yang/openconfig/openconfig-platform-psu.yang
deleted file mode 100644
index eec4caa..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-psu.yang
+++ /dev/null
@@ -1,135 +0,0 @@
-module openconfig-platform-psu {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform/psu";
-
- prefix "oc-platform-psu";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-types { prefix oc-types; }
- import openconfig-platform { prefix oc-platform; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines a schema for power supply components in
- the OpenConfig platform model.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2018-01-16" {
- description
- "Changed admin state leaf name";
- reference "0.2.0";
- }
-
- revision "2017-12-21" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping psu-config {
- description
- "Configuration data for power supply components";
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Adminsitrative control on the on/off state of the power
- supply unit.";
- }
- }
-
- grouping psu-state {
- description
- "Operational state data for power supply components";
-
-
- // TODO(aashaikh): May need to convert some of these to
- // interval statistics once decided on which leaves to include.
- leaf capacity {
- type oc-types:ieeefloat32;
- units watts;
- description
- "Maximum power capacity of the power supply.";
- }
-
- leaf input-current {
- type oc-types:ieeefloat32;
- units amps;
- description
- "The input current draw of the power supply.";
- }
-
- leaf input-voltage {
- type oc-types:ieeefloat32;
- units volts;
- description
- "Input voltage to the power supply.";
- }
-
- leaf output-current {
- type oc-types:ieeefloat32;
- units amps;
- description
- "The output current supplied by the power supply.";
- }
-
- leaf output-voltage {
- type oc-types:ieeefloat32;
- units volts;
- description
- "Output voltage supplied by the power supply.";
- }
-
- leaf output-power {
- type oc-types:ieeefloat32;
- units watts;
- description
- "Output power supplied by the power supply.";
- }
- }
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component/" +
- "oc-platform:power-supply/oc-platform:config" {
- description
- "Adds power supply data to component operational state.";
-
- uses psu-config;
- }
-
- augment "/oc-platform:components/oc-platform:component/" +
- "oc-platform:power-supply/oc-platform:state" {
- description
- "Adds power supply data to component operational state.";
-
- uses psu-config;
- uses psu-state;
- }
-
-
- // rpc statements
-
- // notification statements
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-platform-transceiver.yang b/src/plugins/yang/openconfig/openconfig-platform-transceiver.yang
deleted file mode 100644
index 66b9071..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-transceiver.yang
+++ /dev/null
@@ -1,492 +0,0 @@
-module openconfig-platform-transceiver {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform/transceiver";
-
- prefix "oc-transceiver";
-
- // import some basic types
- import openconfig-platform { prefix oc-platform; }
- import openconfig-platform-port { prefix oc-port; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-transport-types { prefix oc-opt-types; }
- import openconfig-types { prefix oc-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-yang-types { prefix oc-yang; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- for transceivers (i.e., pluggable optics). The module should be
- used in conjunction with the platform model where other
- physical entity data are represented.
-
- In the platform model, a component of type=TRANSCEIVER is
- expected to be a subcomponent of a PORT component. This
- module defines a concrete schema for the associated data for
- components with type=TRANSCEIVER.";
-
- oc-ext:openconfig-version "0.5.0";
-
- revision "2018-05-15" {
- description
- "Remove internal-temp state leaf, since we prefer
- the generic /components/component/state/temperature
- container for temperature information.";
- reference "0.5.0";
- }
-
- revision "2018-01-22" {
- description
- "Fixed physical-channel path reference";
- reference "0.4.1";
- }
-
- revision "2017-09-18" {
- description
- "Use openconfig-yang-types module";
- reference "0.4.0";
- }
-
- revision "2017-07-08" {
- description
- "Adds clarification on aggregate power measurement data";
- reference "0.3.0";
- }
-
- revision "2016-12-22" {
- description
- "Adds preconfiguration data and clarified units";
- reference "0.2.0";
- }
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping optical-power-state {
- description
- "Reusable leaves related to optical power state -- these
- are read-only state values. If avg/min/max statistics are
- not supported, the target is expected to just supply the
- instant value";
-
- container output-power {
- description
- "The output optical power of a physical channel in units
- of 0.01dBm, which may be associated with individual
- physical channels, or an aggregate of multiple physical
- channels (i.e., for the overall transceiver). For an
- aggregate, this may be a measurement from a photodetector
- or a a calculation performed on the device by summing up
- all of the related individual physical channels.
- Values include the instantaneous, average, minimum, and
- maximum statistics. If avg/min/max statistics are not
- supported, the target is expected to just supply the
- instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container input-power {
- description
- "The input optical power of a physical channel in units
- of 0.01dBm, which may be associated with individual
- physical channels, or an aggregate of multiple physical
- channels (i.e., for the overall transceiver). For an
- aggregate, this may be a measurement from a photodetector
- or a a calculation performed on the device by summing up
- all of the related individual physical channels.
- Values include the instantaneous, average, minimum, and
- maximum statistics. If avg/min/max statistics are not
- supported, the target is expected to just supply the
- instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container laser-bias-current {
- description
- "The current applied by the system to the transmit laser to
- achieve the output power. The current is expressed in mA
- with up to two decimal precision. Values include the
- instantaneous, average, minimum, and maximum statistics.
- If avg/min/max statistics are not supported, the target is
- expected to just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-mA;
- }
- }
-
- grouping output-optical-frequency {
- description
- "Reusable leaves related to optical output power -- this is
- typically configurable on line side and read-only on the
- client-side";
-
- leaf output-frequency {
- type oc-opt-types:frequency-type;
- description
- "The frequency in MHz of the individual physical channel
- (e.g. ITU C50 - 195.0THz and would be reported as
- 195,000,000 MHz in this model). This attribute is not
- configurable on most client ports.";
- }
- }
-
-
- grouping physical-channel-config {
- description
- "Configuration data for physical client channels";
-
- leaf index {
- type uint16 {
- range 0..max;
- }
- description
- "Index of the physical channnel or lane within a physical
- client port";
- }
-
- leaf description {
- type string;
- description
- "Text description for the client physical channel";
- }
-
- leaf tx-laser {
- type boolean;
- description
- "Enable (true) or disable (false) the transmit label for the
- channel";
- }
-
- leaf target-output-power {
- type decimal64 {
- fraction-digits 2;
- }
- units dBm;
- description
- "Target output optical power level of the optical channel,
- expressed in increments of 0.01 dBm (decibel-milliwats)";
- }
- }
-
- grouping physical-channel-state {
- description
- "Operational state data for client channels.";
-
- uses output-optical-frequency;
- uses optical-power-state;
- }
-
- grouping physical-channel-top {
- description
- "Top-level grouping for physical client channels";
-
- container physical-channels {
- description
- "Enclosing container for client channels";
-
- list channel {
- key "index";
- description
- "List of client channels, keyed by index within a physical
- client port. A physical port with a single channel would
- have a single zero-indexed element";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the index number of the channel";
- }
-
- container config {
- description
- "Configuration data for physical channels";
-
- uses physical-channel-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for channels";
-
- uses physical-channel-config;
- uses physical-channel-state;
- }
- }
- }
- }
-
-
- grouping port-transceiver-config {
- description
- "Configuration data for client port transceivers";
-
- leaf enabled {
- type boolean;
- description
- "Turns power on / off to the transceiver -- provides a means
- to power on/off the transceiver (in the case of SFP, SFP+,
- QSFP,...) or enable high-power mode (in the case of CFP,
- CFP2, CFP4) and is optionally supported (device can choose to
- always enable). True = power on / high power, False =
- powered off";
- }
-
- leaf form-factor-preconf {
- type identityref {
- base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
- }
- description
- "Indicates the type of optical transceiver used on this
- port. If the client port is built into the device and not
- pluggable, then non-pluggable is the corresponding state. If
- a device port supports multiple form factors (e.g. QSFP28
- and QSFP+, then the value of the transceiver installed shall
- be reported. If no transceiver is present, then the value of
- the highest rate form factor shall be reported
- (QSFP28, for example).
-
- The form factor is included in configuration data to allow
- pre-configuring a device with the expected type of
- transceiver ahead of deployment. The corresponding state
- leaf should reflect the actual transceiver type plugged into
- the system.";
- }
-
- leaf ethernet-pmd-preconf {
- type identityref {
- base oc-opt-types:ETHERNET_PMD_TYPE;
- }
- description
- "The Ethernet PMD is a property of the optical transceiver
- used on the port, indicating the type of physical connection.
- It is included in configuration data to allow pre-configuring
- a port/transceiver with the expected PMD. The actual PMD is
- indicated by the ethernet-pmd state leaf.";
- }
- }
-
- grouping port-transceiver-state {
- description
- "Operational state data for client port transceivers";
-
- leaf present {
- type enumeration {
- enum PRESENT {
- description
- "Transceiver is present on the port";
- }
- enum NOT_PRESENT {
- description
- "Transceiver is not present on the port";
- }
- }
- description
- "Indicates whether a transceiver is present in
- the specified client port.";
- }
-
- leaf form-factor {
- type identityref {
- base oc-opt-types:TRANSCEIVER_FORM_FACTOR_TYPE;
- }
- description
- "Indicates the type of optical transceiver used on this
- port. If the client port is built into the device and not
- pluggable, then non-pluggable is the corresponding state. If
- a device port supports multiple form factors (e.g. QSFP28
- and QSFP+, then the value of the transceiver installed shall
- be reported. If no transceiver is present, then the value of
- the highest rate form factor shall be reported
- (QSFP28, for example).";
- }
-
- leaf connector-type {
- type identityref {
- base oc-opt-types:FIBER_CONNECTOR_TYPE;
- }
- description
- "Connector type used on this port";
- }
-
- leaf vendor {
- type string {
- length 1..16;
- }
- description
- "Full name of transceiver vendor. 16-octet field that
- contains ASCII characters, left-aligned and padded on the
- right with ASCII spaces (20h)";
- }
-
- leaf vendor-part {
- type string {
- length 1..16;
- }
- description
- "Transceiver vendor's part number. 16-octet field that
- contains ASCII characters, left-aligned and padded on the
- right with ASCII spaces (20h). If part number is undefined,
- all 16 octets = 0h";
- }
-
- leaf vendor-rev {
- type string {
- length 1..2;
- }
- description
- "Transceiver vendor's revision number. 2-octet field that
- contains ASCII characters, left-aligned and padded on the
- right with ASCII spaces (20h)";
- }
-
- //TODO: these compliance code leaves should be active based on
- //the type of port
- leaf ethernet-pmd {
- type identityref {
- base oc-opt-types:ETHERNET_PMD_TYPE;
- }
- description
- "Ethernet PMD (physical medium dependent sublayer) that the
- transceiver supports. The SFF/QSFP MSAs have registers for
- this and CFP MSA has similar.";
- }
-
- leaf sonet-sdh-compliance-code {
- type identityref {
- base oc-opt-types:SONET_APPLICATION_CODE;
- }
- description
- "SONET/SDH application code supported by the port";
- }
-
- leaf otn-compliance-code {
- type identityref {
- base oc-opt-types:OTN_APPLICATION_CODE;
- }
- description
- "OTN application code supported by the port";
- }
-
- leaf serial-no {
- type string {
- length 1..16;
- }
- description
- "Transceiver serial number. 16-octet field that contains
- ASCII characters, left-aligned and padded on the right with
- ASCII spaces (20h). If part serial number is undefined, all
- 16 octets = 0h";
- }
-
- leaf date-code {
- type oc-yang:date-and-time;
- description
- "Representation of the transceiver date code, typically
- stored as YYMMDD. The time portion of the value is
- undefined and not intended to be read.";
- }
-
- leaf fault-condition {
- type boolean;
- description
- "Indicates if a fault condition exists in the transceiver";
- }
-
- uses optical-power-state;
-
- }
-
- grouping port-transceiver-top {
- description
- "Top-level grouping for client port transceiver data";
-
- container transceiver {
- description
- "Top-level container for client port transceiver data";
-
- container config {
- description
- "Configuration data for client port transceivers";
-
- uses port-transceiver-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for client port transceivers";
-
- uses port-transceiver-config;
- uses port-transceiver-state;
- }
- // physical channels are associated with a transceiver
- // component
- uses physical-channel-top;
- }
- }
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component" {
- description
- "Adding transceiver data to physical inventory";
-
- uses port-transceiver-top {
- when "current()/oc-platform:state/" +
- "oc-platform:type = 'TRANSCEIVER'" {
- description
- "Augment is active when component is of type TRANSCEIVER";
- }
- }
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
- //TODO: add 'when' or other condition to make sure this
- //leafref points to a component of type TRANSCEIVER.
- description
- "Adds a reference from the base interface to its corresponding
- physical channels.";
-
- leaf-list physical-channel {
- type leafref {
- path "/oc-platform:components/" +
- "oc-platform:component[oc-platform:name=current()/../oc-port:hardware-port]/" +
- "oc-transceiver:transceiver/" +
- "oc-transceiver:physical-channels/oc-transceiver:channel/" +
- "oc-transceiver:index";
- }
- description
- "For a channelized interface, list of references to the
- physical channels (lanes) corresponding to the interface.";
- }
- }
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-platform-types.yang b/src/plugins/yang/openconfig/openconfig-platform-types.yang
deleted file mode 100644
index a997439..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform-types.yang
+++ /dev/null
@@ -1,271 +0,0 @@
-module openconfig-platform-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform-types";
-
- prefix "oc-platform-types";
-
- import openconfig-types { prefix oc-types; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines data types (e.g., YANG identities)
- to support the OpenConfig component inventory model.";
-
- oc-ext:openconfig-version "0.9.0";
-
- revision "2018-05-05" {
- description
- "Added min-max-time to
- avg-min-max-instant-stats-precision1-celsius,
- added new CONTROLLER_CARD identity";
- reference "0.9.0";
- }
-
- revision "2018-01-16" {
- description
- "Added new per-component common data; add temp alarm";
- reference "0.8.0";
- }
-
- revision "2017-12-14" {
- description
- "Added anchor containers for component data, added new
- component types";
- reference "0.7.0";
- }
-
- revision "2017-08-16" {
- description
- "Added power state enumerated type";
- reference "0.6.0";
- }
-
- revision "2016-12-22" {
- description
- "Added temperature state variable to component";
- reference "0.5.0";
- }
-
- // grouping statements
-
-
- grouping avg-min-max-instant-stats-precision1-celsius {
- description
- "Common grouping for recording temperature values in
- Celsius with 1 decimal precision. Values include the
- instantaneous, average, minimum, and maximum statistics";
-
- leaf instant {
- type decimal64 {
- fraction-digits 1;
- }
- units celsius;
- description
- "The instantaneous value of the statistic.";
- }
-
- leaf avg {
- type decimal64 {
- fraction-digits 1;
- }
- units celsius;
- description
- "The arithmetic mean value of the statistic over the
- sampling period.";
- }
-
- leaf min {
- type decimal64 {
- fraction-digits 1;
- }
- units celsius;
- description
- "The minimum value of the statistic over the sampling
- period";
- }
-
- leaf max {
- type decimal64 {
- fraction-digits 1;
- }
- units celsius;
- description
- "The maximum value of the statistic over the sampling
- period";
- }
-
- uses oc-types:stat-interval-state;
- uses oc-types:min-max-time;
- }
-
- // identity statements
-
- identity OPENCONFIG_HARDWARE_COMPONENT {
- description
- "Base identity for hardware related components in a managed
- device. Derived identities are partially based on contents
- of the IANA Entity MIB.";
- reference
- "IANA Entity MIB and RFC 6933";
- }
-
-
- identity OPENCONFIG_SOFTWARE_COMPONENT {
- description
- "Base identity for software-related components in a managed
- device";
- }
-
- // hardware types
-
- identity CHASSIS {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Chassis component, typically with multiple slots / shelves";
- }
-
- identity BACKPLANE {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Backplane component for aggregating traffic, typically
- contained in a chassis component";
- }
-
- identity FABRIC {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Interconnect between ingress and egress ports on the
- device (e.g., a crossbar switch).";
- }
-
- identity POWER_SUPPLY {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Component that is supplying power to the device";
- }
-
- identity FAN {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Cooling fan, or could be some other heat-reduction component";
- }
-
- identity SENSOR {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Physical sensor, e.g., a temperature sensor in a chassis";
- }
-
- identity FRU {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Replaceable hardware component that does not have a more
- specific defined schema.";
- }
-
- identity LINECARD {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Linecard component, typically inserted into a chassis slot";
- }
-
- identity CONTROLLER_CARD {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "A type of linecard whose primary role is management or control
- rather than data forwarding.";
- }
-
- identity PORT {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Physical port, e.g., for attaching pluggables and networking
- cables";
- }
-
- identity TRANSCEIVER {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Pluggable module present in a port";
- }
-
- identity CPU {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Processing unit, e.g., a management processor";
- }
-
- identity STORAGE {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "A storage subsystem on the device (disk, SSD, etc.)";
- }
-
- identity INTEGRATED_CIRCUIT {
- base OPENCONFIG_HARDWARE_COMPONENT;
- description
- "A special purpose processing unit, typically for traffic
- switching/forwarding (e.g., switching ASIC, NPU, forwarding
- chip, etc.)";
- }
-
- identity OPERATING_SYSTEM {
- base OPENCONFIG_SOFTWARE_COMPONENT;
- description
- "Operating system running on a component";
- }
-
-
- identity COMPONENT_OPER_STATUS {
- description
- "Current operational status of a platform component";
- }
-
- identity ACTIVE {
- base COMPONENT_OPER_STATUS;
- description
- "Component is enabled and active (i.e., up)";
- }
-
- identity INACTIVE {
- base COMPONENT_OPER_STATUS;
- description
- "Component is enabled but inactive (i.e., down)";
- }
-
- identity DISABLED {
- base COMPONENT_OPER_STATUS;
- description
- "Component is administratively disabled.";
- }
-
- // typedef statements
-
- typedef component-power-type {
- type enumeration {
- enum POWER_ENABLED {
- description
- "Enable power on the component";
- }
- enum POWER_DISABLED {
- description
- "Disable power on the component";
- }
- }
- description
- "A generic type reflecting whether a hardware component
- is powered on or off";
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-platform.yang b/src/plugins/yang/openconfig/openconfig-platform.yang
deleted file mode 100644
index 399cf24..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform.yang
+++ /dev/null
@@ -1,762 +0,0 @@
-module openconfig-platform {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform";
-
- prefix "oc-platform";
-
- import openconfig-platform-types { prefix oc-platform-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-alarm-types { prefix oc-alarm-types; }
- import openconfig-yang-types { prefix oc-yang; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines a data model for representing a system
- component inventory, which can include hardware or software
- elements arranged in an arbitrary structure. The primary
- relationship supported by the model is containment, e.g.,
- components containing subcomponents.
-
- It is expected that this model reflects every field replacable
- unit on the device at a minimum (i.e., additional information
- may be supplied about non-replacable components).
-
- Every element in the inventory is termed a 'component' with each
- component expected to have a unique name and type, and optionally
- a unique system-assigned identifier and FRU number. The
- uniqueness is guaranteed by the system within the device.
-
- Components may have properties defined by the system that are
- modeled as a list of key-value pairs. These may or may not be
- user-configurable. The model provides a flag for the system
- to optionally indicate which properties are user configurable.
-
- Each component also has a list of 'subcomponents' which are
- references to other components. Appearance in a list of
- subcomponents indicates a containment relationship as described
- above. For example, a linecard component may have a list of
- references to port components that reside on the linecard.
-
- This schema is generic to allow devices to express their own
- platform-specific structure. It may be augmented by additional
- component type-specific schemas that provide a common structure
- for well-known component types. In these cases, the system is
- expected to populate the common component schema, and may
- optionally also represent the component and its properties in the
- generic structure.
-
- The properties for each component may include dynamic values,
- e.g., in the 'state' part of the schema. For example, a CPU
- component may report its utilization, temperature, or other
- physical properties. The intent is to capture all platform-
- specific physical data in one location, including inventory
- (presence or absence of a component) and state (physical
- attributes or status).";
-
- oc-ext:openconfig-version "0.12.0";
-
- revision "2018-06-29" {
- description
- "Added location description for components";
- reference "0.12.0";
- }
-
- revision "2018-06-03" {
- description
- "Added parent reference, empty flag and preconfiguration
- for components";
- reference "0.11.0";
- }
-
- revision "2018-04-20" {
- description
- "Added new per-component state data: mfg-date and removable";
- reference "0.10.0";
- }
-
- revision "2018-01-30" {
- description
- "Amended approach for modelling CPU - rather than having
- a local CPU utilisation state variable, a component with
- a CPU should create a subcomponent of type CPU to report
- statistics.";
- reference "0.9.0";
- }
-
- revision "2018-01-16" {
- description
- "Added new per-component common data; add temp alarm;
- moved hardware-port reference to port model";
- reference "0.8.0";
- }
-
- revision "2017-12-14" {
- description
- "Added anchor containers for component data, added new
- component types";
- reference "0.7.0";
- }
-
- revision "2017-08-16" {
- description
- "Added power state enumerated type";
- reference "0.6.0";
- }
-
- revision "2016-12-22" {
- description
- "Added temperature state variable to component";
- reference "0.5.0";
- }
-
- // grouping statements
-
-
- grouping platform-component-properties-config {
- description
- "System-defined configuration data for component properties";
-
- leaf name {
- type string;
- description
- "System-supplied name of the property -- this is typically
- non-configurable";
- }
-
- leaf value {
- type union {
- type string;
- type boolean;
- type int64;
- type uint64;
- type decimal64 {
- fraction-digits 2;
- }
- }
- description
- "Property values can take on a variety of types. Signed and
- unsigned integer types may be provided in smaller sizes,
- e.g., int8, uint16, etc.";
- }
- }
-
- grouping platform-component-properties-state {
- description
- "Operational state data for component properties";
-
- leaf configurable {
- type boolean;
- description
- "Indication whether the property is user-configurable";
- }
- }
-
- grouping platform-component-properties-top {
- description
- "Top-level grouping ";
-
- container properties {
- description
- "Enclosing container ";
-
- list property {
- key "name";
- description
- "List of system properties for the component";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the property name.";
- }
-
- container config {
- description
- "Configuration data for each property";
-
- uses platform-component-properties-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for each property";
-
- uses platform-component-properties-config;
- uses platform-component-properties-state;
- }
- }
- }
- }
-
- grouping platform-subcomponent-ref-config {
- description
- "Configuration data for subcomponent references";
-
- leaf name {
- type leafref {
- path "../../../../../component/config/name";
- }
- description
- "Reference to the name of the subcomponent";
- }
- }
-
- grouping platform-subcomponent-ref-state {
- description
- "Operational state data for subcomponent references";
-
- }
-
- grouping platform-subcomponent-ref-top {
- description
- "Top-level grouping for list of subcomponent references";
-
- container subcomponents {
- description
- "Enclosing container for subcomponent references";
-
- list subcomponent {
- key "name";
- description
- "List of subcomponent references";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the name list key";
- }
-
- container config {
- description
- "Configuration data for the subcomponent";
-
- uses platform-subcomponent-ref-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the subcomponent";
-
- uses platform-subcomponent-ref-config;
- uses platform-subcomponent-ref-state;
- }
- }
- }
- }
-
- grouping platform-component-config {
- description
- "Configuration data for components";
-
- leaf name {
- type string;
- description
- "Device name for the component -- this may not be a
- configurable parameter on many implementations. Where
- component preconfiguration is supported, for example,
- the component name may be configurable.";
- }
- }
-
- grouping platform-component-state {
- description
- "Operational state data for device components.";
-
- leaf type {
- type union {
- type identityref {
- base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
- }
- type identityref {
- base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT;
- }
- }
- description
- "Type of component as identified by the system";
- }
-
- leaf id {
- type string;
- description
- "Unique identifier assigned by the system for the
- component";
- }
-
- leaf location {
- type string;
- description
- "System-supplied description of the location of the
- component within the system. This could be a bay position,
- slot number, socket location, etc. For component types that
- have an explicit slot-id attribute, such as linecards, the
- system should populate the more specific slot-id.";
- }
-
- leaf description {
- type string;
- description
- "System-supplied description of the component";
- }
-
- leaf mfg-name {
- type string;
- description
- "System-supplied identifier for the manufacturer of the
- component. This data is particularly useful when a
- component manufacturer is different than the overall
- device vendor.";
- }
-
- leaf mfg-date {
- type oc-yang:date;
- description
- "System-supplied representation of the component's
- manufacturing date.";
- }
-
- leaf hardware-version {
- type string;
- description
- "For hardware components, this is the hardware revision of
- the component.";
- }
-
- leaf firmware-version {
- type string;
- description
- "For hardware components, this is the version of associated
- firmware that is running on the component, if applicable.";
- }
-
- leaf software-version {
- type string;
- description
- "For software components such as operating system or other
- software module, this is the version of the currently
- running software.";
- }
-
- leaf serial-no {
- type string;
- description
- "System-assigned serial number of the component.";
- }
-
- leaf part-no {
- type string;
- description
- "System-assigned part number for the component. This should
- be present in particular if the component is also an FRU
- (field replaceable unit)";
- }
-
- leaf removable {
- type boolean;
- description
- "If true, this component is removable or is a field
- replaceable unit";
- }
-
- leaf oper-status {
- type identityref {
- base oc-platform-types:COMPONENT_OPER_STATUS;
- }
- description
- "If applicable, this reports the current operational status
- of the component.";
- }
-
- leaf empty {
- type boolean;
- default false;
- description
- "The empty leaf may be used by the device to indicate that a
- component position exists but is not populated. Using this
- flag, it is possible for the management system to learn how
- many positions are available (e.g., occupied vs. empty
- linecard slots in a chassis).";
- }
-
- leaf parent {
- type leafref {
- path "../../config/name";
- }
- description
- "Reference to the name of the parent component. Note that
- this reference must be kept synchronized with the
- corresponding subcomponent reference from the parent
- component.";
- }
- }
-
- grouping platform-component-temp-alarm-state {
- description
- "Temperature alarm data for platform components";
-
- // TODO(aashaikh): consider if these leaves could be in a
- // reusable grouping (not temperature-specific); threshold
- // may always need to be units specific.
-
- leaf alarm-status {
- type boolean;
- description
- "A value of true indicates the alarm has been raised or
- asserted. The value should be false when the alarm is
- cleared.";
- }
-
- leaf alarm-threshold {
- type uint32;
- description
- "The threshold value that was crossed for this alarm.";
- }
-
- leaf alarm-severity {
- type identityref {
- base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
- }
- description
- "The severity of the current alarm.";
- }
- }
-
- grouping platform-component-power-state {
- description
- "Power-related operational state for device components.";
-
- leaf allocated-power {
- type uint32;
- units watts;
- description
- "Power allocated by the system for the component.";
- }
-
- leaf used-power {
- type uint32;
- units watts;
- description
- "Actual power used by the component.";
- }
- }
-
- grouping platform-component-temp-state {
- description
- "Temperature state data for device components";
-
- container temperature {
- description
- "Temperature in degrees Celsius of the component. Values include
- the instantaneous, average, minimum, and maximum statistics. If
- avg/min/max statistics are not supported, the target is expected
- to just supply the instant value";
-
- uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius;
- uses platform-component-temp-alarm-state;
- }
- }
-
- grouping platform-component-memory-state {
- description
- "Per-component memory statistics";
-
- container memory {
- description
- "For components that have associated memory, these values
- report information about available and utilized memory.";
-
- leaf available {
- type uint64;
- units bytes;
- description
- "The available memory physically installed, or logically
- allocated to the component.";
- }
-
- // TODO(aashaikh): consider if this needs to be a
- // min/max/avg statistic
- leaf utilized {
- type uint64;
- units bytes;
- description
- "The memory currently in use by processes running on
- the component, not considering reserved memory that is
- not available for use.";
- }
- }
- }
-
- grouping platform-anchors-top {
- description
- "This grouping is used to add containers for components that
- are common across systems, but do not have a defined schema
- within the openconfig-platform module. Containers should be
- added to this grouping for components that are expected to
- exist in multiple systems, with corresponding modules
- augmenting the config/state containers directly.";
-
- container chassis {
- description
- "Data for chassis components";
-
- container config {
- description
- "Configuration data for chassis components";
- }
-
- container state {
- config false;
- description
- "Operational state data for chassis components";
- }
- }
-
-// TODO(aashaikh): linecard container is already defined in
-// openconfig-platform-linecard; will move to this module
-// in future.
- /*
- container linecard {
- description
- "Data for linecard components";
-
- container config {
- description
- "Configuration data for linecard components";
- }
-
- container state {
- config false;
- description
- "Operational state data for linecard components";
- }
- }
- */
-
- container port {
- description
- "Data for physical port components";
-
- container config {
- description
- "Configuration data for physical port components";
- }
-
- container state {
- config false;
- description
- "Operational state data for physical port components";
- }
- }
-
-// TODO(aashaikh): transceiver container is already defined in
-// openconfig-platform-transceiver; will move to this module
-// in future.
- /*
- container transceiver {
- description
- "Data for transceiver components";
-
- container config {
- description
- "Configuration data for transceiver components";
- }
-
- container state {
- config false;
- description
- "Operational state data for transceiver components";
- }
- }
- */
-
- container power-supply {
- description
- "Data for power supply components";
-
- container config {
- description
- "Configuration data for power supply components";
- }
-
- container state {
- config false;
- description
- "Operational state data for power supply components";
- }
- }
-
- container fan {
- description
- "Data for fan components";
-
- container config {
- description
- "Configuration data for fan components";
- }
-
- container state {
- config false;
- description
- "Operational state data for fan components";
- }
- }
-
- container fabric {
- description
- "Data for fabric components";
-
- container config {
- description
- "Configuration data for fabric components";
- }
-
- container state {
- config false;
- description
- "Operational state data for fabric components";
- }
- }
-
- container storage {
- description
- "Data for storage components";
-
- container config {
- description
- "Configuration data for storage components";
- }
-
- container state {
- config false;
- description
- "Operational state data for storage components";
- }
- }
-
- container cpu {
- description
- "Data for cpu components";
-
- container config {
- description
- "Configuration data for cpu components";
- }
-
- container state {
- config false;
- description
- "Operational state data for cpu components";
- }
- }
-
- container integrated-circuit {
- description
- "Data for chip components, such as ASIC, NPUs, etc.";
-
- container config {
- description
- "Configuration data for chip components";
- }
-
- container state {
- config false;
- description
- "Operational state data for chip components";
- }
- }
-
- container backplane {
- description
- "Data for backplane components";
-
- container config {
- description
- "Configuration data for backplane components";
- }
-
- container state {
- config false;
- description
- "Operational state data for backplane components";
- }
- }
- }
-
- grouping platform-component-top {
- description
- "Top-level grouping for components in the device inventory";
-
- container components {
- description
- "Enclosing container for the components in the system.";
-
- list component {
- key "name";
- description
- "List of components, keyed by component name.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "References the component name";
- }
-
- container config {
- description
- "Configuration data for each component";
-
- uses platform-component-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for each component";
-
- uses platform-component-config;
- uses platform-component-state;
- uses platform-component-temp-state;
- uses platform-component-memory-state;
- uses platform-component-power-state;
- }
-
- uses platform-component-properties-top;
- uses platform-subcomponent-ref-top;
- uses platform-anchors-top;
- }
- }
- }
-
-
- // data definition statements
-
- uses platform-component-top;
-
-
- // augments
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-policy-forwarding.yang b/src/plugins/yang/openconfig/openconfig-policy-forwarding.yang
deleted file mode 100644
index 63dbf78..0000000
--- a/src/plugins/yang/openconfig/openconfig-policy-forwarding.yang
+++ /dev/null
@@ -1,119 +0,0 @@
-module openconfig-policy-forwarding {
- yang-version "1";
-
- namespace "http://openconfig.net/yang/policy-forwarding";
-
- prefix "oc-pf";
-
- import openconfig-extensions { prefix "oc-ext"; }
-
- // Include submodules.
- include openconfig-pf-forwarding-policies;
- include openconfig-pf-path-groups;
- include openconfig-pf-interfaces;
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- relating to policy-based forwarding. Policy-based forwarding is
- utilised when a system chooses how to forward packets (including
- applying data-plane operations such as encapsulation or
- decapsulation) based on policies other than destination L2 or L3
- header. Typically, systems may implement:
-
- - IP policy-based routing, where routing may be done based on the
- source plus destination of an IP packet; information within the
- L4 header; or some combination of both.
- - Encapsulation or decapsulation based on certain policy
- information - for example, matching particular IP destinations
- and decapsulating GRE headers.
- - Class-based selection of egress routes - such as class-based
- selection of an egress MPLS path.
-
- The policies that are defined in this model are applied to a
- particular ingress context of a network element (e.g., interface)
- and are defined to apply following other interface policy such as
- QoS classification and access control lists.
-
- This module defines:
-
- - policy-forwarding
- |
- |--- policies
- | |-- policy
- | |-- [match criteria] How packets are defined to
- | | match policy.
- | |-- [forwarding-action] How packets matching should
- | be forwarded.
- |--- interfaces
- | |-- interfaces
- | | -- apply-forwarding-policy Forwarding policy to
- | used on the interface.
- |--- path-selection-groups
- |-- path-selection-group A group of forwarding resources
- that are grouped for purposes
- of next-hop selection.
-
- A forwarding-policy specifies the match criteria that it intends
- to use to determine the packets that it reroutes - this may
- consist of a number of criteria, such as DSCP. The action of the
- policy results in a forwarding action being applied to matching
- packets. For example, decapsulating the packet from a GRE header.
- In order to enact the policy based on particular interfaces - the
- forwarding-policy is applied to an interface via referencing it
- within an 'apply-forwarding-policy' statement associated with an
- interface.
-
- In some cases (e.g., Class-Based Tunnel Selection) the forwarding
- action does not resolve to a single egress action, and rather
- normal forwarding rules are to be applied but considering a subset
- of forwarding resources. In these cases, a path-selection-group
- can be created, referencing the subset of forwarding paths that
- should be used for the egress selection. In the case that a subset
- of MPLS LSPs are eligible for, say, DSCP 46 marked packets, a
- path-selection-group is created, referencing the subset of LSPs.
- The forwarding action of the corresponding policy is set to
- PATH_GROUP and references the configured group of LSPs.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2017-06-21" {
- description
- "Amend policy forwarding model based on ACL changes.";
- reference "0.2.0";
- }
-
- revision "2017-02-28" {
- description
- "Initial public release of policy forwarding.";
- reference "0.1.0";
- }
-
- revision "2016-11-08" {
- description
- "Initial revision.";
- reference "0.0.1";
- }
-
-
- grouping policy-forwarding-top {
- description
- "Top-level grouping for Policy Forwarding";
-
- container policy-forwarding {
- description
- "Configuration and operational state relating to policy-forwarding within
- a network instance.";
-
- uses pf-forwarding-policy-structural;
- uses pf-interfaces-structural;
- uses pf-path-groups-structural;
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-probes-types.yang b/src/plugins/yang/openconfig/openconfig-probes-types.yang
deleted file mode 100644
index 0b4e1bd..0000000
--- a/src/plugins/yang/openconfig/openconfig-probes-types.yang
+++ /dev/null
@@ -1,75 +0,0 @@
-module openconfig-probes-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/probes/types";
-
- prefix "oc-probes-types";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines types related to the probes.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2017-09-05" {
- description
- "Initial public revision";
- reference "0.1.0";
- }
-
- typedef test-type {
- type enumeration {
- enum ICMP {
- description
- "Send ICMP echo requests.";
- }
- enum ICMP6 {
- description
- "Send ICMP6 echo requests.";
- }
- enum ICMP_TIMESTAMP {
- description
- "Send ICMP timestamp requests.";
- }
- enum ICMP6_TIMESTAMP {
- description
- "Sedn ICMP6 timestamp requests.";
- }
- enum TCP {
- description
- "Send TPC packets.";
- }
- enum UDP {
- description
- "Send UDP packets.";
- }
- enum UDP_TIMESTAMP {
- description
- "Send UDP packets with timestamp.";
- }
- enum HTTP_GET {
- description
- "Execute HTTP GET requests.";
- }
- enum HTTP_GET_META {
- description
- "Execute HTTP GET requests of metadata.";
- }
- }
- description
- "Type definition with enumerations describing the basis of
- the probe test type identifier";
- }
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-probes.yang b/src/plugins/yang/openconfig/openconfig-probes.yang
deleted file mode 100644
index 8c179f3..0000000
--- a/src/plugins/yang/openconfig/openconfig-probes.yang
+++ /dev/null
@@ -1,569 +0,0 @@
-module openconfig-probes {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/probes";
-
- prefix "oc-probes";
-
- import ietf-yang-types { prefix yang; }
- import openconfig-types { prefix oc-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-probes-types { prefix oc-probes-types; }
-
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- for the probes.
- A probe consists on a group of tests, each test being a
- source-destination pair to poll. The destination can be either
- IP Address (and eventually port) or URL, depending on the
- nature of the test. The test can send ICMP, UDP, TCP, or HTTP
- requests.
- Each test groups a list of test items, the test results
- being an overall view or average of the items list.
- However, the test preserves only a limited set of history
- items, whose length can be controlled using the history-size.";
-
- oc-ext:openconfig-version "0.0.1";
-
- revision "2017-09-05" {
- description
- "Initial public revision";
- reference "0.0.1";
- }
-
-grouping test-target {
- description
- "Groups the config and state containers
- for an individual test.";
-
- container target {
- description
- "The target configuration of the test.
- The nature of the target depends on the probe type:
- for HTTP probes we need to provide an URL to poll,
- while ICMP probes require an IP address to monitor.";
-
- container config {
- description
- "Configuration data for the test target.";
-
- uses test-target-base;
- }
-
- container state {
- config false;
-
- description
- "Operational data for the test target.";
-
- uses test-target-base;
- }
-
- }
-
-}
-
- grouping test-target-base {
- description
- "Targe types for the probe test.";
-
- leaf address {
- type oc-inet:ip-address;
- description
- "IP address of the target, either IPv4 or IPv6.";
- }
-
- leaf port {
- type oc-inet:port-number;
- description
- "Destination port.";
- }
-
- leaf url {
- type oc-inet:url;
- description
- "Target URL to probe.";
- }
-
-}
-
- grouping probe-test-config-base {
- description
- "Definition of test details.";
-
- leaf test-type {
- type oc-probes-types:test-type;
- description
- "The type of the probe test.";
- mandatory true;
- }
-
- leaf count {
- type yang:counter64;
- description
- "The number of probes per test.";
- }
-
- leaf interval {
- type yang:counter64;
- description
- "Time between two consecutive probes.";
- }
-
- leaf source {
- type oc-inet:ip-address;
- description
- "Source address used when probing, either IPv4 or IPv6.";
- }
-
- leaf history-size {
- type yang:counter64;
- description
- "The number of history entries stored.";
- }
-
- leaf source-port {
- type oc-inet:port-number;
- description
- "Source number used.";
- }
-
- leaf dscp {
- type oc-inet:dscp;
- description
- "DSCP code points";
- }
-
- }
-
- grouping probe-test-state-history-item-base {
- description
- "The test item results counters and statistics.
- An item presents the results of a single execution
- of the test.
- The results of the test depend on the values
- of the total items, or an average over a certain
- period of time.";
-
- leaf id {
- type yang:counter64;
- description
- "The test item ID.";
- }
-
- leaf timestamp {
- type oc-types:timeticks64;
- description
- "The test timestamp.
- This is not the timestamp when the test
- was actually executed nither when it finished.
- Should be the timestamp when the test has been scheduled.
- It may not be the same with start-timestamp.";
- }
-
- leaf start-timestamp {
- type oc-types:timeticks64;
- description
- "The timestamp when the test started.";
- }
-
- leaf end-timestamp {
- type oc-types:timeticks64;
- description
- "The timestamp when the test finished.";
- }
-
- leaf test-duration {
- type yang:counter64;
- description
- "The duration of the test, in microseconds.";
- }
-
- leaf failed {
- type boolean;
- description
- "Whether the test failed or succeeded.";
- }
-
- leaf probes-sent {
- type yang:counter64;
- description
- "Number of test probes sent.";
- }
-
- leaf probes-received {
- type yang:counter64;
- description
- "Number of test probes received.";
- }
-
- leaf loss-percentage {
- type oc-types:percentage;
- description
- "The loss percentage.";
- }
-
- leaf jitter {
- type yang:counter64;
- description
- "The round trip jitter, in microseconds.";
- }
-
- leaf min-delay {
- type yang:counter64;
- description
- "The minimum delay recorded during the test, in microseconds.";
- }
-
- leaf max-delay {
- type yang:counter64;
- description
- "The maximum delay recorded during the test, in microseconds.";
- }
-
- leaf avg-delay {
- type yang:counter64;
- description
- "The average delay recorded during the test, in microseconds.";
- }
-
- leaf stddev-delay {
- type yang:counter64;
- description
- "The standard deviation of the delay of the test.";
- }
-
- }
-
- grouping probe-test-state-history-item {
- description
- "A history item of the probe results.";
-
- container state {
-
- config false;
-
- description
- "A history item of the probe results: operational data only.";
-
- uses probe-test-state-history-item-base;
- }
-
- }
-
- grouping probe-test-state-history {
-
- description
- "The history of the test results.";
-
- container items {
-
- description
- "The list of items in the probe history.
- The length depends on the history size.";
-
- list item {
- key "id";
- description
- "List of history items.";
-
- leaf id {
- type leafref {
- path "../state/id";
- }
- description
- "Reference to the history entry ID.";
- }
-
- uses probe-test-state-history-item;
- }
-
- }
-
- }
-
- grouping probe-test-state-results {
- description
- "The test results counters and statistics.";
-
- leaf timestamp {
- type oc-types:timeticks64;
- description
- "The test timestamp.
- This is not the timestamp when the test
- was actually executed nither when it finished.
- Should be the timestamp when the test has been scheduled.
- It may not be the same with start-timestamp.";
- }
-
- leaf start-timestamp {
- type oc-types:timeticks64;
- description
- "The timestamp when the test started.";
- }
-
- leaf last-test-timestamp {
- type oc-types:timeticks64;
- description
- "The timestamp when the test finished.";
- }
-
- leaf test-duration {
- type yang:counter64;
- description
- "The duration of the test, in microseconds.";
- }
-
- leaf failed {
- type boolean;
- description
- "Whether the test failed or succeeded.";
- }
-
- leaf probes-sent {
- type yang:counter64;
- description
- "Number of test probes sent.";
- }
-
- leaf probes-received {
- type yang:counter64;
- description
- "Number of test probes received.";
- }
-
- leaf loss-percentage {
- type oc-types:percentage;
- description
- "The loss percentage.";
- }
-
- leaf jitter {
- type yang:counter64;
- description
- "The round trip jitter, in microseconds.";
- }
-
- leaf min-delay {
- type yang:counter64;
- description
- "The minimum delay recorded during the test, in microseconds.";
- }
-
- leaf max-delay {
- type yang:counter64;
- description
- "The maximum delay recorded during the test, in microseconds.";
- }
-
- leaf avg-delay {
- type yang:counter64;
- description
- "The average delay recorded during the test, in microseconds.";
- }
-
- leaf stddev-delay {
- type yang:counter64;
- description
- "The standard deviation of the delay of the test.";
- }
-
-
- }
-
- grouping probe-test-state {
-
- description
- "Operational data and results for the probes.";
-
- }
-
- grouping probe-test-config {
- description
- "Definition of test details.";
-
- leaf name {
- type string;
- description
- "The name of the test probe";
- mandatory true;
- }
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Whether the test is enabled.";
- }
-
- uses probe-test-config-base;
-
- }
-
- grouping probe-tests-top {
- description
- "Top-level grouping for the tests withing a probe.";
-
- list test {
- key "name";
- description
- "List of tests associated with this probe.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for the test of this probe.";
-
- uses probe-test-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data";
-
- uses probe-test-config;
- uses probe-test-state;
- }
-
- uses test-target;
-
- container results {
- description
- "Contains the results of the tests.";
-
- container state {
-
- config false;
-
- description
- "Results of this test: operational data only";
-
- uses probe-test-state-results;
- }
-
- container history {
-
- config false;
-
- description
- "Historical data of the tests.";
-
- uses probe-test-state-history;
- }
-
- }
-
- }
- // end list of probes
-
- }
-
- grouping probe-config {
- description
- "Definition of probe details.";
-
- leaf name {
- type string;
- description
- "The name of the probe.";
- mandatory true;
- }
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Whether the probe is enabled.";
- }
-
- }
-
- grouping probe-state {
- description
- "Definition of probes operation data.";
- }
-
- grouping probes-top {
- description
- "Top-level grouping for probes model";
-
- list probe {
- key "name";
- description
- "List of probes configured.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for the probes.";
-
- uses probe-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data";
-
- uses probe-config;
- uses probe-state;
- }
-
- container tests {
-
- description
- "The tests associated to be executed for the probe.";
-
- uses probe-tests-top;
- }
-
- }
- // end list of probes
-
- }
-
- grouping openconfig-probes-top {
-
- description
- "The top level grouping of the probes model.";
-
- container probes {
- description
- "The container containing the list of probes.";
-
- uses probes-top;
- }
-
- }
-
- uses openconfig-probes-top;
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-procmon.yang b/src/plugins/yang/openconfig/openconfig-procmon.yang
deleted file mode 100644
index fa3bbde..0000000
--- a/src/plugins/yang/openconfig/openconfig-procmon.yang
+++ /dev/null
@@ -1,165 +0,0 @@
-module openconfig-procmon {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/system/procmon";
-
- prefix "oc-proc";
-
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-types { prefix oc-types; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module provides data definitions for process health
- monitoring of one or more processes running on the system.";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2017-09-18" {
- description
- "Updated to use OpenConfig types modules";
- reference "0.3.0";
- }
-
- revision "2017-07-06" {
- description
- "Move to oc-inet types, add IETF attribution, add RADIUS
- counters, changed password leaf names to indicate hashed";
- reference "0.2.0";
- }
-
- revision "2017-01-29" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
-
- // grouping statements
-
- grouping procmon-processes-top {
- description
- "Top level grouping for attributes for processes.";
-
- container processes {
- description
- "Parameters related to all monitored processes";
-
- list process {
- key "pid";
- config false;
- description
- "List of monitored processes";
-
- leaf pid {
- type leafref {
- path "../state/pid";
- }
- description
- "Reference to the process pid key";
- }
-
- container state {
- config false;
- description
- "State parameters related to monitored processes";
-
- uses procmon-process-attributes-state;
- }
- }
- }
- }
-
- grouping procmon-process-attributes-state {
- description
- "Attributes state definitions for a process";
-
- leaf pid {
- type uint64;
- description
- "The process pid";
- }
-
- leaf name {
- type string;
- description
- "The process name";
- }
-
- leaf-list args {
- type string;
- description
- "Current process command line arguments. Arguments with
- a parameter (e.g., --option 10 or -option=10) should be
- represented as a single element of the list with the
- argument name and parameter together. Flag arguments, i.e.,
- those without a parameter should also be in their own list
- element.";
- }
-
- leaf start-time {
- type uint64;
- units "ns";
- description
- "The time at which this process started,
- reported as nanoseconds since the UNIX epoch. The
- system must be synchronized such that the start-time
- can be reported accurately, otherwise it should not be
- reported.";
- }
-
- leaf uptime {
- type oc-types:timeticks64;
- description
- "Amount of time elapsed since this process started.";
- }
-
- leaf cpu-usage-user {
- type oc-types:timeticks64;
- description
- "CPU time consumed by this process in user mode.";
- }
-
- leaf cpu-usage-system {
- type oc-types:timeticks64;
- description
- "CPU time consumed by this process in kernel mode.";
- }
-
- leaf cpu-utilization {
- type oc-types:percentage;
- description
- "The percentage of CPU that is being used by the process.";
- }
-
- leaf memory-usage {
- type uint64;
- units "bytes";
- description
- "Bytes allocated and still in use by the process";
- }
-
- leaf memory-utilization {
- type oc-types:percentage;
- description
- "The percentage of RAM that is being used by the process.";
- }
- }
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-}
diff --git a/src/plugins/yang/openconfig/openconfig-qos-elements.yang b/src/plugins/yang/openconfig/openconfig-qos-elements.yang
deleted file mode 100644
index b862db2..0000000
--- a/src/plugins/yang/openconfig/openconfig-qos-elements.yang
+++ /dev/null
@@ -1,1304 +0,0 @@
-submodule openconfig-qos-elements {
-
- belongs-to openconfig-qos {
- prefix "oc-qos";
- }
-
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-qos-types { prefix oc-qos-types; }
- import openconfig-packet-match { prefix oc-pkt-match; }
- import openconfig-platform { prefix oc-platform; }
- import openconfig-types { prefix oc-types; }
-
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This submodule defines configuration and operational state
- data associated with QoS elements. The primary elements of
- the model include:
-
- classifiers: match packets with a specific characteristic
-
- forwarding groups: logical class of packets that receive
- common forwarding treatment
-
- queues: collection of packets to be scheduled, including
- a queue management scheme
-
- schedulers: sequence of one more elements that schedule
- packets for transmission, including policer and shaper
- functions";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2016-12-16" {
- description
- "Fix incorrect interface-ref placement";
- reference "0.2.0";
- }
-
- revision "2016-06-03" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- grouping qos-classifier-term-config {
- description
- "Configuration data for list of match criteria in a QoS
- classifier";
-
- leaf id {
- type string;
- description
- "Identifier for the match term";
- }
- }
-
- grouping qos-classifier-term-state {
- description
- "Operational state data for list of match criteria in a QoS
- classifier";
- }
-
- grouping qos-classifier-term-action-config {
- description
- "Configuration parameters for actions for a classifier term.";
-
- leaf target-group {
- type leafref {
- // Current location:
- // /qos/classifiers/classifier/terms/term/actions/config/target-group
- path "../../../../../../../forwarding-groups/forwarding-group/" +
- "config/name";
- }
- description
- "References the forwarding group or class to which the
- matched packets should be assigned";
- }
- }
-
- grouping qos-classifier-terms-top {
- description
- "Top-level grouping for list of match criteria in a QoS
- classifier";
-
- container terms {
- description
- "Enclosing container for ths list of terms";
-
- list term {
- key "id";
- description
- "List of match terms used in the classifier";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "Reference to id list key.";
- }
-
- container config {
- description
- "Configuration data for list of match criteria in a QoS
- classifier";
-
- uses qos-classifier-term-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for list of match criteria in a
- QoS classifier";
-
- uses qos-classifier-term-config;
- uses qos-classifier-term-state;
- }
-
- container conditions {
- description
- "Conditions for the classifier term. Packets must match all of
- the criteria specified within the match condition to be considered
- matching the term.";
-
- // TODO(robjs): Consider whether we should have classifiers
- // that can match >1 different value of a field, or whether
- // this should require different match terms within the
- // classifier.
- uses oc-pkt-match:ethernet-header-top;
- uses oc-pkt-match:ipv4-protocol-fields-top;
- uses oc-pkt-match:ipv6-protocol-fields-top;
- uses oc-pkt-match:transport-fields-top;
- uses oc-pkt-match:mpls-header-top;
- }
-
- container actions {
- description
- "Actions to be applied for packets matching the specified
- classification rules.";
-
- container config {
- description
- "Actions to be applied to packets that match the classifier
- term.";
-
- uses qos-classifier-term-action-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters associated with classifier term
- actions";
-
- uses qos-classifier-term-action-config;
- }
-
- container remark {
- description
- "Remark actions to be associated with packets that match the
- classifier term. Where a packet matches these criteria, the
- specified rewrite actions should be performed.";
-
- uses qos-common-remark-actions;
- }
- }
- }
- }
- }
-
- grouping qos-classifier-config {
- description
- "Configuration data for classifiers";
-
- leaf name {
- type string;
- description
- "User-assigned name of the classifier";
- }
-
- leaf type {
- type enumeration {
- enum IPV4 {
- description
- "Classifier matches and operates
- on packets with IPv4 headers.";
- }
- enum IPV6 {
- description
- "Classifier matches and operates
- on packets with IPv6 headers.";
- }
- enum MPLS {
- description
- "Classifier matches and operates
- on packets with MPLS headers.";
- }
- enum ETHERNET {
- description
- "Classifier matches and operates
- on fields within the L2 ETHERNET
- headers.";
- }
- }
- description
- "Type of classifier.";
- }
- }
-
- grouping qos-classifier-state {
- description
- "Operational state data for classifiers";
-
- }
-
- grouping qos-classifier-top {
- description
- "Top-level grouping for classifier data";
-
- container classifiers {
- description
- "Enclosing container for QoS classifiers";
-
- list classifier {
- key "name";
- description
- "List of classifier elements";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to list key name";
- }
-
- container config {
- description
- "Configuration data for classifers";
-
- uses qos-classifier-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for classifiers";
-
- uses qos-classifier-config;
- uses qos-classifier-state;
- }
-
- uses qos-classifier-terms-top;
- }
- }
- }
-
- grouping qos-fabric-trace-config {
- description
- "Configuration data for fabric trace data";
-
- leaf source {
- type leafref {
- path "/oc-platform:components/oc-platform:component" +
- "/oc-platform:config/oc-platform:name";
- }
- description
- "Source component for fabric trace data";
- }
-
- leaf dest {
- type leafref {
- path "/oc-platform:components/oc-platform:component" +
- "/oc-platform:config/oc-platform:name";
- }
- description
- "Destination component for fabric trace data";
- }
- }
-
- grouping qos-forwarding-group-config {
- description
- "Configuration data for forwarding groups";
-
- leaf name {
- type string;
- description
- "Name of the forwarding group";
- }
-
- // TODO(robjs, Simon G): Discuss optionally moving
- // this to a high/low priority indicator, if this
- // is common across implementations.
- leaf fabric-priority {
- type uint8;
- description
- "Set the priority for the forwarding group for
- local transmission through the device, e.g.,
- across a switching fabric. Higher priorities
- are considered to be better, such that traffic
- with fabric priority 128 is considered to be
- higher priority than that with fabric priority
- 0.";
- }
-
- leaf output-queue {
- type leafref {
- path "../../../../queues/queue/config/name";
- }
- description
- "Queue for packets in this forwarding group.";
- }
- }
-
- grouping qos-forwarding-group-state {
- description
- "Operational state data for forwarding groups";
- }
-
- grouping qos-forwarding-group-top {
- description
- "Top-level grouping for forwarding group data";
-
- container forwarding-groups {
- description
- "Enclosing container for list of forwarding groups";
-
- list forwarding-group {
- key "name";
- description
- "List of forwarding groups. Forwarding groups are
- logical groups of traffic that will receive common
- forwarding treatment.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to name list key";
- }
-
- container config {
- description
- "Configuration data for forwarding groups";
-
- uses qos-forwarding-group-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for forwarding groups";
-
- uses qos-forwarding-group-config;
- uses qos-forwarding-group-state;
- }
- }
- }
- }
-
- grouping qos-queue-red-common-config {
- description
- "Common configuration parameters applicable to RED and
- its variants";
-
- leaf enable-ecn {
- type boolean;
- default false;
- description
- "When set to true, the device should mark packets that are
- ECN-capable rather than dropping them. The receiver is
- expected to echo the congestion signal back to the sender
- so that it may adjust its transmission rate accordingly.
- When this leaf is false, the device drops packets according
- to the RED/WRED probability, or all packets if the
- average queue length is above the max threshold.";
- }
- }
-
- grouping qos-queue-red-common-state {
- description
- "Common operational state data applicable to RED and
- its variants";
-
- }
-
- grouping qos-queue-wred-config {
- description
- "Configuration data for WRED-managed queues";
-
- // TODO(robjs, aashaikh): Add configuration for weighted RED
- // within this grouping.
- }
-
- grouping qos-queue-wred-state {
- description
- "Operational state data for WRED-managed queues";
- }
-
- grouping qos-queue-wred-top {
- description
- "Top-level grouping for WRED-managed queues";
-
- container wred {
- description
- "Top-level container for WRED data";
-
- container config {
- description
- "Configuration data for WRED";
-
- uses qos-queue-wred-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for WRED";
-
- uses qos-queue-wred-config;
- uses qos-queue-wred-state;
- }
- }
- }
-
- grouping qos-queue-red-config {
- description
- "Configuration data for queues managed with RED";
-
- leaf minth {
- type uint64;
- units bytes;
- description
- "The mininum threshold parameter for a RED-managed queue.
- When the average queue length is less than minth, all
- packets are admitted to the queue.";
- }
-
- leaf maxth {
- type uint64;
- units bytes;
- description
- "The maximum threshold parameter for a RED-managed queue.
- When the average queue length exceeds the maxth value, all
- packets are dropped (or marked if ECN is enabled).";
- }
- }
-
- grouping qos-queue-red-state {
- description
- "Operational state data for queues managed with RED";
- }
-
- grouping qos-queue-red-top {
- description
- "Top-level grouping for RED queues";
-
- container red {
- description
- "Top-level container for data related to RED-managed
- queues";
-
- container config {
- description
- "Configuration data for RED queues";
-
- uses qos-queue-red-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for RED queues";
-
- uses qos-queue-red-config;
- uses qos-queue-red-state;
- }
- }
- }
-
-
- grouping qos-queue-config {
- description
- "Configuration data for QoS egress queues";
-
- leaf name {
- type string;
- description
- "User-defined name of the queue";
- }
-
- leaf queue-type {
- type identityref {
- base oc-qos-types:QOS_QUEUE_TYPE;
- }
- description
- "Sets the type of the queue";
- }
- }
-
- grouping qos-queue-state {
- description
- "Operational state data for egress queues";
- }
-
- grouping qos-queue-top {
- description
- "Top-level grouping for queue elements";
-
- container queues {
- description
- "Enclosing container for the list of queues";
-
- list queue {
- key "name";
- description
- "List of defined queues";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the queue name list key.";
- }
-
- container config {
- description
- "Configuration data for queues";
-
- uses qos-queue-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for queues";
-
- uses qos-queue-config;
- uses qos-queue-state;
- }
-
- uses qos-queue-red-top {
- when "../config/queue-type = 'oc-qos-types:RED'" {
- description
- "RED configuration is valid when the queue-type
- is set accordingly.";
- }
- }
- uses qos-queue-wred-top {
- when "../config/queue-type = 'oc-qos-types:WRED'" {
- description
- "WRED configuration is valid when the queue-type
- is set accordingly.";
- }
- }
- }
- }
- }
-
- grouping qos-scheduler-output-config {
- description
- "Configuration data for scheduler output operations";
-
- leaf output-type {
- type enumeration {
- enum SCHEDULER {
- description
- "Scheduler output is a child scheduler, e.g. to
- implement hierarchical schedulers.";
- }
- enum FWD_GROUP {
- description
- "Scheduler output is a forwarding group, e.g., when
- performing ingress scheduling before packets traverse
- a fabric to be processed by an egress forwarding
- complex.";
- }
- enum INTERFACE {
- description
- "Scheduler output is an interface for forwarding.";
- }
- }
- description
- "Describes the type of output sink for the scheduler.";
- }
-
- leaf child-scheduler {
- // TODO: consider whether both child (output) and parent
- // (input) references are needed; consider whether child
- // reference should separate in-profile and out-of-profile
- type leafref {
- // current loc:
- // /qos/scheduler-policies/scheduler-policy/schedulers/scheduler/
- // output/config/child-scheduler
- path "../../../../../../../scheduler-policies/scheduler-policy/" +
- "config/name";
- }
- when "../output-type = 'SCHEDULER'" {
- description
- "The child-scheduler leaf is valid only when
- the output type of the scheduler is a child scheduler";
- }
- description
- "When the scheduler output type is a child scheduler,
- this leaf provides a reference to the downstream
- scheduler.";
- }
-
- leaf output-fwd-group {
- type leafref {
- path "../../../../../../../forwarding-groups/forwarding-group" +
- "/config/name";
- }
- when "../output-type = 'FWD_GROUP'" {
- description
- "The output-fwd-group leaf is valid only when
- the output type of the scheduler is a forwarding group";
- }
- description
- "When the scheduler output type is a forwarding group,
- this leaf provides a reference to the forwarding group.";
- }
- }
-
- grouping qos-scheduler-output-state {
- description
- "Operational state data for scheduler output";
- }
-
- grouping qos-scheduler-output-top {
- description
- "Top-level grouping for data related to scheduler output";
-
- container output {
- description
- "Top-level container for scheduler output data";
-
- container config {
- description
- "Configuration data for scheduler output";
-
- uses qos-scheduler-output-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for scheduler output";
-
- uses qos-scheduler-output-config;
- uses qos-scheduler-output-state;
- }
- }
- }
-
- grouping qos-scheduler-inputs-config {
- description
- "Configuration data for scheduler input sources";
-
- leaf id {
- type string;
- description
- "User-defined identifier for the scheduler input";
- }
-
- leaf input-type {
- type enumeration {
- enum QUEUE {
- description
- "Input is a defined queue.";
- }
- enum IN_PROFILE {
- description
- "Input is in-profile traffic from a parent scheduler/
- shaper";
- }
- enum OUT_PROFILE {
- description
- "Input is out-of-profile traffic from a parent
- scheduler/shaper";
- }
- }
- description
- "Describes the type of input source for the scheduler";
- }
-
- leaf queue {
- type leafref {
- // current loc: /qos/scheduler-policies/scheduler-policy/schedulers/
- // scheduler/inputs/input/config/queue
- path "../../../../../../../../queues/queue/name";
- }
- when "../input-type = 'QUEUE'" {
- description
- "The queue leaf is valid only when
- the input type of the scheduler is a queue";
- }
- description
- "Reference to a queue that is an input source for the
- scheduler";
- }
-
- leaf weight {
- type uint64;
- description
- "For priority schedulers, this indicates the priority of
- the corresponding input. Higher values indicate higher
- priority. For weighted round-robin schedulers, this leaf
- indicates the weight of the corresponding input.";
- }
- }
-
- grouping qos-scheduler-inputs-state {
- description
- "Operational state data for scheduler input sources";
- }
-
- grouping qos-scheduler-inputs-top {
- description
- "Top-level grouping for defining inputs to a scheduler.";
-
- container inputs {
- description
- "Enclosing container ";
-
- list input {
- key "id";
- description
- "List of input sources for the scheduler.";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "Reference to list key";
- }
-
- container config {
- description
- "Configuration data for scheduler input sources";
-
- uses qos-scheduler-inputs-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for scheduler input sources";
-
- uses qos-scheduler-inputs-config;
- uses qos-scheduler-inputs-state;
- }
- }
- }
- }
-
- grouping qos-scheduler-1r2c-config {
- description
- "Configuration data for 1 rate, 2 color scheduler.";
-
- leaf cir {
- type uint64;
- units bps;
- description
- "Committed information rate for the single-rate token
- bucket scheduler. This value represents the rate at which
- tokens are added to the bucket.";
- }
-
- leaf cir-pct {
- type oc-types:percentage;
- description
- "Committed information rate for the single-rate token
- bucket scheduler. This value represents the rate at which
- tokens are added to the bucket. It is expressed as a
- percentage of the total bandwidth allocated to the
- context in which the scheduler is referenced.";
- }
-
- leaf cir-pct-remaining {
- type oc-types:percentage;
- description
- "Committed information rate for the single-rate token
- bucket scheduler. This value represents the rate at which
- tokens are added to the bucket. It is expressed as a
- percentage of the unallocated bandwidth available in the
- context in which the scheduled is referenced.";
- }
-
- leaf bc {
- type uint32;
- units bytes;
- description
- "Committed burst size for the single-rate token bucket
- scheduler. This value represents the depth of the token
- bucket.";
- }
-
- leaf queuing-behavior {
- type oc-qos-types:queue-behavior;
- description
- "The type of scheduler that is being configured.";
- }
-
- // TODO(robjs): Add when statements to these parameters when the
- // types of scheduler are agreed through review.
- leaf max-queue-depth-bytes {
- type uint32;
- units bytes;
- description
- "When the scheduler is specified to be a shaper - the
- maximum depth of the queue in bytes is the value
- specified by this leaf.";
- }
-
- leaf max-queue-depth-packets {
- type uint32;
- units packets;
- description
- "When the scheduler is specified to be a shaper - the
- maximum depth of the queue in packets is the value
- specified by this leaf.";
- }
-
- leaf max-queue-depth-percent {
- type oc-types:percentage;
- description
- "The queue depth specified as a percentage of the total
- available buffer that is avaialble.";
- }
- }
-
- grouping qos-scheduler-1r2c-top {
- description
- "Top-level grouping for 1 rate, 2 color shapers";
-
- container one-rate-two-color {
- description
- "Top-level container for data related to a 1 rate, 2 color
- shaper.";
-
- container config {
- description
- "Configuration data for 1 rate, 2 color shapers";
-
- uses qos-scheduler-1r2c-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for 1 rate, 2 color shapers";
-
- uses qos-scheduler-1r2c-config;
- }
-
- container conform-action {
- description
- "Action to be applied to packets that are scheduled within the
- CIR of the one-rate, two-colour scheduler. Packets that receive
- a token from the in-CIR bucket are said to be conforming and
- have all of the specified actions applied.";
-
- container config {
- description
- "Configuration parameters relating to conforming packets for the
- 1r2c scheduler.";
-
- uses qos-common-remark-actions-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to conforming packets
- for the 1r2c scheduler.";
-
- uses qos-common-remark-actions-config;
- }
- }
-
- container exceed-action {
- description
- "Action to be applied to packets that are scheduled above the CIR
- of the one-rate, two-colour shaper. Packets that do not receive a
- token from the in-CIR bucket are said to be exceeding, and have
- all of the specified actions applied.";
-
- container config {
- description
- "Configuration parameters relating to exceeding packets for
- the 1r2c scheduler.";
-
- uses qos-common-remark-actions-config;
- uses qos-common-scheduler-actions-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to exceeding
- packets for the 1r2c scheduler.";
-
- uses qos-common-remark-actions-config;
- uses qos-common-scheduler-actions-config;
- }
- }
- }
- }
-
- grouping qos-scheduler-2r3c-config {
- description
- "Configuration data for 2 rate, 3 color policer";
-
- leaf cir {
- type uint64;
- units bps;
- description
- "Committed information rate for the dual-rate token
- bucket policer. This value represents the rate at which
- tokens are added to the primary bucket.";
- }
-
- leaf cir-pct {
- type oc-types:percentage;
- description
- "Committed information rate for the dual-rate token bucket
- policer. This value represents the rate at which tokens
- are added to the primary bucket. It is expressed as a
- percentage of the total bandwidth available within the
- context the scheduler is instantiated.";
- }
-
- leaf cir-pct-remaining {
- type oc-types:percentage;
- description
- "Committed information rate for the dual-rate token
- bucket policer. This value represents the rate at which
- tokens are added to the primary bucket. It is expressed
- as a percentage of the remaining bandwidth within the
- context the scheduler is instantiated.";
- }
-
- leaf pir {
- type uint64;
- units bps;
- description
- "Peak information rate for the dual-rate token bucket
- policer. This value represents the rate at which tokens
- are added to the secondary bucket.";
- }
-
- leaf pir-pct {
- type oc-types:percentage;
- description
- "Peak information rate for the dual-rate token bucket
- policer. This value represents the rate at which tokens
- are added to the secondary bucket. The value is expressed
- as a percentage of the total bandwidth available in the
- context in which the scheduler is instantiated.";
- }
-
- leaf pir-pct-remaining {
- type oc-types:percentage;
- description
- "Peak information rate for the dual-rate token
- bucket policer. This value represents the rate at which
- tokens are added to the secondary bucket. It is expressed
- as a percentage of the remaining bandwidth within the
- context the scheduler is instantiated.";
- }
-
- leaf bc {
- type uint32;
- units bytes;
- description
- "Committed burst size for the dual-rate token bucket
- policer. This value represents the depth of the token
- bucket.";
- }
-
- leaf be {
- type uint32;
- units bytes;
- description
- "Excess burst size for the dual-rate token bucket policer.
- This value represents the depth of the secondary bucket.";
- }
- }
-
- grouping qos-scheduler-2r3c-top {
- description
- "Top-level grouping for 2 rate, 3 color policers..";
-
- container two-rate-three-color {
- description
- "Top-level container for data for a 2 rate, 3 color policer.";
-
- container config {
- description
- "Configuration data for 2 rate, 3 color policers.";
-
- uses qos-scheduler-2r3c-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for 2 rate, 3 color policers.";
-
- uses qos-scheduler-2r3c-config;
- }
-
- container conform-action {
- description
- "Action to be applied to the packets that are scheduled
- within the CIR of the policer. All packets that receive
- a token from this bucket have all actions specified
- applied to them";
-
- container config {
- description
- "Configuration parameters for the conform action of a
- 2r3c policer.";
- uses qos-common-remark-actions-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the conform
- action of a 2r3c policer.";
- uses qos-common-remark-actions-config;
- }
- }
-
- container exceed-action {
- description
- "Action to be applied to the packets that are scheduled
- within the PIR of the policer. Packets that receive a
- token from within the PIR allocation have all the
- specified actions applied to them";
-
- container config {
- description
- "Configuration parameters relating to the action
- applied to exceeding packets.";
-
- uses qos-common-remark-actions-config;
- uses qos-common-scheduler-actions-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the action
- applied to exceeding packets.";
-
- uses qos-common-remark-actions-config;
- uses qos-common-scheduler-actions-config;
- }
- }
-
- container violate-action {
- description
- "Action to be applied to the packets that are scheduled
- above the PIR of the policer. Packets that do not receive
- a token from either bucket have all specified actions
- applied to them.";
-
- container config {
- description
- "Configuration parameters relating to the action
- applied to violating packets.";
-
- uses qos-common-remark-actions-config;
- uses qos-common-scheduler-actions-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the action
- applied to violating packets.";
-
- uses qos-common-remark-actions-config;
- uses qos-common-scheduler-actions-config;
- }
- }
- }
- }
-
- grouping qos-scheduler-config {
- description
- "Configuration data for QoS schedulers";
-
- leaf sequence {
- type uint32;
- description
- "Sequence number for the scheduler within the scheduler
- policy. Schedulers are processed from lowest sequence
- to highest.";
- }
-
- leaf type {
- type identityref {
- base oc-qos-types:QOS_SCHEDULER_TYPE;
- }
- description
- "Sets the type of scheduler, i.e. the scheduling algorithm
- used to serve inputs.";
- }
-
- leaf priority {
- type enumeration {
- enum STRICT {
- description
- "This scheduler term is considered as a strict priority
- term - such that packets that arrive in the queue are
- immediately serviced.";
- }
- }
- description
- "Priority of the scheduler within the scheduler policy.";
- }
- }
-
- grouping qos-scheduler-state {
- description
- "Operational state data for QoS schedulers";
- }
-
- grouping qos-scheduler-policy-config {
- description
- "Configuration parameters relating to a scheduler policy";
-
- leaf name {
- type string;
- description
- "Name for the scheduler policy.";
- }
- }
-
- grouping qos-scheduler-top {
- description
- "Top-level grouping for the set of defined QoS schedulers";
-
- container scheduler-policies {
- description
- "Enclosing container for the list of configured scheduler policies.";
-
- list scheduler-policy {
- key "name";
-
- description
- "List of scheduler policies. A scheduler policy is a set of schedulers
- that are to be applied together. Each scheduler within a scheduler
- policy takes an input, and outputs it according to a scheduling
- discipline that is specified within it. The schedulers consume
- resources according to the specification that is provided - which
- may be absolute resource limits, or relative.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the name of the scheduler policy";
- }
-
- container config {
- description
- "Configuration parameters relating to a scheduler policy.";
- uses qos-scheduler-policy-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to a scheduler policy.";
- uses qos-scheduler-policy-config;
- }
-
- container schedulers {
- description
- "Schedulers within the scheduler policy.";
-
- list scheduler {
- key "sequence";
- description
- "List of defined QoS traffic schedulers.";
-
- leaf sequence {
- type leafref {
- path "../config/sequence";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for QoS schedulers";
-
- uses qos-scheduler-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for QoS schedulers";
-
- uses qos-scheduler-config;
- uses qos-scheduler-state;
- }
-
- uses qos-scheduler-inputs-top;
- uses qos-scheduler-output-top;
- uses qos-scheduler-1r2c-top;
- uses qos-scheduler-2r3c-top;
- }
- }
- }
- }
- }
-
- grouping qos-common-remark-actions {
- description
- "Common grouping specifying actions related to re-marking
- packets";
-
- container config {
- description
- "Configuration parameters relating to remarking packets.";
- uses qos-common-remark-actions-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to remarking packets.";
- uses qos-common-remark-actions-config;
- }
- }
-
- grouping qos-common-scheduler-actions-config {
- description
- "Configuration data for common actions of a QoS scheduler.";
-
- leaf drop {
- type boolean;
- description
- "If set to true, packets within this context are dropped.";
- }
- }
-
- grouping qos-common-remark-actions-config {
- description
- "Configuration data for QoS re-marking actions";
-
- leaf set-dscp {
- type uint8;
- description
- "Sets the 6-bit DSCP (differentiated services code point)
- value in the IP packet header.";
- reference
- "RFC 2474 - Definition of the Differentiated Services Field
- (DS Field) in the IPv4 and IPv6 Headers";
- }
-
- leaf set-dot1p {
- type uint8;
- description
- "Sets the 3-bit class-of-service value in the
- Ethernet packet header for 802.1Q VLAN-tagged packets,
- also known as PCP (priority code point).";
- reference
- "IEEE 802.1Q-2014 - IEEE Standard for Local and metropolitan
- area networks--Bridges and Bridged Networks";
- }
-
- leaf set-mpls-tc {
- type uint8;
- description
- "Sets the 3-bit traffic class value (also referred to as EXP
- or CoS) in MPLS packets.";
- reference
- "RFC 3270 - Multi-Protocol Label Switching (MPLS) Support of
- Differentiated Services";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-qos-interfaces.yang b/src/plugins/yang/openconfig/openconfig-qos-interfaces.yang
deleted file mode 100644
index ae356a9..0000000
--- a/src/plugins/yang/openconfig/openconfig-qos-interfaces.yang
+++ /dev/null
@@ -1,660 +0,0 @@
-submodule openconfig-qos-interfaces {
-
- belongs-to openconfig-qos {
- prefix "oc-qos";
- }
-
- // import openconfig-qos-elements { prefix oc-qos; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-yang-types { prefix oc-yang; }
-
- include openconfig-qos-elements;
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This submodule defines data related to quality-of-service
- configuration and operational state associated with
- interfaces.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2016-12-16" {
- description
- "Fix incorrect interface-ref placement";
- reference "0.2.0";
- }
-
- revision "2016-06-03" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- grouping qos-interface-classifier-match-config {
- description
- "Configuration data for match terms in the classifier
- associated with an interface";
-
- leaf id {
- type leafref {
- // Current location:
- // /qos/interfaces/interface/input/classifers/classifier/
- // terms/term/config/id
- path "../../../../../../../../../classifiers/" +
- "classifier[name=current()/../../../../config/name]/" +
- "terms/term/config/id";
-
- }
- description
- "Reference to match terms in the classifier";
- }
- }
-
- grouping qos-interface-classifier-match-state {
- description
- "Operational state data for match terms in the classifier
- associated with an interface";
-
- leaf matched-packets {
- type oc-yang:counter64;
- description
- "Count of the number of packets matching this classifier
- match term on the interface.";
- }
-
- leaf matched-octets {
- type oc-yang:counter64;
- description
- "Count of the number of octets (bytes) matching this
- classifier match term on the interface.";
- }
-
- }
-
- grouping qos-interface-classifier-match-top {
- description
- "Top-level grouping for match terms in the classifier
- associated with an interface";
-
- container terms {
- description
- "Enclosing container for the list of match terms in the
- classifier";
-
- list term {
- key "id";
- description
- "List of match terms in the classifier associated with the
- interface";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "Reference to match term id list key";
- }
-
- container config {
- description
- "Configuration data for match terms in the classifier
- associated with an interface";
-
- uses qos-interface-classifier-match-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for match terms in the classifier
- associated with an interface";
-
- uses qos-interface-classifier-match-config;
- uses qos-interface-classifier-match-state;
- }
- }
- }
- }
-
- grouping qos-interface-classifier-top {
- description
- "Top-level grouping for a QoS classifier associated with an
- interface";
-
- container classifers {
- description
- "Classifiers to be applied to the interface.";
-
- list classifier {
- key "type";
-
- description
- "A list of classifiers that should be applied to the interface";
-
- leaf type {
- type leafref {
- path "../config/type";
- }
- description
- "Reference to the classifier name.";
- }
-
- container config {
- description
- "Configuration parameters for the list of classifiers.";
- uses qos-interface-classifers-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the list of classifiers.";
- uses qos-interface-classifers-config;
- }
-
- uses qos-interface-classifier-match-top;
- }
- }
- }
-
- grouping qos-interface-classifers-config {
- description
- "Configuration parameters for the list of classifiers";
-
- leaf name {
- type leafref {
- // current loc: /qos/interfaces/interface/input/classifiers/
- // classifier/config/name
- path "../../../../../../../classifiers/classifier/config/name";
- }
- description
- "Reference to the classifier to be applied to ingress traffic on
- the interface";
- }
-
- leaf type {
- type enumeration {
- enum IPV4 {
- description
- "Classifier matches IPv4 packets.";
- value 4;
- }
- enum IPV6 {
- description
- "Classifier matches IPv6 packets.";
- value 6;
- }
- enum MPLS {
- description
- "Classifier matches MPLS packets.";
- }
- }
- description
- "Type of packets matched by the classifier.";
- }
- }
-
- grouping qos-interface-queue-config {
- description
- "Configuration data for the queue associated with the
- interface";
-
- leaf name {
- // TODO(robjs): Previously we proposed that the queue name here is
- // only a queue that has been configured. However, in some cases we
- // may want to have queues that have not been configured exist.
- //type leafref {
- // path "../../../../../../queues/queue/config/name";
- //}
- type string;
- description
- "Reference to the queue associated with this interface.
- A queue may be explicitly configured, or implicitly created
- by the system based on default queues that are instantiated
- by a hardware component, or are assumed to be default on
- the system.";
- }
- }
-
- grouping qos-interface-queue-state {
- description
- "Operational state data for the queue associated with the
- interface";
-
- leaf max-queue-len {
- type oc-yang:counter64;
- units bytes;
- description
- "Maximum observed queue length";
- }
-
- leaf avg-queue-len {
- type oc-yang:counter64;
- units bytes;
- description
- "Average observed queue length";
-
- }
-
- leaf transmit-pkts {
- type oc-yang:counter64;
- description
- "Number of packets transmitted by this queue";
- }
-
- leaf transmit-octets {
- type oc-yang:counter64;
- description
- "Number of octets trasmitted by this queue";
- }
-
- leaf dropped-pkts {
- type oc-yang:counter64;
- description
- "Number of packets dropped by the queue due to overrun";
- }
- }
-
- grouping qos-interface-queue-top {
- description
- "Top-level grouping for the queue associated with the
- interface";
-
- container queues {
- description
- "Surrounding container for a list of queues that are
- instantiated on an interface.";
-
- list queue {
- key "name";
-
- description
- "Top-level container for the queue associated with this
- interface";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the name of the queue
- instantiated on the interface.";
- }
-
- container config {
- description
- "Configuration data for the queue associated with the
- interface";
-
- uses qos-interface-queue-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for the queue associated with the
- interface";
-
- uses qos-interface-queue-config;
- uses qos-interface-queue-state;
- }
- }
- }
- }
-
- grouping qos-interface-voqs-top {
- description
- "Structural grouping of virtual-output-queue operational state
- for an interface.";
-
- container virtual-output-queues {
- description
- "Surrounding container for the list of egress interfaces
- for which virtual output queues are instantiated on this
- interface.";
-
- list voq-interface {
- key "name";
-
- description
- "List of egress interfaces for which a virtual output
- queue is instantiated at this interface.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Name used to refer to the egress interface.";
- }
-
- container config {
- description
- "Configuration parameters relating to the interface
- for which the VOQs are instantiated.";
- uses qos-voqs-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the interface
- for which the VOQs are instantiated.";
- uses qos-voqs-config;
- }
-
- uses qos-interface-queue-top;
- }
- }
- }
-
- grouping qos-voqs-config {
- description
- "Configuration parameters relating to an egress interface for which
- VOQs are established on an interface.";
-
- leaf name {
- type string;
- description
- "Name used to refer to the egress interface.";
- }
- }
-
- grouping qos-interface-scheduler-policy-config {
- description
- "Configuration data for schedulers associated with
- the interface";
-
- leaf name {
- type leafref {
- // current loc:
- // /qos/interfaces/interface/input/schedulers/scheduler/config/name
- path "../../../../../../scheduler-policies/scheduler-policy/" +
- "config/name";
- }
- description
- "The scheduler policy to be applied to traffic on this interface.";
- }
- }
-
- grouping qos-interface-scheduler-state {
- description
- "Operational state data for a scheduler within
- a scheduler group applied to an interface.";
-
- leaf sequence {
- type leafref {
- // current loc: /qos/interfaces/interface/input/scheduler-policy/
- // schedulers/scheduler/state/sequence
- path "../../../../../../../../scheduler-policies/" +
- "scheduler-policy[name=current()/../../../../config/name]" +
- "/schedulers/scheduler/config/sequence";
- }
- description
- "Reference to the sequence ID of the scheduler within
- the current scheduler policy.";
- }
-
- uses qos-scheduler-common-state;
- }
-
- grouping qos-scheduler-common-state {
- description
- "Common definitions of counters used in schedulers.";
-
- leaf conforming-pkts {
- type oc-yang:counter64;
- description
- "The number of packets that were considered conforming by
- the scheduler.";
- }
-
- leaf conforming-octets {
- type oc-yang:counter64;
- description
- "The number of octets in packets that were considered
- conforming by the scheduler.";
- }
-
- leaf exceeding-pkts {
- type oc-yang:counter64;
- description
- "The number of packets that were considered exceeding by
- the scheduler.";
- }
-
- leaf exceeding-octets {
- type oc-yang:counter64;
- description
- "The number of octets in packets that were considered
- exceeding by the scheduler.";
- }
-
- leaf violating-pkts {
- type oc-yang:counter64;
- description
- "The number of packets that were considered violating by
- the policer.";
- }
-
- leaf violating-octets {
- type oc-yang:counter64;
- description
- "The number of octets in packets that were considered
- violating by the policer.";
- }
- }
-
- grouping qos-interface-scheduler-top {
- description
- "Top-level grouping ";
-
- container scheduler-policy {
- description
- "Scheduler policy associated with the interface.";
-
- container config {
- description
- "Configuration parameters relating to a scheduler policy on
- an interface.";
- uses qos-interface-scheduler-policy-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to a scheduler policy
- on an interface.";
- uses qos-interface-scheduler-policy-config;
- }
-
- container schedulers {
- config false;
- description
- "Schedulers within the applied scheduler-policy.";
-
- list scheduler {
- key "sequence";
- description
- "List of the schedulers that are part of the scheduler-policy
- specified.";
-
- leaf sequence {
- type leafref {
- path "../state/sequence";
- }
- description
- "Reference to the sequence ID for the scheduler.";
- }
-
- container state {
- description
- "Operational state parameters relating to the scheduler
- policy.";
-
- uses qos-interface-scheduler-state;
- }
- }
- }
- }
- }
-
- grouping qos-interfaces-config {
- description
- "Configuration data for interfaces referenced in the QoS
- model";
-
- leaf interface-id {
- type string;
- description
- "Identifier for the interface.";
- }
- }
-
- grouping qos-interfaces-state {
- description
- "Operational state data for interfaces referenced in the QoS
- model";
-
- // definitions per-interface counters for QoS
- }
-
- grouping qos-interface-input-config {
- description
- "Configuration data for QoS on ingress interface";
- }
-
- grouping qos-interface-input-state {
- description
- "Operational state data for QoS on ingress interface";
- }
-
- grouping qos-interface-input-top {
- description
- "Top-level grouping for QoS on ingress interface";
-
- container input {
- description
- "Top-level container for QoS data for the ingress
- interface";
-
- container config {
- description
- "Configuration data for QoS on ingress interface";
-
- uses qos-interface-input-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for QoS on ingress interface";
-
- uses qos-interface-input-config;
- uses qos-interface-input-state;
- }
-
- uses qos-interface-classifier-top;
- uses qos-interface-queue-top;
- uses qos-interface-scheduler-top;
- uses qos-interface-voqs-top;
- }
- }
-
- grouping qos-interface-output-config {
- description
- "Configuration data for QoS on the egress interface";
- }
-
- grouping qos-interface-output-state {
- description
- "Operational state data for QoS on the egress interface";
- }
-
- grouping qos-interface-output-top {
- description
- "Top-level grouping for QoS on the egress interface";
-
- container output {
- description
- "Top-level container for QoS data related to the egress
- interface";
-
- container config {
- description
- "Configuration data for QoS on the egress interface";
-
- uses qos-interface-output-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for QoS on the egress interface";
-
- uses qos-interface-output-config;
- uses qos-interface-output-state;
- }
-
- uses oc-if:interface-ref;
- uses qos-interface-classifier-top;
- uses qos-interface-queue-top;
- uses qos-interface-scheduler-top;
- }
- }
-
- grouping qos-interfaces-top {
- description
- "Top-level grouping for interfaces referenced in the QoS
- model";
-
- container interfaces {
- description
- "Enclosing container for the list of interface references";
-
- list interface {
- key "interface-id";
- description
- "List of interfaces referenced by QoS entities.";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "Reference to the interface-id list key";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses qos-interfaces-config;
- }
-
- container state {
- config false;
- description
- "Operational state data ";
-
- uses qos-interfaces-config;
- uses qos-interfaces-state;
- }
-
- uses oc-if:interface-ref;
- uses qos-interface-input-top;
- uses qos-interface-output-top;
-
- }
- }
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-qos-types.yang b/src/plugins/yang/openconfig/openconfig-qos-types.yang
deleted file mode 100644
index 291c557..0000000
--- a/src/plugins/yang/openconfig/openconfig-qos-types.yang
+++ /dev/null
@@ -1,148 +0,0 @@
-module openconfig-qos-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/qos-types";
-
- prefix "oc-qos-types";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines types and identities used in OpenConfig
- models related to quality-of-service (QoS)";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2016-12-16" {
- description
- "Fix incorrect interface-ref placement";
- reference "0.2.0";
- }
-
- revision "2016-08-08" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity QOS_QUEUE_TYPE {
- description
- "Base identity for supported queue types, primarily
- defined by their drop behavior / strategy";
- }
-
- identity DROP_TAIL {
- base QOS_QUEUE_TYPE;
- description
- "When the queue is filled to capacity, newly arriving packets
- are discarded until there is room in the queue to accept new
- traffic. Packets are not differentiated, i.e., all packets
- are treated identically.";
- }
-
- identity RED {
- base QOS_QUEUE_TYPE;
- description
- "Queue management based on Random Early Detection (RED). RED
- drops packets based on a drop probability that is based on the
- average queue length, and settings of mininum and maximum
- queue thresholds. On ECN-capable devices, packets may be
- marked instead of dropped to signal congestion to the
- sender.";
- reference
- "IETF RFC 2309 - Recommendations on Queue Management and
- Congestion Avoidance in the Internet
- IETF RFC 7567 - IETF Recommendations Regarding Active Queue
- Management";
- }
-
- identity WRED {
- base QOS_QUEUE_TYPE;
- description
- "Queue management based on a variant of RED in which the packet
- drop probability is based on its traffic class.";
- }
-
- identity QOS_SCHEDULER_TYPE {
- description
- "Base identity to describe supported QoS scheduler types.";
- }
-
- identity ONE_RATE_TWO_COLOR {
- base QOS_SCHEDULER_TYPE;
- description
- "Token bucket scheduler with a single rate (committed information
- rate) and two colors (conforming and exceeding). The scheduler
- behavior is governed by two parameters, the CIR which
- determines the rate of token fill (bps) and the committed
- burst size (depth of the token bucket in bytes).";
- }
-
- identity TWO_RATE_THREE_COLOR {
- base QOS_SCHEDULER_TYPE;
- description
- "Token bucket scheduler with two buckets, one filled at the
- committed information rate (CIR) in bps, and the second filled
- at the peak information rate (PIR) in bps when the first
- bucket is full. The first bucket depth is
- the committed burst size (bytes), and the second is the
- excess burst size (bytes). Traffic is categorized in three
- colors as follows: traffic that falls within the
- the CIR is conforming, traffic that is greater than the CIR
- but less than the PIR is exceeding, and traffic that is
- greater than PIR is violating.";
- }
-
- // typedef statements
-
- typedef queue-behavior {
- type enumeration {
- enum SHAPE {
- description
- "Packets that exceed the CIR should be queued into a
- buffer. The depth of the buffer is specified to be
- max-queue-depth-bytes or max-queue-depth-packets.
- Packets are subsequently scheduled from this queue
- to the specified output. Only packets that overflow
- the buffer have the exceed action applied to them.";
- }
- enum POLICE {
- description
- "Packets that exceed the CIR should be immediately
- treated as exceeding the defined rate of the scheduler
- and have the exceed action applied to them.";
- }
- }
- description
- "Type definition for different queueing behaviours that
- are available to a scheduler.";
- }
-
- // grouping statements
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-qos.yang b/src/plugins/yang/openconfig/openconfig-qos.yang
deleted file mode 100644
index 7bda3ae..0000000
--- a/src/plugins/yang/openconfig/openconfig-qos.yang
+++ /dev/null
@@ -1,90 +0,0 @@
-module openconfig-qos {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/qos";
-
- prefix "oc-qos";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
- // include submodules
- include openconfig-qos-interfaces;
- include openconfig-qos-elements;
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- related to network quality-of-service.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2016-12-16" {
- description
- "Fix incorrect interface-ref placement";
- reference "0.2.0";
- }
-
- // grouping statements
- grouping qos-config {
- description
- "Configuration data for global QoS";
- }
-
- grouping qos-state {
- description
- "Operational state data for global QoS";
- }
-
- grouping qos-top {
- description
- "Top-level grouping for QoS model";
-
- container qos {
- description
- "Top-level container for QoS data";
-
- container config {
- description
- "Configuration data for global QoS";
-
- uses qos-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for global QoS";
-
- uses qos-config;
- uses qos-state;
- }
-
- uses qos-interfaces-top;
- uses qos-classifier-top;
- uses qos-forwarding-group-top;
- uses qos-queue-top;
- uses qos-scheduler-top;
- }
- }
-
- // data definition statements
-
- uses qos-top;
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-relay-agent.yang b/src/plugins/yang/openconfig/openconfig-relay-agent.yang
deleted file mode 100644
index c0a2637..0000000
--- a/src/plugins/yang/openconfig/openconfig-relay-agent.yang
+++ /dev/null
@@ -1,815 +0,0 @@
-module openconfig-relay-agent {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/relay-agent";
-
- prefix "oc-relay";
-
- // import some basic types
- import ietf-inet-types { prefix inet; }
- import ietf-yang-types { prefix yang; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module describes a model for configuration and operational
- state related to relay agents typically used for DHCP and BOOTP
- packets. The supports both DHCP and DHCPv6 and device-wide and
- per-interface settings.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2016-05-16" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
-
- // grouping statements
-
- grouping agent-information-ipv4-common-config {
- description
- "Common configuration data for DHCP relay option";
-
- leaf enable {
- type boolean;
- default false;
- description
- "Enable sending the DHCP option for Relay Agent information
- -- option 82.";
- reference
- "RFC 3046 - DHCP Relay Agent Information Option";
- }
- }
-
- grouping agent-information-ipv4-common-state {
- description
- "Common operational state data for DHCP relay option";
-
- }
-
- grouping agent-information-ipv4-global-top {
- description
- "Top-level grouping for agent information data at global level";
-
- container agent-information-option {
- description
- "Top-level container for relay agent information option
- data";
-
- container config {
- description
- "Configuration data for the relay agent information
- option";
-
- uses agent-information-ipv4-common-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for agent information at global
- level";
-
- uses agent-information-ipv4-common-config;
- uses agent-information-ipv4-common-state;
- }
- }
- }
-
- grouping agent-information-ipv4-interface-config {
- description
- "Configuration data for DCHP relay option on interfaces";
-
- leaf circuit-id {
- type string;
- description
- "Encodes an agent-local identifier of the circuit from which
- a DHCP client-to-server packet was received. It is intended
- for use by agents in relaying DHCP responses back to the
- proper circuit. The circuit id is an opaque value";
- reference
- "RFC 3046 - DHCP Relay Agent Information Option";
- }
-
- leaf remote-id {
- type string;
- description
- "Provides a mechanism to identify the remote host end of
- the circuit. The remote-id should be thought of as an
- opaque value, but must be globally unique.";
- reference
- "RFC 3046 - DHCP Relay Agent Information Option";
- }
- }
-
- grouping agent-information-ipv4-interface-state {
- description
- "Operational state data for DHCP relay option on interfaces";
-
- leaf sent-circuit-id {
- type string;
- description
- "Reports the circuit-id sent by the system to the DHCP
- server.";
- }
-
- leaf sent-remote-id {
- type string;
- description
- "Reports the remote-id value sent by the system to the DHCP
- server";
- }
- }
-
- grouping agent-information-ipv4-interface-top {
- description
- "Top-level grouping for relay agent information option data";
-
- container agent-information-option {
- description
- "Top-level container for relay agent information option
- data";
-
- container config {
- description
- "Configuration data for the relay agent information
- option";
-
- uses agent-information-ipv4-common-config;
- uses agent-information-ipv4-interface-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses agent-information-ipv4-common-config;
- uses agent-information-ipv4-interface-config;
- uses agent-information-ipv4-common-state;
- uses agent-information-ipv4-interface-state;
- }
- }
- }
-
- grouping agent-options-ipv6-common-config {
- description
- "Configuration data for DHCPv6 options";
-
- leaf enable-interface-id {
- type boolean;
- default false;
- description
- "Enables DHCPv6 OPTION_INTERFACE_ID (18) to identify the
- interface on which the client message was received.";
- reference
- "IETF RFC 3315 - Dynamic Host Configuration Protocol for
- IPv6 (DHCPv6)";
- }
-
- leaf enable-remote-id {
- type boolean;
- default false;
- description
- "Sets DHCPv6 OPTION_REMOTE_ID (37). This option is the
- DHCPv6 equivalent for the IPv4 (DHCPv4) Relay Agent Option's
- Remote-ID suboption as specified in RFC 3046. The remote-id
- field may be used to encode a user name, remote IP address,
- interface/port identifier, etc.";
- reference
- "IETF RFC 4649 - Dynamic Host Configuration Protocol for
- IPv6 (DHCPv6) Relay Agent Remote-ID Option";
- }
- }
-
- grouping agent-options-ipv6-common-state {
- description
- "Operational state data for DHCPv6 options";
- }
-
- grouping agent-options-ipv6-interface-config {
- description
- "Configuration data for DHCPv6 options";
-
- leaf interface-id {
- type string;
- description
- "Sets DHCPv6 OPTION_INTERFACE_ID (18) to identify the
- interface on which the client message was received.";
- reference
- "IETF RFC 3315 - Dynamic Host Configuration Protocol for
- IPv6 (DHCPv6)";
- }
-
- leaf remote-id {
- type string;
- description
- "Sets DHCPv6 OPTION_REMOTE_ID (37). This option is the
- DHCPv6 equivalent for the IPv4 (DHCPv4) Relay Agent Option's
- Remote-ID suboption as specified in RFC 3046. The remote-id
- field may be used to encode a user name, remote IP address,
- interface/port identifier, etc.";
- reference
- "IETF RFC 4649 - Dynamic Host Configuration Protocol for
- IPv6 (DHCPv6) Relay Agent Remote-ID Option";
- }
- }
-
- grouping agent-options-ipv6-interface-state {
- description
- "Operational state data for DHCPv6 options";
-
- leaf sent-interface-id {
- type string;
- description
- "Reflects the DHCPv6 OPTION_INTERFACE_ID (18) sent to the
- server by the system.";
- reference
- "IETF RFC 3315 - Dynamic Host Configuration Protocol for
- IPv6 (DHCPv6)";
- }
-
- leaf sent-remote-id {
- type string;
- description
- "Reflects the DHCPv6 OPTION_REMOTE_ID (37) sent to the
- server by the system.";
- reference
- "IETF RFC 4649 - Dynamic Host Configuration Protocol for
- IPv6 (DHCPv6) Relay Agent Remote-ID Option";
- }
- }
-
- grouping agent-options-ipv6-global-top {
- description
- "Top-level grouping for DHCPv6 options on interfaces";
-
- container options {
- description
- "Top-level container for DHCPv6 agent options on interfaces";
-
- container config {
- description
- "Configuration data ";
-
- uses agent-options-ipv6-common-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for DHCPv6 agent option on an
- interface";
-
- uses agent-options-ipv6-common-config;
- uses agent-options-ipv6-common-state;
- }
- }
- }
-
- grouping agent-options-ipv6-interface-top {
- description
- "Top-level grouping for DHCPv6 options on interfaces";
-
- container options {
- description
- "Top-level container for DHCPv6 agent options on interfaces";
-
- container config {
- description
- "Configuration data ";
-
- uses agent-options-ipv6-common-config;
- uses agent-options-ipv6-interface-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for DHCPv6 agent option on an
- interface";
-
- uses agent-options-ipv6-common-config;
- uses agent-options-ipv6-interface-config;
- uses agent-options-ipv6-common-state;
- uses agent-options-ipv6-interface-state;
- }
- }
- }
-
- grouping relay-agent-common-config {
- description
- "Configuration data for global level relay agent options,
- common across address families";
-
- leaf enable-relay-agent {
- type boolean;
- default false;
- description
- "Enables DHCP/BOOTP relay agent on all interfaces";
- }
- }
-
- grouping relay-agent-common-state {
- description
- "Operational state data for global level relay agent, common
- across address families";
- }
-
- grouping relay-agent-ipv4-config {
- description
- "Configuration data for DHCPv4 relay agents";
-
- uses relay-agent-common-config;
- }
-
- grouping relay-agent-ipv4-state {
- description
- "Configuration data for DHCPv4 relay agents";
-
- uses relay-agent-common-state;
- }
-
-
- grouping relay-agent-ipv4-top {
- description
- "Top-level grouping for global relay agent data";
-
- container dhcp {
- description
- "Top-level container for global relay agent data";
-
- container config {
- description
- "Configuration data for global DHCPv4";
-
- uses relay-agent-ipv4-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data global DHCPv4";
-
- uses relay-agent-ipv4-config;
- uses relay-agent-ipv4-state;
- }
-
- uses agent-information-ipv4-global-top;
- uses relay-agent-ipv4-interfaces-top;
- }
- }
-
- grouping relay-agent-ipv6-config {
- description
- "Configuration data for DHCPv6 relay agents";
-
- uses relay-agent-common-config;
- }
-
- grouping relay-agent-ipv6-state {
- description
- "Configuration data for DHCPv6 relay agents";
-
- uses relay-agent-common-state;
- }
-
- grouping relay-agent-ipv6-top {
- description
- "Top-level grouping for global relay agent data";
-
- container dhcpv6 {
- description
- "Top-level container for global relay agent data";
-
- container config {
- description
- "Configuration data for global DHCPv6";
-
- uses relay-agent-ipv6-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data global DHCPv6";
-
- uses relay-agent-ipv6-config;
- uses relay-agent-ipv6-state;
- }
-
- uses agent-options-ipv6-global-top;
- uses relay-agent-ipv6-interfaces-top;
- }
- }
-
-
- grouping relay-agent-common-stats {
- description
- "Common DHCP / BOOTP message statistics for
- DHCPv4 and DHCPv6";
-
-
- leaf total-dropped {
- type yang:counter64;
- description
- "Total number of DHCP packets dropped by the relay agent";
- }
-
- leaf invalid-opcode {
- type yang:counter64;
- description
- "Number of DHCP packets dropped due to an invalid opcode";
- }
-
- leaf invalid-options {
- type yang:counter64;
- description
- "Number of DHCP packets dropped due to an invalid option";
- }
- }
-
- grouping relay-agent-ipv4-stats {
- description
- "DHCPv4 relay agent message statistics";
-
- leaf bootrequest-received {
- type yang:counter64;
- description
- "BOOTREQUEST messages received by the relay agent";
- }
-
- leaf dhcp-decline-received {
- type yang:counter64;
- description
- "DHCP DECLINE messages received by the relay agent";
- }
-
- leaf dhcp-discover-received {
- type yang:counter64;
- description
- "DHCP DISCOVER messages received by the relay agent";
- }
-
- leaf dhcp-inform-received {
- type yang:counter64;
- description
- "DHCP INFORM messages received by the relay agent";
- }
-
- leaf dhcp-release-received {
- type yang:counter64;
- description
- "DHCP RELEASE messages received by the relay agent";
- }
-
- leaf dhcp-request-received {
- type yang:counter64;
- description
- "DHCP REQUEST messages received by the relay agent";
- }
-
- leaf bootrequest-sent {
- type yang:counter64;
- description
- "BOOTREQUEST messages forwarded by the relay agent";
- }
-
- leaf bootreply-sent {
- type yang:counter64;
- description
- "BOOTREPLY messages forwarded by the relay agent";
- }
-
- leaf dhcp-offer-sent {
- type yang:counter64;
- description
- "DHCP OFFER messages sent by the relay agent";
- }
-
- leaf dhcp-ack-sent {
- type yang:counter64;
- description
- "DHCP ACK messages sent by the relay agent";
- }
-
- leaf dhcp-nack-sent {
- type yang:counter64;
- description
- "DHCP NACK messages sent by the relay agent";
- }
- }
-
- grouping relay-agent-ipv6-stats {
- description
- "DHCPv4 relay agent message statistics";
-
- leaf dhcpv6-solicit-received {
- type yang:counter64;
- description
- "Number of DHCPv6 SOLICIT messages received from clients
- by the relay agent";
- }
-
- leaf dhcpv6-decline-received {
- type yang:counter64;
- description
- "Number of DHCPv6 DECLINE messages received from
- clients by the relay agent";
- }
-
- leaf dhcpv6-request-received {
- type yang:counter64;
- description
- "Number of DHCPv6 request messages received from clients
- by the relay agent";
- }
-
- leaf dhcpv6-release-received {
- type yang:counter64;
- description
- "Number of DHCPv6 release messages received from clients
- by the relay agent";
- }
-
- leaf dhcpv6-confirm-received {
- type yang:counter64;
- description
- "Number of DHCPv6 confirm messages received from clients
- by the relay agent";
- }
-
- leaf dhcpv6-rebind-received {
- type yang:counter64;
- description
- "Number of DHCPv6 rebind messages received from clients
- by the relay agent";
- }
-
- leaf dhcpv6-info-request-received {
- type yang:counter64;
- description
- "Number of DHCPv6 information requests messages received from
- clients by the relay agent";
- }
-
- leaf dhcpv6-relay-reply-received {
- type yang:counter64;
- description
- "Number of DHCPv6 relay reply messages received from servers
- by the relay agent";
- }
-
- leaf dhcpv6-adverstise-sent {
- type yang:counter64;
- description
- "Number of DHCPv6 adverstise messages sent to clients by
- the relay agent";
- }
-
- leaf dhcpv6-reply-sent {
- type yang:counter64;
- description
- "Number of DHCPv6 reply messages sent to clients by
- the relay agent";
- }
-
- leaf dhcpv6-reconfigure-sent {
- type yang:counter64;
- description
- "Number of DHCPv6 reconfigure messages sent to clients by
- the relay agent";
- }
-
- leaf dhcpv6-relay-forw-sent {
- type yang:counter64;
- description
- "Number of DHCPv6 relay-forward messages sent to servers
- by the relay agent";
- }
-
- }
-
- grouping relay-agent-ipv4-interfaces-config {
- description
- "Configuration data for interfaces enabled for relaying";
-
- leaf id {
- type oc-if:interface-id;
- description
- "Name of the interface on which relay agent is active";
- }
-
- leaf enable {
- type boolean;
- description
- "Enables the relay agent on the referenced interface.
- At least one helper address should also be configured
- for forwarding requested.";
- }
-
- leaf-list helper-address {
- type inet:ip-address;
- description
- "List of IPv4 or IPv6 addresses of DHCP servers to which the
- relay agent should forward DHCPv4 requests. The relay agent is
- expected to forward DHCPv4/BOOTP requests to all listed
- server addresses when DHCPv4 relaying is enabled globally, or
- on the interface.";
- }
- }
-
- grouping relay-agent-ipv4-interfaces-state {
- description
- "Operational state data for interfaces enabled for relaying";
-
- container counters {
- description
- "Counters and statistics for relay agent operation.";
-
- uses relay-agent-common-stats;
- uses relay-agent-ipv4-stats;
- }
- }
-
- grouping relay-agent-ipv4-interfaces-top {
- description
- "Top-level grouping for DHCPv4 relays on interfaces";
-
- container interfaces {
- description
- "Enclosing container for the list of interface references.";
-
- list interface {
- key "id";
- description
- "List of interfaces on which the relay agent is
- configured.";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "Reference to the interface list key";
- }
-
- container config {
- description
- "Configuration data for relay agent interfaces.";
-
- uses relay-agent-ipv4-interfaces-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for relay agent interfaces.";
-
- uses relay-agent-ipv4-interfaces-config;
- uses relay-agent-ipv4-interfaces-state;
- }
-
- uses oc-if:interface-ref;
- uses agent-information-ipv4-interface-top;
- }
- }
- }
-
- grouping relay-agent-ipv6-interfaces-config {
- description
- "Configuration data for interfaces enabled for relaying";
-
- leaf id {
- type oc-if:interface-id;
- description
- "Name of the interface on which relay agent is active";
- }
-
- leaf enable {
- type boolean;
- description
- "Enables the relay agent on the referenced interface.
- At least one helper address should also be configured
- for forwarding requested.";
- }
-
- leaf-list helper-address {
- type inet:ipv6-address;
- description
- "List of IPv6 addresses of DHCP servers to which the
- relay agent should forward DHCPv6 requests. The relay agent
- is expected to forward DHCPv4/BOOTP requests to all listed
- server addresses when DHCPv6 relaying is enabled globally, or
- on the interface.";
- }
- }
-
- grouping relay-agent-ipv6-interfaces-state {
- description
- "Operational state data for interfaces enabled for relaying";
-
- container counters {
- description
- "Counters and statistics for relay agent operation.";
-
- uses relay-agent-common-stats;
- uses relay-agent-ipv6-stats;
- }
- }
-
- grouping relay-agent-ipv6-interfaces-top {
- description
- "Top-level grouping for DHCPv4 relays on interfaces";
-
- container interfaces {
- description
- "Enclosing container for the list of interface references.";
-
- list interface {
- key "id";
- description
- "List of interfaces on which the relay agent is
- configured.";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "Reference to the interface list key";
- }
-
- container config {
- description
- "Configuration data for relay agent interfaces.";
-
- uses relay-agent-ipv6-interfaces-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for relay agent interfaces.";
-
- uses relay-agent-ipv6-interfaces-config;
- uses relay-agent-ipv6-interfaces-state;
- }
-
- uses oc-if:interface-ref;
- uses agent-options-ipv6-interface-top;
- }
- }
- }
-
- grouping relay-agent-top {
- description
- "Top-level container for relay agent configuration and opstate
- data.";
-
- container relay-agent {
- description
- "Top level container for relay-agent configuration and
- operational state data";
-
- uses relay-agent-ipv4-top;
- uses relay-agent-ipv6-top;
- }
- }
-
- // data definition statements
-
- uses relay-agent-top;
-
- // augment statements
-
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-rib-bgp-attributes.yang b/src/plugins/yang/openconfig/openconfig-rib-bgp-attributes.yang
deleted file mode 100644
index 0f0512c..0000000
--- a/src/plugins/yang/openconfig/openconfig-rib-bgp-attributes.yang
+++ /dev/null
@@ -1,907 +0,0 @@
-submodule openconfig-rib-bgp-attributes {
-
- belongs-to openconfig-rib-bgp {
- prefix "oc-rib-bgp";
- }
-
-
- // import some basic types
- import openconfig-bgp-types { prefix oc-bgpt; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-rib-bgp-types { prefix oc-bgprt; }
- import openconfig-segment-routing { prefix oc-sr; }
- import openconfig-inet-types { prefix oc-inet; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule contains common data definitions for BGP
- attributes for use in BGP RIB tables.";
-
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2016-10-17" {
- description
- "OpenConfig BGP RIB refactor";
- reference "0.3.0";
- }
-
-
- grouping bgp-as-path-attr-state {
- description
- "Data for representing BGP AS-PATH attribute";
-
- leaf type {
- type oc-bgpt:as-path-segment-type;
- description
- "The type of AS-PATH segment";
- }
-
- leaf-list member {
- type oc-inet:as-number;
- description
- "List of the AS numbers in the AS-PATH segment";
- }
- }
-
- grouping bgp-as-path-attr-top {
- description
- "Top-level grouping for AS-PATH attribute data";
-
- container as-path {
- description
- "Enclosing container for the list of AS path segments.
-
- In the Adj-RIB-In or Adj-RIB-Out, this list should show
- the received or sent AS_PATH, respectively. For
- example, if the local router is not 4-byte capable, this
- value should consist of 2-octet ASNs or the AS_TRANS
- (AS 23456) values received or sent in route updates.
-
- In the Loc-RIB, this list should reflect the effective
- AS path for the route, e.g., a 4-octet value if the
- local router is 4-octet capable.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)
- RFC 6793 - BGP Support for Four-octet AS Number Space
- RFC 5065 - Autonomous System Confederations for BGP";
-
- list segment {
- description
- "Unkeyed list of AS PATH segments";
-
- container state {
- config false;
- description
- "Opstate data for AS-PATH segments";
-
- uses bgp-as-path-attr-state;
- }
- }
- }
- }
-
- grouping bgp-as4-path-attr-top {
- description
- "Top-level grouping for AS4-PATH attribute data";
-
- container as4-path {
- description
- "This is the path encoded with 4-octet
- AS numbers in the optional transitive AS4_PATH attribute.
- This value is populated with the received or sent attribute
- in Adj-RIB-In or Adj-RIB-Out, respectively. It should not
- be populated in Loc-RIB since the Loc-RIB is expected to
- store the effective AS-Path in the as-path leaf regardless
- of being 4-octet or 2-octet.";
- reference
- "RFC 6793 - BGP Support for Four-octet AS Number Space";
-
- list segment {
- description
- "Unkeyed list of AS PATH segments";
-
- container state {
- config false;
- description
- "Opstate data for AS-PATH segments";
-
- uses bgp-as-path-attr-state;
- }
- }
- }
- }
-
- grouping bgp-community-attr-state {
- description
- "Common definition of BGP community attributes";
-
- leaf-list community {
- type union {
- type oc-bgpt:bgp-well-known-community-type;
- type oc-bgpt:bgp-std-community-type;
- }
- description
- "List of standard or well-known BGP community
- attributes.";
- }
- }
-
- grouping bgp-extended-community-attr-state {
- description
- "Common definition of BGP extended community attribute";
-
- leaf-list ext-community {
- type oc-bgpt:bgp-ext-community-recv-type;
- description
- "List of BGP extended community attributes. The received
- extended community may be an explicitly modeled
- type or unknown, represented by an 8-octet value
- formatted according to RFC 4360.";
- reference
- "RFC 4360 - BGP Extended Communities Attribute";
- }
-
- }
-
- grouping bgp-aggregator-attr-state {
- description
- "Operational state data for the BGP aggregator
- attribute";
-
- leaf as {
- type oc-inet:as-number;
- description
- "AS number of the autnonomous system that performed the
- aggregation.";
- }
-
- leaf as4 {
- type oc-inet:as-number;
- description
- "AS number of the autnonomous system that performed the
- aggregation (4-octet representation). This value is
- populated if an upstream router is not 4-octet capable.
- Its semantics are similar to the AS4_PATH optional
- transitive attribute";
- reference
- "RFC 6793 - BGP Support for Four-octet AS Number Space";
- }
-
- leaf address {
- type oc-inet:ipv4-address;
- description
- "IP address of the router that performed the
- aggregation.";
- }
- }
-
-
- grouping bgp-aggregator-attr-top {
- description
- "Common definition of the BGP aggregator attribute";
-
- container aggregator {
- description
- "BGP attribute indicating the prefix has been aggregated by
- the specified AS and router.";
-
- container state {
- config false;
- description
- "Operational state data for BGP aggregator attribute";
-
- uses bgp-aggregator-attr-state;
- }
- }
- }
-
- grouping bgp-shared-common-attr-state {
- description
- "Route attributes shared across route table entries,
- common to both LOC-Rib and Adj-RIB";
-
-
- leaf origin {
- type oc-bgpt:bgp-origin-attr-type;
- description
- "BGP attribute defining the origin of the path information.";
- }
-
- leaf atomic-aggregate {
- type boolean;
- description
- "BGP attribute indicating that the prefix is an atomic
- aggregate, i.e., the peer selected a less specific
- route without selecting a more specific route that is
- included in it.";
- }
-
- leaf next-hop {
- type oc-inet:ip-address;
- description
- "BGP next hop attribute defining the IP address of the router
- that should be used as the next hop to the destination";
- }
-
- leaf med {
- type uint32;
- description
- "BGP multi-exit discriminator attribute used in BGP route
- selection process";
- }
-
- leaf local-pref {
- type uint32;
- description
- "BGP local preference attribute sent to internal peers to
- indicate the degree of preference for externally learned
- routes. The route with the highest local preference value
- is preferred.";
- }
-
- leaf originator-id {
- type oc-inet:ipv4-address;
- description
- "BGP attribute that provides the id as an IPv4 address
- of the originator of the announcement.";
- reference
- "RFC 4456 - BGP Route Reflection: An Alternative to Full
- Mesh Internal BGP (IBGP)";
- }
-
- leaf-list cluster-list {
- type oc-inet:ipv4-address;
- description
- "Represents the reflection path that the route has passed.";
- reference
- "RFC 4456 - BGP Route Reflection: An Alternative to Full
- Mesh Internal BGP (IBGP)";
- }
-
- leaf aigp {
- type uint64;
- description
- "BGP path attribute representing the accumulated IGP metric
- for the path";
- reference
- "RFC 7311 - The Accumulated IGP Metric Attribute for BGP";
- }
- }
-
- grouping bgp-unknown-attr-flags-state {
- description
- "Operational state data for path attribute flags";
-
- leaf optional {
- type boolean;
- description
- "Defines whether the attribute is optional (if
- set to true) or well-known (if set to false).
- Set in the high-order bit of the BGP attribute
- flags octet.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
-
- leaf transitive {
- type boolean;
- description
- "Defines whether an optional attribute is transitive
- (if set to true) or non-transitive (if set to false). For
- well-known attributes, the transitive flag MUST be set to
- true. Set in the second high-order bit of the BGP attribute
- flags octet.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
-
- leaf partial {
- type boolean;
- description
- "Defines whether the information contained in the optional
- transitive attribute is partial (if set to true) or complete
- (if set to false). For well-known attributes and for
- optional non-transitive attributes, the partial flag
- must be set to false. Set in the third high-order bit of
- the BGP attribute flags octet.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
-
- leaf extended {
- type boolean;
- description
- "Defines whether the attribute length is one octet
- (if set to false) or two octets (if set to true). Set in
- the fourth high-order bit of the BGP attribute flags
- octet.";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
- }
-
- grouping bgp-unknown-attr-state {
- description
- "Operational state data for path attributes not shared
- across route entries, common to LOC-RIB and Adj-RIB";
-
- leaf attr-type {
- type uint8;
- description
- "1-octet value encoding the attribute type code";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
-
- leaf attr-len {
- type uint16;
- description
- "One or two octet attribute length field indicating the
- length of the attribute data in octets. If the Extended
- Length attribute flag is set, the length field is 2 octets,
- otherwise it is 1 octet";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
-
- leaf attr-value {
- type binary {
- length 1..65535;
- }
- description
- "Raw attribute value, not including the attribute
- flags, type, or length. The maximum length
- of the attribute value data is 2^16-1 per the max value
- of the attr-len field (2 octets).";
- reference
- "RFC 4271 - A Border Gateway Protocol 4 (BGP-4)";
- }
- }
-
- grouping bgp-unknown-attr-top {
- description
- "Unknown path attributes that are not expected to be shared
- across route entries, common to LOC-RIB and Adj-RIB";
-
- container unknown-attributes {
- description
- "Unknown path attributes that were received in the UPDATE
- message which contained the prefix.";
-
- list unknown-attribute {
- key "attr-type";
- description
- "This list contains received attributes that are unrecognized
- or unsupported by the local router. The list may be empty.";
-
- leaf attr-type {
- type leafref {
- path "../state/attr-type";
- }
- description
- "Reference to the list key";
- }
-
- container state {
- description
- "Operational state for unknown route attributes";
-
- uses bgp-unknown-attr-flags-state;
- uses bgp-unknown-attr-state;
- }
- }
- }
- }
-
- grouping bgp-loc-rib-attr-state {
- description
- "Path attributes that are not expected to be shared across
- route entries, specific to LOC-RIB";
-
- }
-
- grouping bgp-adj-rib-attr-state {
- description
- "Path attributes that are not expected to be shared across
- route entries, specific to Adj-RIB";
-
- leaf path-id {
- type uint32;
- description
- "When the BGP speaker supports advertisement of multiple
- paths for a prefix, the path identifier is used to
- uniquely identify a route based on the combination of the
- prefix and path id. In the Adj-RIB-In, the path-id value is
- the value received in the update message. In the Loc-RIB,
- if used, it should represent a locally generated path-id
- value for the corresponding route. In Adj-RIB-Out, it
- should be the value sent to a neighbor when add-paths is
- used, i.e., the capability has been negotiated.";
- reference
- "draft-ietf-idr-add-paths - Advertisement of Multiple Paths
- in BGP";
- }
- }
-
- grouping bgp-tunnel-encapsulation-attr-top {
- description
- "Top-level definition of the BGP Tunnel encapsulation
- attribute.";
-
- container tunnel-encapsulation {
- config false;
- description
- "The Tunnel Encapsulation attribute specifies a set of
- tunnels to a remote destination. The attribute is TLV
- based and allows description of a tunnel type, and the
- relevant information to create the tunnel to the remote
- destination.";
-
- reference "RFC5512, draft-ietf-idr-tunnel-encaps";
-
- container tunnels {
- description
- "Surrounding container for the set of tunnels included
- within the tunnel encapsulation attribute.";
-
- list tunnel {
- key "type";
- description
- "List of the tunnels that are specified within the
- attribute. Keyed on the type of tunnel that the
- TLV describes.";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to the tunnel type specified within the
- TLV's type field.";
- }
-
- container state {
- config false;
- description
- "State parameters of the tunnel attribute";
-
- uses bgp-tunnel-encapsulation-attr-tunnel-state;
- }
-
- container subtlvs {
- description
- "Surrounding container for the list of sub-TLVs within
- the tunnel encapsulation attribute.";
-
- list subtlv {
- key "type";
- description
- "List of the subTLVs that are specified within the
- TLV instance inside the tunnel encapsulation attribute.";
-
- leaf type {
- type leafref {
- path "../state/type";
- }
- description
- "Reference to the sub-TLV type that is included within
- the subTLV.";
- }
-
- container state {
- config false;
- description
- "State parameters of the subTLV of the tunnel attribute";
-
- uses bgp-tunnel-encapsulation-attr-tunnel-subtlv-state;
- }
-
- container remote-endpoints {
- when "../state/type = 'oc-bgprt:TUNNEL_REMOTE_ENDPOINT'" {
- description
- "Only allow the remote endpoint to be specified when the
- subTLV is specified to describe remote endpoints.";
- }
-
- description
- "The remote endpoints associated with the tunnel
- described by the attribute.";
-
- list remote-endpoint {
- key "endpoint";
- description
- "List of the remote endpoints described within the TLV.";
-
- leaf endpoint {
- type leafref {
- path "../state/endpoint";
- }
- description
- "Reference to the IP address of the endpoint.";
- }
-
- container state {
- config false;
- description
- "State parameters of the remote endpoints described
- by the attribute.";
-
- uses bgp-tunnel-encapsulation-attr-tunnel-subtlv-endpoint-state;
- }
- }
- }
-
- container segment-lists {
- when "../state/type = 'oc-bgprt:SRTE_SEGMENT_LIST'" {
- description
- "Only allow the segment lists to be specified when the sub-TLV
- is of the relevant type.";
- }
-
- description
- "Surrounding container for the list of segment lists that are
- associated with a SR-TE Policy tunnel.";
-
- list segment-list {
- key "instance-id";
-
- description
- "List of segment lists that are specified within the
- tunnel encapsulation attribute.";
-
- leaf instance-id {
- type leafref {
- path "../state/instance-id";
- }
- description
- "Reference to the instance identifier of the Segment List
- that is included within the tunnel encapsulation
- attribute.";
- }
-
- container state {
- config false;
- description
- "State parameters relating to the Segment List within the
- Tunnel Encapsulation attribute.";
-
- uses bgp-tunnel-encapsulation-attr-tunnel-subtlv-segment-list-state;
- }
-
- container segments {
- description
- "Surrounding container for the list of segments within the
- SR-TE segment list.";
-
- list segment {
- key "index";
-
- description
- "List of segments within the SR-TE segment list.";
-
- leaf index {
- type leafref {
- path "../state/index";
- }
- description
- "Reference to the index of the segment within the
- segment list.";
- }
-
- container state {
- config false;
- description
- "State parameters relating to the segment within
- the segment list.";
-
- uses bgp-tunnel-encapsulation-attr-tunnel-subtlv-segment-state;
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
- }
-
- grouping bgp-tunnel-encapsulation-attr-tunnel-state {
- description
- "State parameters of the tunnel encapsulation attribute";
-
- leaf type {
- type identityref {
- base "oc-bgprt:TUNNEL_ENCAPSULATION_TYPE";
- }
- description
- "Type of the tunnel described within the tunnel encapsulation
- attribute.";
- }
- }
-
- grouping bgp-tunnel-encapsulation-attr-tunnel-subtlv-state {
- description
- "State parameters relating to subTLVs of the tunnel encapsulation
- attribute.";
-
- leaf type {
- type identityref {
- base "oc-bgprt:TUNNEL_ENCAPSULATION_SUBTLV_TYPE";
- }
- description
- "Type of the sub-TLV within the tunnel encapsulation attribute";
- }
-
- leaf-list colors {
- when "../type = 'oc-bgprt:TUNNEL_COLOR'" {
- description
- "Only allow list of colours to be specified when the sub-TLV
- specifies colours associated with the tunnel encapsulation
- attribute.";
- }
- type uint32;
- description
- "The colours associated with the tunnel encapsulation attribute,
- as described by RFC5512.";
- }
-
- leaf preference {
- when "../type = 'oc-bgprt:SRTE_PREFERENCE'" {
- description
- "Only allow the preference to be specified when the sub-TLV
- specifies the preference associated with the tunnel encapsulation
- attribute.";
- }
- type uint32;
- default 100;
- description
- "The preference of the SR-TE policy described by the tunnel
- encapsulation attribute. If unspecified, the preference
- defaults to 100.";
- }
-
- leaf binding-sid {
- when "../type = 'oc-bgprt:SRTE_BINDING_SID'" {
- description
- "Only allow the binding SID to be specified when the sub-TLV
- is specified to be the of the relevant type.";
- }
- type oc-sr:sr-sid-type;
- description
- "Binding SID associated with the SR-TE policy";
- }
- }
-
- grouping bgp-tunnel-encapsulation-attr-tunnel-subtlv-endpoint-state {
- description
- "State parameters relating to the remote endpoint described by a
- tunnel encapsulation attribute.";
-
- leaf as {
- type oc-inet:as-number;
- description
- "The remote AS to which the IP address of the remote endpoint
- belongs.";
- }
-
- leaf endpoint {
- type oc-inet:ip-address;
- description
- "IP address of the remote endpoint.";
- }
- }
-
- grouping bgp-tunnel-encapsulation-attr-tunnel-subtlv-segment-list-state {
- description
- "State parameters relating to an entry within a segment list within
- a SR-TE policy segment list.";
-
- leaf instance-id {
- type uint64;
- description
- "Instance of the segment list within the sub-TLV";
- }
-
- leaf weight {
- type uint32;
- description
- "The weight given to the path within the set of segment
- lists that are included in the tunnel attribute sub-TLV.";
- }
- }
-
- grouping bgp-tunnel-encapsulation-attr-tunnel-subtlv-segment-state {
- description
- "State parameters relating to a segment within the segment list.";
-
- leaf index {
- type uint64;
- description
- "Index of the segment within the segment list. The segments are
- ordered in ascending order, beginning at 0.";
- }
-
- leaf type {
- type enumeration {
- enum MPLS_SID {
- description
- "The segment is specified as an MPLS label.";
- value 1;
- }
- enum IPV6_SID {
- description
- "The segment is specified as an IPv6 address.";
- value 2;
- }
- enum IPV4_NODE_ADDRESS {
- description
- "The segment is specified as an IPv4 node address with
- optional SID.";
- value 3;
- }
- enum IPV6_NODE_ADDRESS {
- description
- "The segment is specified as an IPv6 node address with
- optional SID.";
- value 4;
- }
- enum IPV4_LOCAL_INTF_ID {
- description
- "The segment is specified as an IPv4 address with a
- local interface identifier along with an .";
- value 5;
- }
- enum IPV4_LOCAL_REMOTE_ADDR {
- description
- "The segment is specified as an IPv4 local and remote
- address with an optional SID.";
- value 6;
- }
- enum IPV6_LOCAL_INTF_ID {
- description
- "The segment is specified as an IPv6 address with an
- index, along with an optional SID.";
- value 7;
- }
- enum IPV6_LOCAL_REMOTE_ADDR {
- description
- "The segmetn is specified as an IPv6 local and remote
- address with an optional SID.";
- value 8;
- }
- }
- description
- "The type of segment specified within the segment entry.";
- }
-
- leaf sid {
- type oc-sr:sr-sid-type;
- description
- "SID value for the segment entry, specified as an MPLS label
- or IPv6 address.";
- }
-
- leaf mpls-tc {
- when "../type = 'MPLS_SID'" {
- description
- "The MPLS TC bits can only be specified when the segment
- time is an MPLS label.";
- }
- type uint8 {
- range "0..7";
- }
- description
- "The MPLS TC bits used when the SID is specified as an MPLS
- label. If set to zero, the receiving system specifies the
- value of the TC bits.";
- }
-
- leaf mpls-bos {
- when "../type = 'MPLS_SID'" {
- description
- "The MPLS BoS bit can only be specified when the segment
- type is an MPLS label.";
- }
- type boolean;
- description
- "When this leaf is set to true the MPLS bottom-of-stack
- (BoS) bit is set in the MPLS segment. The BoS bit should
- always be set to zero by the sender.";
- }
-
- leaf mpls-ttl {
- when "../type = 'MPLS_SID'" {
- description
- "The MPLS TTL can only be set when the segment type is
- an MPLS label.";
- }
- type uint8;
- description
- "The MPLS time to live (TTL) to be set for the MPLS
- segment. If set to 255, the receiver specifies the
- TTL value that is used for packets sent with this
- segment in the stack.";
- }
-
- leaf remote-ipv4-address {
- when "../type = 'IPV4_NODE_ADDRESS' or ../type='../IPV4_ADDRESS_INDEX'" +
- "or ../type='IPV4_LOCAL_INTF_ID' or " +
- "../type='IPV4_LOCAL_REMOTE_ADDR'" {
- description
- "An IPv4 address can only be associated with the segment entry
- when the type of the SID is a node address, or an IPv6 address
- with an index.";
- }
- type oc-inet:ipv4-address;
- description
- "An IPv4 address specified as the remote node address. When the type
- of the segment specifies only the remote address, no other addresses
- are specified. When the type of the segment requires a local address,
- this leaf specifies the remote IPv4 address.";
- }
-
- leaf local-ipv4-address {
- when "../type = 'IPV4_LOCAL_REMOTE_ADDR'" {
- description
- "A local IPv4 address can only be specified when the segment is
- specified by the local and remote IPv4 interface addresses.";
- }
- type oc-inet:ipv4-address;
- description
- "An IPv4 address of a local adjacency that is used to identify
- the segment.";
- }
-
- leaf remote-ipv6-address {
- when "../type = 'IPV6_NODE_ADDRESS' or ../type='IPV6_ADDRESS_INDEX'" +
- "or ../type='IPV6_LOCAL_INTF_ID' or " +
- "../type='IPV6_LOCAL_REMOTE_ADDR'" {
- description
- "An IPv6 address can only be specified with a segment entry
- when the type of the SID is a node address, or an IPv6 address
- with an index.";
- }
- type oc-inet:ipv6-address;
- description
- "An IPv6 address specified as the remote node address. When the type
- of the segment specifies only the remote address, no other addresses
- are specified. When the type of the segment requires a local address,
- this leaf specifies the remote IPv6 address.";
- }
-
- leaf local-ipv6-address {
- when "../type = 'IPV6_LOCAL_REMOTE_ADDR'" {
- description
- "A local IPv6 address can only be speciifed when the segment
- is specified by the local and remote IPv6 interface addresses.";
- }
- type oc-inet:ipv6-address;
- description
- "An IPv6 address of a local adjacency that is used to identify the
- segment.";
- }
-
- leaf local-interface-id {
- when "../type = 'IPV4_LOCAL_INTF_ID' or ../type='IPV6_LOCAL_INTF_ID'" {
- description
- "A local interface identifier can only be specified when the
- type of the segment is an IPv4 address with local interface ID,
- or IPv6 address with local interface ID.";
- }
- type uint32;
- description
- "The local interface identifier to be utilised for the segment.";
- reference
- "draft-ietf-pce-segment-routing";
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-rib-bgp-ext.yang b/src/plugins/yang/openconfig/openconfig-rib-bgp-ext.yang
deleted file mode 100644
index 3c7cf35..0000000
--- a/src/plugins/yang/openconfig/openconfig-rib-bgp-ext.yang
+++ /dev/null
@@ -1,166 +0,0 @@
-module openconfig-rib-bgp-ext {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/rib/bgp-ext";
-
- prefix "oc-bgprib-ext";
-
- import openconfig-rib-bgp { prefix oc-bgprib; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-rib-bgp-types { prefix oc-bgpribt; }
-
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Defines additional data nodes for the OpenConfig BGP RIB model.
- These items reflect extensions that are desirable features but
- are not currently supported in a majority of BGP
- implementations.";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2016-10-17" {
- description
- "OpenConfig BGP RIB refactor";
- reference "0.3.0";
- }
-
- revision "2016-04-11" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
-
- grouping rib-ext-route-annotations {
- description
- "Extended annotations for routes in the routing tables";
-
- leaf reject-reason {
- type union {
- type identityref {
- base oc-bgpribt:BGP_NOT_SELECTED_BESTPATH;
- }
- type identityref {
- base oc-bgpribt:BGP_NOT_SELECTED_POLICY;
- }
- }
- description
- "Indicates the reason the route is not used, either due to
- policy filtering or bestpath selection";
- }
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/oc-bgprib:loc-rib/" +
- "oc-bgprib:routes/oc-bgprib:route/oc-bgprib:state" {
- description
- "Add extended annotations to the Loc-RIB for IPv4";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/oc-bgprib:loc-rib/" +
- "oc-bgprib:routes/oc-bgprib:route/oc-bgprib:state" {
- description
- "Add extended annotations to the Loc-RIB for IPv6";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/" +
- "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
- "oc-bgprib:adj-rib-in-pre/oc-bgprib:routes/oc-bgprib:route" +
- "/oc-bgprib:state" {
- description
- "Add extended annotations to Adj-RIB for IPv4";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/" +
- "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
- "oc-bgprib:adj-rib-in-post/oc-bgprib:routes/oc-bgprib:route" +
- "/oc-bgprib:state"{
- description
- "Add extended annotations to Adj-RIB for IPv4";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/" +
- "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
- "oc-bgprib:adj-rib-out-pre/oc-bgprib:routes/oc-bgprib:route" +
- "/oc-bgprib:state"{
- description
- "Add extended annotations to Adj-RIB for IPv4";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv4-unicast/" +
- "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
- "oc-bgprib:adj-rib-out-post/oc-bgprib:routes/oc-bgprib:route" +
- "/oc-bgprib:state"{
- description
- "Add extended annotations to Adj-RIB for IPv4";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/" +
- "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
- "oc-bgprib:adj-rib-in-pre/oc-bgprib:routes/oc-bgprib:route" +
- "/oc-bgprib:state"{
- description
- "Add extended annotations to Adj-RIB for IPv6";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/" +
- "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
- "oc-bgprib:adj-rib-in-post/oc-bgprib:routes/oc-bgprib:route" +
- "/oc-bgprib:state"{
- description
- "Add extended annotations to Adj-RIB for IPv6";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/" +
- "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
- "oc-bgprib:adj-rib-out-pre/oc-bgprib:routes/oc-bgprib:route" +
- "/oc-bgprib:state"{
- description
- "Add extended annotations to Adj-RIB for IPv6";
-
- uses rib-ext-route-annotations;
- }
-
- augment "/oc-bgprib:bgp-rib/oc-bgprib:afi-safis/" +
- "oc-bgprib:afi-safi/oc-bgprib:ipv6-unicast/" +
- "oc-bgprib:neighbors/oc-bgprib:neighbor/" +
- "oc-bgprib:adj-rib-out-post/oc-bgprib:routes/oc-bgprib:route" +
- "/oc-bgprib:state"{
- description
- "Add extended annotations to Adj-RIB for IPv6";
-
- uses rib-ext-route-annotations;
- }
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-rib-bgp-shared-attributes.yang b/src/plugins/yang/openconfig/openconfig-rib-bgp-shared-attributes.yang
deleted file mode 100644
index 77a79b6..0000000
--- a/src/plugins/yang/openconfig/openconfig-rib-bgp-shared-attributes.yang
+++ /dev/null
@@ -1,171 +0,0 @@
-submodule openconfig-rib-bgp-shared-attributes {
-
- belongs-to openconfig-rib-bgp {
- prefix "oc-rib-bgp";
- }
-
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
- include openconfig-rib-bgp-attributes;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule contains structural data definitions for
- attribute sets shared across routes.";
-
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2016-10-17" {
- description
- "OpenConfig BGP RIB refactor";
- reference "0.3.0";
- }
-
-
- grouping attribute-sets-top {
- description
- "Top level grouping for list of common attribute sets";
-
- container attr-sets {
- description
- "Enclosing container for the list of path attribute sets";
-
- list attr-set {
- key "index";
-
- description
- "List of path attributes that may be in use by multiple
- routes in the table";
-
- leaf index {
- type leafref {
- path "../state/index";
- }
- description
- "Reference to list key";
- }
-
- container state {
- config false;
- description
- "Operational state for common path attributes";
-
- leaf index {
- type uint64;
- description
- "System generated index for each attribute set. The
- index is used to reference an attribute set from a
- specific path. Multiple paths may reference the same
- attribute set.";
- }
-
- uses bgp-shared-common-attr-state;
- }
- uses bgp-aggregator-attr-top;
- uses bgp-as-path-attr-top;
- uses bgp-as4-path-attr-top;
- uses bgp-tunnel-encapsulation-attr-top;
- }
- }
- }
-
- grouping community-sets-top {
- description
- "Top level grouping for list of shared community attribute
- sets";
-
- container communities {
- description
- "Enclosing container for the list of community attribute
- sets";
-
- list community {
- key "index";
-
- description
- "List of path attributes that may be in use by multiple
- routes in the table";
-
- leaf index {
- type leafref {
- path "../state/index";
- }
- description
- "Reference to the list key";
- }
-
- container state {
- config false;
- description
- "Operational state for shared BGP community attribute";
-
- leaf index {
- type uint64;
- description
- "System generated index for each attribute set. The
- index is used to reference an attribute set from a
- specific path. Multiple paths may reference the same
- attribute set.";
- }
-
- uses bgp-community-attr-state;
- }
- }
- }
- }
-
- grouping ext-community-sets-top {
- description
- "Top level grouping for list of extended community attribute
- sets";
-
- container ext-communities {
- description
- "Enclosing container for the list of extended community
- attribute sets";
-
- list ext-community {
- key "index";
-
- description
- "List of path attributes that may be in use by multiple
- routes in the table";
-
- leaf index {
- type leafref {
- path "../state/index";
- }
- description
- "Reference to the list key";
- }
-
- container state {
- config false;
- description
- "Operational state for shared BGP extended community
- attribute";
-
- leaf index {
- type uint64;
- description
- "System generated index for each attribute set. The
- index is used to reference an attribute set from a
- specific path. Multiple paths may reference the same
- attribute set.";
- }
-
- uses bgp-extended-community-attr-state;
- }
- }
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-rib-bgp-table-attributes.yang b/src/plugins/yang/openconfig/openconfig-rib-bgp-table-attributes.yang
deleted file mode 100644
index 285f0a9..0000000
--- a/src/plugins/yang/openconfig/openconfig-rib-bgp-table-attributes.yang
+++ /dev/null
@@ -1,113 +0,0 @@
-submodule openconfig-rib-bgp-table-attributes {
-
- belongs-to openconfig-rib-bgp {
- prefix "oc-rib-bgp";
- }
-
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-types { prefix oc-types; }
- import openconfig-rib-bgp-types { prefix oc-bgpribt; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule contains common data definitions for data
- related to a RIB entry, or RIB table.";
-
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2016-10-17" {
- description
- "OpenConfig BGP RIB refactor";
- reference "0.3.0";
- }
-
-
-
- grouping bgp-common-route-annotations-state {
- description
- "Data definitions for flags and other information attached
- to routes in both LOC-RIB and Adj-RIB";
-
- leaf last-modified {
- type oc-types:timeticks64;
- description
- "Timestamp when this path was last modified.
-
- The value is the timestamp in seconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- }
-
- leaf valid-route {
- type boolean;
- description
- "Indicates that the route is considered valid by the
- local router";
- }
-
- leaf invalid-reason {
- type identityref {
- base oc-bgpribt:INVALID_ROUTE_REASON;
- }
- description
- "If the route is rejected as invalid, this indicates the
- reason.";
- }
-
- }
-
- grouping bgp-loc-rib-route-annotations-state {
- description
- "Data definitions for information attached to routes in the
- LOC-RIB";
-
- // placeholder for route metadata specific to the LOC-RIB
-
- }
-
- grouping bgp-adj-rib-in-post-route-annotations-state {
- description
- "Data definitions for information attached to routes in the
- Adj-RIB-in post-policy table";
-
- leaf best-path {
- type boolean;
- description
- "Current path was selected as the best path.";
- }
- }
-
- grouping bgp-common-table-attrs-state {
- description
- "Common attributes attached to all routing tables";
-
- // placeholder for metadata associated with all tables
- }
-
- grouping bgp-common-table-attrs-top {
- description
- "Operational state data for common attributes attached to
- all routing tables";
- // no enclosing container as this data will fit under an
- // existing LOC-RIB container
-
- container state {
- config false;
- description
- "Operational state data for data related to the entire
- LOC-RIB";
-
- uses bgp-common-table-attrs-state;
- }
- }
-
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang b/src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang
deleted file mode 100644
index f7a759d..0000000
--- a/src/plugins/yang/openconfig/openconfig-rib-bgp-tables.yang
+++ /dev/null
@@ -1,883 +0,0 @@
-submodule openconfig-rib-bgp-tables {
-
- belongs-to openconfig-rib-bgp {
- prefix "oc-rib-bgp";
- }
-
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-policy-types { prefix oc-pol-types; }
-
- include openconfig-rib-bgp-attributes;
- include openconfig-rib-bgp-shared-attributes;
- include openconfig-rib-bgp-table-attributes;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This submodule contains structural data definitions for
- BGP routing tables.";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2016-10-17" {
- description
- "OpenConfig BGP RIB refactor";
- reference "0.3.0";
- }
-
-
- grouping bgp-adj-rib-common-attr-refs {
- description
- "Definitions of common references to attribute sets for
- multiple AFI-SAFIs for Adj-RIB tables";
-
- leaf attr-index {
- type leafref {
- path "../../../../../../../../../../attr-sets/attr-set/" +
- "state/index";
- }
- description
- "Reference to the common attribute group for the
- route";
- }
-
- leaf community-index {
- type leafref {
- path "../../../../../../../../../../communities/community/" +
- "state/index";
- }
- description
- "Reference to the community attribute for the route";
- }
-
- leaf ext-community-index {
- type leafref {
- path "../../../../../../../../../../ext-communities/" +
- "ext-community/state/index";
- }
- description
- "Reference to the extended community attribute for the
- route";
- }
- }
-
- grouping bgp-loc-rib-common-attr-refs {
- description
- "Definitions of common references to attribute sets for
- multiple AFI-SAFIs for LOC-RIB tables";
-
- leaf attr-index {
- type leafref {
- path "../../../../../../../../attr-sets/attr-set/" +
- "state/index";
- }
- description
- "Reference to the common attribute group for the
- route";
- }
-
- leaf community-index {
- type leafref {
- path "../../../../../../../../communities/community/" +
- "state/index";
- }
- description
- "Reference to the community attribute for the route";
- }
-
- leaf ext-community-index {
- type leafref {
- path "../../../../../../../../ext-communities/" +
- "ext-community/state/index";
- }
- description
- "Reference to the extended community attribute for the
- route";
- }
- }
-
- grouping bgp-loc-rib-common-keys {
- description
- "Common references used in keys for IPv4 and IPv6
- LOC-RIB entries";
-
- leaf origin {
- type union {
- type oc-inet:ip-address;
- type identityref {
- base oc-pol-types:INSTALL_PROTOCOL_TYPE;
- }
- }
- description
- "Indicates the origin of the route. If the route is learned
- from a neighbor, this value is the neighbor address. If
- the route was injected or redistributed from another
- protocol, the origin indicates the source protocol for the
- route.";
- }
-
- leaf path-id {
- type uint32;
- default 0;
- description
- "If the route is learned from a neighbor, the path-id
- corresponds to the path-id for the route in the
- corresponding adj-rib-in-post table. If the route is
- injected from another protocol, or the neighbor does not
- support BGP add-paths, the path-id should be set
- to zero, also the default value.";
- }
- }
-
- grouping bgp-loc-rib-key-refs {
- description
- "Key references to support operational state structure for
- the BGP LOC-RIB table";
-
- leaf prefix {
- type leafref {
- path "../state/prefix";
- }
- description
- "Reference to the prefix list key";
- }
-
- leaf origin {
- type leafref {
- path "../state/origin";
- }
- description
- "Reference to the origin list key";
- }
-
- leaf path-id {
- type leafref {
- path "../state/path-id";
- }
- description
- "Reference to the path-id list key";
- }
- }
-
- grouping ipv4-loc-rib-top {
- description
- "Top-level grouping for IPv4 routing tables";
-
- container loc-rib {
- config false;
- description
- "Container for the IPv4 BGP LOC-RIB data";
-
- uses bgp-common-table-attrs-top;
-
- container routes {
- description
- "Enclosing container for list of routes in the routing
- table.";
-
- list route {
- key "prefix origin path-id";
-
- description
- "List of routes in the table, keyed by the route
- prefix, the route origin, and path-id. The route
- origin can be either the neighbor address from which
- the route was learned, or the source protocol that
- injected the route. The path-id distinguishes routes
- for the same prefix received from a neighbor (e.g.,
- if add-paths is eanbled).";
-
- uses bgp-loc-rib-key-refs;
-
- container state {
- description
- "Operational state data for route entries in the
- BGP LOC-RIB";
-
- leaf prefix {
- type oc-inet:ipv4-prefix;
- description
- "The IPv4 prefix corresponding to the route";
- }
-
- uses bgp-loc-rib-common-keys;
- uses bgp-loc-rib-common-attr-refs;
- uses bgp-loc-rib-attr-state;
- uses bgp-common-route-annotations-state;
- uses bgp-loc-rib-route-annotations-state;
-
- }
-
- uses bgp-unknown-attr-top;
-
- }
- }
- }
- }
-
- grouping ipv6-loc-rib-top {
- description
- "Top-level grouping for IPv6 routing tables";
-
- container loc-rib {
- config false;
- description
- "Container for the IPv6 BGP LOC-RIB data";
-
- uses bgp-common-table-attrs-top;
-
- container routes {
- description
- "Enclosing container for list of routes in the routing
- table.";
-
- list route {
- key "prefix origin path-id";
-
- description
- "List of routes in the table, keyed by the route
- prefix, the route origin, and path-id. The route
- origin can be either the neighbor address from which
- the route was learned, or the source protocol that
- injected the route. The path-id distinguishes routes
- for the same prefix received from a neighbor (e.g.,
- if add-paths is eanbled).";
-
- uses bgp-loc-rib-key-refs;
-
- container state {
- description
- "Operational state data for route entries in the
- BGP LOC-RIB";
-
- leaf prefix {
- type oc-inet:ipv6-prefix;
- description
- "The IPv6 prefix corresponding to the route";
- }
-
- uses bgp-loc-rib-common-keys;
- uses bgp-loc-rib-common-attr-refs;
- uses bgp-loc-rib-attr-state;
- uses bgp-common-route-annotations-state;
- uses bgp-loc-rib-route-annotations-state;
-
- }
-
- uses bgp-unknown-attr-top;
- }
- }
- }
- }
-
- grouping bgp-adj-rib-key-refs {
- description
- "Key references to support operational state structure for
- the BGP Adj-RIB tables";
-
- leaf prefix {
- type leafref {
- path "../state/prefix";
- }
- description
- "Reference to the prefix list key";
- }
-
- leaf path-id {
- type leafref {
- path "../state/path-id";
- }
- description
- "Reference to the path-id list key";
- }
- }
-
- grouping ipv4-adj-rib-common {
- description
- "Common structural grouping for each IPv4 adj-RIB table";
-
- uses bgp-common-table-attrs-top;
-
- container routes {
- config false;
- description
- "Enclosing container for list of routes in the routing
- table.";
-
- list route {
- key "prefix path-id";
-
- description
- "List of routes in the table, keyed by a combination of
- the route prefix and path-id to distinguish multiple
- routes received from a neighbor for the same prefix,
- e.g., when BGP add-paths is enabled.";
-
- uses bgp-adj-rib-key-refs;
-
- container state {
- description
- "Operational state data for BGP Adj-RIB entries";
-
- leaf prefix {
- type oc-inet:ipv4-prefix;
- description
- "Prefix for the route";
- }
-
- uses bgp-adj-rib-attr-state;
- uses bgp-adj-rib-common-attr-refs;
- uses bgp-common-route-annotations-state;
- }
-
- uses bgp-unknown-attr-top;
-
- }
- }
- }
-
- grouping ipv4-adj-rib-in-post {
- description
- "Common structural grouping for the IPv4 adj-rib-in
- post-policy table";
-
- uses bgp-common-table-attrs-top;
-
- container routes {
- config false;
- description
- "Enclosing container for list of routes in the routing
- table.";
-
- list route {
- key "prefix path-id";
-
- description
- "List of routes in the table, keyed by a combination of
- the route prefix and path-id to distinguish multiple
- routes received from a neighbor for the same prefix,
- e.g., when BGP add-paths is enabled.";
-
- uses bgp-adj-rib-key-refs;
-
- container state {
- description
- "Operational state data for BGP Adj-RIB entries";
-
- leaf prefix {
- type oc-inet:ipv4-prefix;
- description
- "Prefix for the route";
- }
-
- uses bgp-adj-rib-attr-state;
- uses bgp-adj-rib-common-attr-refs;
- uses bgp-common-route-annotations-state;
- uses bgp-adj-rib-in-post-route-annotations-state;
- }
-
- uses bgp-unknown-attr-top;
- }
- }
- }
-
-
- grouping ipv4-adj-rib-top {
- description
- "Top-level grouping for Adj-RIB table";
-
- container neighbors {
- config false;
- description
- "Enclosing container for neighbor list";
-
- list neighbor {
- key "neighbor-address";
- description
- "List of neighbors (peers) of the local BGP speaker";
-
- leaf neighbor-address {
- type leafref {
- path "../state/neighbor-address";
- }
- description
- "Reference to the list key";
- }
-
- container state {
- description
- "Operational state for each neighbor BGP Adj-RIB";
-
- leaf neighbor-address {
- type oc-inet:ip-address;
- description
- "IP address of the BGP neighbor or peer";
- }
- }
-
- container adj-rib-in-pre {
- description
- "Per-neighbor table containing the NLRI updates
- received from the neighbor before any local input
- policy rules or filters have been applied. This can
- be considered the 'raw' updates from the neighbor.";
-
- uses ipv4-adj-rib-common;
-
- }
-
- container adj-rib-in-post {
- description
- "Per-neighbor table containing the paths received from
- the neighbor that are eligible for best-path selection
- after local input policy rules have been applied.";
-
- uses ipv4-adj-rib-in-post;
- }
-
- container adj-rib-out-pre {
- description
- "Per-neighbor table containing paths eligble for
- sending (advertising) to the neighbor before output
- policy rules have been applied";
-
- uses ipv4-adj-rib-common;
-
- }
-
- container adj-rib-out-post {
- description
- "Per-neighbor table containing paths eligble for
- sending (advertising) to the neighbor after output
- policy rules have been applied";
-
- uses ipv4-adj-rib-common;
-
- }
- }
- }
- }
-
- grouping ipv6-adj-rib-common {
- description
- "Common structural grouping for each IPv6 adj-RIB table";
-
- uses bgp-common-table-attrs-state;
-
- container routes {
- config false;
- description
- "Enclosing container for list of routes in the routing
- table.";
-
- list route {
- key "prefix path-id";
-
- description
- "List of routes in the table";
-
- uses bgp-adj-rib-key-refs;
-
- container state {
- description
- "Operational state data for BGP Adj-RIB entries";
-
- leaf prefix {
- type oc-inet:ipv6-prefix;
- description
- "Prefix for the route";
- }
-
- uses bgp-adj-rib-attr-state;
- uses bgp-adj-rib-common-attr-refs;
- uses bgp-common-route-annotations-state;
- }
-
- uses bgp-unknown-attr-top;
- }
- }
- }
-
- grouping ipv6-adj-rib-in-post {
- description
- "Common structural grouping for the IPv6 adj-rib-in
- post-policy table";
-
- uses bgp-common-table-attrs-state;
-
- container routes {
- config false;
- description
- "Enclosing container for list of routes in the routing
- table.";
-
- list route {
- key "prefix path-id";
-
- description
- "List of routes in the table";
-
- uses bgp-adj-rib-key-refs;
-
- container state {
- description
- "Operational state data for BGP Adj-RIB entries";
-
- leaf prefix {
- type oc-inet:ipv6-prefix;
- description
- "Prefix for the route";
- }
-
- uses bgp-adj-rib-attr-state;
- uses bgp-adj-rib-common-attr-refs;
- uses bgp-common-route-annotations-state;
- uses bgp-adj-rib-in-post-route-annotations-state;
- }
-
- uses bgp-unknown-attr-top;
- }
- }
- }
-
- grouping ipv6-adj-rib-top {
- description
- "Top-level grouping for Adj-RIB table";
-
- container neighbors {
- config false;
- description
- "Enclosing container for neighbor list";
-
- list neighbor {
- key "neighbor-address";
- description
- "List of neighbors (peers) of the local BGP speaker";
-
- leaf neighbor-address {
- type leafref {
- path "../state/neighbor-address";
- }
- description
- "Reference to the list key";
- }
-
- container state {
- description
- "Operational state for each neighbor BGP Adj-RIB";
-
- leaf neighbor-address {
- type oc-inet:ip-address;
- description
- "IP address of the BGP neighbor or peer";
- }
- }
-
- container adj-rib-in-pre {
- description
- "Per-neighbor table containing the NLRI updates
- received from the neighbor before any local input
- policy rules or filters have been applied. This can
- be considered the 'raw' updates from the neighbor.";
-
- uses ipv6-adj-rib-common;
-
- }
-
- container adj-rib-in-post {
- description
- "Per-neighbor table containing the paths received from
- the neighbor that are eligible for best-path selection
- after local input policy rules have been applied.";
-
- uses ipv6-adj-rib-in-post;
- }
-
- container adj-rib-out-pre {
- description
- "Per-neighbor table containing paths eligble for
- sending (advertising) to the neighbor before output
- policy rules have been applied";
-
- uses ipv6-adj-rib-common;
-
- }
-
- container adj-rib-out-post {
- description
- "Per-neighbor table containing paths eligble for
- sending (advertising) to the neighbor after output
- policy rules have been applied";
-
- uses ipv6-adj-rib-common;
-
- }
- }
- }
- }
-
- grouping ipvX-srte-policy-adjrib-top {
- description
- "Top-level grouping for the IPv4 and IPv6 AFI, SR-TE Policy SAFI
- Adj-RIBs.";
-
- container neighbors {
- description
- "Surrounding container for the list of neighbours that are
- enabled for the IPv4 and IPv6 AFI, SR-TE Policy SAFI address
- family.";
-
- list neighbor {
- key "neighbor-address";
-
- description
- "An individual neighbour that is enabled for the SR-TE
- Policy SAFI.";
-
- leaf neighbor-address {
- type leafref {
- path "../state/neighbor-address";
- }
- description
- "Reference to the address of the neighbour for which the
- Adj-RIBs specified are maintained.";
- }
-
- container state {
- description
- "Operational state parameters of the BGP neighbour for
- which the SR-TE Policy SAFI is enabled.";
- uses ipvX-srte-policy-adjrib-neighbor-state;
- }
-
- container adj-rib-in-pre {
- description
- "The Adj-RIB-In for the SR-TE Policy SAFI for the neighbour,
- prior to any inbound policy constraints or modifications
- having been applied.";
- uses ipvX-srte-policy-adjrib-common;
- }
-
- container adj-rib-in-post {
- description
- "The Adj-RIB-In for the SR-TE Policy SAFI for the neighbour,
- following any inbound policy constraints or modifications
- being made.";
- uses ipvX-srte-policy-adjrib-in-post;
- }
-
- container adj-rib-out-pre {
- description
- "The Adj-RIB-Out for the SR-TE Policy SAFI for the neighbour,
- prior to any outgoing policy modifications or constraints
- having been applied.";
- uses ipvX-srte-policy-adjrib-common;
- }
-
- container adj-rib-out-post {
- description
- "The Adj-RIB-Out for the SR-TE Policy SAFI for the neighbour,
- follow any outbound policy constraints or modifications being
- made.";
- uses ipvX-srte-policy-adjrib-common;
- }
- }
- }
- }
-
- grouping ipvX-srte-policy-adjrib-neighbor-state {
- description
- "Common attributes for each neighbour for which the SR-TE
- Policy SAFI RIBs are being maintained.";
-
- leaf neighbor-address {
- description
- "The address of the neighbour for which the SR-TE policy
- SAFI has been negotiated.";
- type oc-inet:ip-address;
- }
- }
-
- grouping ipvX-srte-policy-adjrib-common {
- description
- "Common structure containing the routes that are learnt via
- the IPv4 or IPv6 SR-TE Policy SAFI.";
-
- container routes {
- description
- "Surrounding container for the list of routes within the
- SR-TE Policy SAFI.";
-
- list route {
- key "path-id endpoint color";
-
- description
- "The routes within the SR-TE Policy SAFI Adj-RIB. The
- routes are keyed on the path-id - set to a non-zero
- value only if ADD-PATHS is being used; the color; and
- the endpoint. The colour and endpoint are extracted from
- the NLRI.";
-
- uses ipvX-srte-policy-common-keys;
-
- container state {
- description
- "State parameters for entries within the Adj-RIB used
- to store SR-TE Policy SAFI routes.";
-
- uses ipvX-srte-policy-common-route-state;
- uses bgp-adj-rib-common-attr-refs;
- uses bgp-common-route-annotations-state;
- }
-
- uses bgp-unknown-attr-top;
- }
- }
- }
-
- grouping ipvX-srte-policy-common-route-state {
- description
- "Common attributes used SR-TE Policy SAFI routes.";
-
- leaf path-id {
- type uint32;
- default 0;
- description
- "Identifier for the path when using BGP ADD-PATHS for the SR-TE
- policy SAFI.";
- }
-
- leaf endpoint {
- type oc-inet:ip-address;
- description
- "A unique identifier for the remote set of nodes. When the address
- family is IPv4, the value is a 4-octet IPv4 address. When the
- address family is IPv6, the value is a 16-octet IPv6 address.";
- }
-
- leaf color {
- type uint32;
- description
- "A 4-octet value identifying the policy. Combined with the endpoint
- the endpoint and colour represent the unique policy.";
- }
- }
-
- grouping ipvX-srte-policy-common-keys {
- description
- "Common grouping of the keys used for lists of SR-TE policy
- SAFI routes.";
-
- leaf path-id {
- type leafref {
- path "../state/path-id";
- }
- description
- "Reference to the path identifier for the SR-TE Policy SAFI
- route. The value is only non-zero if ADD-PATHS is not being
- used.";
- }
-
- leaf endpoint {
- type leafref {
- path "../state/endpoint";
- }
- description
- "Reference to the endpoint used for the SR-TE Policy SAFI
- route within the NLRI.";
- }
-
- leaf color {
- type leafref {
- path "../state/color";
- }
- description
- "Reference to the colour used for the SR-TE policy SAFI
- route within the NLRI.";
- }
- }
-
- grouping ipvX-srte-policy-adjrib-in-post {
- description
- "Grouping for the post-policy Adj-RIB-In for SR-TE Policy SAFI routes";
-
- container routes {
- description
- "The set of routes that are within the Adj-RIB-Out for the
- neighbour.";
-
- list route {
- key "path-id endpoint color";
-
- description
- "The routes that are in the Adj-RIB-In-Post for the specified
- BGP neighbour within the SR-TE Policy SAFI for the specified
- address family.";
-
- uses ipvX-srte-policy-common-keys;
-
- container state {
- description
- "Operational state attributes related to the route within
- the SR-TE Policy SAFI Adj-RIB-In-Post for the specified
- neighbour.";
-
- uses ipvX-srte-policy-common-route-state;
- uses bgp-adj-rib-common-attr-refs;
- uses bgp-common-route-annotations-state;
- uses bgp-adj-rib-in-post-route-annotations-state;
- }
-
- uses bgp-unknown-attr-top;
- }
- }
- }
-
- grouping ipvX-srte-policy-locrib-top {
- description
- "Top-level grouping for the Loc-RIB for IPv4 or IPv6 Adj-RIB
- for SR-TE Policy SAFI.";
-
- container loc-rib {
- description
- "The Loc-RIB for the SR-TE Policy SAFI for IPv4 or IPv6 Unicast
- AFIs.";
-
- container routes {
- description
- "List of routes within the SR-TE Policy SAFI, for the IPv4 or
- IPv6 AFI.";
-
- list route {
- key "path-id endpoint color";
-
- description
- "Route within the specified address family for the SR-TE
- Policy SAFI.";
-
- uses ipvX-srte-policy-common-keys;
-
- container state {
- description
- "Operational state attributes for each route within the
- IPv4 or IPv6 Unicast SR-TE Policy SAFI.";
-
- uses ipvX-srte-policy-common-route-state;
- uses bgp-loc-rib-common-attr-refs;
- uses bgp-common-route-annotations-state;
- }
-
- uses bgp-unknown-attr-top;
- }
- }
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-rib-bgp-types.yang b/src/plugins/yang/openconfig/openconfig-rib-bgp-types.yang
deleted file mode 100644
index 3c0d1b0..0000000
--- a/src/plugins/yang/openconfig/openconfig-rib-bgp-types.yang
+++ /dev/null
@@ -1,244 +0,0 @@
-module openconfig-rib-bgp-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/rib/bgp-types";
-
- prefix "oc-bgprib-types";
-
- import openconfig-extensions { prefix oc-ext; }
-
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Defines identity and type defintions associated with
- the OpenConfig BGP RIB modules";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2016-10-17" {
- description
- "OpenConfig BGP RIB refactor";
- reference "0.3.0";
- }
-
- revision "2016-04-11" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
- identity INVALID_ROUTE_REASON {
- description
- "Base identity for reason code for routes that are rejected as
- invalid. Some derived entities are based on BMP v3";
- reference "BGP Monitoring Protocol (draft-ietf-grow-bmp-07)";
- }
-
- identity INVALID_CLUSTER_LOOP {
- base INVALID_ROUTE_REASON;
- description
- "Route was invalid due to CLUSTER_LIST loop";
- }
-
- identity INVALID_AS_LOOP {
- base INVALID_ROUTE_REASON;
- description
- "Route was invalid due to AS_PATH loop";
- }
-
- identity INVALID_ORIGINATOR {
- base INVALID_ROUTE_REASON;
- description
- "Route was invalid due to ORIGINATOR_ID, e.g., update has
- local router as originator";
- }
-
- identity INVALID_CONFED {
- base INVALID_ROUTE_REASON;
- description
- "Route was invalid due to a loop in the AS_CONFED_SEQUENCE or
- AS_CONFED_SET attributes";
- }
-
- identity BGP_NOT_SELECTED_BESTPATH {
- description
- "Base identity for indicating reason a route was was not
- selected by BGP route selection algorithm";
- reference
- "RFC 4271 - Section 9.1";
- }
-
- identity LOCAL_PREF_LOWER {
- base BGP_NOT_SELECTED_BESTPATH;
- description
- "Route has a lower localpref attribute than current best path";
- reference
- "RFC 4271 - Section 9.1.2";
- }
-
- identity AS_PATH_LONGER {
- base BGP_NOT_SELECTED_BESTPATH;
- description
- "Route has a longer AS path attribute than current best path";
- reference
- "RFC 4271 - Section 9.1.2.2 (a)";
- }
-
- identity ORIGIN_TYPE_HIGHER {
- base BGP_NOT_SELECTED_BESTPATH;
- description
- "Route has a higher origin type, i.e., IGP origin is preferred
- over EGP or incomplete";
- reference
- "RFC 4271 - Section 9.1.2.2 (b)";
- }
-
- identity MED_HIGHER {
- base BGP_NOT_SELECTED_BESTPATH;
- description
- "Route has a higher MED, or metric, attribute than the current
- best path";
- reference
- "RFC 4271 - Section 9.1.2.2 (c)";
- }
-
- identity PREFER_EXTERNAL {
- base BGP_NOT_SELECTED_BESTPATH;
- description
- "Route source is via IGP, rather than EGP.";
- reference
- "RFC 4271 - Section 9.1.2.2 (d)";
- }
-
- identity NEXTHOP_COST_HIGHER {
- base BGP_NOT_SELECTED_BESTPATH;
- description
- "Route has a higher interior cost to the next hop.";
- reference
- "RFC 4271 - Section 9.1.2.2 (e)";
- }
-
- identity HIGHER_ROUTER_ID {
- base BGP_NOT_SELECTED_BESTPATH;
- description
- "Route was sent by a peer with a higher BGP Identifier value,
- or router id";
- reference
- "RFC 4271 - Section 9.1.2.2 (f)";
- }
-
- identity HIGHER_PEER_ADDRESS {
- base BGP_NOT_SELECTED_BESTPATH;
- description
- "Route was sent by a peer with a higher IP address";
- reference
- "RFC 4271 - Section 9.1.2.2 (g)";
- }
-
- identity BGP_NOT_SELECTED_POLICY {
- description
- "Base identity for reason code for routes that are rejected
- due to policy";
- }
-
- identity REJECTED_IMPORT_POLICY {
- base BGP_NOT_SELECTED_POLICY;
- description
- "Route was rejected after apply import policies";
- }
-
- identity TUNNEL_ENCAPSULATION_TYPE {
- description
- "Types of tunnel encapsulation, as described by the Tunnel
- Encapsulation attribute";
- reference
- "RFC5512";
- }
-
- identity SRTE_POLICY_TUNNEL {
- base TUNNEL_ENCAPSULATION_TYPE;
- description
- "Segment Routing Traffic Engineering Policy tunnel.";
- reference
- "draft-previdi-idr-segment-routing-te-policy";
- }
-
- identity TUNNEL_ENCAPSULATION_SUBTLV_TYPE {
- description
- "SubTLVs of the Tunnel Encapsulation attribute";
- reference
- "RFC5512";
- }
-
- identity TUNNEL_REMOTE_ENDPOINT {
- base TUNNEL_ENCAPSULATION_SUBTLV_TYPE;
- description
- "Remote endpoint of the tunnel.";
- reference
- "RFC5512";
- }
-
- identity TUNNEL_COLOR {
- base TUNNEL_ENCAPSULATION_SUBTLV_TYPE;
- description
- "Colour of the tunnel";
- reference
- "RFC5512";
- }
-
- identity SRTE_PREFERENCE {
- base TUNNEL_ENCAPSULATION_SUBTLV_TYPE;
- description
- "Preference of the SR-TE policy entry described by
- the tunnel encapsulation attribute.";
- reference
- "draft-previdi-idr-segment-routing-te-policy";
- }
-
- identity SRTE_BINDING_SID {
- base TUNNEL_ENCAPSULATION_SUBTLV_TYPE;
- description
- "Binding SID to be used by the SR-TE policy described
- by the tunnel encapsulation attribute.";
- reference
- "draft-previdi-idr-segment-routing-te-policy";
- }
-
- identity SRTE_SEGMENT_LIST {
- base TUNNEL_ENCAPSULATION_SUBTLV_TYPE;
- description
- "Segment lists to be used by the SR-TE policy described
- by the tunnel encapsulation attribute.";
- reference
- "draft-previdi-idr-segment-routing-te-policy";
- }
-
- identity SRTE_SEGMENT_LIST_SUBTLV {
- description
- "SubTLVs of the SR-TE Policy Segment List sub-TLV of the
- Tunnel Encapsulation attribute.";
- reference
- "draft-previdi-idr-segment-routing-te-policy";
- }
-
- identity SRTE_SEGMENT_LIST_WEIGHT {
- base SRTE_SEGMENT_LIST_SUBTLV;
- description
- "Weight of the segment list within the SR-TE policy";
- reference
- "draft-previdi-idr-segment-routing-te-policy";
- }
-
- identity SRTE_SEGMENT_LIST_SEGMENT {
- base SRTE_SEGMENT_LIST_SUBTLV;
- description
- "An individual element within the SR-TE Policy Segment
- List.";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-rib-bgp.yang b/src/plugins/yang/openconfig/openconfig-rib-bgp.yang
deleted file mode 100644
index 7fc4828..0000000
--- a/src/plugins/yang/openconfig/openconfig-rib-bgp.yang
+++ /dev/null
@@ -1,209 +0,0 @@
-module openconfig-rib-bgp {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/rib/bgp";
-
- prefix "oc-rib-bgp";
-
- // import some basic types
- import openconfig-bgp-types { prefix oc-bgpt; }
- import openconfig-extensions { prefix oc-ext; }
-
- // include RIB submodules
-
- // structure for LOC-RIB and Adj-RIB tables
- include openconfig-rib-bgp-tables;
-
- // structure of shared attribute groups
- include openconfig-rib-bgp-shared-attributes;
-
- // groupings of attributes in three categories:
- // - shared across multiple routes
- // - common to LOC-RIB and Adj-RIB, but not shared across routes
- // - specific to LOC-RIB or Adj-RIB
- include openconfig-rib-bgp-attributes;
-
- // groupings of annotations for each route or table
- include openconfig-rib-bgp-table-attributes;
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Defines a data model for representing BGP routing table (RIB)
- contents. The model supports 5 logical RIBs per address family:
-
- loc-rib: This is the main BGP routing table for the local routing
- instance, containing best-path selections for each prefix. The
- loc-rib table may contain multiple routes for a given prefix,
- with an attribute to indicate which was selected as the best
- path. Note that multiple paths may be used or advertised even if
- only one path is marked as best, e.g., when using BGP
- add-paths. An implementation may choose to mark multiple
- paths in the RIB as best path by setting the flag to true for
- multiple entries.
-
- adj-rib-in-pre: This is a per-neighbor table containing the NLRI
- updates received from the neighbor before any local input policy
- rules or filters have been applied. This can be considered the
- 'raw' updates from a given neighbor.
-
- adj-rib-in-post: This is a per-neighbor table containing the
- routes received from the neighbor that are eligible for
- best-path selection after local input policy rules have been
- applied.
-
- adj-rib-out-pre: This is a per-neighbor table containing routes
- eligible for sending (advertising) to the neighbor before output
- policy rules have been applied.
-
- adj-rib-out-post: This is a per-neighbor table containing routes
- eligible for sending (advertising) to the neighbor after output
- policy rules have been applied.";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2016-10-17" {
- description
- "OpenConfig BGP RIB refactor";
- reference "0.3.0";
- }
-
- revision "2016-04-11" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
-
-
- // grouping statements
-
-
-
- grouping bgp-rib-state {
- description
- "Operational state data for the top level BGP RIB";
-
- leaf afi-safi-name {
- type identityref {
- base oc-bgpt:AFI_SAFI_TYPE;
- }
- description "AFI,SAFI";
- }
- }
-
- grouping bgp-rib-top {
- description
- "Top-level grouping for the BGP RIB";
-
- container bgp-rib {
- config false;
- description
- "Top level container for BGP RIBs";
-
- uses attribute-sets-top;
- uses community-sets-top;
- uses ext-community-sets-top;
-
- container afi-safis {
- config false;
- description
- "Enclosing container for address family list";
-
- list afi-safi {
- key "afi-safi-name";
- description
- "list of afi-safi types";
-
- leaf afi-safi-name {
- type leafref {
- path "../state/afi-safi-name";
- }
- description
- "Reference to the list key";
- }
-
- container state {
- config false;
- description
- "Operational state data for the BGP list";
-
- uses bgp-rib-state;
- }
-
- container ipv4-unicast {
- when "../afi-safi-name = 'oc-bgpt:IPV4_UNICAST'" {
- description
- "Include this container for IPv4 unicast RIB";
- }
- description
- "Routing tables for IPv4 unicast -- active when the
- afi-safi name is ipv4-unicast";
-
- uses ipv4-loc-rib-top;
- uses ipv4-adj-rib-top;
- }
-
- container ipv6-unicast {
- when "../afi-safi-name = 'oc-bgpt:IPV6_UNICAST'" {
- description
- "Include this container for IPv6 unicast RIB";
- }
- description
- "Routing tables for IPv6 unicast -- active when the
- afi-safi name is ipv6-unicast";
-
- uses ipv6-loc-rib-top;
- uses ipv6-adj-rib-top;
- }
-
- container ipv4-srte-policy {
- when "../afi-safi-name = 'oc-bgpt:SRTE_POLICY_IPV4'" {
- description
- "Include this container only for the IPv4 AFI, SR-TE Policy
- SAFI.";
- }
- description
- "Routing tables for the IPv4 Unicast, SR-TE Policy SAFI.";
-
- uses ipvX-srte-policy-locrib-top;
- uses ipvX-srte-policy-adjrib-top;
- }
-
- container ipv6-srte-policy {
- when "../afi-safi-name = 'oc-bgpt:SRTE_POLICY_IPV6'" {
- description
- "Include this container only for the IPv6 AFI, SR-TE Policy
- SAFI.";
- }
- description
- "Routing tables for the IPv6 Unicast, SR-TE Policy SAFI.";
-
- uses ipvX-srte-policy-locrib-top;
- uses ipvX-srte-policy-adjrib-top;
- }
- }
- }
- }
- }
-
-
- // data definition statements
-
- uses bgp-rib-top;
-
- // augment statements
-
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-routing-policy.yang b/src/plugins/yang/openconfig/openconfig-routing-policy.yang
deleted file mode 100644
index ca4c7ed..0000000
--- a/src/plugins/yang/openconfig/openconfig-routing-policy.yang
+++ /dev/null
@@ -1,1097 +0,0 @@
-module openconfig-routing-policy {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/routing-policy";
-
- prefix "oc-rpol";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-policy-types { prefix oc-pol-types; }
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module describes a YANG model for routing policy
- configuration. It is a limited subset of all of the policy
- configuration parameters available in the variety of vendor
- implementations, but supports widely used constructs for managing
- how routes are imported, exported, and modified across different
- routing protocols. This module is intended to be used in
- conjunction with routing protocol configuration models (e.g.,
- BGP) defined in other modules.
-
- Route policy expression:
-
- Policies are expressed as a set of top-level policy definitions,
- each of which consists of a sequence of policy statements. Policy
- statements consist of simple condition-action tuples. Conditions
- may include mutiple match or comparison operations, and similarly
- actions may be multitude of changes to route attributes or a
- final disposition of accepting or rejecting the route.
-
- Route policy evaluation:
-
- Policy definitions are referenced in routing protocol
- configurations using import and export configuration statements.
- The arguments are members of an ordered list of named policy
- definitions which comprise a policy chain, and optionally, an
- explicit default policy action (i.e., reject or accept).
-
- Evaluation of each policy definition proceeds by evaluating its
- corresponding individual policy statements in order. When a
- condition statement in a policy statement is satisfied, the
- corresponding action statement is executed. If the action
- statement has either accept-route or reject-route actions, policy
- evaluation of the current policy definition stops, and no further
- policy definitions in the chain are evaluated.
-
- If the condition is not satisfied, then evaluation proceeds to
- the next policy statement. If none of the policy statement
- conditions are satisfied, then evaluation of the current policy
- definition stops, and the next policy definition in the chain is
- evaluated. When the end of the policy chain is reached, the
- default route disposition action is performed (i.e., reject-route
- unless an an alternate default action is specified for the
- chain).
-
- Policy 'subroutines' (or nested policies) are supported by
- allowing policy statement conditions to reference another policy
- definition which applies conditions and actions from the
- referenced policy before returning to the calling policy
- statement and resuming evaluation. If the called policy
- results in an accept-route (either explicit or by default), then
- the subroutine returns an effective true value to the calling
- policy. Similarly, a reject-route action returns false. If the
- subroutine returns true, the calling policy continues to evaluate
- the remaining conditions (using a modified route if the
- subroutine performed any changes to the route).";
-
- oc-ext:openconfig-version "3.1.0";
-
- revision "2018-06-05" {
- description
- "Add PIM, IGMP to INSTALL_PROTOCOL_TYPES identity";
- reference "3.1.0";
- }
-
- revision "2017-07-14" {
- description
- "Replace policy choice node/type with policy-result
- enumeration;simplified defined set naming;removed generic
- IGP actions; migrate to OpenConfig types; added mode for
- prefix sets";
- reference "3.0.0";
- }
-
- revision "2016-05-12" {
- description
- "OpenConfig public release";
- reference "2.0.1";
- }
-
-
- // typedef statements
-
- typedef default-policy-type {
- // this typedef retained for name compatibiity with default
- // import and export policy
- type enumeration {
- enum ACCEPT_ROUTE {
- description
- "Default policy to accept the route";
- }
- enum REJECT_ROUTE {
- description
- "Default policy to reject the route";
- }
- }
- description
- "Type used to specify route disposition in
- a policy chain";
- }
-
- typedef policy-result-type {
- type enumeration {
- enum ACCEPT_ROUTE {
- description "Policy accepts the route";
- }
- enum REJECT_ROUTE {
- description "Policy rejects the route";
- }
- }
- description
- "Type used to specify route disposition in
- a policy chain";
- }
-
-
- // grouping statements
-
- grouping prefix-set-config {
- description
- "Configuration data for prefix sets used in policy
- definitions.";
-
- leaf name {
- type string;
- description
- "name / label of the prefix set -- this is used to
- reference the set in match conditions";
- }
-
- leaf mode {
- type enumeration {
- enum IPV4 {
- description
- "Prefix set contains IPv4 prefixes only";
- }
- enum IPV6 {
- description
- "Prefix set contains IPv6 prefixes only";
- }
- enum MIXED {
- description
- "Prefix set contains mixed IPv4 and IPv6 prefixes";
- }
- }
- description
- "Indicates the mode of the prefix set, in terms of which
- address families (IPv4, IPv6, or both) are present. The
- mode provides a hint, but the device must validate that all
- prefixes are of the indicated type, and is expected to
- reject the configuration if there is a discrepancy. The
- MIXED mode may not be supported on devices that require
- prefix sets to be of only one address family.";
- }
-
- }
-
- grouping prefix-set-state {
- description
- "Operational state data for prefix sets";
- }
-
- grouping prefix-set-top {
- description
- "Top-level data definitions for a list of IPv4 or IPv6
- prefixes which are matched as part of a policy";
-
- container prefix-sets {
- description
- "Enclosing container ";
-
- list prefix-set {
- key "name";
- description
- "List of the defined prefix sets";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to prefix name list key";
- }
-
- container config {
- description
- "Configuration data for prefix sets";
-
- uses prefix-set-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses prefix-set-config;
- uses prefix-set-state;
- }
-
- uses prefix-top;
- }
- }
- }
-
- grouping prefix-config {
- description
- "Configuration data for a prefix definition";
-
- leaf ip-prefix {
- type oc-inet:ip-prefix;
- mandatory true;
- description
- "The prefix member in CIDR notation -- while the
- prefix may be either IPv4 or IPv6, most
- implementations require all members of the prefix set
- to be the same address family. Mixing address types in
- the same prefix set is likely to cause an error.";
- }
-
- leaf masklength-range {
- type string {
- pattern '^([0-9]+\.\.[0-9]+)|exact$';
- }
- description
- "Defines a range for the masklength, or 'exact' if
- the prefix has an exact length.
-
- Example: 10.3.192.0/21 through 10.3.192.0/24 would be
- expressed as prefix: 10.3.192.0/21,
- masklength-range: 21..24.
-
- Example: 10.3.192.0/21 would be expressed as
- prefix: 10.3.192.0/21,
- masklength-range: exact";
- }
- }
-
- grouping prefix-state {
- description
- "Operational state data for prefix definitions";
- }
-
- grouping prefix-top {
- description
- "Top-level grouping for prefixes in a prefix list";
-
- container prefixes {
- description
- "Enclosing container for the list of prefixes in a policy
- prefix list";
-
- list prefix {
- key "ip-prefix masklength-range";
- description
- "List of prefixes in the prefix set";
-
- leaf ip-prefix {
- type leafref {
- path "../config/ip-prefix";
- }
- description
- "Reference to the ip-prefix list key.";
- }
-
- leaf masklength-range {
- type leafref {
- path "../config/masklength-range";
- }
- description
- "Reference to the masklength-range list key";
- }
-
- container config {
- description
- "Configuration data for prefix definition";
-
- uses prefix-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for prefix definition";
-
- uses prefix-config;
- uses prefix-state;
- }
- }
- }
- }
-
- grouping neighbor-set-config {
- description
- "Configuration data for neighbor set definitions";
-
- leaf name {
- type string;
- description
- "name / label of the neighbor set -- this is used to
- reference the set in match conditions";
- }
-
- leaf-list address {
- type oc-inet:ip-address;
- description
- "List of IP addresses in the neighbor set";
- }
- }
-
- grouping neighbor-set-state {
- description
- "Operational state data for neighbor set definitions";
- }
-
- grouping neighbor-set-top {
- description
- "Top-level data definition for a list of IPv4 or IPv6
- neighbors which can be matched in a routing policy";
-
- container neighbor-sets {
- description
- "Enclosing container for the list of neighbor set
- definitions";
-
- list neighbor-set {
- key "name";
- description
- "List of defined neighbor sets for use in policies.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the neighbor set name list key.";
- }
-
- container config {
- description
- "Configuration data for neighbor sets.";
-
- uses neighbor-set-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for neighbor sets.";
-
- uses neighbor-set-config;
- uses neighbor-set-state;
- }
- }
- }
- }
-
- grouping tag-set-config {
- description
- "Configuration data for tag set definitions.";
-
- leaf name {
- type string;
- description
- "name / label of the tag set -- this is used to reference
- the set in match conditions";
- }
-
- leaf-list tag-value {
- type oc-pol-types:tag-type;
- description
- "Value of the tag set member";
- }
- }
-
- grouping tag-set-state {
- description
- "Operational state data for tag set definitions.";
- }
-
- grouping tag-set-top {
- description
- "Top-level data definitions for a list of tags which can
- be matched in policies";
-
- container tag-sets {
- description
- "Enclosing container for the list of tag sets.";
-
- list tag-set {
- key "name";
- description
- "List of tag set definitions.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the tag set name list key";
- }
-
- container config {
- description
- "Configuration data for tag sets";
-
- uses tag-set-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for tag sets";
-
- uses tag-set-config;
- uses tag-set-state;
- }
- }
- }
- }
-
- grouping generic-defined-sets {
- description
- "Data definitions for pre-defined sets of attributes used in
- policy match conditions. These sets are generic and can
- be used in matching conditions in different routing
- protocols.";
-
- uses prefix-set-top;
- uses neighbor-set-top;
- uses tag-set-top;
- }
-
- grouping match-set-options-group {
- description
- "Grouping containing options relating to how a particular set
- should be matched";
-
- leaf match-set-options {
- type oc-pol-types:match-set-options-type;
- description
- "Optional parameter that governs the behaviour of the
- match operation";
- }
- }
-
- grouping match-set-options-restricted-group {
- description
- "Grouping for a restricted set of match operation modifiers";
-
- leaf match-set-options {
- type oc-pol-types:match-set-options-restricted-type;
- description
- "Optional parameter that governs the behaviour of the
- match operation. This leaf only supports matching on ANY
- member of the set or inverting the match. Matching on ALL is
- not supported";
- }
- }
-
- grouping match-interface-condition-config {
- description
- "Configuration data for interface match condition";
-
- uses oc-if:interface-ref-common;
- }
-
- grouping match-interface-condition-state {
- description
- "Operational state data for interface match condition";
- }
-
- grouping match-interface-condition-top {
- description
- "Top-level grouping for the interface match condition";
-
- container match-interface {
- description
- "Top-level container for interface match conditions";
-
- container config {
- description
- "Configuration data for interface match conditions";
-
- uses match-interface-condition-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for interface match conditions";
-
- uses match-interface-condition-config;
- uses match-interface-condition-state;
- }
-
- }
- }
-
- grouping prefix-set-condition-config {
- description
- "Configuration data for prefix-set conditions";
-
- leaf prefix-set {
- type leafref {
- path "../../../../../../../../defined-sets/" +
- "prefix-sets/prefix-set/config/name";
- }
- description "References a defined prefix set";
- }
- uses match-set-options-restricted-group;
- }
-
-
- grouping prefix-set-condition-state {
- description
- "Operational state data for prefix-set conditions";
- }
-
- grouping prefix-set-condition-top {
- description
- "Top-level grouping for prefix-set conditions";
-
- container match-prefix-set {
- description
- "Match a referenced prefix-set according to the logic
- defined in the match-set-options leaf";
-
- container config {
- description
- "Configuration data for a prefix-set condition";
-
- uses prefix-set-condition-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for a prefix-set condition";
-
- uses prefix-set-condition-config;
- uses prefix-set-condition-state;
- }
- }
- }
-
- grouping neighbor-set-condition-config {
- description
- "Configuration data for neighbor-set conditions";
-
- leaf neighbor-set {
- type leafref {
- path "../../../../../../../../defined-sets/neighbor-sets/" +
- "neighbor-set/name";
- //TODO: require-instance should be added when it's
- //supported in YANG 1.1
- //require-instance true;
- }
- description "References a defined neighbor set";
- }
-
- uses match-set-options-restricted-group;
- }
-
- grouping neighbor-set-condition-state {
- description
- "Operational state data for neighbor-set conditions";
- }
-
- grouping neighbor-set-condition-top {
- description
- "Top-level grouping for neighbor-set conditions";
-
- container match-neighbor-set {
- description
- "Match a referenced neighbor set according to the logic
- defined in the match-set-options-leaf";
-
- container config {
- description
- "Configuration data ";
-
- uses neighbor-set-condition-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses neighbor-set-condition-config;
- uses neighbor-set-condition-state;
- }
- }
- }
-
- grouping tag-set-condition-config {
- description
- "Configuration data for tag-set condition statements";
-
- leaf tag-set {
- type leafref {
- path "../../../../../../../../defined-sets/tag-sets/tag-set" +
- "/name";
- //TODO: require-instance should be added when it's
- //supported in YANG 1.1
- //require-instance true;
- }
- description "References a defined tag set";
- }
- uses match-set-options-restricted-group;
- }
-
- grouping tag-set-condition-state {
- description
- "Operational state data for tag-set condition statements";
- }
-
- grouping tag-set-condition-top {
- description
- "Top-level grouping for tag-set conditions";
-
- container match-tag-set {
- description
- "Match a referenced tag set according to the logic defined
- in the match-options-set leaf";
-
- container config {
- description
- "Configuration data for tag-set conditions";
-
- uses tag-set-condition-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data tag-set conditions";
-
- uses tag-set-condition-config;
- uses tag-set-condition-state;
- }
- }
- }
-
- grouping generic-conditions {
- description "Condition statement definitions for checking
- membership in a generic defined set";
-
- uses match-interface-condition-top;
- uses prefix-set-condition-top;
- uses neighbor-set-condition-top;
- uses tag-set-condition-top;
-
- }
-
- grouping generic-actions {
- description
- "Definitions for common set of policy action statements that
- manage the disposition or control flow of the policy";
-
- leaf policy-result {
- type policy-result-type;
- description
- "Select the final disposition for the route, either
- accept or reject.";
- }
- }
-
-
- grouping policy-conditions-config {
- description
- "Configuration data for general policy conditions, i.e., those
- not related to match-sets";
-
- leaf call-policy {
- type leafref {
- path "../../../../../../../" +
- "oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:name";
- //TODO: require-instance should be added when
- //it is supported in YANG 1.1
- //require-instance true;
- }
- description
- "Applies the statements from the specified policy
- definition and then returns control the current
- policy statement. Note that the called policy may
- itself call other policies (subject to
- implementation limitations). This is intended to
- provide a policy 'subroutine' capability. The
- called policy should contain an explicit or a
- default route disposition that returns an
- effective true (accept-route) or false
- (reject-route), otherwise the behavior may be
- ambiguous and implementation dependent";
- }
-
- leaf install-protocol-eq {
- type identityref {
- base oc-pol-types:INSTALL_PROTOCOL_TYPE;
- }
- description
- "Condition to check the protocol / method used to install
- the route into the local routing table";
- }
- }
-
- grouping policy-conditions-state {
- description
- "Operational state data for policy conditions";
- }
-
- grouping policy-conditions-top {
- description
- "Top-level grouping for policy conditions";
-
- container conditions {
- description
- "Condition statements for the current policy statement";
-
- container config {
- description
- "Configuration data for policy conditions";
-
- uses policy-conditions-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for policy conditions";
-
- uses policy-conditions-config;
- uses policy-conditions-state;
- }
- uses generic-conditions;
- }
- }
-
- grouping policy-statements-config {
- description
- "Configuration data for policy statements";
-
- leaf name {
- type string;
- description
- "name of the policy statement";
- }
- }
-
- grouping policy-statements-state {
- description
- "Operational state data for policy statements";
- }
-
-
-
- grouping policy-actions-config {
- description
- "Configuration data for policy actions";
-
- uses generic-actions;
- }
-
- grouping policy-actions-state {
- description
- "Operational state data for policy actions";
- }
-
- grouping policy-actions-top {
- description
- "Top-level grouping for policy actions";
-
- container actions {
- description
- "Top-level container for policy action statements";
-
- container config {
- description
- "Configuration data for policy actions";
-
- uses policy-actions-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for policy actions";
-
- uses policy-actions-config;
- uses policy-actions-state;
- }
- }
- }
-
- grouping policy-statements-top {
- description
- "Top-level grouping for the policy statements list";
-
- container statements {
- description
- "Enclosing container for policy statements";
-
- list statement {
- key "name";
- // TODO: names of policy statements within a policy
- // definition should probably be optional, however, YANG
- // requires a unique id for lists
- ordered-by user;
- description
- "Policy statements group conditions and actions
- within a policy definition. They are evaluated in
- the order specified (see the description of policy
- evaluation at the top of this module.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to list key";
- }
-
- container config {
- description
- "Configuration data for policy statements";
-
- uses policy-statements-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for policy statements";
-
- uses policy-statements-config;
- uses policy-statements-state;
- }
-
- uses policy-conditions-top;
- uses policy-actions-top;
- }
- }
- }
-
- grouping defined-sets-top {
- description
- "Top-level grouping for defined set definitions";
-
- container defined-sets {
- description
- "Predefined sets of attributes used in policy match
- statements";
-
- uses generic-defined-sets;
- }
- }
-
- grouping policy-definitions-config {
- description
- "Configuration data for policy definitions";
-
- leaf name {
- type string;
- description
- "Name of the top-level policy definition -- this name
- is used in references to the current policy";
- }
- }
-
- grouping policy-definitions-state {
- description
- "Operational state data for policy definitions";
- }
-
- grouping policy-definitions-top {
- description
- "Top-level grouping for the policy definition list";
-
- container policy-definitions {
- description
- "Enclosing container for the list of top-level policy
- definitions";
-
- list policy-definition {
- key "name";
- description
- "List of top-level policy definitions, keyed by unique
- name. These policy definitions are expected to be
- referenced (by name) in policy chains specified in import
- or export configuration statements.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for policy defintions";
-
- uses policy-definitions-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for policy definitions";
-
- uses policy-definitions-config;
- uses policy-definitions-state;
- }
-
- uses policy-statements-top;
- }
- }
- }
-
- grouping routing-policy-top {
- description
- "Top level container for OpenConfig routing policy";
-
- container routing-policy {
- description
- "Top-level container for all routing policy configuration";
-
-
- uses defined-sets-top;
-
- uses policy-definitions-top;
- }
- }
-
- grouping apply-policy-import-config {
- description
- "Configuration data for applying import policies";
-
- leaf-list import-policy {
- type leafref {
- path "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:name";
- //TODO: require-instance should be added when it's
- //supported in YANG 1.1
- //require-instance true;
- }
- ordered-by user;
- description
- "list of policy names in sequence to be applied on
- receiving a routing update in the current context, e.g.,
- for the current peer group, neighbor, address family,
- etc.";
- }
-
- leaf default-import-policy {
- type default-policy-type;
- default REJECT_ROUTE;
- description
- "explicitly set a default policy if no policy definition
- in the import policy chain is satisfied.";
- }
-
- }
-
- grouping apply-policy-export-config {
- description
- "Configuration data for applying export policies";
-
- leaf-list export-policy {
- type leafref {
- path "/oc-rpol:routing-policy/oc-rpol:policy-definitions/" +
- "oc-rpol:policy-definition/oc-rpol:name";
- //TODO: require-instance should be added when it's
- //supported in YANG 1.1
- //require-instance true;
- }
- ordered-by user;
- description
- "list of policy names in sequence to be applied on
- sending a routing update in the current context, e.g.,
- for the current peer group, neighbor, address family,
- etc.";
- }
-
- leaf default-export-policy {
- type default-policy-type;
- default REJECT_ROUTE;
- description
- "explicitly set a default policy if no policy definition
- in the export policy chain is satisfied.";
- }
- }
-
-
- grouping apply-policy-config {
- description
- "Configuration data for routing policies";
-
- uses apply-policy-import-config;
- uses apply-policy-export-config;
-
- }
-
-
-
- grouping apply-policy-state {
- description
- "Operational state associated with routing policy";
-
- //TODO: identify additional state data beyond the intended
- //policy configuration.
- }
-
- grouping apply-policy-group {
- description
- "Top level container for routing policy applications. This
- grouping is intended to be used in routing models where
- needed.";
-
- container apply-policy {
- description
- "Anchor point for routing policies in the model.
- Import and export policies are with respect to the local
- routing table, i.e., export (send) and import (receive),
- depending on the context.";
-
- container config {
- description
- "Policy configuration data.";
-
- uses apply-policy-config;
- }
-
- container state {
-
- config false;
- description
- "Operational state for routing policy";
-
- uses apply-policy-config;
- uses apply-policy-state;
- }
- }
- }
-
- uses routing-policy-top;
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-rsvp-sr-ext.yang b/src/plugins/yang/openconfig/openconfig-rsvp-sr-ext.yang
deleted file mode 100644
index f9af96d..0000000
--- a/src/plugins/yang/openconfig/openconfig-rsvp-sr-ext.yang
+++ /dev/null
@@ -1,400 +0,0 @@
-module openconfig-rsvp-sr-ext {
- yang-version "1";
-
- namespace "http://openconfig.net/yang/rsvp-sr-ext";
- prefix "oc-sr-rsvp-ext";
-
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-types { prefix "oc-types"; }
- import openconfig-network-instance { prefix "oc-ni"; }
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module adds extensions to the OpenConfig MPLS models to
- provide extensions which allow the coexistence of RSVP-TE and
- Segment Routing (SR) within the same network. It augments the
- existing OpenConfig segment routing (SR) and RSVP-TE models
- where required.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision 2018-04-13 {
- description
- "Replace boolean with modes for measure-sr-traffic.";
- reference "0.2.0";
- }
-
- revision 2017-03-06 {
- description
- "Initial revision.";
- reference "0.1.0";
- }
-
- grouping bandwidth-measurement-global-state {
- description
- "Operational state parameters for bandwidth measurement which
- apply globally to the device.";
-
- leaf effective-adjustment-interval {
- type uint32;
- units "seconds";
- description
- "The effective adjustment interval that is being used by
- the system. In the case that the adjustment-interval leaf
- is set to a non-integer multiple of the collection-interval,
- and the system does not support this, the value of this leaf
- should reflect the effective value of the adjustment interval
- that it has selected. In the case where no rounding of the
- adjustment interval has occurred, this value should have the
- same value as the adjustment-inerval leaf.";
- }
- }
-
- grouping bandwidth-measurement-global-config {
- description
- "Configuration parameters for bandwidth measurement which apply
- globally to the device.";
-
- leaf measure-sr-traffic {
- type enumeration {
- enum MEASURE_ONLY {
- description
- "Only measure the SR traffic being sent via an interface,
- and do not flood it into the IGP.";
- }
- enum MEASURE_AND_FLOOD {
- description
- "Measure the SR traffic being sent via an interface and
- flood it into the IGP.";
- }
- }
- description
- "Parameter enabling SR traffic measurement
- and optional flooding into IGP.";
- reference
- "draft-sitaraman-sr-rsvp-coexistence-rec-01";
- }
-
- // TODO(robjs): For future extension, traffic accounting for
- // non-SR, non-RSVP traffic could be added here. e.g., LDP,
- // BGP-LU etc.
-
- leaf collection-interval {
- type uint32;
- units "seconds";
- description
- "The interval at which the collection of interface
- statistics relating to non-RSVP-TE traffic should be
- performed";
- reference
- "draft-sitaraman-sr-rsvp-coexistence-rec-01";
- }
-
- leaf adjustment-interval {
- type uint32;
- units "seconds";
- description
- "The interval after which an adjustment to the utilised
- bandwidth on the interface is made. This value must be
- greater than, or equal to, the collection interval for
- statistics. This value is referred to as N in
- draft-sitaraman-sr-rsvp-coexistence-rec-01.
-
- After N seconds have expired, the
- arithmetic mean of the samples is taken, and this is
- considered as the non-RSVP-TE utilisation of the
- interface. In the case that the adjustment interval is
- an integer >1 multiple of the collection interval, this
- serves to provide smoothing of the collected bandwidth
- statistics.";
- reference
- "draft-sitaraman-sr-rsvp-coexistence-rec-01";
- }
-
- leaf bandwidth-multiplier {
- type decimal64 {
- fraction-digits 4;
- }
- default 1.0000;
- description
- "A multiplier applied to the sampled bandwidth which
- determines the value that is propagated to the IGP TED.
- By default this value is 1.0000, and hence the actual
- sampled value is flooded.";
- }
- }
-
- grouping bandwidth-measurement-update-config {
- description
- "Configuration parameters related to when the bandwidth
- measurement information is used to update the IGP TED.";
-
- leaf update-trigger {
- type enumeration {
- enum ADJUSTED_MAX_RESERVABLE_PCT {
- description
- "Update of a new maximum reservable bandwidth IGP
- TLV is based on the value changing >= X% of
- the currently flooded adjusted-absolute-subscription-bw.
- The percentage of this value that is used is specified
- by the adjusted-max-reservable-bw-pct leaf.";
- }
- enum SR_TRAFFIC_PCT {
- description
- "Update of the new maximum reservable bandwidth IGP
- TLV is based on the value changing >= X% of the last
- calculated segment routing traffic utilisation for the
- interface. The percentage delta of this value is
- specified by the sr-traffic-pct leaf.";
- }
- }
- description
- "The trigger that should be used to determine when the IGP
- TED is updated with new information as to the effective
- maximum reservable bandwidth
- (adjusted-absolute-subscription-bw)";
- }
-
- leaf adjusted-max-reservable-bw-pct {
- when "../update-trigger = 'ADJUSTED_MAX_RESERVABLE_PCT'" {
- description
- "Only allow the adjusted-max-reservable-bw update trigger
- to be specified when the update-trigger mode is specified
- to be a percentage of the currently flooded value.";
- }
- type oc-types:percentage;
- description
- "The delta in the adjusted-max-reservable-bandwidth that
- should trigger an update in the value which is flooded
- through the IGP TED.
- The delta is measured as a percentage of the
- current adjusted value of the maximum reservable bandwidth
- of the interface, as specified by the
- adjusted-absolute-subscription-bw RSVP-TE leaf.";
- reference
- "draft-sitaraman-sr-rsvp-coexistence-rec-01";
- }
-
- leaf sr-traffic-pct {
- when "../update-trigger = 'SR_TRAFFIC_PCT'" {
- description
- "Only allow the SR traffic percentage trigger to be
- specified when the update trigger is defined to be a
- percentage of the last calculated SR traffic value.";
- }
- type oc-types:percentage;
- description
- "The change in the calculated SR traffic on the interface
- that should trigger an update in the value of the
- maximum reservable bandwidth flooded through the IGP TED.
- The value is specified as a percentage of the
- last-calculated-sr-traffic state leaf.";
- }
- }
-
- grouping bandwidth-measurement-global-structural {
- description
- "Structural grouping for the measurement of segment routing
- traffic, and its advertisement into the IGP TED.";
-
- container bandwidth-measurement {
- description
- "Configuration and operational state parameters related to
- how bandwidth utilisation is measured and flooded into the
- IGP.";
-
- container config {
- description
- "Configuration parameters relating to bandwidth
- measurement.";
-
- uses bandwidth-measurement-global-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to bandwidth
- measurement";
-
- uses bandwidth-measurement-global-config;
- uses bandwidth-measurement-global-state;
- }
-
- container update-trigger {
- description
- "Configuration and operational state parameters related
- to the update trigger for flooding new bandwidth
- information into the IGP.";
-
- container config {
- description
- "Configuration parameters related to the bandwidth
- measurement update trigger.";
-
- uses bandwidth-measurement-update-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters related to the bandwidth
- measurement update trigger.";
-
- uses bandwidth-measurement-update-config;
- }
- }
- }
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:mpls/oc-ni:te-global-attributes" {
- description
- "Add the bandwidth measurement parameters to MPLS global
- traffic engineering hierarchy.";
-
- uses bandwidth-measurement-global-structural;
- }
-
- grouping bandwidth-measurement-rsvp-te-adjusted-state {
- description
- "Logical grouping augmented into the RSVP-TE hierarchy to
- provide an operational state value which reflects the
- adjusted RSVP-TE available bandwidth.";
-
- leaf adjusted-absolute-subscription-bw {
- type uint64;
- units "kbps";
- description
- "The adjusted absolute value (in kbps) of the
- bandwidth which is reservable to RSVP-TE on the
- local system. In the case that the bandwidth-measurement
- configuration does not account for non-RSVP-TE traffic
- then this value is equal to the
- calculated-absolute-subscription-bw, in the case that
- non-RSVP-TE traffic is being accounted for, it is lower
- such that calculated-absolute-subscription-bw -
- adjusted-absolute-subscription-bw = the current calculated
- non-RSVP-TE traffic.
-
- This value reflects the last flooded value of the maximum
- reservable bandwidth, or subscription.";
- }
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/" +
- "oc-ni:mpls/oc-ni:signaling-protocols/oc-ni:rsvp-te/" +
- "oc-ni:interface-attributes/oc-ni:interface/" +
- "oc-ni:subscription/oc-ni:state" {
-
- description
- "Augmentation to add the adjusted RSVP-TE available bandwidth
- state to the RSVP-TE signaling protocol.";
-
- uses bandwidth-measurement-rsvp-te-adjusted-state;
- }
-
- grouping bandwidth-measurement-intf-structural {
- description
- "Structural grouping containing interface bandwidth
- measurement configuration and operational state
- parameters.";
-
- container bandwidth-measurement {
- description
- "Configuration and operational state parameters relating to
- per-interface bandwidth measurement. These parameters are
- used in the case that RSVP-TE coexists with other MPLS
- signaling protocols on an interface.";
-
- container state {
- config false;
- description
- "Operational state parameters relating to the containing
- interface's bandwidth measurement.";
-
- uses bandwidth-measurement-intf-state;
- }
- }
- }
-
- grouping bandwidth-measurement-intf-state {
- description
- "Operational state parameters per-interface for the measured
- bandwidth on an interface";
-
- leaf last-sample-time {
- type oc-types:timeticks64;
- description
- "The time at which the last sample of bandwidth utilisation
- for both RSVP-TE and non-RSVP-TE traffic was taken. This value
- is represented in nanoseconds since the Unix epoch.";
- }
-
- leaf last-sample-measured-rsvp-util {
- type uint64;
- units "kbps";
- description
- "The measured RSVP-TE bandwidth utilisation at the last sample
- (whose time is indicated in last-sample-time). This value is
- expressed as a 64-bit unsigned integer representing the number
- of kilobits per second that RSVP-TE traffic is consuming on
- the interface.";
- }
-
- leaf last-sample-measured-sr-util {
- type uint64;
- units "kbps";
- description
- "The measured Segment Routing bandwidth utilisation at the
- last sample (whose time is indicated in last-sample-time).
- This value is expressed as a 64-bit unsigned integer
- representing the number of kilobits per second that Segment
- Routing traffic is consuming on the interface.";
- }
-
- leaf last-calculated-time {
- type oc-types:timeticks64;
- description
- "The time at which the last calculated value for bandwidth
- utilisation was performed.";
- }
-
- leaf last-calculated-sr-utilisation {
- type uint64;
- description
- "The last calculated value of the Segment Routing utilisation
- (taken post any averaging or adjustment that occurs). This
- value is updated regardless of whether the value was flooded
- or not.";
- }
-
- leaf last-flooded-time {
- type oc-types:timeticks64;
- description
- "The time, expressed in nanoseconds since the epoch, at which
- the bandwidth utilisation of non-RSVP-TE traffic resulted in
- the value being flooded in the IGP. If the configuration of the
- local system specifies a 0% change requires flooding, this leaf
- will always reflect the value of the last-calculated-time. In
- systems that have suppression due to a >0% delta being required
- then it indicates the last time that the percentage threshold
- was exceeded.";
- }
- }
-
- augment "/oc-ni:network-instances/oc-ni:network-instance/oc-ni:mpls" +
- "/oc-ni:te-interface-attributes/oc-ni:interface" {
- description
- "Augment the per-interface bandwidth measurement parameters into the
- MPLS hierarchy of network instance.";
-
- uses bandwidth-measurement-intf-structural;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-segment-routing.yang b/src/plugins/yang/openconfig/openconfig-segment-routing.yang
deleted file mode 100644
index f19b2d8..0000000
--- a/src/plugins/yang/openconfig/openconfig-segment-routing.yang
+++ /dev/null
@@ -1,780 +0,0 @@
-module openconfig-segment-routing {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/sr";
- prefix "oc-sr";
-
- // import some basic types
- import openconfig-extensions { prefix "oc-ext"; }
- import openconfig-mpls-types { prefix "oc-mpls-t"; }
- import openconfig-interfaces { prefix "oc-if"; }
- import ietf-inet-types { prefix "inet"; }
- import ietf-yang-types { prefix "yang"; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Configuration and operational state parameters relating to the
- segment routing. This module defines a number of elements which are
- instantiated in multiple places throughout the OpenConfig collection
- of models.
-
- Particularly:
- - SRGB+LB dataplane instances - directly instantied by SR.
- - SRGB+LB dataplane reservations - instantiated within MPLS and future SR
- dataplanes.
- - SR SID advertisements - instantiated within the relevant IGP.
- - SR-specific counters - instantied within the relevant dataplane.";
-
- oc-ext:openconfig-version "0.0.3";
-
- revision "2017-01-12" {
- description
- "Minor compliance fixes.";
- reference "0.0.3";
- }
-
- revision "2016-12-15" {
- description
- "Updated revision of SR module.";
- reference "0.0.2";
- }
-
- revision "2016-07-28" {
- description
- "Initial revision of SR module.";
- reference "0.0.1";
- }
-
- typedef sr-dataplane-type {
- type enumeration {
- enum MPLS {
- description
- "The entity uses MPLS labels as Segment Identifiers.";
- }
- enum IPV6 {
- description
- "The entity uses IPv6 prefixes as Segment Identifiers.";
- }
- }
- description
- "Types of data plane that can be used to instantiate a Segment
- Routing block of SIDs.";
- }
-
- typedef sr-sid-type {
- type union {
- type oc-mpls-t:mpls-label;
- type inet:ipv6-address-no-zone;
- }
- description
- "The defined value of a segment identifier.";
- }
-
- grouping srgb-config {
- description
- "Configuration parameters relating to the SRGB.";
-
- leaf local-id {
- type string;
- description
- "Unique identifier for the segment routing global block on
- the local system.";
- }
-
- leaf dataplane-type {
- type sr-dataplane-type;
- description
- "The dataplane being used to instantiate the SRGB. When MPLS is specified
- the set of MPLS label blocks that are defined in the mpls-label-blocks
- list are used to make up the SRGB. When IPv6 is specified, the set of IPv6
- prefixes specified in the ipv6-prefixes list are used.";
- }
-
- leaf-list mpls-label-blocks {
- when "../dataplane-type = 'MPLS'" {
- description
- "Allow the MPLS label block to be specified only for SRGBs that are
- using the MPLS dataplane.";
- }
- type leafref {
- // We are at /network-instances/network-instance/segment-routing/
- // srgbs/srgb/config/mpls-label-blocks
- path "../../../../../mpls/global/reserved-label-blocks/" +
- "reserved-label-block/config/local-id";
- }
- description
- "A list of refences to the label blocks that are used to make
- up the SRGB.";
- }
-
- leaf-list ipv6-prefixes {
- when "../dataplane-type = 'IPV6'" {
- description
- "Allow IPv6 prefixes to be specified only when the dataplane
- realisation of the SRGB is IPv6.";
- }
- type inet:ipv6-prefix;
- description
- "A list of IPv6 prefixes which are to be used for segment routing using
- the IPv6 dataplane.";
- }
- }
-
- grouping srgb-state {
- description
- "Operational state parameters relating to the SRGB.";
-
- leaf size {
- type uint32;
- description
- "The total number of SRGB entries that are available within the SRGB.";
- }
-
- leaf used {
- type uint32;
- description
- "The total number of SRGB entries that have already been alocated by
- protocols referencing the SRGB.";
- }
- }
-
- grouping srlb-config {
- description
- "Configuration parameters relating to an SRLB.";
-
- leaf local-id {
- type string;
- description
- "A unique local identifier used for the Segment Routing Local Block.
- The identifier is used when referencing the SRLB within other
- contexts.";
- }
-
- leaf dataplane-type {
- type sr-dataplane-type;
- description
- "The dataplane that is to be used for the Segment Routing Local Block.
- When MPLS is specified, the local block corresponds to a block of MPLS
- labels; when IPv6 is specified it corresponds to an IPv6 prefix.";
- }
-
- leaf mpls-label-block {
- when "../dataplane-type = 'MPLS'" {
- description
- "Allow the MPLS label block to be specified only for SRLBs that are
- using the MPLS dataplane.";
- }
- type leafref {
- path "../../../../../mpls/global/reserved-label-blocks/" +
- "reserved-label-block/config/local-id";
- }
- description
- "A reference to the MPLS label block that is used to contain the
- SIDs of the SRLB.";
- }
-
- leaf ipv6-prefix {
- when "../dataplane-type = 'IPV6'" {
- description
- "Allow IPv6 prefixes to be specified only when the dataplane
- realisation of the SRGB is IPv6.";
- }
- type inet:ipv6-prefix;
- description
- "The IPv6 prefix that is used for the SRLB.";
- }
- }
-
- grouping sr-structural {
- description
- "Top-level structural grouping defining Segment Routing Global Blocks.";
-
- container srgbs {
- description
- "Configuration and operational state parameters relating to the
- SRGBs defined for the system.";
-
- list srgb {
- key "local-id";
-
- description
- "A single definition of an SRGB which may comprise of multiple
- sets of dataplane addresses (IPv6 addresses, or MPLS labels).";
-
- leaf local-id {
- type leafref {
- path "../config/local-id";
- }
- description
- "A reference to the identifier for the SRGB.";
- }
-
- container config {
- description
- "Configuration parameters relating to the SRGB.";
- uses srgb-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the SRGB.";
- uses srgb-config;
- uses srgb-state;
- }
- }
- }
-
- container srlbs {
- description
- "Configuration and operational state parameters relating to the
- Segment Routing Local Blocks (SRLBs) defined for the system.";
-
- list srlb {
- key "local-id";
-
- description
- "A definition of a Segment Routing Local Block, defined to be
- a set of Segment Identifiers (specified as MPLS labels or
- IPv6 addreses) that are defined for local allocation by the
- system. A block may optionally be advertised into an IGP.";
-
- leaf local-id {
- type leafref {
- path "../config/local-id";
- }
- description
- "Reference to the local identifier used for the SRLB.";
- }
-
- container config {
- description
- "Configuration parameters relating to the SRLB.";
- uses srlb-config;
- }
-
- container state {
- config false;
- description
- "Operational state parmeters relating to the SRLB.";
- uses srlb-config;
- }
- }
- }
- }
-
- grouping sr-mpls-top {
- description
- "Structural grouping defining SR definition within MPLS.";
-
- container segment-routing {
- description
- "MPLS-specific Segment Routing configuration and operational state
- parameters";
-
- container aggregate-sid-counters {
- description
- "Per-SID counters aggregated across all interfaces on the local system";
-
- list aggregate-sid-counter {
- key "mpls-label";
- config false;
-
- description
- "Counters aggregated across all of the interfaces of the local
- system corresponding to traffic received or forwarded with a
- particular SID";
-
- leaf mpls-label {
- type leafref {
- path "../state/mpls-label";
- }
- description
- "The MPLS label representing the segment identifier";
- }
-
- container state {
- config false;
- description
- "State parameters for per-SID statistics";
- uses sr-mpls-sid-counters-state;
- uses sr-mpls-common-counters;
- }
- }
- }
-
- container interfaces {
- description
- "Interface related Segment Routing parameters.";
-
- list interface {
- key "interface-id";
-
- description
- "Parameters and MPLS-specific configuration relating to Segment
- Routing on an interface.";
-
- leaf interface-id {
- type leafref {
- path "../config/interface-id";
- }
- description
- "A reference to the ID for the interface for which SR is
- configured";
- }
-
- container config {
- description
- "MPLS-specific Segment Routing configuration parameters
- related to an interface.";
- uses sr-mpls-interface-config;
- }
-
- container state {
- config false;
- description
- "MPLS-specific Segment Routing operational state parameters
- related to an interface.";
- uses sr-mpls-interface-config;
- uses sr-mpls-interface-state;
- }
-
- container sid-counters {
- description
- "Per-SID statistics for MPLS";
-
- list sid-counter {
- key "mpls-label";
- config false;
-
- description
- "Per segment identifier counters for the MPLS dataplane.";
-
- leaf mpls-label {
- type leafref {
- path "../state/mpls-label";
- }
- description
- "The MPLS label representing the segment identifier";
- }
-
- container state {
- config false;
- description
- "State parameters for per-SID statistics";
- uses sr-mpls-sid-counters-state;
- uses sr-mpls-common-counters;
- }
-
- container forwarding-classes {
- description
- "Per-SID per-forwarding class counters for Segment Routing.";
-
- list forwarding-class {
- key "exp";
- config false;
-
- description
- "SID entries for the forwarding class associated with the
- referenced MPLS EXP.";
-
- leaf exp {
- type leafref {
- path "../state/exp";
- }
- description
- "Reference to the value of the EXP bits of the segment
- identifier.";
- }
-
- container state {
- config false;
- description
- "Per-SID, per forwarding class counters for Segment Routing
- with the MPLS dataplane";
-
- uses sr-mpls-interface-sid-fc-state;
- uses sr-mpls-common-counters;
- }
- }
- }
- }
- }
- uses oc-if:interface-ref;
- }
- }
- }
- }
-
- grouping sr-mpls-interface-config {
- description
- "MPLS-specific Segment Routing configuration for an interface";
-
- leaf interface-id {
- type string;
- description
- "A unique identifier for the interface.";
- }
- }
-
- grouping sr-mpls-interface-state {
- description
- "MPLS-specific Segment Routing operational state parameters for an
- interface";
-
- uses sr-mpls-common-counters;
- }
-
- grouping sr-mpls-interface-sid-fc-state {
- description
- "Per-SID per forwarding class statistics for SR with the MPLS dataplane";
-
- leaf exp {
- type uint8 {
- range "0..7";
- }
- description
- "The value of the MPLS EXP (experimental) or Traffic Class bits that the
- SID statistics relate to. Packets received with a MPLS label value
- equal to the SID's MPLS label and EXP bits equal to the this value
- should be counted towards the associated ingress statistics. Packets
- that are forwarded to the destination MPLS label corresponding to the
- SID should be counted towards this value. In the egress direction, where
- forwarding follows a SID value that requires PHP at the local node,
- packets should still be counted towards the egress counters.";
- }
- }
-
- grouping sr-mpls-sid-counters-state {
- description
- "Per-SID statistics leaves";
-
- leaf mpls-label {
- type oc-mpls-t:mpls-label;
- description
- "The MPLS label used for the segment identifier";
- }
- }
-
- grouping sr-mpls-common-counters {
- description
- "Per segment identifier counters used in the model";
-
- leaf in-pkts {
- type yang:counter64;
- description
- "A cumulative counter of the packets received within the context
- which have matched a label corresponding to an SR Segment Identifier.";
- }
-
- leaf in-octets {
- type yang:counter64;
- description
- "The cumulative counter of the total bytes received within the context
- which have matched a label corresponding to an SR Segment Identifier";
- }
-
- leaf out-pkts {
- type yang:counter64;
- description
- "A cumulative counter of the total number of packets transmitted by
- the local system within the context which have a label imposed that
- corresponds to an Segment Identifier.";
- }
-
- leaf out-octets {
- type yang:counter64;
- description
- "A cumulative counter of the total bytes transmitted by the local
- system within the context which have a label imported that
- corresponds to an SR Segment Identifier.";
- }
- }
-
- grouping sr-igp-config {
- description
- "Configuration parameters relating to segment routing within an
- IGP.";
-
- leaf enabled {
- type boolean;
- description
- "When this leaf is set to true, the segment routing extensions are
- utilised within the IGP.";
- }
-
- leaf srgb {
- type leafref {
- path "../../../../../../../segment-routing/srgbs/srgb/config/local-id";
- }
- description
- "A reference to the Segment Routing Global Block (SRGB) that is
- to be used by this IGP instance.";
- }
-
- leaf srlb {
- // Leaf is defined at
- // /network-instances/network-instance/protocols/protocol/<igp>/global/
- // segment-routing/config
- type leafref {
- path "../../../../../../../segment-routing/srlbs/srlb/config/local-id";
- }
- description
- "A reference to the Segment Routing Local Block (SRLB) that is to
- be advertised by the IGP instance.";
- }
- }
-
- grouping sr-igp-top {
- description
- "Per-instance configuration and state parameters for Segment Routing
- in an IGP.";
-
- container segment-routing {
- description
- "Configuration and operational state relating to segment routing.";
-
- container config {
- description
- "Configuration parameters relating to the configuration of segment
- routing for the IGP instance.";
- uses sr-igp-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to segment routing for the
- IGP instance.";
- uses sr-igp-config;
- }
- }
- }
-
- grouping sr-igp-interface-prefix-sid-config {
- description
- "Configuration parameters relating to an IGP prefix SID advertisement";
-
- leaf prefix {
- type inet:ip-prefix;
- description
- "The IP prefix for which the IGP prefix SID should be advertised. The
- value specified is a local prefix on the interface which is advertised
- into the IGP.";
- }
-
- leaf sid-id {
- type sr-sid-type;
- description
- "The Segment Identifier to be used when advertising the IGP Prefix SID.";
- }
-
- leaf label-options {
- type enumeration {
- enum NO_PHP {
- description
- "When this value is specified, the penultimate hop must not pop
- the Prefix-SID label before forwarding it to the local system.";
- }
- enum EXPLICIT_NULL {
- description
- "When set, the penultimate hop must swap the prefix SID for the
- relevant explicit null label before forwarding the packet.";
- }
- }
- description
- "The options associated with the IGP prefix SID for MPLS. The value
- of this leaf specifies the option that the SID should be advertised
- into the IGP with.";
- }
- }
-
- grouping sr-igp-interface-adjsid-config {
- description
- "Configuration parameters relating to an Adj-SID on an interface";
-
- leaf sid-id {
- type union {
- type sr-sid-type;
- type enumeration {
- enum DYNAMIC {
- description
- "The SID chosen for the Adjacency SID should be dynamically
- allocated from the system's dynamic range of Segment
- Identifiers. For MPLS, this range should be considered to be
- those labels that do not fall within a reserved label block.";
- }
- }
- }
- description
- "The value of the Adj-SID to be advertised. Where a static SID
- identifier is specified, this should be advertised directly by the
- system. Where the DYNAMIC value is specified, this should be treated
- as a dynamically allocated value. When the MPLS data plane is in use
- the dynamic value should not fall within a reserved-label-block.";
- }
-
- leaf protection-eligible {
- type boolean;
- default true;
- description
- "Whether the Adj-SID should be considered to be eligible for protection
- using IP or MPLS FRR during a network failure. When this value is set to
- true, the B-flag of the Adj-SID is set to 1, and the local system should
- provide FRR paths for the associated label forwarding entry. When it is
- set to false, the local system must not provide FRR for the specified
- LFIB entry.";
- }
-
- leaf group {
- type boolean;
- default false;
- description
- "When set to true, the Adj-SID is indicated to be part of a group, and
- the G flag is set to 1 in the corresponding advertisement in the IGP.";
- }
-
- leaf neighbor {
- type inet:ip-address;
- description
- "The remote system on the interface with which the Adj-SID is
- associated.";
- }
- }
-
- grouping sr-igp-interface-adjsid-state {
- description
- "Operational state parameters relating to the adjacency SID for an
- interface";
-
- leaf allocated-dynamic-local {
- type sr-sid-type;
- description
- "Where an Adjacency SID with a dynamic value is to be allocated by
- the system, this leaf reports to the value of the Adj-SID allocated
- to this interface.";
- }
- }
-
- grouping sr-igp-interface-top {
- description
- "Per-interface configuration and operational state relating to an
- interface within the IGP.";
-
- container segment-routing {
- description
- "Configuration and operatioanl state parameters relating to segment
- routing for an interface within the IGP.";
-
- container prefix-sids {
- description
- "Configuration and operational state parameters relating to
- the advertisement of a segment routing IGP-Prefix SID for this
- interface.";
-
- list prefix-sid {
- key "prefix";
-
- description
- "An IGP prefix that should have a segment routing IGP-Prefix SID
- allocated to it. The value of the SID is specified by the SID ID,
- as an absolute value. If the absolute value falls within the SRGB,
- the Global flag should be advertised by the system.";
-
- leaf prefix {
- type leafref {
- path "../config/prefix";
- }
- description
- "Reference to the prefix for which the IGP-Prefix SID is to be
- advertised";
- }
-
- container config {
- description
- "Configuration parameters for the IGP Prefix SID.";
- uses sr-igp-interface-prefix-sid-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for the IGP-Prefix SID.";
- uses sr-igp-interface-prefix-sid-config;
- }
- }
- }
-
- container adjacency-sids {
- description
- "Configuration and operational state parameters relating to
- the advertisement of a segment routing adjacency SID for this
- interface.";
-
- list adjacency-sid {
- key "neighbor sid-id";
-
- description
- "An Adjacency SID to be advertised for the specified interface.
- The Adj-SID's identifier (the SID ID) must be unique, with flags
- specified indicating the parameters that should be set for the SID.
- Where a SID value is specified that is allocated from the SRGB, the
- global flag must be set by the system.";
-
- leaf sid-id {
- type leafref {
- path "../config/sid-id";
- }
- description
- "Reference to the segment identifier to be used by the local
- system.";
- }
-
- leaf neighbor {
- type leafref {
- path "../config/neighbor";
- }
- description
- "Reference to the neighbor with which the Adjacency SID is
- associated.";
- }
-
- container config {
- description
- "Configuraton parameters relating to the AdjSID.";
- uses sr-igp-interface-adjsid-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the AdjSID.";
- uses sr-igp-interface-adjsid-config;
- uses sr-igp-interface-adjsid-state;
- }
- }
- }
- }
- }
-
- grouping sr-top {
- description
- "Top level grouping for Segment Routing";
-
- container segment-routing {
- description
- "Configuration and operational state parameters relating to
- segment routing.";
-
- uses sr-structural;
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-spanning-tree-types.yang b/src/plugins/yang/openconfig/openconfig-spanning-tree-types.yang
deleted file mode 100644
index 0ca9571..0000000
--- a/src/plugins/yang/openconfig/openconfig-spanning-tree-types.yang
+++ /dev/null
@@ -1,225 +0,0 @@
-module openconfig-spanning-tree-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/spanning-tree/types";
-
- prefix "oc-stp-types";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines types related to the
- spanning-tree protocol model.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2017-07-14" {
- description
- "Migrated to OpenConfig types; fixed missing applied state
- in rapid-pvst";
- reference "0.2.0";
- }
-
- revision "2016-10-03" {
- description
- "Initial public revision";
- reference "0.1.0";
- }
-
- // identity statements
-
- identity STP_PROTOCOL {
- description
- "base identity for support spanning tree protocol";
- }
-
- identity RSTP {
- base STP_PROTOCOL;
- description
- "Rapid Spanning Tree Protocol";
- reference "IEEE 802.1D 17";
- }
-
- identity MSTP {
- base STP_PROTOCOL;
- description
- "Multiple Spanning Tree Protocol";
- reference "IEEE 802.1Q 13";
- }
-
- identity RAPID_PVST {
- base STP_PROTOCOL;
- description
- "Rapid Per Vlan Spanning Tree Protocol";
- }
-
- identity STP_PORT_STATE {
- description
- "base identity for the different Spanning Tree Protocol port
- states";
- reference
- "IEEE 802.1D 7.4 Port States and the active topology";
- }
-
- identity DISABLED {
- base STP_PORT_STATE;
- description
- "A port that is manually isolated from the network";
- }
-
- identity LISTENING {
- base STP_PORT_STATE;
- description
- "Processing BPDUs and building active toplogy";
- }
-
- identity LEARNING {
- base STP_PORT_STATE;
- description
- "Building bridging tables; no forwarding of data";
- }
-
- identity BLOCKING {
- base STP_PORT_STATE;
- description
- "A port that would cause a loop if it were sending data,
- so it is only receiving BPDUs, untill a topology change
- removes the possibliity of a loop";
- }
-
- identity FORWARDING {
- base STP_PORT_STATE;
- description
- "Sending and receiving data, normal operation";
- }
-
- identity STP_EDGE_PORT {
- description
- "base identity for the different edge port modes";
- reference
- "IEEE 802.1D 17.13.1";
- }
-
- identity EDGE_ENABLE {
- base STP_EDGE_PORT;
- description
- "Enable edge port for the bridge port";
- }
-
- identity EDGE_DISABLE {
- base STP_EDGE_PORT;
- description
- "Disable edge port for the bridge port";
- }
-
- identity EDGE_AUTO {
- base STP_EDGE_PORT;
- description
- "Enable edge port autodetction for the bridge port";
- }
-
- identity STP_PORT_ROLE {
- description
- "Base identity for the different Spanning Tree Protocol port
- roles";
- reference
- "IEEE 802.1D 17.7 Port Role assignments";
- }
-
- identity ROOT {
- base STP_PORT_ROLE;
- description
- "The port that receives the best BPDU on a bridge is the
- root port";
- }
-
- identity DESIGNATED {
- base STP_PORT_ROLE;
- description
- "A port is designated if it can send the best BPDU on the
- segment to which it is connected.";
- }
-
- identity ALTERNATE {
- base STP_PORT_ROLE;
- description
- "An alternate port receives more useful BPDUs from another
- bridge and is a port blocked";
- }
-
- identity BACKUP {
- base STP_PORT_ROLE;
- description
- "A backup port receives more useful BPDUs from the same
- bridge it is on and is a port blocked";
- }
-
- // typedef statements
-
- typedef stp-bridge-priority-type {
- type uint32 {
- range 1..611440;
- }
- description
- "The manageable component of the Bridge Identifier";
- reference "IEEE 802.1D 17.13.7 Bridge Identifier Priority";
- }
-
- typedef stp-port-priority-type {
- type uint8 {
- range 1..240;
- }
- description
- "The manageable component of the Port Identifier,
- also known as the Port Priority";
- reference
- "IEEE 802.1D 17.13.10 Port Identifier Priority";
- }
-
- typedef stp-guard-type {
- type enumeration {
- enum ROOT {
- description
- "Enable root guard";
- }
- enum LOOP {
- description
- "Enable loop guard";
- }
- enum NONE {
- description
- "disable guard";
- }
- }
- description
- "Type definition for the different STP guard for the switch port";
- reference "IEEE 802.1D 17.2";
- }
-
- typedef stp-link-type {
- type enumeration {
- enum P2P {
- description
- "Point-to-Point link";
- }
- enum SHARED {
- description
- "Shared link";
- }
- }
- description
- "Type definition for the different link types";
- reference "IEEE 802.1D 17.2";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-spanning-tree.yang b/src/plugins/yang/openconfig/openconfig-spanning-tree.yang
deleted file mode 100644
index 3a70d5e..0000000
--- a/src/plugins/yang/openconfig/openconfig-spanning-tree.yang
+++ /dev/null
@@ -1,823 +0,0 @@
-module openconfig-spanning-tree {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/spanning-tree";
-
- prefix "oc-stp";
-
- import openconfig-spanning-tree-types { prefix oc-stp-types; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-types { prefix oc-types; }
- import openconfig-vlan-types { prefix oc-vlan-types; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- for the spanning tree protocol.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2017-07-14" {
- description
- "Migrated to OpenConfig types; fixed missing applied state
- in rapid-pvst";
- reference "0.2.0";
- }
-
- revision "2016-10-03" {
- description
- "Initial public revision";
- reference "0.1.0";
- }
-
-
- // identity statements
-
-
- // grouping statements
-
- grouping stp-interfaces-state {
- description
- "Grouping of STP operational data for bridge port";
-
- leaf port-num {
- type uint16;
- description
- "The port number of the bridge port";
- reference "RFC4188 BRIDGE-MIB dot1dStpPort";
- }
-
- leaf role {
- type identityref {
- base oc-stp-types:STP_PORT_ROLE;
- }
- description
- "The current role of the bridge port";
- reference
- "IEEE8021-MSTP-MIB ieee8021MstpPortRole";
- }
-
- leaf port-state {
- type identityref {
- base oc-stp-types:STP_PORT_STATE;
- }
- description
- "The current state of the bridge port";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortState";
- }
-
- leaf designated-root-priority {
- type oc-stp-types:stp-bridge-priority-type;
- description
- "The bridge priority of the bridge recorded as the
- root in the configuration BPDUs transmitted by the designated
- bridge for the segment to which the port is attached";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedRoot";
- }
-
- leaf designated-root-address {
- type oc-yang:mac-address;
- description
- "The bridge address of the bridge recorded as the
- root in the configuration BPDUs transmitted by the designated
- bridge for the segment to which the port is attached";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedRoot";
- }
-
- leaf designated-cost {
- type uint32;
- description
- "The path cost of the Designated Port of the
- segment connected to this port";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedCost";
- }
-
- leaf designated-bridge-priority {
- type oc-stp-types:stp-bridge-priority-type;
- description
- "The bridge priority of the bridge that this port considers
- to be the designated bridge for this port's segment.";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedBridge";
- }
-
- leaf designated-bridge-address {
- type oc-yang:mac-address;
- description
- "The bridge address of the bridge that this port considers
- to be the designated bridge for this port's segment.";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedBridge";
- }
-
- leaf designated-port-priority {
- type oc-stp-types:stp-port-priority-type;
- description
- "The Port priority of the port on the Designated
- Bridge for this port's segment, two octet string";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedPort";
- }
-
- leaf designated-port-num {
- type uint16;
- description
- "The Port number of the port on the Designated
- Bridge for this port's segment, two octet string";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortDesignatedPort";
- }
-
- leaf forward-transisitions {
- type oc-yang:counter64;
- description
- "The number of times this port has transitioned
- from the Learning state to the Forwarding state";
- reference "RFC4188 BRIDGE-MIB dot1dStpPortForwardTransitions";
- }
-
- container counters {
- description
- "The BPDU packet transmition statistics";
-
- leaf bpdu-sent {
- type oc-yang:counter64;
- description
- "The number of BPDU packet sent";
- }
-
- leaf bpdu-received {
- type oc-yang:counter64;
- description
- "The number of BPDU packet received";
- }
- }
- }
-
- grouping stp-interfaces-config {
- description
- "Grouping of STP configuration for bridge port";
-
- leaf name {
- type oc-if:base-interface-ref;
- description
- "Reference to the STP ethernet interface";
- }
-
- leaf cost {
- type uint32 {
- range 1..200000000;
- }
- description
- "The port's contribution, when it is the Root Port,
- to the Root Path Cost for the Bridge";
- reference
- "IEEE 802.1D 17.13.11 PortPathCost";
- }
-
- leaf port-priority {
- type oc-stp-types:stp-port-priority-type;
- description
- "The manageable component of the Port Identifier,
- also known as the Port Priority";
- reference
- "IEEE 802.1D 17.13.10 Port Identifier Priority";
- }
- }
-
- grouping stp-interfaces-top {
- description
- "Grouping of STP configuration and operation data for
- bridge port";
-
- container interfaces {
- description
- "Enclosing container for the list of interface references";
-
- list interface {
- key "name";
- description
- "List of interfaces on which STP is enable";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for STP on each interface";
-
- uses stp-interfaces-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for STP on each interface";
-
- uses stp-interfaces-config;
- uses stp-interfaces-state;
- }
- }
- }
- }
-
- grouping bridge-priority-config {
- description
- "Grouping for bridge priority";
-
- leaf bridge-priority {
- type oc-stp-types:stp-bridge-priority-type;
- description
- "The manageable component of the Bridge Identifier";
- reference
- "IEEE 802.1D 17.13.7 Bridge Identifier Priority";
- }
- }
-
- grouping stp-common-state {
- description
- "Grouping for common STP operation data";
-
- leaf bridge-address {
- type oc-yang:mac-address;
- description
- "A unique 48-bit Universally Administered MAC Address
- assigned to the bridge";
- reference
- "IEEE 802.1D 7.12.5 Unique identification of a bridge";
- }
-
- leaf designated-root-priority {
- type oc-stp-types:stp-bridge-priority-type;
- description
- "The bridge priority of the root of the spanning
- tree, as determined by the Spanning Tree Protocol,
- as executed by this node";
- reference
- "RFC4188 BRIDGE-MIB dot1dStpDesignatedRoot";
- }
-
- leaf designated-root-address {
- type oc-yang:mac-address;
- description
- "The bridge address of the root of the spanning
- tree, as determined by the Spanning Tree Protocol,
- as executed by this node";
- reference
- "RFC4188 BRIDGE-MIB dot1dStpDesignatedRoot";
- }
-
- leaf root-port {
- type uint16;
- description
- "The port number of the port which offers the lowest
- cost path from this bridge to the root bridge";
- reference
- "RFC4188 BRIDGE-MIB dot1dStpRootPort";
- }
-
- leaf root-cost {
- type uint32;
- description
- "The cost of the path to the root as seen from this bridge";
- reference
- "RFC4188 BRIDGE-MIB dot1dStpRootCost";
- }
-
- leaf hold-time {
- type uint8;
- description
- "This time value determines the interval length
- during which no more than two Configuration bridge
- PDUs shall be transmitted by this node";
- reference
- "RFC4188 BRIDGE-MIB dot1dStpHoldTime";
- }
-
- leaf topology-changes {
- type oc-yang:counter64;
- description
- "The total number of topology changes detected by
- this bridge since the management entity was last
- reset or initialized";
- reference
- "RFC4188 BRIDGE-MIB dot1dStpTopChanges";
- }
-
- leaf time-since-topology-change {
- type oc-types:timeticks64;
- description
- "The time (in hundredths of a second) since the
- last time a topology change was detected by the
- bridge entity
-
- The value is the timestamp in seconds relative to
- the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- reference
- "RFC4188 BRIDGE-MIB dot1dStpTimeSinceTopologyChange";
- }
- }
-
- grouping stp-timer-config {
- description
- "Grouping for common STP parameters";
-
- leaf hello-time {
- type uint8 {
- range 1..10;
- }
- units "seconds";
- description
- "The interval between periodic transmissions of
- configuration messages by designated ports";
- reference
- "IEEE 802.1D 17.13.6 Bridge Hello Time";
- }
-
- leaf max-age {
- type uint8 {
- range 6..40;
- }
- units "seconds";
- description
- "The maximum age of the information transmitted by the
- bridge when it is the root bridge";
- reference
- "IEEE 802.1D 17.13.8 Bridge Max Age";
- }
-
- leaf forwarding-delay {
- type uint8 {
- range 4..30;
- }
- units "seconds";
- description
- "The delay used by STP bridges to transition root and
- designated ports to forwarding";
- reference
- "IEEE 802.1D 17.13.5 Bridge Forward Delay";
- }
-
- leaf hold-count {
- type uint8 {
- range 1..10;
- }
- default 6;
- description
- "the maximum number of BPDUs per second that the
- switch can send from an interface";
- reference
- "IEEE 802.1D 17.13.12 Transmit Hold Count";
- }
- }
-
- grouping stp-rapid-pvst-config {
- description
- "Configuration parameters relating to rapid PVST";
-
- leaf vlan-id {
- type oc-vlan-types:vlan-id;
- description
- "Interface VLAN ID";
- }
- }
-
- grouping stp-rapid-pvst-top {
- description
- "Top grouping for rapid per vlan spanning tree configuration
- and operation data";
-
- list vlan {
- key "vlan-id";
- description
- "List of the vlans";
-
- leaf vlan-id {
- type leafref {
- path "../config/vlan-id";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for each vlan";
-
- uses stp-rapid-pvst-config;
- uses stp-timer-config;
- uses bridge-priority-config;
- }
-
- container state {
- config false;
- description
- "Operational data for each vlan";
-
- uses stp-rapid-pvst-config;
- uses stp-timer-config;
- uses bridge-priority-config;
- uses stp-common-state;
- }
-
- uses stp-interfaces-top;
- }
- }
-
- grouping mst-instance-config {
- description
- "Grouping for mstp instance configuration";
-
- leaf mst-id {
- type uint16 {
- range "1..4094";
- }
- description
- "In an MSTP Bridge, an MSTID, i.e., a value used to identify
- a spanning tree (or MST) instance.";
- reference
- "IEEE8021-TC-MIB IEEE8021MstIdentifier";
- }
-
- leaf-list vlan {
- type union {
- type oc-vlan-types:vlan-id;
- type oc-vlan-types:vlan-range;
- }
- description
- "list of vlans mapped to the MST instance";
- }
- }
-
- grouping mst-instance-top {
- description
- "Top level grouping for mstp instances";
-
- list mst-instance {
- key "mst-id";
- description
- "List of the mstp instances";
-
- leaf mst-id {
- type leafref {
- path "../config/mst-id";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for MSTP instance";
-
- uses mst-instance-config;
- uses bridge-priority-config;
- }
-
- container state {
- config false;
-
- description
- "Operational data for MSTP instance";
-
- uses mst-instance-config;
- uses bridge-priority-config;
- uses stp-common-state;
- }
-
- uses stp-interfaces-top;
- }
- }
-
- grouping mstp-config {
- description
- "Grouping for MSTP configuration data";
-
- leaf name {
- type string {
- length "1..32";
- }
- description
- "The Configuration Name in the MST Configuration Identifier";
- reference
- "IEEE 802.1Q 13.8 MST Configuration Identifier (MCID)";
- }
-
- leaf revision {
- type uint32;
- description
- "The Revision Level in the MST Configuration Identifier";
- reference
- "IEEE 802.1Q 13.8 MST Configuration Identifier";
- }
-
- leaf max-hop {
- type uint8 {
- range 1..255;
- }
- description
- "The max hop determines the number of bridges in an MST
- region that a BPDU can traverse before it is discarded";
- reference
- "IEEE 802.1Q 13.26.4 BridgeTimes";
- }
-
- uses stp-timer-config;
- }
-
- grouping mstp-state {
- description
- "Operational state data for MSTP";
- }
-
- grouping stp-mstp-top {
- description
- "Top grouping for MSTP configuration and operation data";
-
- container config {
- description
- "Configuration data for MSTP";
-
- uses mstp-config;
- }
-
- container state {
- config false;
-
- description
- "Operational data for MSTP";
-
- uses mstp-config;
- uses mstp-state;
- }
-
- container mst-instances {
- description
- "Configuration and operation data for MSTP instances";
-
- uses mst-instance-top;
- }
- }
-
- grouping stp-rstp-top {
- description
- "Top grouping for RSTP configuration and operation data";
-
- container config {
- description
- "Configuration data for RSTP";
-
- uses stp-timer-config;
- uses bridge-priority-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for RSTP";
-
- uses stp-timer-config;
- uses bridge-priority-config;
- uses stp-common-state;
- }
-
- uses stp-interfaces-top;
- }
-
- grouping stp-interface-common-config {
- description
- "Configuration data for interface specific STP features";
-
- leaf name {
- type oc-if:base-interface-ref;
- description
- "Reference to the STP Ethernet interface";
- }
-
- leaf edge-port {
- type identityref {
- base oc-stp-types:STP_EDGE_PORT;
- }
- description
- "Configure the edge port state";
- }
-
- leaf link-type {
- type oc-stp-types:stp-link-type;
- description
- "specifies the interface's link type";
- }
-
- leaf guard {
- type oc-stp-types:stp-guard-type;
- description
- "Enable root guard or loop guard";
- }
-
- uses stp-bpdu-config;
-
- }
-
- grouping stp-interface-common-state {
- description
- "Operational state data for STP on interfaces";
- }
-
- grouping stp-interface-common-top {
- description
- "Top-level grouping for interface specific STP features";
-
- list interface {
- key "name";
- description
- "List of interfaces on which STP is enable";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for STP on each bridge port";
-
- uses stp-interface-common-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for STP on each bridge port";
-
- uses stp-interface-common-config;
- uses stp-interface-common-state;
- }
- }
- }
-
- grouping stp-bpdu-config {
- description
- "Grouping for STP BPDU configuration";
-
- leaf bpdu-guard {
- type boolean;
- description
- "Enable edge port BPDU guard";
- }
-
- leaf bpdu-filter {
- type boolean;
- description
- "Enable edge port BPDU filter";
- }
- }
-
- grouping stp-global-config {
- description
- "Global spanning tree configuration";
-
- leaf-list enabled-protocol {
- type identityref {
- base oc-stp-types:STP_PROTOCOL;
- }
- description
- "List of the spanning tree protocols enabled on the
- device";
- }
-
- leaf bridge-assurance {
- type boolean;
- description
- "Enable bridge assurance to protect against unidirectional
- link failure";
- }
-
- leaf etherchannel-misconfig-guard {
- type boolean;
- description
- "EtherChannel guard detects a misconfigured EtherChannel
- when interfaces on the switch are configured as an
- EtherChannel while interfaces on the other device are not
- or when not all the interfaces on the other device are in
- the same EtherChannel.";
- }
-
- leaf bpduguard-timeout-recovery {
- type uint8;
- units "seconds";
- description
- "Amount of time, in seconds, the interface receiving BPDUs
- is disabled. Once the timeout expires, the interface is
- brought back into service.";
- }
-
- leaf loop-guard {
- type boolean;
- description
- "The loop guard default setting for the bridge";
- }
-
- uses stp-bpdu-config;
-
- }
-
- grouping stp-global-state {
- description
- "Global operational state for STP";
- }
-
- grouping stp-global-base {
- description
- "Grouping for global spanning tree data";
-
- container config {
- description
- "Global spanning tree configuration";
- uses stp-global-config;
- }
-
- container state {
- config false;
-
- description
- "Global spanning tree state";
- uses stp-global-config;
- uses stp-global-state;
- }
- }
-
- grouping stp-top {
- description
- "Top-level grouping for spanning-tree model";
-
- container stp {
- description
- "Top-level container for spanning tree configuration and
- state data";
-
- container global {
- description
- "Global configuration and state data";
-
- uses stp-global-base;
- }
-
- container rstp {
-
- description
- "Rapid Spanning-tree protocol configuration and operation
- data";
-
- uses stp-rstp-top;
- }
-
- container mstp {
- description
- "Multi Spanning-tree protocol configuration and operation
- data";
-
- uses stp-mstp-top;
- }
-
- container rapid-pvst {
- description
- "Rapid per vlan Spanning-tree protocol configuration and
- operational data";
-
- uses stp-rapid-pvst-top;
- }
-
- container interfaces {
- description
- "Enclosing container for the list of interface references";
-
- uses stp-interface-common-top;
- }
- }
- }
-
- // data definition statements
-
- uses stp-top;
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-system-logging.yang b/src/plugins/yang/openconfig/openconfig-system-logging.yang
deleted file mode 100644
index 14bb1c5..0000000
--- a/src/plugins/yang/openconfig/openconfig-system-logging.yang
+++ /dev/null
@@ -1,492 +0,0 @@
-module openconfig-system-logging {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/system/logging";
-
- prefix "oc-log";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-inet-types { prefix oc-inet; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- for common logging facilities on network systems.";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2017-09-18" {
- description
- "Updated to use OpenConfig types modules";
- reference "0.3.0";
- }
-
- revision "2017-07-06" {
- description
- "Move to oc-inet types, add IETF attribution, add RADIUS
- counters, changed password leaf names to indicate hashed";
- reference "0.2.0";
- }
-
- revision "2017-01-29" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity SYSLOG_FACILITY {
- description
- "Base identity for Syslog message facilities.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity ALL {
- base SYSLOG_FACILITY;
- description
- "All supported facilities";
- }
-
- identity KERNEL {
- base SYSLOG_FACILITY;
- description
- "The facility for kernel messages";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity USER {
- base SYSLOG_FACILITY;
- description
- "The facility for user-level messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity MAIL {
- base SYSLOG_FACILITY;
- description
- "The facility for the mail system.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity SYSTEM_DAEMON {
- base SYSLOG_FACILITY;
- description
- "The facility for the system daemons.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity AUTH {
- base SYSLOG_FACILITY;
- description
- "The facility for security/authorization messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity SYSLOG {
- base SYSLOG_FACILITY;
- description
- "The facility for messages generated internally by syslogd
- facility.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity AUTHPRIV {
- base SYSLOG_FACILITY;
- description
- "The facility for privileged security/authorization messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
-
- identity NTP {
- base SYSLOG_FACILITY;
- description
- "The facility for the NTP subsystem.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity AUDIT {
- base SYSLOG_FACILITY;
- description
- "The facility for log audit messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity CONSOLE {
- base SYSLOG_FACILITY;
- description
- "The facility for log alert messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOCAL0 {
- base SYSLOG_FACILITY;
- description
- "The facility for local use 0 messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOCAL1 {
- base SYSLOG_FACILITY;
- description
- "The facility for local use 1 messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOCAL2 {
- base SYSLOG_FACILITY;
- description
- "The facility for local use 2 messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOCAL3 {
- base SYSLOG_FACILITY;
- description
- "The facility for local use 3 messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOCAL4 {
- base SYSLOG_FACILITY;
- description
- "The facility for local use 4 messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOCAL5 {
- base SYSLOG_FACILITY;
- description
- "The facility for local use 5 messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOCAL6 {
- base SYSLOG_FACILITY;
- description
- "The facility for local use 6 messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOCAL7 {
- base SYSLOG_FACILITY;
- description
- "The facility for local use 7 messages.";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- identity LOG_DESTINATION_TYPE {
- description
- "Base identity for destination for logging messages";
- }
-
- identity DEST_CONSOLE {
- base LOG_DESTINATION_TYPE;
- description
- "Directs log messages to the console";
- }
-
- identity DEST_BUFFER {
- base LOG_DESTINATION_TYPE;
- description
- "Directs log messages to and in-memory circular buffer";
- }
-
- identity DEST_FILE {
- base LOG_DESTINATION_TYPE;
- description
- "Directs log messages to a local file";
- }
-
- identity DEST_REMOTE {
- base LOG_DESTINATION_TYPE;
- description
- "Directs log messages to a remote syslog server";
- }
-
- // typedef statements
-
- typedef syslog-severity {
- type enumeration {
- enum EMERGENCY {
- description
- "Emergency: system is unusable (0)";
- }
- enum ALERT {
- description
- "Alert: action must be taken immediately (1)";
- }
- enum CRITICAL {
- description
- "Critical: critical conditions (2)";
- }
- enum ERROR {
- description
- "Error: error conditions (3)";
- }
- enum WARNING {
- description
- "Warning: warning conditions (4)";
- }
- enum NOTICE {
- description
- "Notice: normal but significant condition(5)";
- }
- enum INFORMATIONAL {
- description
- "Informational: informational messages (6)";
- }
- enum DEBUG {
- description
- "Debug: debug-level messages (7)";
- }
- }
- description
- "Syslog message severities";
- reference
- "IETF RFC 5424 - The Syslog Protocol";
- }
-
- // grouping statements
-
- grouping logging-selectors-config {
- description
- "Configuration data for logging selectors";
-
- leaf facility {
- type identityref {
- base SYSLOG_FACILITY;
- }
- description
- "Specifies the facility, or class of messages to log";
- }
-
- leaf severity {
- type syslog-severity;
- description
- "Specifies that only messages of the given severity (or
- greater severity) for the corresonding facility are logged";
- }
- }
-
- grouping logging-selectors-state {
- description
- "Operational state data for logging selectors";
- }
-
- grouping logging-selectors-top {
- description
- "Top-level grouping for the logging selector list";
-
- container selectors {
- description
- "Enclosing container ";
-
- list selector {
- key "facility severity";
- description
- "List of selectors for log messages";
-
- leaf facility {
- type leafref {
- path "../config/facility";
- }
- description
- "Reference to facility list key";
- }
-
- leaf severity {
- type leafref {
- path "../config/severity";
- }
- description
- "Reference to severity list key";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses logging-selectors-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses logging-selectors-config;
- uses logging-selectors-state;
- }
- }
- }
- }
-
- grouping logging-console-config {
- description
- "Configuration data for console logging";
- }
-
- grouping logging-console-state {
- description
- "Operational state data for console logging";
- }
-
- grouping logging-console-top {
- description
- "Top-level grouping for console logging data";
-
- container console {
- description
- "Top-level container for data related to console-based
- logging";
-
- container config {
- description
- "Configuration data for console logging";
-
- uses logging-console-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for console logging";
-
- uses logging-console-config;
- uses logging-console-state;
- }
-
- uses logging-selectors-top;
- }
- }
-
- grouping logging-remote-config {
- description
- "Configuration data for remote log servers";
-
- leaf host {
- type oc-inet:host;
- description
- "IP address or hostname of the remote log server";
- }
-
- leaf source-address {
- type oc-inet:ip-address;
- description
- "Source IP address for packets to the log server";
- }
-
- leaf remote-port {
- type oc-inet:port-number;
- default 514;
- description
- "Sets the destination port number for syslog UDP messages to
- the server. The default for syslog is 514.";
- }
- }
-
- grouping logging-remote-state {
- description
- "Operational state data for remote log servers";
- }
-
- grouping logging-remote-top {
- description
- "Top-level grouping for remote log servers";
-
- container remote-servers {
- description
- "Enclosing container for the list of remote log servers";
-
- list remote-server {
- key "host";
- description
- "List of remote log servers";
-
- leaf host {
- type leafref {
- path "../config/host";
- }
- description
- "Reference to the host list key";
- }
-
- container config {
- description
- "Configuration data for remote log servers";
-
- uses logging-remote-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for remote log servers";
-
- uses logging-remote-config;
- uses logging-remote-state;
- }
- uses logging-selectors-top;
- }
- }
- }
-
- grouping logging-top {
- description
- "Top-level grouping for logging data";
-
- container logging {
- description
- "Top-level container for data related to logging / syslog";
-
- uses logging-console-top;
- uses logging-remote-top;
- }
- }
- // data definition statements
-
- // augment statements
-
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-system-management.yang b/src/plugins/yang/openconfig/openconfig-system-management.yang
deleted file mode 100644
index 67f8aab..0000000
--- a/src/plugins/yang/openconfig/openconfig-system-management.yang
+++ /dev/null
@@ -1,126 +0,0 @@
-module openconfig-system-management {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/system/management";
-
- prefix "oc-sys-mgmt";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-inet-types { prefix oc-inet; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- related to management services.";
-
- oc-ext:openconfig-version "0.1.1";
-
- revision "2018-08-28" {
- description
- "Update description of the ANY enum.";
- reference "0.1.1";
- }
-
- revision "2018-07-26" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping system-grpc-server-config {
- description
- "Configuration data for the gRPC server";
-
- leaf enable {
- type boolean;
- default true;
- description
- "Enables the gRPC server. The gRPC server is enabled by
- default";
- }
-
- leaf port {
- type oc-inet:port-number;
- description
- "TCP port on which the gRPC server should listen";
- }
-
- leaf transport-security {
- type boolean;
- description
- "Enables gRPC transport security (e.g., TLS or SSL)";
- }
-
- leaf certificate-id {
- type string;
- description
- "The certificate ID to be used for authentication";
- }
-
- leaf-list listen-addresses {
- type union {
- type oc-inet:ip-address;
- type enumeration {
- enum ANY {
- description
- "The gRPC daemon should listen on any address
- bound to an interface on the system.";
- }
- }
- }
- description
- "The IP addresses that the gRPC server should listen
- on. This may be an IPv4 or an IPv6 address";
- }
- }
-
- grouping system-grpc-server-top {
- description
- "Top-level grouping for system gRPC server data";
-
- container grpc-server {
- description
- "Top-level container for the gRPC server";
-
- container config {
- description
- "Configuration data for the system gRPC server";
-
- uses system-grpc-server-config;
- }
-
- container state {
- config false;
-
- description
- "Operational state data for the system gRPC server";
-
- uses system-grpc-server-config;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-system-terminal.yang b/src/plugins/yang/openconfig/openconfig-system-terminal.yang
deleted file mode 100644
index dc44dc5..0000000
--- a/src/plugins/yang/openconfig/openconfig-system-terminal.yang
+++ /dev/null
@@ -1,239 +0,0 @@
-module openconfig-system-terminal {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/system/terminal";
-
- prefix "oc-sys-term";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines configuration and operational state data
- related to remote terminal services such as ssh and telnet.";
-
- oc-ext:openconfig-version "0.3.0";
-
- revision "2017-09-18" {
- description
- "Updated to use OpenConfig types modules";
- reference "0.3.0";
- }
-
- revision "2017-07-06" {
- description
- "Move to oc-inet types, add IETF attribution, add RADIUS
- counters, changed password leaf names to indicate hashed";
- reference "0.2.0";
- }
-
- revision "2017-01-29" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping system-terminal-common-config {
- description
- "Common configuration data for terminal services";
-
- leaf timeout {
- type uint16;
- units seconds;
- description
- "Set the idle timeout in seconds on terminal connections to
- the system for the protocol.";
- }
-
- leaf rate-limit {
- type uint16;
- units "conn/min";
- description
- "Set a limit on the number of connection attempts per
- minute to the system for the protocol.";
- }
-
- leaf session-limit {
- type uint16;
- description
- "Set a limit on the number of simultaneous active terminal
- sessions to the system for the protocol (e.g., ssh,
- telnet, ...) ";
- }
- }
-
- grouping system-terminal-common-state {
- description
- "Common operational state data for terminal services";
- }
-
- grouping system-terminal-common-top {
- description
- "Top-level grouping for common terminal service data";
-
- container terminal-servers {
- description
- "Top-level container for terminal services";
-
- container config {
- description
- "Configuration data for terminal services";
-
- uses system-terminal-common-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses system-terminal-common-config;
- uses system-terminal-common-state;
- }
- }
- }
-
- grouping system-ssh-server-config {
- description
- "Configuration data for system ssh configuration";
-
- leaf enable {
- type boolean;
- default true;
- description
- "Enables the ssh server. The ssh server is enabled by
- default.";
- }
-
- leaf protocol-version {
- type enumeration {
- enum V2 {
- description
- "Use SSH v2 only";
- }
- enum V1 {
- description
- "Use SSH v1 only";
- }
- enum V1_V2 {
- description
- "Use either SSH v1 or v2";
- }
- }
- default V2;
- description
- "Set the protocol version for SSH connections to the system";
- }
-
- uses system-terminal-common-config;
- }
-
- grouping system-ssh-server-state {
- description
- "Operational state data for ssh server";
- }
-
- grouping system-ssh-server-top {
- description
- "Top-level grouping for ssh server data";
-
- container ssh-server {
- description
- "Top-level container for ssh server";
-
- container config {
- description
- "Configuration data for the system ssh server";
-
- uses system-ssh-server-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the system ssh server";
-
- uses system-ssh-server-config;
- uses system-ssh-server-state;
- }
- }
- }
-
- grouping system-telnet-server-config {
- description
- "Configuration data for telnet server";
-
- leaf enable {
- type boolean;
- default false;
- description
- "Enables the telnet server. Telnet is disabled by
- default";
- }
- uses system-terminal-common-config;
-
- }
-
- grouping system-telnet-server-state {
- description
- "Operational state data for telnet server";
- }
-
- grouping system-telnet-server-top {
- description
- "Top-level grouping for telnet server ";
-
- container telnet-server {
- description
- "Top-level container for telnet terminal servers";
-
- container config {
- description
- "Configuration data for telnet";
-
- uses system-telnet-server-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for telnet";
-
- uses system-telnet-server-config;
- uses system-telnet-server-state;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-} \ No newline at end of file
diff --git a/src/plugins/yang/openconfig/openconfig-system.yang b/src/plugins/yang/openconfig/openconfig-system.yang
deleted file mode 100644
index f4d4034..0000000
--- a/src/plugins/yang/openconfig/openconfig-system.yang
+++ /dev/null
@@ -1,978 +0,0 @@
-module openconfig-system {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/system";
-
- prefix "oc-sys";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-types { prefix oc-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-aaa { prefix oc-aaa; }
- import openconfig-system-logging { prefix oc-log; }
- import openconfig-system-management { prefix oc-sys-mgmt; }
- import openconfig-system-terminal { prefix oc-sys-term; }
- import openconfig-procmon { prefix oc-proc; }
- import openconfig-alarms { prefix oc-alarms; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Model for managing system-wide services and functions on
- network devices.
-
- Portions of this code were derived from IETF RFC 7317.
- Please reproduce this note if possible.
-
- IETF code is subject to the following copyright and license:
- Copyright (c) IETF Trust and the persons identified as authors of
- the code.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, is permitted pursuant to, and subject to the license
- terms contained in, the Simplified BSD License set forth in
- Section 4.c of the IETF Trust's Legal Provisions Relating
- to IETF Documents (http://trustee.ietf.org/license-info).";
-
- oc-ext:openconfig-version "0.6.0";
-
- revision "2018-07-17" {
- description
- "Add gRPC server data";
- reference "0.6.0";
- }
-
- revision "2018-01-21" {
- description
- "Add cpu utilization data";
- reference "0.5.0";
- }
-
- revision "2017-12-15" {
- description
- "Add alarms to the system model";
- reference "0.4.0";
- }
-
- revision "2017-09-18" {
- description
- "Updated to use OpenConfig types modules";
- reference "0.3.0";
- }
-
- revision "2017-07-06" {
- description
- "Move to oc-inet types, add IETF attribution, add RADIUS
- counters, changed password leaf names to indicate hashed";
- reference "0.2.0";
- }
-
- revision "2017-01-29" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity NTP_AUTH_TYPE {
- description
- "Base identity for encryption schemes supported for NTP
- authentication keys";
- }
-
- identity NTP_AUTH_MD5 {
- base NTP_AUTH_TYPE;
- description
- "MD5 encryption method";
- }
-
- // typedef statements
-
- typedef timezone-name-type {
- type string;
- description
- "A time zone name as used by the Time Zone Database,
- sometimes referred to as the 'Olson Database'.
-
- The exact set of valid values is an implementation-specific
- matter. Client discovery of the exact set of time zone names
- for a particular server is out of scope.";
- reference
- "BCP 175: Procedures for Maintaining the Time Zone Database";
- }
-
- // grouping statements
-
- grouping system-clock-config {
- description
- "Configuration data for system-wide clock configuration";
-
- leaf timezone-name {
- type timezone-name-type;
- description
- "The TZ database name to use for the system, such
- as 'Europe/Stockholm'.";
- reference "IANA Time Zone Database
- http://www.iana.org/time-zones";
- }
- }
-
- grouping system-clock-state {
- description
- "Operational state data for system-wide clock configuration";
- }
-
- grouping system-clock-top {
- description
- "Top-level grouping for system-wide clock configuration";
-
- container clock {
- description
- "Top-level container for clock configuration data";
-
- container config {
- description
- "Configuration data for system clock";
-
- uses system-clock-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for system clock";
-
- uses system-clock-config;
- uses system-clock-state;
- }
- }
- }
-
- grouping system-global-config {
- description "system-wide configuration parameters";
-
- leaf hostname {
- type oc-inet:domain-name;
- description
- "The hostname of the device -- should be a single domain
- label, without the domain.";
- }
-
- leaf domain-name {
- type oc-inet:domain-name;
- description
- "Specifies the domain name used to form fully qualified name
- for unqualified hostnames.";
- }
-
- leaf login-banner {
- type string;
- description
- "The console login message displayed before the login prompt,
- i.e., before a user logs into the system.";
- }
-
- leaf motd-banner {
- type string;
- description
- "The console message displayed after a user logs into the
- system. They system may append additional standard
- information such as the current system date and time, uptime,
- last login timestamp, etc.";
- }
- }
-
- grouping system-global-state {
- description
- "Global operational state data for the system";
-
- leaf current-datetime {
- type oc-yang:date-and-time;
- description
- "The current system date and time.";
- }
-
- leaf boot-time {
- type oc-types:timeticks64;
- description
- "This timestamp indicates the time that the system was last
- restarted. The value is the timestamp in seconds relative
- to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- }
-
- }
-
- grouping system-dns-config {
- description "DNS / resolver related configuration data";
-
- leaf-list search {
- type oc-inet:domain-name;
- ordered-by user;
- description
- "An ordered list of domains to search when resolving
- a host name.";
- }
- }
-
- grouping system-dns-state {
- description
- "Operational state data for system DNS resolver";
-
- }
-
- grouping system-dns-servers-config {
- description
- "Configuration data for DNS resolvers";
-
- //RFC 7317 includes a single-value choice statement to for
- //TCP and UDP transport. This has been removed since it the
- //transport protocol is not generally available as an options
- //on target devices. It may be added back if and when needed.
-
- leaf address {
- type oc-inet:ip-address;
- description
- "The address of the DNS server, can be either IPv4
- or IPv6.";
- }
-
- leaf port {
- type oc-inet:port-number;
- default 53;
- description
- "The port number of the DNS server.";
- }
-
- //RFC 7317 includes resolver timeout and attempts options. These
- //have been omitted as they are not available on many targets. If
- //and when they are required, they may be added back in.
- }
-
- grouping system-dns-static-config {
- description
- "Configuration data for static host entries";
-
- leaf hostname {
- type string;
- description
- "Hostname for the static DNS entry";
- }
-
- leaf-list alias {
- type string;
- description
- "Additional aliases for the hostname";
- }
-
- leaf-list ipv4-address {
- type oc-inet:ipv4-address;
- description
- "List of IPv4 addressses for the host entry";
- }
-
- leaf-list ipv6-address {
- type oc-inet:ipv6-address;
- description
- "List of IPv6 addresses for the host entry";
- }
- }
-
- grouping system-dns-static-state {
- description
- "Operational state data for static host entries";
- }
-
- grouping system-dns-static-top {
- description
- "Top-level grouping for static DNS host entries";
-
- container host-entries {
- description
- "Enclosing container for list of static host entries";
-
- list host-entry {
- key "hostname";
- description
- "List of static host entries";
-
- leaf hostname {
- type leafref {
- path "../config/hostname";
- }
- description
- "Reference to the hostname list key";
- }
-
- container config {
- description
- "Configuration data for static host entries";
-
- uses system-dns-static-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for static host entries";
-
- uses system-dns-static-config;
- uses system-dns-static-state;
- }
- }
- }
- }
-
- grouping system-dns-servers-state {
- description
- "Operational state data for DNS resolvers";
-
- }
-
- grouping system-dns-servers-top {
- description
- "Top-level grouping for the list of DNS resolvers.";
-
- container servers {
- description
- "Enclosing container for DNS resolver list";
-
- list server {
- key "address";
- ordered-by user;
- description
- "List of the DNS servers that the resolver should query.
-
- When the resolver is invoked by a calling application, it
- sends the query to the first name server in this list. If
- no response has been received within 'timeout' seconds,
- the resolver continues with the next server in the list.
- If no response is received from any server, the resolver
- continues with the first server again. When the resolver
- has traversed the list 'attempts' times without receiving
- any response, it gives up and returns an error to the
- calling application.
-
- Implementations MAY limit the number of entries in this
- list.";
-
- leaf address {
- type leafref {
- path "../config/address";
- }
- description
- "References the configured address of the DNS server";
- }
-
- container config {
- description
- "Configuration data for each DNS resolver";
-
- uses system-dns-servers-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for each DNS resolver";
-
- uses system-dns-servers-config;
- uses system-dns-servers-state;
- }
-
- }
- }
- }
-
- grouping system-dns-top {
- description
- "Top-level grouping for DNS / resolver config and operational
- state data";
-
- container dns {
- description
- "Enclosing container for DNS resolver data";
-
- container config {
- description
- "Configuration data for the DNS resolver";
-
- uses system-dns-config;
-
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the DNS resolver";
-
- uses system-dns-config;
- uses system-dns-state;
-
- }
-
- uses system-dns-servers-top;
- uses system-dns-static-top;
- }
- }
-
- grouping system-ntp-server-config {
- description
- "Configuration data for NTP servers";
-
- leaf address {
- type oc-inet:host;
- description
- "The address or hostname of the NTP server.";
- }
-
- leaf port {
- type oc-inet:port-number;
- default 123;
- description
- "The port number of the NTP server.";
- }
-
- leaf version {
- type uint8 {
- range 1..4;
- }
- default 4;
- description
- "Version number to put in outgoing NTP packets";
- }
-
- leaf association-type {
- type enumeration {
- enum SERVER {
- description
- "Use client association mode. This device
- will not provide synchronization to the
- configured NTP server.";
- }
- enum PEER {
- description
- "Use symmetric active association mode.
- This device may provide synchronization
- to the configured NTP server.";
- }
- enum POOL {
- description
- "Use client association mode with one or
- more of the NTP servers found by DNS
- resolution of the domain name given by
- the 'address' leaf. This device will not
- provide synchronization to the servers.";
- }
- }
- default SERVER;
- description
- "The desired association type for this NTP server.";
- }
- leaf iburst {
- type boolean;
- default false;
- description
- "Indicates whether this server should enable burst
- synchronization or not.";
- }
- leaf prefer {
- type boolean;
- default false;
- description
- "Indicates whether this server should be preferred
- or not.";
- }
- }
-
- grouping system-ntp-server-state {
- description
- "Operational state data for NTP servers";
-
- leaf stratum {
- type uint8;
- description
- "Indicates the level of the server in the NTP hierarchy. As
- stratum number increases, the accuracy is degraded. Primary
- servers are stratum while a maximum value of 16 indicates
- unsynchronized. The values have the following specific
- semantics:
-
- | 0 | unspecified or invalid
- | 1 | primary server (e.g., equipped with a GPS receiver)
- | 2-15 | secondary server (via NTP)
- | 16 | unsynchronized
- | 17-255 | reserved";
- reference
- "RFC 5905 - Network Time Protocol Version 4: Protocol and
- Algorithms Specification";
- }
-
- leaf root-delay {
- type uint32;
- // TODO: reconsider units for these values -- the spec defines
- // rootdelay and rootdisperson as 2 16-bit integers for seconds
- // and fractional seconds, respectively. This gives a
- // precision of ~15 us (2^-16). Using milliseconds here based
- // on what implementations typically provide and likely lack
- // of utility for less than millisecond precision with NTP
- // time sync.
- units "milliseconds";
- description
- "The round-trip delay to the server, in milliseconds.";
- reference
- "RFC 5905 - Network Time Protocol Version 4: Protocol and
- Algorithms Specification";
- }
-
- leaf root-dispersion {
- type uint64;
- units "milliseconds";
- description
- "Dispersion (epsilon) represents the maximum error inherent
- in the measurement";
- reference
- "RFC 5905 - Network Time Protocol Version 4: Protocol and
- Algorithms Specification";
- }
-
- leaf offset {
- type uint64;
- units "milliseconds";
- description
- "Estimate of the current time offset from the peer. This is
- the time difference between the local and reference clock.";
- }
-
- leaf poll-interval {
- type uint32;
- units "seconds";
- description
- "Polling interval of the peer";
- }
- }
-
- grouping system-ntp-server-top {
- description
- "Top-level grouping for the list of NTP servers";
-
- container servers {
- description
- "Enclosing container for the list of NTP servers";
-
- list server {
- key "address";
- description
- "List of NTP servers to use for system clock
- synchronization. If '/system/ntp/enabled'
- is 'true', then the system will attempt to
- contact and utilize the specified NTP servers.";
-
- leaf address {
- type leafref {
- path "../config/address";
- }
- description
- "References the configured address or hostname of the
- NTP server.";
- }
-
- container config {
- description
- "Configuration data for an NTP server.";
-
- uses system-ntp-server-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for an NTP server.";
-
- uses system-ntp-server-config;
- uses system-ntp-server-state;
- }
-
- }
- }
- }
-
- grouping system-ntp-auth-keys-config {
- description
- "Configuration data ";
-
- leaf key-id {
- type uint16;
- description
- "Integer identifier used by the client and server to
- designate a secret key. The client and server must use
- the same key id.";
- }
-
- leaf key-type {
- type identityref {
- base NTP_AUTH_TYPE;
- }
- description
- "Encryption type used for the NTP authentication key";
- }
-
- leaf key-value {
- type string;
- description
- "NTP authentication key value";
- }
- }
-
- grouping system-ntp-auth-keys-state {
- description
- "Operational state data for NTP auth key data";
- }
-
- grouping system-ntp-auth-keys-top {
- description
- "Top-level grouping for NTP auth key data";
-
- container ntp-keys {
- description
- "Enclosing container for list of NTP authentication keys";
-
- list ntp-key {
- key "key-id";
- description
- "List of NTP authentication keys";
-
- leaf key-id {
- type leafref {
- path "../config/key-id";
- }
- description
- "Reference to auth key-id list key";
- }
-
- container config {
- description
- "Configuration data for NTP auth keys";
-
- uses system-ntp-auth-keys-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for NTP auth keys";
-
- uses system-ntp-auth-keys-config;
- uses system-ntp-auth-keys-state;
- }
- }
- }
- }
-
- grouping system-ntp-config {
- description
- "Configuration data for system-wide NTP operation.";
-
- leaf enabled {
- type boolean;
- default false;
- description
- "Enables the NTP protocol and indicates that the system should
- attempt to synchronize the system clock with an NTP server
- from the servers defined in the 'ntp/server' list.";
- }
-
- leaf ntp-source-address {
- type oc-inet:ip-address;
- description
- "Source address to use on outgoing NTP packets";
- }
-
- leaf enable-ntp-auth {
- type boolean;
- default false;
- description
- "Enable or disable NTP authentication -- when enabled, the
- system will only use packets containing a trusted
- authentication key to synchronize the time.";
- }
- }
-
- grouping system-ntp-state {
- description
- "Operational state data for system-wide NTP operation.";
-
- leaf auth-mismatch {
- type oc-yang:counter64;
- description
- "Count of the number of NTP packets received that were not
- processed due to authentication mismatch.";
- }
- }
-
- grouping system-ntp-top {
- description
- "Top-level grouping for configuration and state data for NTP";
-
- container ntp {
- description
- "Top-level container for NTP configuration and state";
-
- container config {
- description
- "Configuration data for NTP client.";
-
- uses system-ntp-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for NTP services.";
-
- uses system-ntp-config;
- uses system-ntp-state;
- }
- uses system-ntp-auth-keys-top;
- uses system-ntp-server-top;
- }
- }
-
- grouping system-memory-config {
- description
- "Configuration data for system memory";
- }
-
- grouping system-memory-state {
- description
- "Operational state data for system memory";
-
- leaf physical {
- type uint64;
- units bytes;
- // TODO: consider making units in megabytes
- description
- "Reports the total physical memory available on the
- system.";
- }
-
- leaf reserved {
- type uint64;
- units bytes;
- description
- "Memory reserved for system use";
- }
- }
-
- grouping system-memory-top {
- description
- "Top-level grouping for system memory data definitions";
-
- container memory {
- description
- "Top-level container for system memory data";
-
- container config {
- description
- "Configuration data for system memory";
-
- uses system-memory-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for system memory";
-
- uses system-memory-config;
- uses system-memory-state;
- }
- }
- }
-
- grouping system-cpu-state {
- description
- "Operational state data for the system CPU(s)";
-
- leaf index {
- type union {
- type enumeration {
- enum ALL {
- description
- "Index value indicating all CPUs in the system";
- }
- }
- type uint32;
- }
- description
- "The CPU index for each processor core on the system. On a
- single-core system, the index should be zero. The ALL
- index signifies an aggregation of the CPU utilization
- statistics over all cores in the system.";
- }
-
- container total {
- description
- "Total CPU utilization.";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
-
- container user {
- description
- "Percentage of CPU time spent running in user space.";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
-
- container kernel {
- description
- "Percentage of CPU time spent running in kernel space.";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
-
- container nice {
- description
- "Percentage of CPU time spent running low-priority (niced)
- user processes.";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
-
- container idle {
- description
- "Percentage of CPU time spent idle.";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
-
- container wait {
- description
- "Percentage of CPU time spent waiting for I/O.";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
-
- container hardware-interrupt {
- description
- "Percentage of CPU time spent servicing hardware interrupts.";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
-
- container software-interrupt {
- description
- "Percentage of CPU time spent servicing software interrupts";
-
- uses oc-types:avg-min-max-instant-stats-pct;
- }
- }
-
- grouping system-cpu-top {
- description
- "Top-level grouping for system CPU data";
-
- container cpus {
- config false;
- description
- "Enclosing container for the list of CPU cores on the
- system";
-
- list cpu {
- key "index";
- description
- "List of CPU cores on the system (including logical CPUs
- on hyperthreaded systems), keyed by either a numerical
- index, or the ALL value for an entry representing the
- aggregation across all CPUs.";
-
- leaf index {
- type leafref {
- path "../state/index";
- }
- description
- "Reference to list key";
- }
-
- container state {
-
- description
- "Operational state data for the system CPU(s)";
-
- uses system-cpu-state;
- }
- }
- }
- }
-
- grouping system-top {
- description
- "Top level system data containers";
-
- container system {
- description
- "Enclosing container for system-related configuration and
- operational state data";
-
- container config {
- description "Global configuration data for the system";
-
- uses system-global-config;
-
- }
-
- container state {
- config false;
- description "Global operational state data for the system";
-
- uses system-global-config;
- uses system-global-state;
- }
-
- uses system-clock-top;
- uses system-dns-top;
- uses system-ntp-top;
- uses oc-sys-mgmt:system-grpc-server-top;
- uses oc-sys-term:system-ssh-server-top;
- uses oc-sys-term:system-telnet-server-top;
- uses oc-log:logging-top;
- uses oc-aaa:aaa-top;
- uses system-memory-top;
- uses system-cpu-top;
- uses oc-proc:procmon-processes-top;
- uses oc-alarms:alarms-top;
- }
- }
-
- // data definition statements
-
- uses system-top;
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-telemetry-types.yang b/src/plugins/yang/openconfig/openconfig-telemetry-types.yang
deleted file mode 100644
index 375fed1..0000000
--- a/src/plugins/yang/openconfig/openconfig-telemetry-types.yang
+++ /dev/null
@@ -1,115 +0,0 @@
-module openconfig-telemetry-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/telemetry-types";
-
- prefix "oc-telemetry-types";
-
- import openconfig-extensions { prefix oc-ext; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines type and identities used by the OpenConfig
- telemetry model.";
-
- oc-ext:openconfig-version "0.4.1";
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes";
- reference "0.4.1";
- }
-
- revision "2017-02-20" {
- description
- "Fixes for YANG 1.0 compliance, add types module";
- reference "0.4.0";
- }
-
- revision "2016-04-05" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
-
-
- // identity statements
-
- identity DATA_ENCODING_METHOD {
- description
- "Base identity for supported encoding for configuration and
- operational state data";
- }
-
- identity ENC_XML {
- base DATA_ENCODING_METHOD;
- description
- "XML encoding";
- }
-
- identity ENC_JSON_IETF {
- base DATA_ENCODING_METHOD;
- description
- "JSON encoded based on IETF draft standard";
- reference
- "draft-ietf-netmod-yang-json";
- }
-
- identity ENC_PROTO3 {
- base DATA_ENCODING_METHOD;
- description
- "Protocol buffers v3";
- reference
- "https://developers.google.com/protocol-buffers/docs/overview";
- }
-
- identity STREAM_PROTOCOL {
- description "Base identity for a telemetry stream protocol";
- }
-
- identity STREAM_SSH {
- base "STREAM_PROTOCOL";
- description
- "Telemetry stream is carried over a SSH connection";
- }
-
- identity STREAM_GRPC {
- base "STREAM_PROTOCOL";
- description
- "Telemetry stream is carried over via the gRPC framework";
- }
-
- identity STREAM_JSON_RPC {
- base "STREAM_PROTOCOL";
- description
- "Telemetry stream is carried via the JSON-RPC framework";
- }
-
- identity STREAM_THRIFT_RPC {
- base "STREAM_PROTOCOL";
- description
- "Telemetry stream is carried via the Apache Thrift framework";
- }
-
- identity STREAM_WEBSOCKET_RPC {
- base "STREAM_PROTOCOL";
- description
- "Telemetry stream is carried by the WebSocket framework";
- }
-
-
- // typedef statements
-
-
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-telemetry.yang b/src/plugins/yang/openconfig/openconfig-telemetry.yang
deleted file mode 100644
index de26ec3..0000000
--- a/src/plugins/yang/openconfig/openconfig-telemetry.yang
+++ /dev/null
@@ -1,771 +0,0 @@
-module openconfig-telemetry {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/telemetry";
-
- prefix "oc-telemetry";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-telemetry-types { prefix oc-telemetry-types; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group www.openconfig.net";
-
- description
- "Data model which creates the configuration for the telemetry
- systems and functions on the device.";
-
- oc-ext:openconfig-version "0.5.0";
-
- revision "2018-08-17" {
- description
- "Update telemetry model to comply with the OpenConfig
- style for lists and their containers. Remove subscription
- exclusions.";
- reference "0.5.0";
- }
-
- revision "2017-08-24" {
- description
- "Minor formatting fixes";
- reference "0.4.1";
- }
-
- revision "2017-02-20" {
- description
- "Fixes for YANG 1.0 compliance, add types module";
- reference "0.4.0";
- }
-
- revision "2016-04-05" {
- description
- "OpenConfig public release";
- reference "0.2.0";
- }
-
- grouping telemetry-top {
- description
- "Top level grouping for telemetry configuration and operational
- state data";
-
- container telemetry-system {
- description
- "Top level configuration and state for the
- device's telemetry system.";
-
- container sensor-groups {
- description
- "Top level container for sensor-groups.";
-
- list sensor-group {
- key "sensor-group-id";
- description
- "List of telemetry sensory groups on the local
- system, where a sensor grouping represents a resuable
- grouping of multiple paths and exclude filters.";
-
- leaf sensor-group-id {
- type leafref {
- path "../config/sensor-group-id";
- }
- description
- "Reference to the name or identifier of the
- sensor grouping";
- }
-
- container config {
- description
- "Configuration parameters relating to the
- telemetry sensor grouping";
- uses telemetry-sensor-group-config;
- }
-
- container state {
- config false;
- description
- "State information relating to the telemetry
- sensor group";
- uses telemetry-sensor-group-config;
- }
-
- container sensor-paths {
- description
- "Top level container to hold a set of sensor
- paths grouped together";
-
- list sensor-path {
- key "path";
- description
- "List of paths in the model which together
- comprise a sensor grouping. Filters for each path
- to exclude items are also provided.";
-
- leaf path {
- type leafref {
- path "../config/path";
- }
- description
- "Reference to the path of interest";
- }
-
- container config {
- description
- "Configuration parameters to configure a set
- of data model paths as a sensor grouping";
- uses telemetry-sensor-path-config;
- }
-
- container state {
- config false;
- description
- "Configuration parameters to configure a set
- of data model paths as a sensor grouping";
- uses telemetry-sensor-path-config;
- }
- }
- }
- }
- }
-
- container destination-groups {
- description
- "Top level container for destination group configuration
- and state.";
-
- list destination-group {
- key "group-id";
- description
- "List of destination-groups. Destination groups allow the
- reuse of common telemetry destinations across the
- telemetry configuration. An operator references a
- set of destinations via the configurable
- destination-group-identifier.
-
- A destination group may contain one or more telemetry
- destinations";
-
- leaf group-id {
- type leafref {
- path "../config/group-id";
- }
- description
- "Unique identifier for the destination group";
- }
-
- container config {
- description
- "Top level config container for destination groups";
- leaf group-id {
- type string;
- description
- "Unique identifier for the destination group";
- }
- }
-
- container state {
- config false;
- description
- "Top level state container for destination groups";
-
- leaf group-id {
- type string;
- description
- "Unique identifier for destination group";
- }
- }
-
- container destinations {
- description
- "The destination container lists the destination
- information such as IP address and port of the
- telemetry messages from the network element.";
- list destination {
- key "destination-address destination-port";
- description
- "List of telemetry stream destinations";
-
- leaf destination-address {
- type leafref {
- path "../config/destination-address";
- }
- description
- "Reference to the destination address of the
- telemetry stream";
- }
-
- leaf destination-port {
- type leafref {
- path "../config/destination-port";
- }
- description
- "Reference to the port number of the stream
- destination";
- }
-
- container config {
- description
- "Configuration parameters relating to
- telemetry destinations";
- uses telemetry-stream-destination-config;
- }
-
- container state {
- config false;
- description
- "State information associated with
- telemetry destinations";
- uses telemetry-stream-destination-config;
- }
- }
- }
- }
- }
-
- container subscriptions {
- description
- "This container holds information for both persistent
- and dynamic telemetry subscriptions.";
-
- container persistent-subscriptions {
- description
- "This container holds information relating to persistent
- telemetry subscriptions. A persistent telemetry
- subscription is configued locally on the device through
- configuration, and is persistent across device restarts or
- other redundancy changes.";
-
- list persistent-subscription {
- key "name";
-
- description
- "List of telemetry subscriptions. A telemetry
- subscription consists of a set of collection
- destinations, stream attributes, and associated paths to
- state information in the model (sensor data)";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the identifier of the subscription
- itself. The id will be the handle to refer to the
- subscription once created";
- }
-
- container config {
- description
- "Config parameters relating to the telemetry
- subscriptions on the local device";
-
- uses telemetry-subscription-name-config;
- uses telemetry-local-source-address-config;
- uses telemetry-qos-marking-config;
- uses telemetry-stream-protocol-config;
- uses telemetry-stream-encoding-config;
- }
-
- container state {
- config false;
- description
- "State parameters relating to the telemetry
- subscriptions on the local device";
-
- uses telemetry-subscription-name-config;
- uses telemetry-subscription-config;
- uses telemetry-subscription-state;
- uses telemetry-local-source-address-config;
- uses telemetry-qos-marking-config;
- uses telemetry-stream-protocol-config;
- uses telemetry-stream-encoding-config;
- }
-
- container sensor-profiles {
- description
- "A sensor profile is a set of sensor groups or
- individual sensor paths which are associated with a
- telemetry subscription. This is the source of the
- telemetry data for the subscription to send to the
- defined collectors.";
- list sensor-profile {
- key "sensor-group";
- description
- "List of telemetry sensor groups used
- in the subscription";
-
- leaf sensor-group {
- type leafref {
- path "../config/sensor-group";
- }
- description
- "Reference to the telemetry sensor group name";
- }
-
- container config {
- description
- "Configuration parameters related to the sensor
- profile for a subscription";
- uses telemetry-sensor-profile-config;
- }
-
- container state {
- config false;
- description
- "State information relating to the sensor profile
- for a subscription";
- uses telemetry-sensor-profile-config;
- }
- }
- }
-
- container destination-groups {
- description
- "A subscription may specify destination addresses.
- If the subscription supplies destination addresses,
- the network element will be the initiator of the
- telemetry streaming, sending it to the destination(s)
- specified.
-
- If the destination set is omitted, the subscription
- preconfigures certain elements such as paths and
- sample intervals under a specified subscription ID.
- In this case, the network element will NOT initiate an
- outbound connection for telemetry, but will wait for
- an inbound connection from a network management
- system.
-
- It is expected that the network management system
- connecting to the network element will reference
- the preconfigured subscription ID when initiating
- a subscription.";
-
- list destination-group {
- key "group-id";
- description
- "Identifier of the previously defined destination
- group";
-
- leaf group-id {
- type leafref {
- path "../config/group-id";
- }
- description
- "The destination group id references a configured
- group of destinations for the telemetry stream.";
- }
-
- container config {
- description
- "Configuration parameters related to telemetry
- destinations.";
-
- leaf group-id {
- type leafref {
- path "../../../../../../../destination-groups"
- + "/destination-group/group-id";
- }
- description
- "The destination group id references a reusable
- group of destination addresses and ports for
- the telemetry stream.";
- }
- }
-
- container state {
- config false;
- description
- "State information related to telemetry
- destinations";
-
- leaf group-id {
- type leafref {
- path "../../../../../../../destination-groups"
- + "/destination-group/group-id";
- }
- description
- "The destination group id references a reusable
- group of destination addresses and ports for
- the telemetry stream.";
- }
- }
- }
- }
- }
- }
-
- container dynamic-subscriptions {
- description
- "This container holds information relating to dynamic
- telemetry subscriptions. A dynamic subscription is
- typically configured through an RPC channel, and does not
- persist across device restarts, or if the RPC channel is
- reset or otherwise torn down.";
-
-
- list dynamic-subscription {
- key "id";
-
- config false;
- description
- "List representation of telemetry subscriptions that
- are configured via an inline RPC, otherwise known
- as dynamic telemetry subscriptions.";
-
- leaf id {
- type leafref {
- path "../state/id";
- }
-
- description
- "Reference to the identifier of the subscription
- itself. The id will be the handle to refer to the
- subscription once created";
- }
-
- container state {
- config false;
- description
- "State information relating to dynamic telemetry
- subscriptions.";
-
- uses telemetry-subscription-config;
- uses telemetry-stream-destination-config;
- uses telemetry-stream-frequency-config;
- uses telemetry-heartbeat-config;
- uses telemetry-suppress-redundant-config;
- uses telemetry-qos-marking-config;
- uses telemetry-stream-protocol-config;
- uses telemetry-stream-encoding-config;
- }
-
- container sensor-paths {
- description
- "Top level container to hold a set of sensor
- paths grouped together";
-
- list sensor-path {
- key "path";
- description
- "List of paths in the model which together
- comprise a sensor grouping. Filters for each path
- to exclude items are also provided.";
-
- leaf path {
- type leafref {
- path "../state/path";
- }
- description
- "Reference to the path of interest";
- }
-
- container state {
- config false;
- description
- "State information for a dynamic subscription's
- paths of interest";
- uses telemetry-sensor-path-config;
- }
- }
- }
- }
- }
- }
- }
- }
-
- // identity statements
-
- // typedef statements
-
- // grouping statements
-
- grouping telemetry-sensor-path-config {
- description
- "Configuration parameters relating to the
- grouping of data model paths comprising a
- sensor grouping";
- leaf path {
- type string;
- description
- "Path to a section of operational state of interest
- (the sensor).";
- }
-
- leaf exclude-filter {
- type string;
- description
- "Filter to exclude certain values out of the state
- values";
- //May not be necessary. Could remove.
- }
- }
-
- grouping telemetry-heartbeat-config {
- description
- "Configuration parameters relating to the
- heartbeat of the telemetry subscription";
- leaf heartbeat-interval {
- type uint64;
- description
- "Maximum time interval in seconds that may pass
- between updates from a device to a telemetry collector.
- If this interval expires, but there is no updated data to
- send (such as if suppress_updates has been configured), the
- device must send a telemetry message to the collector.";
- }
- }
-
- grouping telemetry-suppress-redundant-config {
- description
- "Configuration parameters relating to suppression of
- redundant upstream updates";
- leaf suppress-redundant {
- type boolean;
- description
- "Boolean flag to control suppression of redundant
- telemetry updates to the collector platform. If this flag is
- set to TRUE, then the collector will only send an update at
- the configured interval if a subscribed data value has
- changed. Otherwise, the device will not send an update to
- the collector until expiration of the heartbeat interval.";
- }
- }
-
- grouping telemetry-sensor-profile-config {
- description
- "Configuration parameters relating to the sensor groups
- used in the sensor profile";
- leaf sensor-group {
- type leafref {
- path "../../../../../../../sensor-groups/sensor-group"
- + "/config/sensor-group-id";
- }
- description
- "Reference to the sensor group which is used in the profile";
- }
- uses telemetry-stream-subscription-config;
- }
-
- grouping telemetry-stream-subscription-config {
- description
- "Configuration used when the sensor is a stream based sensor.";
-
- uses telemetry-stream-frequency-config;
- uses telemetry-heartbeat-config;
- uses telemetry-suppress-redundant-config;
-
- }
-
- grouping telemetry-qos-marking-config {
- description
- "Config parameters relating to the quality of service
- marking on device generated telemetry packets";
-
- leaf originated-qos-marking {
- type oc-inet:dscp;
- description
- "DSCP marking of packets generated by the telemetry
- subsystem on the network device.";
- }
- }
-
-
- grouping telemetry-sensor-group-config {
- description
- "Config parameters related to the sensor groups
- on the device";
- leaf sensor-group-id {
- type string;
- description
- "Name or identifier for the sensor group itself.
- Will be referenced by other configuration specifying a
- sensor group";
- }
- }
-
- grouping telemetry-subscription-config {
- description
- "Configuration parameters relating to the telemetry
- subscription";
-
- leaf id {
- type uint64;
- description
- "System generated identifer of the telemetry
- subscription.";
- }
- }
-
- grouping telemetry-subscription-name-config {
- description
- "Configuration parameters relating to the configured
- name of the telemetry subscription. The name is a user
- configured string value which uniquely identifies the
- subscription in the configuration database.";
-
- leaf name {
- type string;
- description
- "User configured identifier of the telemetry
- subscription. This value is used primarily for
- subscriptions configured locally on the network
- element.";
- }
- }
-
- grouping telemetry-subscription-state {
- description
- "State values for the telemetry subscription";
- //TODO add values
- }
-
- grouping telemetry-stream-protocol-config {
- description
- "Configuration parameters relating to the
- transport protocol carrying telemetry
- data.";
-
- leaf protocol {
- type identityref {
- base oc-telemetry-types:STREAM_PROTOCOL;
- }
- description
- "Selection of the transport protocol for the telemetry
- stream.";
- }
- }
-
- grouping telemetry-stream-encoding-config {
- description
- "Configuration parameters relating to the
- encoding of telemetry data to and from the
- network element. The encoding method controls
- specifically the wire format of the telemetry
- data, and also controls which RPC framework
- may be in use to exchange telemetry data.";
-
- leaf encoding {
- type identityref {
- base oc-telemetry-types:DATA_ENCODING_METHOD;
- }
- description
- "Selection of the specific encoding or RPC framework
- for telemetry messages to and from the network element.";
- }
- }
-
- grouping telemetry-stream-destination-config {
- description
- "Configuration parameters for the stream destinations";
- leaf destination-address {
- type oc-inet:ip-address;
- description
- "IP address of the telemetry stream destination";
- }
- leaf destination-port {
- type uint16;
- description
- "Protocol (udp or tcp) port number for the telemetry
- stream destination";
- }
- }
-
- grouping telemetry-stream-frequency-config {
- description
- "Config parameters for the frequency of updates to
- the collector";
- leaf sample-interval {
- type uint64;
- description
- "Time in milliseconds between the device's sample of a
- telemetry data source. For example, setting this to 100
- would require the local device to collect the telemetry
- data every 100 milliseconds. There can be latency or jitter
- in transmitting the data, but the sample must occur at
- the specified interval.
-
- The timestamp must reflect the actual time when the data
- was sampled, not simply the previous sample timestamp +
- sample-interval.
-
- If sample-interval is set to 0, the telemetry sensor
- becomes event based. The sensor must then emit data upon
- every change of the underlying data source.";
- }
- }
-
- grouping telemetry-sensor-specification {
- description
- "Config related to creating telemetry sensor groups. A sensor
- group is a related set of sensor paths and/or filters to
- exclude items. A group is assigned a reusable identifer, so
- it can be used in multiple telemetry subscriptions.";
- list telemetry-sensor-group {
- key "telemetry-sensor-group-id";
- description
- "List of telemetry sensor groups";
-
- leaf telemetry-sensor-group-id {
- type string;
- description
- "The sensor group identifer is a reusable handle which
- identifies a single sensor group. It is referenced from
- the subscription configuration.";
- }
- uses telemetry-sensor-paths;
- }
- }
-
- grouping telemetry-sensor-paths {
- description
- "This grouping contains these paths to leaves or containers
- in the data model which are the sources of telemetry
- information.";
-
- list telemetry-sensor-paths {
- key "telemetry-sensor-path";
- description
- "A list of sensor paths and exclude filters which comprise
- a sensor grouping";
-
- leaf telemetry-sensor-path {
- type string;
- description
- "The sensor path is a path to a portion of operational
- state of interest in the data model";
- }
- }
- }
-
-
- grouping telemetry-local-source-address-config {
- description
- "Config relating to the local source address for telemetry
- messages";
- // TODO: Make this a reference to an interface.
- leaf local-source-address {
- type oc-inet:ip-address;
- description
- "The IP address which will be the source of packets from
- the device to a telemetry collector destination.";
- }
- }
-
- // data definition statements
-
- uses telemetry-top;
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-terminal-device.yang b/src/plugins/yang/openconfig/openconfig-terminal-device.yang
deleted file mode 100644
index 27de12d..0000000
--- a/src/plugins/yang/openconfig/openconfig-terminal-device.yang
+++ /dev/null
@@ -1,1370 +0,0 @@
-module openconfig-terminal-device {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/terminal-device";
-
- prefix "oc-opt-term";
-
- import openconfig-types { prefix oc-types; }
- import openconfig-transport-types { prefix oc-opt-types; }
- import openconfig-if-ethernet { prefix oc-eth; }
- import openconfig-platform { prefix oc-platform; }
- import openconfig-platform-transceiver { prefix oc-transceiver; }
- import openconfig-lldp { prefix oc-lldp; }
- import openconfig-extensions { prefix oc-ext; }
- import ietf-yang-types { prefix yang; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-yang-types { prefix oc-yang; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module describes a terminal optics device model for
- managing the terminal systems (client and line side) in a
- DWDM transport network.
-
- Elements of the model:
-
- physical port: corresponds to a physical, pluggable client
- port on the terminal device. Examples includes 10G, 40G, 100G
- (e.g., 10x10G, 4x25G or 1x100G) and 400G/1T in the future.
- Physical client ports will have associated operational state or
- PMs.
-
- physical channel: a physical lane or channel in the
- physical client port. Each physical client port has 1 or more
- channels. An example is 100GBASE-LR4 client physical port having
- 4x25G channels. Channels have their own optical PMs and can be
- monitored independently within a client physical port (e.g.,
- channel power). Physical client channels are defined in the
- model as part of a physical client port, and are modeled
- primarily for reading their PMs.
-
- logical channel: a logical grouping of logical grooming elements
- that may be assigned to subsequent grooming stages for
- multiplexing / de-multiplexing, or to an optical channel for
- line side transmission. The logical channels can represent, for
- example, an ODU/OTU logical packing of the client
- data onto the line side. Tributaries are similarly logical
- groupings of demand that can be represented in this structure and
- assigned to an optical channel. Note that different types of
- logical channels may be present, each with their corresponding
- PMs.
-
- optical channel: corresponds to an optical carrier and is
- assigned a wavelength/frequency. Optical channels have PMs
- such as power, BER, and operational mode.
-
- Directionality:
-
- To maintain simplicity in the model, the configuration is
- described from client-to-line direction. The assumption is that
- equivalent reverse configuration is implicit, resulting in
- the same line-to-client configuration.
-
- Physical layout:
-
- The model does not assume a particular physical layout of client
- and line ports on the terminal device (e.g., such as number of
- ports per linecard, separate linecards for client and line ports,
- etc.).";
-
- oc-ext:openconfig-version "1.4.0";
-
- revision "2018-08-28" {
- description
- "Adds terminal device related Ethernet counters";
- reference "1.4.0";
- }
-
- revision "2018-07-30" {
- description
- "Adds lldp snooping config leaf and augmented it to oc-lldp";
- reference "1.3.0";
- }
-
- revision "2018-07-26" {
- description
- "Adds OTN protocol counter stats of errored-blocks and
- fec-uncorrectable-blocks, adds ethernet-config-ext grouping
- and uses it to augment oc-eth";
- reference "1.2.0";
- }
-
- revision "2018-07-17" {
- description
- "Adds testing enum to link-state";
- reference "1.1.0";
- }
-
- revision "2017-07-08" {
- description
- "Adds test-signal";
- reference "1.0.0";
- }
-
- revision "2016-12-22" {
- description
- "Fixes and additions to terminal optics model";
- reference "0.4.0";
- }
-
-
- grouping terminal-input-optical-power {
- description
- "Reusable leaves related to input optical power";
-
- leaf input-power {
- type decimal64 {
- fraction-digits 2;
- }
- units dBm;
- description
- "The input optical power of this port in units of 0.01dBm.
- If the port is an aggregate of multiple physical channels,
- this attribute is the total power or sum of all channels.";
- }
- }
-
- grouping terminal-ethernet-protocol-config {
- description
- "Configuration data for logical channels with Ethernet
- framing";
-
- //TODO:currently a empty container
- }
-
- grouping terminal-ethernet-protocol-state {
- description
- "Ethernet-specific counters when logical channel
- is using Ethernet protocol framing, e.g., 10GE, 100GE";
-
- uses oc-eth:ethernet-interface-state-counters;
- uses terminal-ethernet-protocol-state-counters;
- }
-
- grouping terminal-ethernet-protocol-state-counters {
- description
- "Ethernet-specific counters for terminal devices when
- logical channel is using Ethernet protocol framing,
- e.g., 10GE, 100GE";
-
- // ingress counters
-
- leaf in-pcs-bip-errors {
- type oc-yang:counter64;
- description
- "The number of received bit interleaved parity (BIP) errors
- at the physical coding sublayer (PCS). If the interface
- consists of multiple lanes, this will be the sum of all
- errors on the lane";
- }
-
- leaf in-pcs-errored-seconds {
- type oc-yang:counter64;
- description
- "The number of seconds that physical coding sublayer (PCS)
- errors have crossed a sytem defined threshold indicating the
- link is erroring";
- }
-
- leaf in-pcs-severely-errored-seconds {
- type oc-yang:counter64;
- description
- "The number of seconds that physical coding sublayer (PCS)
- errors have crossed a system defined threshold indicating the
- link is severely erroring";
- }
-
- leaf in-pcs-unavailable-seconds {
- type oc-yang:counter64;
- description
- "The number of seconds that physical coding sublayer (PCS)
- errors have crossed a system defined threshold indicating the
- link is unavailable";
- }
-
- // egress counters
-
- leaf out-pcs-bip-errors {
- type oc-yang:counter64;
- description
- "The number of transmitted bit interleaved parity (BIP) errors
- at the physical coding sublayer (PCS). If the interface
- consists of multiple lanes, this will be the sum of all
- errors on the lane";
- }
-
- leaf out-crc-errors {
- type oc-yang:counter64;
- description
- "Number of FCS/CRC error check failures sent on the interface";
- }
-
- leaf out-block-errors {
- type oc-yang:counter64;
- description
- "The number of transmitted errored blocks. Error detection
- codes are capable of detecting whether one or more errors have
- occurred in a given sequence of bits - the block. It is
- normally not possible to determine the exact number of errored
- bits within the block";
- }
- }
-
- grouping terminal-ethernet-protocol-top {
- description
- "Top-level grouping for data related to Ethernet protocol
- framing on logical channels";
-
- container ethernet {
- description
- "Top level container for data related to Ethernet framing
- for the logical channel";
-
- container config {
- description
- "Configuration data for Ethernet protocol framing on
- logical channels";
-
- uses terminal-ethernet-protocol-config;
- }
-
- container state {
- config false;
- description
- "Operational state data for Ethernet protocol framing
- on logical channels";
-
- uses terminal-ethernet-protocol-state;
- }
- }
- }
-
- grouping terminal-otn-protocol-config {
- description
- "OTU configuration when logical channel
- framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
- leaf tti-msg-transmit {
- type string;
- description
- "Trail trace identifier (TTI) message transmitted";
- }
-
- leaf tti-msg-expected {
- type string;
- description
- "Trail trace identifier (TTI) message expected";
- }
-
- leaf tti-msg-auto {
- type boolean;
- description
- "Trail trace identifier (TTI) transmit message automatically
- created. If true, then setting a custom transmit message
- would be invalid.";
- }
- }
-
- grouping terminal-otn-protocol-counter-stats {
- description
- "Counter based statistics containers for logical channels
- using OTN framing";
-
- leaf errored-seconds {
- type yang:counter64;
- description
- "The number of seconds that at least one errored blocks
- occurs, at least one code violation occurs, loss of sync is
- detected or loss of signal is detected";
- }
-
- leaf severely-errored-seconds {
- type yang:counter64;
- description
- "The number of seconds that loss of frame is detected OR
- the number of errored blocks, code violations, loss of sync
- or loss of signal is detected exceeds a predefined
- threshold";
- }
-
- leaf unavailable-seconds {
- type yang:counter64;
- description
- "The number of seconds during which the link is unavailable";
- }
-
- leaf code-violations {
- type yang:counter64;
- description
- "For ethernet or fiberchannel links, the number of 8b/10b
- coding violations. For SONET/SDH, the number of BIP (bit
- interleaved parity) errors";
- }
-
- leaf errored-blocks {
- type yang:counter64;
- description
- "The number of errored blocks. Error detection codes are
- capable to detect whether one or more errors have occurred
- in a given sequence of bits - the block. It is normally not
- possible to determine the exact number of errored bits within
- the block.";
- reference "ITU-T Rec. G.826";
- }
-
- leaf fec-uncorrectable-blocks {
- type yang:counter64;
- description
- "The number of blocks that were uncorrectable by the FEC";
- }
-
- leaf fec-uncorrectable-words {
- type yang:counter64;
- description
- "The number of words that were uncorrectable by the FEC";
- }
-
- leaf fec-corrected-bytes {
- type yang:counter64;
- description
- "The number of bytes that were corrected by the FEC";
- }
-
- leaf fec-corrected-bits {
- type yang:counter64;
- description
- "The number of bits that were corrected by the FEC";
- }
-
- leaf background-block-errors {
- type yang:counter64;
- description
- "The number of background block errors";
- }
- }
-
- grouping terminal-otn-protocol-multi-stats {
- description
- "Multi-value statistics containers for logical channels using
- OTN framing (e.g., max, min, avg, instant)";
-
- container pre-fec-ber {
- description
- "Bit error rate before forward error correction -- computed
- value with 18 decimal precision. Note that decimal64
- supports values as small as i x 10^-18 where i is an
- integer. Values smaller than this should be reported as 0
- to inidicate error free or near error free performance.
- Values include the instantaneous, average, minimum, and
- maximum statistics. If avg/min/max statistics are not
- supported, the target is expected to just supply the
- instant value";
-
- uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
- }
-
- container post-fec-ber {
- description
- "Bit error rate after forward error correction -- computed
- value with 18 decimal precision. Note that decimal64
- supports values as small as i x 10^-18 where i is an
- integer. Values smaller than this should be reported as 0
- to inidicate error free or near error free performance.
- Values include the instantaneous, average, minimum, and
- maximum statistics. If avg/min/max statistics are not
- supported, the target is expected to just supply the
- instant value";
-
- uses oc-opt-types:avg-min-max-instant-stats-precision18-ber;
- }
-
- container q-value {
- description
- "Quality value (factor) in dB of a channel with two
- decimal precision. Values include the instantaneous,
- average, minimum, and maximum statistics. If avg/min/max
- statistics are not supported, the target is expected
- to just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dB;
- }
-
- container esnr {
- description
- "Electrical signal to noise ratio. Baud rate
- normalized signal to noise ratio based on
- error vector magnitude in dB with two decimal
- precision. Values include the instantaneous, average,
- minimum, and maximum statistics. If avg/min/max
- statistics are not supported, the target is expected
- to just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dB;
- }
- }
-
- grouping terminal-otn-protocol-state {
- description
- "OTU operational state when logical channel
- framing is using an OTU protocol, e.g., OTU1, OTU3, etc.";
-
-
- leaf tti-msg-recv {
- type string;
- description
- "Trail trace identifier (TTI) message received";
- }
-
- leaf rdi-msg {
- type string;
- description
- "Remote defect indication (RDI) message received";
- }
- uses terminal-otn-protocol-counter-stats;
- uses terminal-otn-protocol-multi-stats;
- }
-
- grouping terminal-otn-protocol-top {
- description
- "Top-level grouping for data related to OTN protocol framing";
-
- container otn {
- description
- "Top level container for OTU configuration when logical
- channel framing is using an OTU protocol, e.g., OTU1, OTU3,
- etc.";
-
- container config {
- description
- "Configuration data for OTN protocol framing";
-
- uses terminal-otn-protocol-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for OTN protocol PMs, statistics,
- etc.";
-
- uses terminal-otn-protocol-config;
- uses terminal-otn-protocol-state;
- }
- }
- }
-
- grouping terminal-client-port-assignment-config {
- description
- "Configuration data for assigning physical client ports to
- logical channels";
-
- leaf index {
- type uint32;
- description
- "Index of the client port assignment";
- }
-
- leaf description {
- type string;
- description
- "Descriptive name for the client port-to-logical channel
- mapping";
- }
-
- leaf logical-channel {
- type leafref {
- path "/oc-opt-term:terminal-device/oc-opt-term:logical-channels" +
- "/oc-opt-term:channel/oc-opt-term:index";
- }
- description
- "Reference to the logical channel for this
- assignment";
- }
-
- leaf allocation {
- type decimal64 {
- fraction-digits 3;
- }
- units Gbps;
- description
- "Allocation of the client physical port to the assigned
- logical channel expressed in Gbps. In most cases,
- the full client physical port rate is assigned to a single
- logical channel.";
- }
-
- }
-
- grouping terminal-client-port-assignment-state {
- description
- "Operational state data for assigning physical client ports
- to logical channels";
- }
-
- grouping terminal-client-port-assignment-top {
- description
- "Top-level grouping for the assigment of client physical ports
- to logical channels";
- //TODO: this grouping could be removed, instead reusing a common
- //grouping for logical client assignment pointers
-
- container logical-channel-assignments {
- description
- "Enclosing container for client port to logical client
- mappings";
-
- list assignment {
- key "index";
- description
- "List of assignments to logical clients";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the index of this logical client
- assignment";
- }
-
- container config {
- description
- "Configuration data for the logical client assignment";
-
- uses terminal-client-port-assignment-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the logical client
- assignment";
-
- uses terminal-client-port-assignment-config;
- uses terminal-client-port-assignment-state;
- }
- }
- }
- }
-
-
- grouping terminal-logical-chan-assignment-config {
- description
- "Configuration data for assigning client logical channels
- to line-side tributaries";
-
- leaf index {
- type uint32;
- description
- "Index of the current logical client channel to tributary
- mapping";
- }
-
- leaf description {
- type string;
- description
- "Name assigned to the logical client channel";
- }
-
- leaf assignment-type {
- type enumeration {
- enum LOGICAL_CHANNEL {
- description
- "Subsequent channel is a logical channel";
- }
- enum OPTICAL_CHANNEL {
- description
- "Subsequent channel is a optical channel / carrier";
- }
- }
- description
- "Each logical channel element may be assigned to subsequent
- stages of logical elements to implement further grooming, or
- can be assigned to a line-side optical channel for
- transmission. Each assignment also has an associated
- bandwidth allocation.";
- }
-
- leaf logical-channel {
- type leafref {
- path "/oc-opt-term:terminal-device/" +
- "oc-opt-term:logical-channels/oc-opt-term:channel/" +
- "oc-opt-term:index";
- }
- must "../assignment-type = 'LOGICAL_CHANNEL'" {
- description
- "The assignment-type must be set to LOGICAL_CHANNEL for
- this leaf to be valid";
- }
- description
- "Reference to another stage of logical channel elements.";
- }
-
- leaf optical-channel {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- must "../assignment-type = 'OPTICAL_CHANNEL'" {
- description
- "The assignment-type must be set to OPTICAL_CHANNEL for
- this leaf to be valid";
- }
- description
- "Reference to the line-side optical channel that should
- carry the current logical channel element. Use this
- reference to exit the logical element stage.";
- }
-
- leaf allocation {
- type decimal64 {
- fraction-digits 3;
- }
- units Gbps;
- description
- "Allocation of the logical client channel to the tributary
- or sub-channel, expressed in Gbps";
- }
-
- }
-
- grouping terminal-logical-chan-assignment-state {
- description
- "Operational state data for the assignment of logical client
- channel to line-side tributary";
- }
-
- grouping terminal-logical-chan-assignment-top {
- description
- "Top-level grouping for the list of logical client channel-to-
- tributary assignments";
-
- container logical-channel-assignments {
- //TODO: we need a commonly understood name for this logical
- //channel structure
- description
- "Enclosing container for tributary assignments";
-
- list assignment {
- key "index";
- description
- "Logical channel elements may be assigned directly to
- optical channels for line-side transmission, or can be
- further groomed into additional stages of logical channel
- elements. The grooming can multiplex (i.e., split the
- current element into multiple elements in the subsequent
- stage) or de-multiplex (i.e., combine the current element
- with other elements into the same element in the subsequent
- stage) logical elements in each stage.
-
- Note that to support the ability to groom the logical
- elements, the list of logical channel elements should be
- populated with an entry for the logical elements at
- each stage, starting with the initial assignment from the
- respective client physical port.
-
- Each logical element assignment consists of a pointer to
- an element in the next stage, or to an optical channel,
- along with a bandwidth allocation for the corresponding
- assignment (e.g., to split or combine signal).";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the index for the current tributary
- assignment";
- }
-
- container config {
- description
- "Configuration data for tributary assignments";
-
- uses terminal-logical-chan-assignment-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for tributary assignments";
-
- uses terminal-logical-chan-assignment-config;
- uses terminal-logical-chan-assignment-state;
- }
- }
- }
- }
-
- grouping terminal-logical-channel-ingress-config {
- description
- "Configuration data for ingress signal to logical channel";
-
- leaf transceiver {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to the transceiver carrying the input signal
- for the logical channel. If specific physical channels
- are mapped to the logical channel (as opposed to all
- physical channels carried by the transceiver), they can be
- specified in the list of physical channel references.";
- }
-
- leaf-list physical-channel {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-transceiver:transceiver/" +
- "oc-transceiver:physical-channels/" +
- "oc-transceiver:channel/oc-transceiver:index";
- }
- description
- "This list should be populated with references
- to the client physical channels that feed this logical
- channel from the transceiver specified in the 'transceiver'
- leaf, which must be specified. If this leaf-list is empty,
- all physical channels in the transceiver are assumed to be
- mapped to the logical channel.";
- }
- }
-
- grouping terminal-logical-channel-ingress-state {
- description
- "Operational state data for ingress signal to logical channel";
- }
-
- grouping terminal-logical-channel-ingress-top {
- description
- "Top-level grouping for ingress signal to logical channel";
-
- container ingress {
- description
- "Top-level container for specifying references to the
- source of signal for the logical channel, either a
- transceiver or individual physical channels";
-
- container config {
- description
- "Configuration data for the signal source for the
- logical channel";
-
- uses terminal-logical-channel-ingress-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the signal source for the
- logical channel";
-
- uses terminal-logical-channel-ingress-config;
- uses terminal-logical-channel-ingress-state;
- }
- }
- }
-
- grouping terminal-logical-channel-config {
- description
- "Configuration data for logical channels";
-
- leaf index {
- type uint32;
- description
- "Index of the current logical channel";
- }
-
- leaf description {
- type string;
- description
- "Description of the logical channel";
- }
-
- leaf admin-state {
- type oc-opt-types:admin-state-type;
- description
- "Sets the admin state of the logical channel";
- }
-
- leaf rate-class {
- type identityref {
- base oc-opt-types:TRIBUTARY_RATE_CLASS_TYPE;
- }
- description
- "Rounded bit rate of the tributary signal. Exact bit rate
- will be refined by protocol selection.";
- }
-
- leaf trib-protocol {
- type identityref {
- base oc-opt-types:TRIBUTARY_PROTOCOL_TYPE;
- }
- description
- "Protocol framing of the tributary signal. If this
- LogicalChannel is directly connected to a Client-Port or
- Optical-Channel, this is the protocol of the associated port.
- If the LogicalChannel is connected to other LogicalChannels,
- the TributaryProtocol of the LogicalChannels will define a
- specific mapping/demapping or multiplexing/demultiplexing
- function.
-
- Not all protocols are valid, depending on the value
- of trib-rate-class. The expectation is that the NMS
- will validate that a correct combination of rate class
- and protocol are specfied. Basic combinations are:
-
- rate class: 1G
- protocols: 1GE
-
- rate class: 2.5G
- protocols: OC48, STM16
-
- rate class: 10G
- protocols: 10GE LAN, 10GE WAN, OC192, STM64, OTU2, OTU2e,
- OTU1e, ODU2, ODU2e, ODU1e
-
- rate class: 40G
- protocols: 40GE, OC768, STM256, OTU3, ODU3
-
- rate class: 100G
- protocols: 100GE, 100G MLG, OTU4, OTUCn, ODU4";
- }
-
- leaf logical-channel-type {
- type identityref {
- base oc-opt-types:LOGICAL_ELEMENT_PROTOCOL_TYPE;
- }
- description
- "The type / stage of the logical element determines the
- configuration and operational state parameters (PMs)
- available for the logical element";
- }
-
- leaf loopback-mode {
- type oc-opt-types:loopback-mode-type;
- description
- "Sets the loopback type on the logical channel. Setting the
- mode to something besides NONE activates the loopback in
- the specified mode.";
- }
-
- leaf test-signal {
- type boolean;
- description
- "When enabled the logical channel's DSP will generate a pseudo
- randmon bit stream (PRBS) which can be used during testing.";
- }
- }
-
-
- grouping terminal-logical-channel-state {
- description
- "Operational state data for logical client channels";
-
- leaf link-state {
- type enumeration {
- enum UP {
- description
- "Logical channel is operationally up";
- }
- enum DOWN {
- description
- "Logical channel is operationally down";
- }
- enum TESTING {
- description
- "Logical channel is under test as a result of
- enabling test-signal";
- }
- }
- description
- "Link-state of the Ethernet protocol on the logical channel,
- SONET / SDH framed signal, etc.";
- }
-
- }
-
- grouping terminal-logical-channel-top {
- description
- "Top-level grouping for logical channels";
-
- container logical-channels {
- description
- "Enclosing container the list of logical channels";
-
- list channel {
- key "index";
- description
- "List of logical channels";
- //TODO: naming for this list of logical elements should be
- //revisited.
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to the index of the logical channel";
- }
-
- container config {
- description
- "Configuration data for logical channels";
-
- uses terminal-logical-channel-config;
-
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for logical channels";
-
- uses terminal-logical-channel-config;
- uses terminal-logical-channel-state;
- }
-
- uses terminal-otn-protocol-top {
- when "config/logical-channel-type = 'PROT_OTN'" {
- description
- "Include the OTN protocol data only when the
- channel is using OTN framing.";
- }
- }
- uses terminal-ethernet-protocol-top {
- when "config/logical-channel-type = 'PROT_ETHERNET'" {
- description
- "Include the Ethernet protocol statistics only when the
- protocol used by the link is Ethernet.";
- }
- }
- uses terminal-logical-channel-ingress-top;
- uses terminal-logical-chan-assignment-top;
- }
- }
- }
-
-
- grouping terminal-optical-channel-config {
- description
- "Configuration data for describing optical channels";
-
- leaf frequency {
- type oc-opt-types:frequency-type;
- description
- "Frequency of the optical channel, expressed in MHz";
- }
-
- leaf target-output-power {
- type decimal64 {
- fraction-digits 2;
- }
- units dBm;
- description
- "Target output optical power level of the optical channel,
- expressed in increments of 0.01 dBm (decibel-milliwats)";
- }
-
- leaf operational-mode {
- type uint16;
- description
- "Vendor-specific mode identifier -- sets the operational
- mode for the channel. The specified operational mode must
- exist in the list of supported operational modes supplied
- by the device";
- //
- // Ideally, this leaf should be a leafref to the supported
- // operational modes, but YANG 1.0 does not allow a r/w
- // leaf to be a leafref to a r/o leaf.
- }
-
-
- leaf line-port {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to the line-side physical port that carries
- this optical channel. The target port should be
- a component in the physical inventory data model.";
- }
- }
-
- grouping terminal-optical-channel-state {
- description
- "Operational state data for optical channels";
-
- leaf group-id {
- type uint32;
- description
- "If the device places constraints on which optical
- channels must be managed together (e.g., transmitted on the
- same line port), it can indicate that by setting the group-id
- to the same value across related optical channels.";
- }
-
- uses oc-transceiver:optical-power-state;
-
- container chromatic-dispersion {
- description
- "Chromatic Dispersion of an optical channel in
- picoseconds / nanometer (ps/nm) as reported by receiver
- with two decimal precision. Values include the instantaneous,
- average, minimum, and maximum statistics. If avg/min/max
- statistics are not supported, the target is expected to just
- supply the instant value";
-
- uses oc-opt-types:avg-min-max-instant-stats-precision2-ps-nm;
- }
-
- container polarization-mode-dispersion {
- description
- "Polarization Mode Dispersion of an optical channel
- in picosends (ps) as reported by receiver with two decimal
- precision. Values include the instantaneous, average,
- minimum, and maximum statistics. If avg/min/max statistics
- are not supported, the target is expected to just supply the
- instant value";
-
- uses oc-opt-types:avg-min-max-instant-stats-precision2-ps;
- }
-
- container second-order-polarization-mode-dispersion {
- description
- "Second Order Polarization Mode Dispersion of an optical
- channel in picoseconds squared (ps^2) as reported by
- receiver with two decimal precision. Values include the
- instantaneous, average, minimum, and maximum statistics.
- If avg/min/max statistics are not supported, the target
- is expected to just supply the instant value";
-
- uses oc-opt-types:avg-min-max-instant-stats-precision2-ps2;
- }
-
- container polarization-dependent-loss {
- description
- "Polarization Dependent Loss of an optical channel
- in dB as reported by receiver with two decimal precision.
- Values include the instantaneous, average, minimum, and
- maximum statistics. If avg/min/max statistics are not
- supported, the target is expected to just supply the
- instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dB;
- }
- }
-
- grouping terminal-optical-channel-top {
- description
- "Top-level grouping for optical channel data";
-
- container optical-channel {
- description
- "Enclosing container for the list of optical channels";
-
- container config {
- description
- "Configuration data for optical channels";
-
- uses terminal-optical-channel-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for optical channels";
-
- uses terminal-optical-channel-config;
- uses terminal-optical-channel-state;
- }
- }
- }
-
- grouping terminal-operational-mode-config {
- description
- "Configuration data for vendor-supported operational modes";
- }
-
- grouping terminal-operational-mode-state {
- description
- "Operational state data for vendor-supported operational
- modes";
-
- leaf mode-id {
- type uint16;
- description
- "Two-octet encoding of the vendor-defined operational
- mode";
- }
-
- leaf description {
- type string;
- description
- "Vendor-supplied textual description of the characteristics
- of this operational mode to enable operators to select the
- appropriate mode for the application.";
- }
-
- //TODO: examples of the kind of info that would be useful to
- //report in the operational mode:
- //Symbol rate (32G, 40G, 43G, 64G, etc.)
- //Modulation (QPSK, 8-QAM, 16-QAM, etc.)
- //Differential encoding (on, off/pilot symbol, etc)
- //State of polarization tracking mode (default, med.
- //high-speed, etc.)
- //Pulse shaping (RRC, RC, roll-off factor)
- //FEC mode (SD, HD, % OH)
-
- leaf vendor-id {
- type string;
- description
- "Identifier to represent the vendor / supplier of the
- platform and the associated operational mode information";
- }
- }
-
- grouping terminal-operational-mode-top {
- description
- "Top-level grouping for vendor-supported operational modes";
-
- container operational-modes {
- description
- "Enclosing container for list of operational modes";
-
- list mode {
- key "mode-id";
- config false;
- description
- "List of operational modes supported by the platform.
- The operational mode provides a platform-defined summary
- of information such as symbol rate, modulation, pulse
- shaping, etc.";
-
- leaf mode-id {
- type leafref {
- path "../state/mode-id";
- }
- description
- "Reference to mode-id";
- }
-
- container config {
- description
- "Configuration data for operational mode";
-
- uses terminal-operational-mode-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the platform-defined
- operational mode";
-
- uses terminal-operational-mode-config;
- uses terminal-operational-mode-state;
- }
- }
- }
- }
-
- grouping ethernet-config-ext {
- description
- "Extended ethernet config data on terminal device";
-
- leaf client-fec {
- type enumeration {
- enum ENABLED {
- description
- "FEC is enabled";
- }
-
- enum DISABLED {
- description
- "FEC is disabled";
- }
-
- enum AUTO {
- description
- "System will automatically enable or disable FEC
- according to the Ethernet compliance codes (PMD)
- supported by transceivers";
- }
- }
- default AUTO;
- description
- "Configure whether FEC will be manually or automatically
- enabled or disabled on the client port";
- }
-
- leaf client-als {
- type enumeration {
- enum NONE {
- description
- "The client port will do nothing when a failure is
- detected on the line port or the remote client port";
- }
- enum LASER_SHUTDOWN {
- description
- "The client port will shut down the laser to notify the
- subtending Ethernet equipment of the failure detected on
- the line port or the remote client port.";
- }
- enum ETHERNET {
- description
- "The client port will propagate the local fault or remote
- fault signal to the subtending Ethernet equipment.";
- }
- }
- default ETHERNET;
- description
- "Sets the client port behavior that defines if the actions
- of automatic laser shutdown (als), ethernet fault
- propagation, or nothing will be done upon the detection
- of a failure on the line port or the upstream remote
- client port.";
- }
-
- leaf als-delay {
- type uint32;
- units milliseconds;
- default 0;
- description
- "The timer to delay the client-als actions on the client
- port when a local or remote fault is detected on the line
- port. The delay will only be valid when the client-als is
- set to LASER_SHUTDOWN";
- }
- }
-
- grouping terminal-device-config {
- description
- "Configuration data for transport terminal devices at a
- device-wide level";
- }
-
- grouping terminal-device-state {
- description
- "Operational state data for transport terminal devices at a
- device-wide level";
- }
-
- grouping terminal-device-top {
- description
- "Top-level grouping for data for terminal devices";
-
- container terminal-device {
- description
- "Top-level container for the terminal device";
-
- container config {
- description
- "Configuration data for global terminal-device";
-
- uses terminal-device-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for global terminal device";
-
- uses terminal-device-config;
- uses terminal-device-state;
- }
-
- uses terminal-logical-channel-top;
- uses terminal-operational-mode-top;
-
- }
- }
-
-
- grouping lldp-interface-config {
- description
- "Extension to the configuration data for LLDP on each
- optical terminal interface";
-
- leaf snooping {
- type boolean;
- default "false";
- description
- "If true, LLDP PDUs are only received and processed on
- the interface, but are not originated by the local agent.
- The PDUs are not dropped by the interface after processing,
- but relayed to the downstream link layer neighbors.
- If false, LLDP PDUs are both received and originated on the
- interface. The snooping mode is valid only when LLDP is
- enabled on the interface. The snooping mode is useful
- when an interface does not want its link layer neighbors to
- discover itself since, for example, it is a lower-layer
- interface";
- }
- }
-
- // data definition statements
-
- uses terminal-device-top;
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component" {
- when "/oc-platform:components/oc-platform:component/" +
- "oc-platform:state/oc-platform:type = 'OPTICAL_CHANNEL'" {
- description
- "Augment is active when component is of type
- OPTICAL_CHANNEL";
- }
- description
- "Adding optical channel data to physical inventory";
-
- uses terminal-optical-channel-top {
- }
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet" +
- "/oc-eth:config" {
- description
- "Adds configuration data for client interfaces using Ethernet
- framing";
-
- uses ethernet-config-ext;
- }
-
- augment "/oc-lldp:lldp/oc-lldp:interfaces/oc-lldp:interface/" +
- "oc-lldp:config" {
- description
- "Augment the lldp config data to support the snooping mode
- for each optical terminal interface";
-
- uses lldp-interface-config;
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-transport-line-common.yang b/src/plugins/yang/openconfig/openconfig-transport-line-common.yang
deleted file mode 100644
index 9db16b6..0000000
--- a/src/plugins/yang/openconfig/openconfig-transport-line-common.yang
+++ /dev/null
@@ -1,317 +0,0 @@
-module openconfig-transport-line-common {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/transport-line-common";
-
- prefix "oc-line-com";
-
- // import some basic types
- import iana-if-type { prefix ift; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-platform { prefix oc-platform; }
- import openconfig-types { prefix oc-types; }
- import openconfig-transport-types { prefix oc-opt-types; }
- import openconfig-platform-transceiver { prefix oc-transceiver; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines common data elements for OpenConfig data
- models for optical transport line system elements, such as
- amplifiers and ROADMs (wavelength routers).";
-
- oc-ext:openconfig-version "0.4.1";
-
- revision "2018-07-17" {
- description
- "Remove leaf 'enabled' from osc-config";
- reference "0.4.1";
- }
-
- revision "2018-05-08" {
- description
- "Added leaf 'enabled' to osc-config and
- leaf 'output-frequency' to osc-state";
- reference "0.4.0";
- }
-
- revision "2017-09-08" {
- description
- "Correct bug with OSC interfaces";
- reference "0.3.1";
- }
-
- revision "2017-07-08" {
- description
- "Add monitor port type and refs to hw ports, ";
- reference "0.3.0";
- }
-
- revision "2017-03-28" {
- description
- "Added min/max/avg stats, status for media channels, OCM, APS";
- reference "0.2.0";
- }
-
- revision "2016-03-31" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity OPTICAL_LINE_PORT_TYPE {
- description
- "Type definition for optical node port types";
- }
-
- identity INGRESS {
- base OPTICAL_LINE_PORT_TYPE;
- description
- "Ingress port, corresponding to a signal entering
- a line device such as an amplifier or wavelength
- router.";
- }
-
- identity EGRESS {
- base OPTICAL_LINE_PORT_TYPE;
- description
- "Egress port, corresponding to a signal exiting
- a line device such as an amplifier or wavelength
- router.";
- }
-
- identity ADD {
- base OPTICAL_LINE_PORT_TYPE;
- description
- "Add port, corresponding to a signal injected
- at a wavelength router.";
- }
-
- identity DROP {
- base OPTICAL_LINE_PORT_TYPE;
- description
- "Drop port, corresponding to a signal dropped
- at a wavelength router.";
- }
-
- identity MONITOR {
- base OPTICAL_LINE_PORT_TYPE;
- description
- "Monitor port, corresponding to a signal used by an optical
- channel monitor. This is used to represent the connection
- that a channel monitor port is connected to. This
- connection may be via physical cable and faceplate ports or
- internal to the device";
- }
-
- // typedef statements
-
- // grouping statements
-
- grouping optical-osc-config {
- description
- "Configuration data for OSC interfaces";
-
- leaf interface {
- type oc-if:base-interface-ref;
- description
- "Reference to an OSC interface";
- }
- }
-
- grouping optical-osc-state {
- description
- "Operational state data for OSC interfaces";
-
- container input-power {
- description
- "The input optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- the target is expected to just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container output-power {
- description
- "The output optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- the target is expected to just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container laser-bias-current {
- description
- "The current applied by the system to the transmit laser to
- achieve the output power. The current is expressed in mA
- with up to one decimal precision. If avg/min/max statistics
- are not supported, the target is expected to just supply
- the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-mA;
- }
-
- uses oc-transceiver:output-optical-frequency;
- }
-
-
-
- grouping optical-osc-top {
- description
- "Top-level grouping for configuration and operational state
- data for optical supervisory channels (OSC) for amplifiers,
- WSS/ROADM, nodes, etc.";
-
- container config {
- description
- "Configuration data for OSCs";
-
- uses optical-osc-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for OSCs";
-
- uses optical-osc-config;
- uses optical-osc-state;
- }
- }
-
-
- grouping transport-line-common-port-config {
- description
- "Configuration data for optical line ports";
-
- leaf admin-state {
- type oc-opt-types:admin-state-type;
- description
- "Sets the admin state of the optical-port";
- }
- }
-
- grouping transport-line-common-port-state {
- description
- "Operational state data describing optical line ports";
-
- leaf optical-port-type {
- type identityref {
- base OPTICAL_LINE_PORT_TYPE;
- }
- description
- "Indicates the type of transport line port. This is an
- informational field that should be made available by the
- device (e.g., in the openconfig-platform model).";
- }
-
- container input-power {
- description
- "The total input optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
-
- container output-power {
- description
- "The total output optical power of this port in units
- of 0.01dBm. If avg/min/max statistics are not supported,
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
- }
-
- grouping transport-line-common-port-top {
- description
- "Top-level grouping ";
-
- container optical-port {
- description
- "Top-level container ";
-
- container config {
-
- description
- "Operational config data for optical line ports";
-
- uses transport-line-common-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for optical line ports";
-
- uses transport-line-common-port-config;
- uses transport-line-common-port-state;
- }
- }
- }
-
-
-
- // data definition statements
-
- // uses optical-osc-top;
-
- // augment statements
-
- augment "/oc-platform:components/oc-platform:component" {
- description
- "Adding optical line port data to platform model";
-
- uses transport-line-common-port-top {
- when "/oc-platform:components/oc-platform:component/" +
- "oc-platform:state/oc-platform:type = 'PORT'" {
- description
- "Augment is active when component is of type
- PORT";
- }
- }
- }
-
- //TODO:this is placeholder until SONET model is added
- //to interfaces model
- augment "/oc-if:interfaces/oc-if:interface" {
- when "oc-if:config/oc-if:type = 'ift:sonet'" {
- description "Additional interface configuration parameters when
- the interface type is SONET/SDH";
- }
- description "Adds additional SONET/SDH-specific data to
- osc model";
-
- container sonet {
- description
- "Data related to SONET/SDH interfaces";
- }
- }
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-transport-line-protection.yang b/src/plugins/yang/openconfig/openconfig-transport-line-protection.yang
deleted file mode 100644
index 0e21a02..0000000
--- a/src/plugins/yang/openconfig/openconfig-transport-line-protection.yang
+++ /dev/null
@@ -1,612 +0,0 @@
-module openconfig-transport-line-protection {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/optical-transport-line-protection";
-
- prefix "oc-line-protect";
-
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-types { prefix oc-types; }
- import openconfig-platform { prefix oc-platform; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This model describes configuration and operational state data
- for optical line protection elements, deployed as part of a
- transport line system. An Automatic Protection Switch (APS)
- is typically installed in the same device as the amplifiers
- and wave-router, however an APS can also be a standalone
- device. In both scenarios, it serves the same purpose of
- providing protection using two dark fiber pairs to ensure the
- amplifiers can still receive a signal if one of the two fiber
- pairs is broken. The APS port details and directionality are
- shown below. The three major attributes, together with their
- modifiers, define the behavior of the APS and can be prioritized
- in the descending order as shown in the following table";
-
- //
- // Automatic Protection Switch (APS) port details and directionality.
- // _________
- // | |
- // | | <=== LINE-PRIMARY-IN
- // | |
- // COMMON-IN ===> | | ===> LINE-PRIMARY-OUT
- // | |
- // | APS |
- // COMMON-OUT <=== | |
- // | | <=== LINE-SECONDARY-IN
- // | |
- // | | ===> LINE-SECONDARY-OUT
- // |_______|
- //
- //
- // The interaction of configuration attributes that control the
- // protection switching behavior
- // +------------------+--------------------+------------------------+
- // | Attribute | Modifier | Behavior |
- // +------------------+--------------------+------------------------+
- // | force-to-port | n/a | turns off switching |
- // | | | by forcing to primary |
- // | | | or secondary |
- // +------------------+--------------------+------------------------+
- // | relative-switch | relative-threshold | if set, overrides |
- // | -threshold | -offset | primary and secondary |
- // | | | switch thresholds |
- // +------------------+--------------------+------------------------+
- // | primary-switch | primary-switch | sets respective |
- // | -threshold, | -hysteresis | threshold to switch |
- // | secondary-switch | | to opposite port |
- // | -threshold | | |
- // +------------------+--------------------+------------------------+
-
- oc-ext:openconfig-version "0.4.0";
-
- revision "2018-07-25" {
- description
- "Added wait-to-restore-time, hold-off-time,
- relative-switch-threshold, relative-switch-threshold-offset,
- forced-to-port, removed secondary-switch-hysteresis, and
- edited the description of primary-switch-threshold,
- secondary-switch-threshold, and primary-switch-hysteresis";
- reference "0.4.0";
- }
-
- revision "2017-09-08" {
- description
- "Correct bug with OSC interfaces";
- reference "0.3.1";
- }
-
- revision "2017-07-08" {
- description
- "Support multiple OCMs, add monitor port type
- and refs to hw ports, ";
- reference "0.3.0";
- }
-
- revision "2017-03-28" {
- description
- "Added min/max/avg stats, status for media channels, OCM, APS";
- reference "0.2.0";
- }
-
- revision "2016-08-05" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity APS_PATHS {
- description
- "Base identity for identifying the line paths on an
- automatic protection switch";
- }
-
- identity PRIMARY {
- base APS_PATHS;
- description
- "The primary line path connected to an automatic protection
- switch port indicating the primary/preferred path";
- }
-
- identity SECONDARY {
- base APS_PATHS;
- description
- "The secondary line path connected to an automatic protection
- switch port indicating the secondary path";
- }
-
- // grouping statements
-
- grouping aps-input-port-config {
- description
- "Grouping for config related to unidirectional automatic
- protection switch input ports";
-
- leaf enabled {
- type boolean;
- default "true";
- description
- "This leaf contains the configured, desired state of the
- port. Disabling the port turns off alarm reporting for
- the port";
- }
-
- leaf target-attenuation {
- type decimal64 {
- fraction-digits 2;
- }
- units dB;
- description
- "Target attenuation of the variable optical attenuator
- associated with the port in increments of 0.01 dB.";
- }
- }
-
- grouping aps-output-port-config {
- description
- "Grouping for config related to unidirectional automatic
- protection switch output ports";
-
- leaf target-attenuation {
- type decimal64 {
- fraction-digits 2;
- }
- units dB;
- description
- "Target attenuation of the variable optical attenuator
- associated with the port in increments of 0.01 dB";
- }
- }
-
- grouping aps-input-port-state {
- description
- "Grouping for state related to unidirectional automatic
- protection switch input ports";
-
- leaf attenuation {
- type decimal64 {
- fraction-digits 2;
- }
- units dB;
- description
- "The attenuation of the variable optical attenuator
- associated with the port in increments of 0.01 dB.";
- }
-
- container optical-power {
- description
- "The optical input power of this port in units of
- 0.01dBm. Optical input power represents the signal
- traversing from an external destination into the module.
- The power is measured before any attenuation. If avg/min/max
- statistics are not supported, the target is expected to
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
- }
-
- grouping aps-output-port-state {
- description
- "Grouping for state related to unidirectional automatic
- protection switch output ports";
-
- leaf attenuation {
- type decimal64 {
- fraction-digits 2;
- }
- units dB;
- description
- "The attenuation of the variable optical attenuator
- associated with the port in increments of 0.01 dB";
- }
-
- container optical-power {
- description
- "The optical output power of this port in units of
- 0.01dBm. Optical output power represents the signal
- traversing from the module to an external destination. The
- power is measured after any attenuation. If avg/min/max
- statistics are not supported, the target is expected to
- just supply the instant value";
-
- uses oc-types:avg-min-max-instant-stats-precision2-dBm;
- }
- }
-
- grouping aps-ports {
- description
- "Top level grouping for automatic protection switch ports";
-
- container line-primary-in {
- description
- "Container for information related to the line primary
- input port";
-
- container config {
- description
- "Configuration data for the line primary input port";
-
- uses aps-input-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "State data for the line primary input port";
-
- uses aps-input-port-config;
- uses aps-input-port-state;
- }
-
- }
-
- container line-primary-out {
- description
- "Container for information related to the line primary
- output port";
-
- container config {
- description
- "Configuration data for the line primary output port";
-
- uses aps-output-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "State data for the line primary output port";
-
- uses aps-output-port-config;
- uses aps-output-port-state;
- }
- }
-
- container line-secondary-in {
- description
- "Container for information related to the line secondary
- input port";
-
- container config {
- description
- "Configuration data for the line secondary input port";
-
- uses aps-input-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "State data for the line secondary input port";
-
- uses aps-input-port-config;
- uses aps-input-port-state;
- }
- }
-
- container line-secondary-out {
- description
- "Container for information related to the line secondary
- output port";
-
- container config {
- description
- "Configuration data for the line secondary output port";
-
- uses aps-output-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "State data for the line secondary output port";
-
- uses aps-output-port-config;
- uses aps-output-port-state;
- }
- }
-
- container common-in {
- description
- "Container for information related to the line common
- input port";
-
- container config {
- description
- "Configuration data for the line common input port";
-
- uses aps-input-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "State data for the line common input port";
-
- uses aps-input-port-config;
- uses aps-input-port-state;
- }
- }
-
- container common-output {
- description
- "Container for information related to the line common
- output port";
-
- container config {
- description
- "Configuration data for the line common output port";
-
- uses aps-output-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "State data for the line common output port";
-
- uses aps-output-port-config;
- uses aps-output-port-state;
- }
- }
- }
-
- grouping aps-config {
- description
- "Configuration data for automatic protection switch modules";
-
- leaf name {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to the component name (in the platform model)
- corresponding to this automatic protection switch module
- in the device";
- }
-
- leaf revertive {
- type boolean;
- description
- "Revertive behavior of the module. If True, then
- automatically revert after protection switch once the
- fault is restored. This leaf is not valid when the
- relative-switch-threshold is in effect";
- }
-
- leaf wait-to-restore-time {
- type uint32;
- units milliseconds;
- description
- "The time that must elapse before an APS path
- that has recovered from an signal failure (SF) or signal
- degradation (SD) condition can be used again to transport
- the normal traffic signal. During this time period, an SF or
- SD condition shall override the wait-to-restore time period.
- This leaf can only take effect when the revertive leaf
- equals true";
- }
-
- leaf hold-off-time {
- type uint32;
- units milliseconds;
- description
- "The time delay between the declaration of an SF or SD
- condition and the initiation of the protection switching
- algorithm";
- }
-
- leaf primary-switch-threshold {
- type decimal64 {
- fraction-digits 2;
- }
- units dBm;
- description
- "The threshold at which the primary line port will switch to
- the opposite line port in increments of 0.01 dBm. If the
- hardware supports only one switch threshold for primary and
- and secondary ports then it is recommended to set both
- primary-switch-threshold and secondary-switch-threshold to
- the same value to be explicit. When the relative switch
- threshold is enabled, i.e. set to a non-zero value, the
- primary switch threshold will be overridden";
- }
-
- leaf primary-switch-hysteresis {
- type decimal64 {
- fraction-digits 2;
- }
- units dB;
- default 0;
- description
- "The delta in dB between the primary-switch-threshold
- and the signal received on the primary APS_PATH before
- initiating a switch from the secondary APS_PATH to the
- primary APS_PATH, in order to prevent toggling between ports
- when an input signal is very close to the threshold. A zero
- value means the switch hysteresis is disabled.";
- }
-
- leaf secondary-switch-threshold {
- type decimal64 {
- fraction-digits 2;
- }
- units dBm;
- description
- "The threshold at which the secondary line port will switch to
- the opposite line port in increments of 0.01 dBm. If the
- hardware supports only one switch threshold for primary and
- and secondary ports then it is recommended to set both
- primary-switch-threshold and secondary-switch-threshold to
- the same value to be explicit. When the relative switch
- threshold is enabled, i.e. set to a non-zero value, the
- secondary switch threshold will be overridden";
- }
-
- leaf relative-switch-threshold {
- type decimal64 {
- fraction-digits 2;
- }
- units dB;
- default 0;
- description
- "The delta threshold in dB at which the current line port
- will switch to the opposite line port. It can be set to
- the value of 0dB. When set to 0dB, the threshold is ignored
- and the system automatically applies the primary and
- secondary switch thresholds. When set to a non-zero value,
- it overrides the primary and secondary switch thresholds";
- }
-
- leaf relative-switch-threshold-offset {
- type decimal64 {
- fraction-digits 2;
- }
- units dB;
- default 0;
- description
- "The offset of the relative switch threshold that compensates
- the normal difference of receiving power between the primary
- and secondary line ports. A negative offset corresponds to
- the situation where the secondary line port receives a higher
- power than the primary line port in normal condition, and a
- positive offset means the opposite. The offset will only work
- when the relative switch threshold is set to a non-zero
- value";
- }
-
- leaf force-to-port {
- type enumeration {
- enum NONE {
- description
- "Do not force the switch to stay on any line port";
- }
- enum PRIMARY {
- description
- "Force the switch to stay on the primary line port";
- }
- enum SECONDARY {
- description
- "Force the switch to stay on the secondary line port";
- }
- }
- default NONE;
- description
- "Explicitly set the switch to stay on a port regardless of
- its operational condition";
- }
- }
-
- grouping aps-state {
- description
- "State data for automatic protection switch modules";
-
- leaf active-path {
- type identityref {
- base APS_PATHS;
- }
- description
- "Indicates which line path on the protection switch is
- currently the active path connected to the common port";
- }
- }
-
- grouping automatic-protection-switch-top {
- description
- "Top level grouping for automatic protection switch data";
-
- container aps-modules {
- description
- "Enclosing container for list of automatic protection
- switch modules";
-
- list aps-module {
- key "name";
- description
- "List of automatic protection switch modules present
- in the device";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the config name list key";
- }
-
- container config {
- description
- "Configuration data for an automatic protection
- switch module";
-
- uses aps-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for an automatic protection
- switch module";
-
- uses aps-config;
- uses aps-state;
- }
-
- container ports {
- description
- "Top level grouping for automatic protection switch ports";
-
- uses aps-ports;
- }
- }
- }
- }
-
- grouping transport-line-protection-top {
- description
- "Top level grouping for transport line protection data";
-
- container aps {
- description
- "Top level grouping for automatic protection switch data";
-
- uses automatic-protection-switch-top;
- }
- }
-
- // data definition statements
-
- uses transport-line-protection-top;
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-transport-types.yang b/src/plugins/yang/openconfig/openconfig-transport-types.yang
deleted file mode 100644
index 247b973..0000000
--- a/src/plugins/yang/openconfig/openconfig-transport-types.yang
+++ /dev/null
@@ -1,834 +0,0 @@
-module openconfig-transport-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/transport-types";
-
- prefix "oc-opt-types";
-
- import openconfig-platform-types { prefix oc-platform-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-types { prefix oc-types; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module contains general type definitions and identities
- for optical transport models.";
-
- oc-ext:openconfig-version "0.6.0";
-
- revision "2018-05-16" {
- description
- "Added interval,min,max time to interval stats.";
- reference "0.6.0";
- }
-
- revision "2017-08-16" {
- description
- "Added ODU Cn protocol type";
- reference "0.5.0";
- }
-
- revision "2016-12-22" {
- description
- "Fixes and additions for terminal optics model";
- reference "0.4.0";
- }
-
- // typedef statements
-
- typedef frequency-type {
- type uint64;
- units "MHz";
- description
- "Type for optical spectrum frequency values";
- }
-
- typedef admin-state-type {
- type enumeration {
- enum ENABLED {
- description
- "Sets the channel admin state to enabled";
- }
- enum DISABLED {
- description
- "Sets the channel admin state to disabled";
- }
- enum MAINT {
- description
- "Sets the channel to maintenance / diagnostic mode";
- }
- }
- description "Administrative state modes for
- logical channels in the transponder model.";
- }
-
- typedef loopback-mode-type {
- type enumeration {
- enum NONE {
- description
- "No loopback is applied";
- }
- enum FACILITY {
- description
- "A loopback which directs traffic normally transmitted
- on the port back to the device as if received on the same
- port from an external source.";
- }
- enum TERMINAL {
- description
- "A loopback which directs traffic received from an external
- source on the port back out the transmit side of the same
- port.";
- }
- }
- default NONE;
- description
- "Loopback modes for transponder logical channels";
- }
-
- // grouping statements
-
- grouping avg-min-max-instant-stats-precision2-ps-nm {
- description
- "Common grouping for recording picosecond per nanometer
- values with 2 decimal precision. Values include the
- instantaneous, average, minimum, and maximum statistics.
- Statistics are computed and reported based on a moving time
- interval (e.g., the last 30s). If supported by the device,
- the time interval over which the statistics are computed, and
- the times at which the minimum and maximum values occurred,
- are also reported.";
-
- leaf instant {
- type decimal64 {
- fraction-digits 2;
- }
- units ps-nm;
- description
- "The instantaneous value of the statistic.";
- }
-
- leaf avg {
- type decimal64 {
- fraction-digits 2;
- }
- units ps-nm;
- description
- "The arithmetic mean value of the statistic over the
- time interval.";
- }
-
- leaf min {
- type decimal64 {
- fraction-digits 2;
- }
- units ps-nm;
- description
- "The minimum value of the statistic over the time interval.";
- }
-
- leaf max {
- type decimal64 {
- fraction-digits 2;
- }
- units ps-nm;
- description
- "The maximum value of the statistic over the time interval.";
- }
-
- uses oc-types:stat-interval-state;
- uses oc-types:min-max-time;
- }
-
- grouping avg-min-max-instant-stats-precision2-ps {
- description
- "Common grouping for recording picosecond values with
- 2 decimal precision. Values include the
- instantaneous, average, minimum, and maximum statistics.
- Statistics are computed and reported based on a moving time
- interval (e.g., the last 30s). If supported by the device,
- the time interval over which the statistics are computed, and
- the times at which the minimum and maximum values occurred,
- are also reported.";
-
- leaf instant {
- type decimal64 {
- fraction-digits 2;
- }
- units ps;
- description
- "The instantaneous value of the statistic.";
- }
-
- leaf avg {
- type decimal64 {
- fraction-digits 2;
- }
- units ps;
- description
- "The arithmetic mean value of the statistic over the
- time interval.";
- }
-
- leaf min {
- type decimal64 {
- fraction-digits 2;
- }
- units ps;
- description
- "The minimum value of the statistic over the time interval.";
- }
-
- leaf max {
- type decimal64 {
- fraction-digits 2;
- }
- units ps;
- description
- "The maximum value of the statistic over the time interval.";
- }
-
- uses oc-types:stat-interval-state;
- uses oc-types:min-max-time;
- }
-
- grouping avg-min-max-instant-stats-precision2-ps2 {
- description
- "Common grouping for recording picosecond^2 values with
- 2 decimal precision. Values include the
- instantaneous, average, minimum, and maximum statistics.
- Statistics are computed and reported based on a moving time
- interval (e.g., the last 30s). If supported by the device,
- the time interval over which the statistics are computed, and
- the times at which the minimum and maximum values occurred,
- are also reported.";
-
- leaf instant {
- type decimal64 {
- fraction-digits 2;
- }
- units ps^2;
- description
- "The instantaneous value of the statistic.";
- }
-
- leaf avg {
- type decimal64 {
- fraction-digits 2;
- }
- units ps^2;
- description
- "The arithmetic mean value of the statistic over the
- time interval.";
- }
-
- leaf min {
- type decimal64 {
- fraction-digits 2;
- }
- units ps^2;
- description
- "The minimum value of the statistic over the time interval.";
- }
-
- leaf max {
- type decimal64 {
- fraction-digits 2;
- }
- units ps^2;
- description
- "The maximum value of the statistic over the time
- interval.";
- }
-
- uses oc-types:stat-interval-state;
- uses oc-types:min-max-time;
- }
-
- grouping avg-min-max-instant-stats-precision18-ber {
- description
- "Common grouping for recording bit error rate (BER) values
- with 18 decimal precision. Note that decimal64 supports
- values as small as i x 10^-18 where i is an integer. Values
- smaller than this should be reported as 0 to inidicate error
- free or near error free performance. Values include the
- instantaneous, average, minimum, and maximum statistics.
- Statistics are computed and reported based on a moving time
- interval (e.g., the last 30s). If supported by the device,
- the time interval over which the statistics are computed, and
- the times at which the minimum and maximum values occurred,
- are also reported.";
-
- leaf instant {
- type decimal64 {
- fraction-digits 18;
- }
- units bit-errors-per-second;
- description
- "The instantaneous value of the statistic.";
- }
-
- leaf avg {
- type decimal64 {
- fraction-digits 18;
- }
- units bit-errors-per-second;
- description
- "The arithmetic mean value of the statistic over the
- time interval.";
- }
-
- leaf min {
- type decimal64 {
- fraction-digits 18;
- }
- units bit-errors-per-second;
- description
- "The minimum value of the statistic over the time
- interval.";
- }
-
- leaf max {
- type decimal64 {
- fraction-digits 18;
- }
- units bit-errors-per-second;
- description
- "The maximum value of the statistic over the time
- interval.";
- }
-
- uses oc-types:stat-interval-state;
- uses oc-types:min-max-time;
- }
-
- // identity statements
-
- identity TRIBUTARY_PROTOCOL_TYPE {
- description
- "Base identity for protocol framing used by tributary
- signals.";
- }
-
- identity PROT_1GE {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "1G Ethernet protocol";
- }
-
- identity PROT_OC48 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OC48 protocol";
- }
-
- identity PROT_STM16 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "STM 16 protocol";
- }
-
- identity PROT_10GE_LAN {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "10G Ethernet LAN protocol";
- }
-
- identity PROT_10GE_WAN {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "10G Ethernet WAN protocol";
- }
-
- identity PROT_OC192 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OC 192 (9.6GB) port protocol";
- }
-
- identity PROT_STM64 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "STM 64 protocol";
- }
-
- identity PROT_OTU2 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OTU 2 protocol";
- }
-
- identity PROT_OTU2E {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OTU 2e protocol";
- }
-
- identity PROT_OTU1E {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OTU 1e protocol";
- }
-
- identity PROT_ODU2 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "ODU 2 protocol";
- }
-
- identity PROT_ODU2E {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "ODU 2e protocol";
- }
-
- identity PROT_40GE {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "40G Ethernet port protocol";
- }
-
- identity PROT_OC768 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OC 768 protocol";
- }
-
- identity PROT_STM256 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "STM 256 protocol";
- }
-
- identity PROT_OTU3 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OTU 3 protocol";
- }
-
- identity PROT_ODU3 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "ODU 3 protocol";
- }
-
- identity PROT_100GE {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "100G Ethernet protocol";
- }
-
- identity PROT_100G_MLG {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "100G MLG protocol";
- }
-
- identity PROT_OTU4 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OTU4 signal protocol (112G) for transporting
- 100GE signal";
- }
-
- identity PROT_OTUCN {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "OTU Cn protocol";
- }
-
- identity PROT_ODUCN {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "ODU Cn protocol";
- }
-
- identity PROT_ODU4 {
- base TRIBUTARY_PROTOCOL_TYPE;
- description "ODU 4 protocol";
- }
-
- identity TRANSCEIVER_FORM_FACTOR_TYPE {
- description
- "Base identity for identifying the type of pluggable optic
- transceiver (i.e,. form factor) used in a port.";
- }
-
- identity CFP {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "C form-factor pluggable, that can support up to a
- 100 Gb/s signal with 10x10G or 4x25G physical channels";
- }
-
- identity CFP2 {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "1/2 C form-factor pluggable, that can support up to a
- 200 Gb/s signal with 10x10G, 4x25G, or 8x25G physical
- channels";
- }
-
- identity CFP2_ACO {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "CFP2 analog coherent optics transceiver, supporting
- 100 Gb, 200Gb, and 250 Gb/s signal.";
- }
-
- identity CFP4 {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "1/4 C form-factor pluggable, that can support up to a
- 100 Gb/s signal with 10x10G or 4x25G physical channels";
- }
-
- identity QSFP {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "OriginalQuad Small Form-factor Pluggable transceiver that can
- support 4x1G physical channels. Not commonly used.";
- }
-
- identity QSFP_PLUS {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "Quad Small Form-factor Pluggable transceiver that can support
- up to 4x10G physical channels.";
- }
-
- identity QSFP28 {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "QSFP pluggable optic with support for up to 4x28G physical
- channels";
- }
-
- identity CPAK {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "Cisco CPAK transceiver supporting 100 Gb/s.";
- }
-
- identity SFP {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "Small form-factor pluggable transceiver supporting up to
- 10 Gb/s signal";
- }
-
- identity SFP_PLUS {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "Enhanced small form-factor pluggable transceiver supporting
- up to 16 Gb/s signals, including 10 GbE and OTU2";
- }
-
- identity XFP {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "10 Gigabit small form factor pluggable transceiver supporting
- 10 GbE and OTU2";
- }
-
- identity X2 {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "10 Gigabit small form factor pluggable transceiver supporting
- 10 GbE using a XAUI inerface and 4 data channels.";
- }
-
- identity NON_PLUGGABLE {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "Represents a port that does not require a pluggable optic,
- e.g., with on-board optics like COBO";
- }
-
- identity OTHER {
- base TRANSCEIVER_FORM_FACTOR_TYPE;
- description
- "Represents a transceiver form factor not otherwise listed";
- }
-
- identity FIBER_CONNECTOR_TYPE {
- description
- "Type of optical fiber connector";
- }
-
- identity SC_CONNECTOR {
- base FIBER_CONNECTOR_TYPE;
- description
- "SC type fiber connector";
- }
-
- identity LC_CONNECTOR {
- base FIBER_CONNECTOR_TYPE;
- description
- "LC type fiber connector";
- }
-
- identity MPO_CONNECTOR {
- base FIBER_CONNECTOR_TYPE;
- description
- "MPO (multi-fiber push-on/pull-off) type fiber connector
- 1x12 fibers";
- }
-
- identity ETHERNET_PMD_TYPE {
- description
- "Ethernet compliance codes (PMD) supported by transceivers";
- }
-
- identity ETH_10GBASE_LRM {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 10GBASE_LRM";
- }
-
- identity ETH_10GBASE_LR {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 10GBASE_LR";
- }
-
- identity ETH_10GBASE_ZR {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 10GBASE_ZR";
- }
-
- identity ETH_10GBASE_ER {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 10GBASE_ER";
- }
-
- identity ETH_10GBASE_SR {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 10GBASE_SR";
- }
-
- identity ETH_40GBASE_CR4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 40GBASE_CR4";
- }
-
- identity ETH_40GBASE_SR4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 40GBASE_SR4";
- }
-
- identity ETH_40GBASE_LR4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 40GBASE_LR4";
- }
-
- identity ETH_40GBASE_ER4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 40GBASE_ER4";
- }
-
- identity ETH_40GBASE_PSM4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 40GBASE_PSM4";
- }
-
- identity ETH_4X10GBASE_LR {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 4x10GBASE_LR";
- }
-
- identity ETH_4X10GBASE_SR {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 4x10GBASE_SR";
- }
-
- identity ETH_100G_AOC {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100G_AOC";
- }
-
- identity ETH_100G_ACC {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100G_ACC";
- }
-
- identity ETH_100GBASE_SR10 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100GBASE_SR10";
- }
-
- identity ETH_100GBASE_SR4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100GBASE_SR4";
- }
-
- identity ETH_100GBASE_LR4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100GBASE_LR4";
- }
-
- identity ETH_100GBASE_ER4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100GBASE_ER4";
- }
-
- identity ETH_100GBASE_CWDM4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100GBASE_CWDM4";
- }
-
- identity ETH_100GBASE_CLR4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100GBASE_CLR4";
- }
-
- identity ETH_100GBASE_PSM4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100GBASE_PSM4";
- }
-
- identity ETH_100GBASE_CR4 {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: 100GBASE_CR4";
- }
-
- identity ETH_UNDEFINED {
- base ETHERNET_PMD_TYPE;
- description "Ethernet compliance code: undefined";
- }
-
- identity SONET_APPLICATION_CODE {
- description
- "Supported SONET/SDH application codes";
- }
-
- identity VSR2000_3R2 {
- base SONET_APPLICATION_CODE;
- description
- "SONET/SDH application code: VSR2000_3R2";
- }
-
- identity VSR2000_3R3 {
- base SONET_APPLICATION_CODE;
- description
- "SONET/SDH application code: VSR2000_3R3";
- }
-
- identity VSR2000_3R5 {
- base SONET_APPLICATION_CODE;
- description
- "SONET/SDH application code: VSR2000_3R5";
- }
-
- identity SONET_UNDEFINED {
- base SONET_APPLICATION_CODE;
- description
- "SONET/SDH application code: undefined";
- }
-
- identity OTN_APPLICATION_CODE {
- description
- "Supported OTN application codes";
- }
-
- identity P1L1_2D1 {
- base OTN_APPLICATION_CODE;
- description
- "OTN application code: P1L1_2D1";
- }
-
- identity P1S1_2D2 {
- base OTN_APPLICATION_CODE;
- description
- "OTN application code: P1S1_2D2";
- }
-
- identity P1L1_2D2 {
- base OTN_APPLICATION_CODE;
- description
- "OTN application code: P1L1_2D2";
- }
-
- identity OTN_UNDEFINED {
- base OTN_APPLICATION_CODE;
- description
- "OTN application code: undefined";
- }
-
- identity TRIBUTARY_RATE_CLASS_TYPE {
- description
- "Rate of tributary signal _- identities will typically reflect
- rounded bit rate.";
- }
-
- identity TRIB_RATE_1G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "1G tributary signal rate";
- }
-
- identity TRIB_RATE_2.5G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "2.5G tributary signal rate";
- }
-
- identity TRIB_RATE_10G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "10G tributary signal rate";
- }
-
- identity TRIB_RATE_40G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "40G tributary signal rate";
- }
-
- identity TRIB_RATE_100G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "100G tributary signal rate";
- }
-
- identity TRIB_RATE_150G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "150G tributary signal rate";
- }
-
- identity TRIB_RATE_200G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "200G tributary signal rate";
- }
-
- identity TRIB_RATE_250G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "250G tributary signal rate";
- }
-
- identity TRIB_RATE_300G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "300G tributary signal rate";
- }
-
- identity TRIB_RATE_400G {
- base TRIBUTARY_RATE_CLASS_TYPE;
- description
- "400G tributary signal rate";
- }
-
- identity LOGICAL_ELEMENT_PROTOCOL_TYPE {
- description
- "Type of protocol framing used on the logical channel or
- tributary";
- }
-
- identity PROT_ETHERNET {
- base LOGICAL_ELEMENT_PROTOCOL_TYPE;
- description
- "Ethernet protocol framing";
- }
-
- identity PROT_OTN {
- base LOGICAL_ELEMENT_PROTOCOL_TYPE;
- description
- "OTN protocol framing";
- }
-
- identity OPTICAL_CHANNEL {
- base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
- description
- "Optical channels act as carriers for transport traffic
- directed over a line system. They are represented as
- physical components in the physical inventory model.";
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-wavelength-router.yang b/src/plugins/yang/openconfig/openconfig-wavelength-router.yang
deleted file mode 100644
index c6ad945..0000000
--- a/src/plugins/yang/openconfig/openconfig-wavelength-router.yang
+++ /dev/null
@@ -1,360 +0,0 @@
-module openconfig-wavelength-router {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/wavelength-router";
-
- prefix "oc-wave-router";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-platform { prefix oc-platform; }
- import openconfig-transport-types { prefix oc-opt-types; }
- import openconfig-types { prefix oc-types; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This model describes configuration and operational state data
- for an optical transport line system node, or ROADM (incl. CDC
- ROADMs, WSS, Dynamic Gain Equalizer/DGE).
-
- Nodes are modeled as a configurable switching element with
- ingress and egress ports, as well as a number of add/drop ports
- that can be set up to direct portions of the optical spectrum
- to the appropriate degrees.";
-
- oc-ext:openconfig-version "0.3.2";
-
- revision "2018-07-17" {
- description
- "Correct bug so that source/dest ports are components";
- reference "0.3.2";
- }
-
- revision "2017-09-08" {
- description
- "Correct bug with OSC interfaces";
- reference "0.3.1";
- }
-
- revision "2017-07-08" {
- description
- "Support multiple OCMs, add monitor port type
- and refs to hw ports, ";
- reference "0.3.0";
- }
-
- revision "2017-03-28" {
- description
- "Added min/max/avg stats, status for media channels, OCM, APS";
- reference "0.2.0";
- }
-
- revision "2016-03-31" {
- description
- "Initial public release";
- reference "0.1.0";
- }
-
-
-
- // grouping statements
-
- grouping media-channel-port-config {
- description
- "Configuration data for a media channel source/dest port";
-
- leaf port-name {
- type leafref {
- path "/oc-platform:components/oc-platform:component/" +
- "oc-platform:name";
- }
- description
- "Reference to the corresponding node port";
- }
- }
-
- grouping media-channel-port-state {
- description
- "Operational state data for a media channel source/dest port";
- }
-
- grouping media-channel-source-port-top {
- description
- "Top-level grouping for source of the media channel";
-
- container source {
- description
- "Top-level container for media channel source";
-
- container config {
- description
- "Configuration data for the media channel source";
-
- uses media-channel-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the media channel source";
-
- uses media-channel-port-config;
- uses media-channel-port-state;
- }
- }
- }
-
- grouping media-channel-dest-port-top {
- description
- "Top-level grouping for destination of the media channel";
-
- container dest {
- description
- "Top-level container for media channel destination";
-
- container config {
- description
- "Configuration data for the media channel destination";
-
- uses media-channel-port-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the media channel destination";
-
- uses media-channel-port-config;
- uses media-channel-port-state;
- }
- }
- }
-
- grouping media-channel-psd-config {
- description
- "Configuration data for the media channel PSD";
-
- leaf lower-frequency {
- type oc-opt-types:frequency-type;
- description
- "Lower frequency of the specified PSD";
- }
-
- leaf upper-frequency {
- type oc-opt-types:frequency-type;
- description
- "Upper frequency of the specified PSD";
- }
-
- leaf psd {
- type oc-types:ieeefloat32;
- units "nW/MHz";
- description
- "Power spectral density expressed in nanowatts per
- megahertz, nW/MHz. These units allow the value to often
- be greater than 1.0. It also avoids dealing with zero values
- for 0dBm. For example, a 40GHz wide channel
- with 0dBm power would be:
- 0dBm = 1mW = 10^6nW
- 40GHz = 40,000MHz
- 0dBm/40GHz = 10^6nW/40,000MHz = 1000/40 = 25";
- }
- }
-
- grouping media-channel-psd-state {
- description
- "Operational state data for the media channel PSD";
- }
-
- grouping media-channel-psd-top {
- description
- "Top-level grouping ";
-
- container psd-distribution {
- description
- "Enclosing container for the list of values describing
- the power spectral density distribution";
-
- list psd-value {
- key "lower-frequency upper-frequency";
- description
- "List of tuples describing the PSD distribution";
-
- leaf lower-frequency {
- type leafref {
- path "../config/lower-frequency";
- }
- description
- "Reference to the list key";
- }
-
- leaf upper-frequency {
- type leafref {
- path "../config/upper-frequency";
- }
- description
- "Reference to the list key";
- }
-
- container config {
- description
- "Configuration data for PSD";
-
- uses media-channel-psd-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for PSD";
-
- uses media-channel-psd-config;
- uses media-channel-psd-state;
- }
- }
- }
- }
-
- grouping media-channel-config {
- description
- "Configuration data for media channel definitions";
-
- leaf index {
- type uint32;
- description
- "Identifier for the defined media channel";
- }
-
- leaf name {
- type string;
- description
- "The user supplied name of the media channel";
- }
-
- leaf lower-frequency {
- type oc-opt-types:frequency-type;
- description
- "The lower frequency for the spectrum defined by this media
- channel";
- }
-
- leaf upper-frequency {
- type oc-opt-types:frequency-type;
- description
- "The upper frequency for the spectrum defined by this media
- channel";
- }
-
- leaf admin-status {
- type oc-opt-types:admin-state-type;
- description
- "Sets the admin status of the media channel";
- }
-
- }
-
- grouping media-channel-state {
- description
- "Operational state data for media channels ";
-
- leaf oper-status {
- type enumeration {
- enum UP {
- description
- "Media channel is operationally up";
- }
- enum DOWN {
- description
- "Media channel is operationally down";
- }
- }
- description
- "Operational state of the media channel";
- }
-
- }
-
- grouping media-channel-top {
- description
- "Top-level grouping for list of defined media channels";
-
- container media-channels {
- description
- "Enclosing container for media channel list";
-
- list channel {
- key "index";
- description
- "List of media channels";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "Reference to index number of the media channel";
- }
-
- container config {
- description
- "Configuration data ";
-
- uses media-channel-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses media-channel-config;
- uses media-channel-state;
- }
-
- uses media-channel-source-port-top;
- uses media-channel-dest-port-top;
- uses media-channel-psd-top;
- }
- }
- }
-
- grouping wavelength-router-top {
- description
- "Top level grouping for the wavelength router";
-
- container wavelength-router {
- description
- "Top-level container for wavelength router device";
-
- uses media-channel-top;
- }
- }
-
- // data definition statements
-
- uses wavelength-router-top;
-
- // augment statements
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-wifi-mac.yang b/src/plugins/yang/openconfig/openconfig-wifi-mac.yang
deleted file mode 100644
index 3d51215..0000000
--- a/src/plugins/yang/openconfig/openconfig-wifi-mac.yang
+++ /dev/null
@@ -1,1482 +0,0 @@
-module openconfig-wifi-mac {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/wifi/mac";
-
- // Assign this module a prefix to be used by other modules, when imported.
- prefix "oc-wifi-mac";
-
- import openconfig-yang-types { prefix oc-yang; }
- // OC-specific types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-vlan-types { prefix oc-vlan-types; }
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-wifi-types { prefix oc-wifi-types; }
- import openconfig-types { prefix oc-types; }
-
- // Some required meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Model for managing MAC layer configuration of Radio interfaces.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2017-12-21" {
- description
- "Add mobility-domain and move/create bssid-state list for
- counters.";
- reference "0.2.0";
- }
-
- revision "2017-07-25" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- grouping ssid-common-config {
- description
- "Configuration items common to all logical SSIDs.";
-
- leaf name {
- type string;
- description
- "The name of the SSID.";
- }
-
- leaf enabled {
- type boolean;
- default "true";
- description
- "The desired operational state (up/down) of this SSID.";
- }
-
- leaf hidden {
- type boolean;
- default "false";
- description
- "Whether this SSID IE is hidden within Beacons.";
- }
-
- leaf vlan-id {
- type oc-vlan-types:vlan-id;
- description
- "Optional VLAN tag used by the SSID. When unspecified, defaults
- to untagged.";
- }
-
- leaf operating-frequency {
- type identityref {
- base oc-wifi-types:OPERATING_FREQUENCY;
- }
- default "oc-wifi-types:FREQ_2_5_GHZ";
- description
- "Operating frequency of this SSID. When none specified, the default is
- dual-band.";
- }
-
- leaf-list basic-data-rates {
- type identityref {
- base oc-wifi-types:DATA_RATE;
- }
- description
- "Basic data-rates for the SSID.";
- }
-
- leaf-list supported-data-rates {
- type identityref {
- base oc-wifi-types:DATA_RATE;
- }
- description
- "Supported data-rates for the SSID.";
- }
- // MCS rates explicitly absent, as they are typically not pruned.
-
- leaf broadcast-filter {
- type boolean;
- description
- "Convert all downstream broadcast ARP to unicast
- only if Station is associated to the AP. Drop packet
- if Station is not associated to the AP. All other
- broadcast, except DHCP, is dropped by the AP.
-
- DHCP Offers/ACKs are converted to Unicast, over-the-air.";
- }
-
- leaf multicast-filter {
- type boolean;
- description
- "Drop all downstream Multicast packets.";
- }
-
- leaf ipv6-ndp-filter {
- type boolean;
- description
- "Neighbor Advertisements will be cached at the AP (or WLC)
- and unicast in response to Neighbor Solicitations.
-
- Router Advertisements, in response to a Router Solicitation
- are converted to Unicast for over-the-air transmission.";
- }
-
- leaf ipv6-ndp-filter-timer {
- type uint16;
- units seconds;
- description
- "Time, in seconds, the ndp-filter will cache
- Neighbor Advertisements (NA).";
- }
-
- leaf station-isolation {
- type boolean;
- description
- "Block Station peer to peer communication.";
- }
-
- leaf opmode {
- type enumeration {
- enum OPEN {
- description
- "Open authentication.";
- }
- enum WPA2_PERSONAL {
- description
- "WPA2-Personal with PSK authentication.";
- }
- enum WPA2_ENTERPRISE {
- description
- "WPA2-Enterprise with 802.1X authentication.";
- }
- }
- default "OPEN";
- description
- "The type of Layer2 authentication in use.";
- }
- // Note, legacy 802.11 auth methods (ie Shared Key) explicitly absent here.
- // It should never be used.
-
- leaf wpa2-psk {
- when "../opmode = 'WPA2_PERSONAL'";
- type string {
- length "8..63";
- }
- description
- "The passphrase used on this WPA2-Personal SSID.";
- }
-
- leaf server-group {
- when "../opmode = 'WPA2_ENTERPRISE' or ../opmode = 'WPA2_PERSONAL'";
- type string;
- description
- "Specifies the RADIUS server-group to be used,
- as defined in the openconfig-aaa.yang model.
-
- Including WPA2_PERSONAL as it can be accompained by MAB.";
- }
-
- leaf dva {
- type boolean;
- description
- "Enable/disable Dynamic VLAN Assignment,
- using 'Tunnel-Private-Group-Id' RADIUS attribute.";
- }
-
- leaf mobility-domain {
- type string;
- description
- "Specify the mobility domain where PMK-R0 distribution will occur.
- Specifically, which APs will recieve PMK-R0 if using 802.11r (FT).";
- }
-
- leaf dhcp-required {
- type boolean;
- description
- "Allow a Station to access the network only if
- a DHCP exchange has occurred.";
- }
-
- leaf qbss-load {
- type boolean;
- description
- "Advertisement of the QBSS Load Information ELement.";
- }
-
- leaf advertise-apname {
- type boolean;
- description
- "Advertise the AP hostname in Beacon and Probe Resp. frames.";
- }
-
- leaf csa {
- type boolean;
- default "true";
- description
- "Enable/Disable 802.11h channel-switch-announcement.";
- }
-
- leaf ptk-timeout {
- type uint16;
- units seconds;
- description
- "Time, in seconds, for the Pairwise Transient Key to be timed out.";
- }
-
- leaf gtk-timeout {
- type uint16;
- units seconds;
- description
- "TTL for the Group Temporal Key.";
- }
-
- leaf dot11k {
- type boolean;
- description
- "802.11k neighbor-list enabled/disabled.";
- }
-
- leaf okc {
- type boolean;
- description
- "Enable/disable Opportunistic Key Caching.";
- }
- }
-
- grouping dot11v-config {
- description
- "802.11v configuration & state data.";
-
- leaf dot11v-dms {
- type boolean;
- description
- "802.11v Directed Multicast Service enabled/disabled.";
- }
-
- leaf dot11v-bssidle {
- type boolean;
- description
- "802.11v BSS Max Idle enabled/disabled.";
- }
-
- leaf dot11v-bssidle-timeout {
- type uint16;
- units seconds;
- description
- "802.11v BSS Max Idle timeout.";
- }
-
- leaf dot11v-bsstransition {
- type boolean;
- description
- "802.11v BSS Transition enabled/disabled.";
- }
- }
-
- grouping dot11r-config {
- description
- "802.11r related configuration & state data.";
-
- leaf dot11r {
- type boolean;
- description
- "Enable/disable 802.11r FT.";
- }
-
- leaf dot11r-domainid {
- type uint16;
- description
- "Mobility Domain ID.";
- }
-
- leaf dot11r-method {
- type enumeration {
- enum OVA {
- description
- "802.11r Over-the-AIR.";
- }
- enum ODS {
- description
- "802.11r Over-the-DS.";
- }
- }
- default "OVA";
- description
- "The type of 802.11r FT in use.";
- }
-
- leaf dot11r-r1key-timeout {
- type uint16;
- units seconds;
- description
- "TTL for the Pairwise Master Key R1.";
- }
- // At present R1 Key distribution is left up to vendor. All APs in mgmnt
- // subnet, all APs on WLC etc.
- }
-
- grouping dot1x-timers-config {
- description
- "Configurable 802.1X timers, per ESS.";
-
- leaf max-auth-failures {
- type uint8;
- description
- "Number of consecutive authentication failures,
- via RADIUS Access-Reject, before Station
- is blacklisted.";
- }
-
- leaf blacklist-time {
- type uint16;
- units seconds;
- description
- "Length of time, in seconds, a Station will be
- blacklisted as a result of max-auth-failures.";
- }
- }
-
- grouping wmm-config {
- description
- "WMM & QoS marking config, per BSS.";
-
- leaf trust-dscp {
- type boolean;
- default "true";
- description
- "The AP should trust DSCP on 802.11 frames received
- in this BSS.";
- }
-
- leaf-list wmm-vo-remark {
- type uint8;
- max-elements 8;
- description
- "Allowed DSCP markings for WMM AC_VO. Remark to lowest in this list
- if DSCP marking falls outside of these allowed markings.
-
- From 1 (min) to 8 (max) integers.";
- }
-
- leaf-list wmm-vi-remark {
- type uint8;
- max-elements 8;
- description
- "Allowed DSCP markings for WMM AC_VI. Remark to lowest in this list
- if DSCP marking falls outside of these allowed markings.
-
- From 1 (min) to 8 (max) integers.";
- }
-
- leaf-list wmm-be-remark {
- type uint8;
- max-elements 8;
- description
- "Allowed DSCP markings for WMM AC_BE. Remark to lowest in this list
- if DSCP marking falls outside of these allowed markings.
-
- From 1 (min) to 8 (max) integers.";
- }
-
- leaf-list wmm-bk-remark {
- type uint8;
- max-elements 8;
- description
- "Allowed DSCP markings for WMM AC_BK. Remark to lowest in this list
- if DSCP marking falls outside of these allowed markings.
-
- From 1 (min) to 8 (max) integers.";
- }
- }
-
- grouping band-steering-config {
- description
- "Grouping for band-steering specific configuration.";
-
- leaf band-steering {
- type boolean;
- description
- "Enable/disable band-steering.";
- }
-
- leaf steering-rssi {
- type int8;
- description
- "Minimum RSSI a dual-band Station's Probe Request
- must be heard at on a 5GHz radio, in order for
- band-steering to withhold 2.4GHz Probe Responses.";
- }
- }
-
- grouping ssid-common-state {
- description
- "Grouping for defining ssid-specific operational state";
-
- leaf bssid {
- type oc-yang:mac-address;
- description
- "Represents the BSSID. Typically this is base-radio mac +/- in last
- octet; though not strictly required.";
- }
-
- leaf bss-channel-utilization {
- type oc-types:percentage;
- description
- "Total 802.11 channel utilization on this BSS. The total channel
- utilization should include all time periods the AP spent actively
- receiving and transmitting 802.11 frames on this BSS.";
- }
-
- leaf rx-bss-dot11-channel-utilization {
- type oc-types:percentage;
- description
- "Rx channel utilization percent for this BSS.";
- }
-
- leaf tx-bss-dot11-channel-utilization {
- type oc-types:percentage;
- description
- "Tx channel utilization percent for this BSS.";
- }
- }
-
- grouping bss-common-state {
- description
- "Grouping for defining bss-specific operational state.";
-
- leaf ess {
- type leafref {
- path "../../../../ssids/ssid/name";
- }
- description
- "Name of the ESS this BSS is utilizing.";
- }
-
- leaf num-associated-clients {
- type uint8;
- description
- "Number of associated STAs to this BSS.";
- }
- }
-
- grouping bssid-counters-state {
- description
- "BSSID telemetry statistics.";
-
- leaf bssid {
- type oc-yang:mac-address;
- description
- "MAC of the BSS.";
- }
-
- container counters {
- config false;
- description
- "BSS Counters.";
-
- // Rx Counters
- leaf rx-mgmt {
- type oc-yang:counter64;
- description
- "Received 802.11 Management frames.";
- }
-
- leaf rx-control {
- type oc-yang:counter64;
- description
- "Received 802.11 Control frames.";
- }
-
- container rx-data-dist {
- description
- "The distribution of Data frame sizes in bytes of successfully
- recieved AMPDU, or MPDU for non-aggregated, frames.
- The distribution should characterize frame sizes starting at 64 bytes
- or less with the bin size doubling for each successive bin to a
- maximum of 1MB or larger, as represented in the following table:
-
- Lower Bound Upper Bound
- 0 64
- 65 128
- 129 256
- 257 512
- 513 1024
- 1025 2048
- 2049 4096
- 4097 8192
- 8193 16384
- 16385 32768
- 32769 65536
- 65537 131072
- 131073 262144
- 262145 524288
- 524289 1048576";
-
- leaf rx-0-64 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 0 to 64 Bytes.";
- }
-
- leaf rx-65-128 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 65 to 128 Bytes.";
- }
-
- leaf rx-129-256 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 129 to 256 Bytes.";
- }
-
- leaf rx-257-512 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 257 to 512 Bytes.";
- }
-
- leaf rx-513-1024 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.";
- }
-
- leaf rx-1025-2048 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.";
- }
-
- leaf rx-2049-4096 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.";
- }
-
- leaf rx-4097-8192 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.";
- }
-
- leaf rx-8193-16384 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.";
- }
-
- leaf rx-16385-32768 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.";
- }
-
- leaf rx-32769-65536 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.";
- }
-
- leaf rx-65537-131072 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU from 65537 to 131072 Bytes.";
- }
-
- leaf rx-131073-262144 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU from 131073 to 262144 Bytes.";
- }
-
- leaf rx-262145-524288 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU from 262145 to 524288 Bytes.";
- }
-
- leaf rx-524289-1048576 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU from 524289 to 1048576 Bytes.";
- }
- }
-
- container rx-data-wmm {
- description
- "Received 802.11 Data frames, per WMM Access Category.";
-
- leaf vi {
- type oc-yang:counter64;
- description
- "Rx Data frames marked as Access Category Video.";
- }
-
- leaf vo {
- type oc-yang:counter64;
- description
- "Rx Data frames marked as Access Category Voice.";
- }
-
- leaf be {
- type oc-yang:counter64;
- description
- "Rx Data frames marked as Access Category Best Effort.";
- }
-
- leaf bk {
- type oc-yang:counter64;
- description
- "Rx Data frames marked as Access Category Background.";
- }
- }
-
- container rx-mcs {
- description
- "Received Data frames, per MCS Index. It is expected that vendors
- bucketize 802.11n MCS frames in their matching 802.11ac buckets.
-
- Example, 802.11n MCS 15 = 802.11ac MCS 7.
- 802.11n MCS 20 = 802.11ac MCS 4.";
-
- leaf mcs0 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 0.";
- }
-
- leaf mcs1 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 1.";
- }
-
- leaf mcs2 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 2.";
- }
-
- leaf mcs3 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 3.";
- }
-
- leaf mcs4 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 4.";
- }
-
- leaf mcs5 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 5.";
- }
-
- leaf mcs6 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 6.";
- }
-
- leaf mcs7 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 7.";
- }
-
- leaf mcs8 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 8.";
- }
-
- leaf mcs9 {
- type oc-yang:counter64;
- description
- "Rx Data frames at MCS 9.";
- }
- }
-
- leaf rx-retries {
- type oc-yang:counter64;
- description
- "Total number of received frames with the Retry bit set, within this
- BSS.";
- }
-
- leaf rx-retries-data {
- type oc-yang:counter64;
- description
- "Number of received QoS Data frames with the Retry bit set";
- }
- leaf rx-retries-subframe {
- type oc-yang:counter64;
- description
- "Aggregated MPDUs which had individual subframes that fail and require
- retransmission.";
- }
-
- leaf rx-bytes-data {
- type oc-yang:counter64;
- description
- "Bytes received from QoS Data frames";
- }
-
- // Tx Counters
- leaf tx-mgmt {
- type oc-yang:counter64;
- description
- "Transmitted 802.11 Management frames.";
- }
-
- leaf tx-control {
- type oc-yang:counter64;
- description
- "Transmitted 802.11 Control frames.";
- }
-
- container tx-data-dist {
- description
- "The distribution of Data frame sizes in bytes of successfully transmitted
- AMPDU, or MPDU for non-aggregated, frames.
- The distribution should characterize frame sizes starting at 64 bytes
- or less with the bin size doubling for each successive bin to a
- maximum of 1MB or larger, as represented in the following table:
-
- Lower Bound Upper Bound
- 0 64
- 65 128
- 129 256
- 257 512
- 513 1024
- 1025 2048
- 2049 4096
- 4097 8192
- 8193 16384
- 16385 32768
- 32769 65536
- 65537 131072
- 131073 262144
- 262145 524288
- 524289 1048576";
-
- leaf tx-0-64 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 0 to 64 Bytes.";
- }
-
- leaf tx-65-128 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 65 to 128 Bytes.";
- }
-
- leaf tx-129-256 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 129 to 256 Bytes.";
- }
-
- leaf tx-257-512 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 257 to 512 Bytes.";
- }
-
- leaf tx-513-1024 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 513 to 1024 Bytes.";
- }
-
- leaf tx-1025-2048 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 1025 to 2048 Bytes.";
- }
-
- leaf tx-2049-4096 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 2049 to 4096 Bytes.";
- }
-
- leaf tx-4097-8192 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 4097 to 8192 Bytes.";
- }
-
- leaf tx-8193-16384 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 8193 to 16384 Bytes.";
- }
-
- leaf tx-16385-32768 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 16385 to 32768 Bytes.";
- }
-
- leaf tx-32769-65536 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU or MPDUs from 32769 to 65536 Bytes.";
- }
-
- leaf tx-65537-131072 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU from 65537 to 131072 Bytes.";
- }
-
- leaf tx-131073-262144 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU from 131073 to 262144 Bytes.";
- }
-
- leaf tx-262145-524288 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU from 262145 to 524288 Bytes.";
- }
-
- leaf tx-524289-1048576 {
- type oc-yang:counter64;
- description
- "Transmitted AMPDU from 524289 to 1048576 Bytes.";
- }
- }
-
- container tx-data-wmm {
- description
- "Transmitted QoS Data frames, per WMM AC.";
- leaf vi {
- type oc-yang:counter64;
- description
- "Tx Data frames marked as Access Category Video.";
- }
-
- leaf vo {
- type oc-yang:counter64;
- description
- "Tx Data frames marked as Access Category Voice.";
- }
-
- leaf bk {
- type oc-yang:counter64;
- description
- "Tx Data frames marked as Access Category Background.";
- }
-
- leaf be {
- type oc-yang:counter64;
- description
- "Tx Data frames marked as Access Category Best Effort.";
- }
- }
-
- container tx-mcs {
- description
- "Transmitted Data frames, per MCS Index. It is expected that vendors
- bucketize 802.11n MCS frames in their matching 802.11ac buckets.
-
- Example, 802.11n MCS 15 = 802.11ac MCS 7.
- 802.11n MCS 20 = 802.11ac MCS 4.";
-
- leaf mcs0 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 0.";
- }
-
- leaf mcs1 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 1.";
- }
-
- leaf mcs2 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 2.";
- }
-
- leaf mcs3 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 3.";
- }
-
- leaf mcs4 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 4.";
- }
-
- leaf mcs5 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 5.";
- }
-
- leaf mcs6 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 6.";
- }
-
- leaf mcs7 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 7.";
- }
-
- leaf mcs8 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 8.";
- }
-
- leaf mcs9 {
- type oc-yang:counter64;
- description
- "Tx Data frames at MCS 9.";
- }
- }
-
- leaf tx-retries {
- type oc-yang:counter64;
- description
- "Number of frames transmitted with the Retry bit set";
- }
-
- leaf tx-retries-data {
- type oc-yang:counter64;
- description
- "Number of transmitted QoS Data frames with the Retry bit set";
- }
-
- leaf tx-retries-subframe {
- type oc-yang:counter64;
- description
- "Aggregated MPDUs which had individual subframes that fail and require
- retransmission.";
- }
-
- leaf tx-bytes-data {
- type oc-yang:counter64;
- description
- "Bytes transmitted from QoS Data frames";
- }
- }
- }
-
- grouping clients-state {
- description
- "List of clients; followed by state data, per client.";
-
- leaf mac {
- type oc-yang:mac-address;
- description
- "MAC address of the client.";
- }
-
- container counters {
- description
- "Per-client counters.";
-
- leaf tx-bytes {
- type oc-yang:counter64;
- description
- "Tx Bytes to this client.";
- }
-
- leaf rx-bytes {
- type oc-yang:counter64;
- description
- "Rx Bytes from this client.";
- }
-
- leaf rx-retries {
- type oc-yang:counter64;
- description
- "Rx retried frames from this client.";
- }
-
- leaf tx-retries {
- type oc-yang:counter64;
- description
- "Tx retried frames to this client.";
- }
- }
- }
-
- grouping client-connect-state {
- description
- "Grouping for connection state related data, per client.";
-
- container state {
- description
- "Container for connection state related data, per client.";
-
- leaf client-state {
- type identityref {
- base oc-wifi-types:CLIENT_STATE;
- }
- description
- "Various states a Client STA may be in.";
- }
-
- leaf connection-time {
- type uint16;
- units seconds;
- description
- "Time, in seconds, since Client Association.";
- }
-
- leaf username {
- type string;
- description
- "Username of Client; can be outer-identity (if PEAP),
- CN of certificate (if EAP-TLS) etc.";
- }
-
- leaf hostname {
- type string;
- description
- "Hostname of the client, as discovered via DHCP, mDNS
- or otherwise.";
- }
-
- leaf ipv4-address {
- type oc-inet:ipv4-address;
- description
- "IPv4 address of the client.";
- }
-
- leaf ipv6-address {
- type oc-inet:ipv6-address;
- description
- "IPv6 address of the client.";
- }
-
- leaf operating-system {
- type string;
- description
- "Optional/if known; the OS of the client.";
- }
- }
- }
-
- grouping dot11k-neighbors-state {
- description
- "Grouping for Client beacon reports. Requires 802.11k enabled.
- See Sec. 5.2.7.1 of 802.11k-2008 Standard.";
- container state {
- description
- "Container for Client beacon reports. Requires 802.11k enabled.
- See Sec. 5.2.7.1 of 802.11k-2008 Standard.";
-
- leaf neighbor-bssid {
- type oc-yang:mac-address;
- description
- "The BSSID of this neighbor.";
- }
-
- leaf neighbor-channel {
- type uint8;
- description
- "The channel of this neighbor.";
- }
-
- leaf neighbor-rssi {
- type int8;
- description
- "The RSSI of this neighbor in dBm, expressed as a negative number.";
- }
-
- leaf neighbor-antenna {
- type uint8;
- description
- "Antenna details for this neighbor.";
- }
-
- leaf channel-load-report {
- type uint8;
- description
- "Channel load, as reported by Client to AP
- normalized to 255. See Sec. 10.11.9.3 of 802.11ac-2013 Spec.";
- }
- }
- }
-
- grouping client-capabilities-state {
- description
- "Groupig for Client capabilities, as reported by Assoc. Req. or
- Probe Req. frames. Capability is supported, if present.";
- container state {
- description
- "Container for Client capabilities, as reported by Assoc. Req. or
- Probe Req. frames. Capability is supported, if present.";
- leaf-list client-capabilities {
- type identityref {
- base oc-wifi-types:CLIENT_CAPABILITIES;
- }
- description
- "Features supported by client that are Optional
- within the 802.11 specifications.";
- }
-
- leaf-list channel-support {
- type uint8;
- description
- "List of supported channels.";
- }
- }
- }
-
- grouping client-rf-state {
- description
- "Grouping for RF related client state data.";
- container state {
- description
- "Container for RF related client state data.";
-
- leaf rssi {
- type int8;
- description
- "The RSSI of this client in dBm. Expressed as negative number";
- }
-
- leaf snr {
- type uint8;
- description
- "The SNR of AP to Client, in dB.";
- }
-
- leaf ss {
- type uint8;
- description
- "Number of Spatial Streams supported by the client.";
- }
-
- leaf phy-rate {
- type uint16;
- description
- "Last used PHY rate of connected client.";
- }
-
- leaf connection-mode {
- type enumeration {
- enum A {
- description
- "Client connected using 802.11a.";
- }
- enum B {
- description
- "Client connected using 802.11b.";
- }
- enum G {
- description
- "Client connected using 802.11g.";
- }
- enum N {
- description
- "Client connected using 802.11n.";
- }
- enum AC {
- description
- "Client connected using 802.11ac.";
- }
- }
- description
- "802.11 protocol used for the client's connection.";
- }
-
- leaf frequency {
- type uint8;
- description
- "Frequency the client is utilizing. Typically, 2.4 or 5[GHz].";
- }
- }
- }
-
- grouping clients-top {
- description
- "Top-level grouping for clients operational state data.";
-
- container clients {
- description
- "Top-level container for clients operational state data.";
- list client {
- key "mac";
- config false;
- description
- "List of clients per BSS.";
- leaf mac {
- type leafref {
- path "../state/mac";
- }
- config false;
- description
- "The clients WiFi MAC address.";
- }
-
- container state {
- config false;
- description
- "Client state data.";
- uses clients-state;
- }
-
- container client-rf {
- config false;
- description
- "RF radio-data per non-AP STA.";
-
- uses client-rf-state;
- }
-
- container client-capabilities {
- config false;
- description
- "Capabilites as advertised by the Client.";
-
- uses client-capabilities-state;
- }
-
- container dot11k-neighbors {
- config false;
- description
- "80211.k nieghbor information given from the Client to
- the infrastructure.";
-
- uses dot11k-neighbors-state;
- }
-
- container client-connection {
- config false;
- description
- "Connection-state and meta-data associated with the Client.";
-
- uses client-connect-state;
- }
- }
- }
- }
-
- grouping wmm-top {
- description
- "Top-level grouping for WMM configuration and operational
- state data.";
-
- container wmm {
- description
- "Top-level container for WMM configuration and
- state container.";
- container config {
- description
- "Container for WMM configuration elements.";
- uses wmm-config;
- }
-
- container state {
- config false;
- description
- "Container for WMM state elements.";
- uses wmm-config;
- }
- }
- }
-
- grouping dot11r-top {
- description
- "Top-level grouping for 802.11r configuration and
- operational state data.";
-
- container dot11r {
- description
- "Top-level container for 802.11r configuration and
- state container.";
- container config {
- description
- "Container for 802.11r configuration elements.";
- uses dot11r-config;
- }
-
- container state {
- config false;
- description
- "Container for 802.11r state elements.";
- uses dot11r-config;
- }
- }
- }
-
- grouping dot11v-top {
- description
- "Top-level grouping for 802.11v configuration and
- operational state data.";
-
- container dot11v {
- description
- "Top-level container for 802.11v configuration and
- operational state data.";
- container config {
- description
- "Container for 802.11v configuration elements.";
- uses dot11v-config;
- }
-
- container state {
- config false;
- description
- "Container for 802.11r state elements.";
- uses dot11v-config;
- }
- }
- }
-
- grouping dot1x-timers-top {
- description
- "Top-level grouping for dot1x configuration and
- operational state data.";
-
- container dot1x-timers {
- description
- "Top-level container for dot1x configuration
- and operational state data.";
- container config {
- description
- "Container for dot1x configuration elements.";
- uses dot1x-timers-config;
- }
-
- container state {
- config false;
- description
- "Container for dot1x state elements.";
- uses dot1x-timers-config;
- }
- }
- }
-
- grouping band-steering-top {
- description
- "Top-level grouping for band-steering configuration
- and operational state data.";
-
- container band-steering {
- description
- "Top-level container for band-steering configuration
- and operational state data.";
- container config {
- description
- "Container for band-steering configuration elements.";
- uses band-steering-config;
- }
-
- container state {
- config false;
- description
- "Container for band-steering state elements.";
- uses band-steering-config;
- }
- }
- }
-
- grouping bssid-counters-top {
- description
- "Top-level grouping for BSSID operational state data.";
-
- container bssids {
- description
- "Top-level container for BSSID operational state data.";
- list bssid {
- key "bssid";
- config false;
- description
- "List of BSSIDs.";
- leaf bssid {
- type leafref {
- path "../state/bssid";
- }
- config false;
- description
- "The BSSID MAC address.";
- }
-
- container state {
- config false;
- description
- "BSSID state data.";
-
- uses bss-common-state;
- uses bssid-counters-state;
- }
- }
- }
- }
-
- grouping ssid-top {
- description
- "Top-level grouping for ssid configuration and operational state data.";
-
- container ssids {
- description
- "Top level container for ssids, including configuration
- and state data.";
-
- list ssid {
- key "name";
- description
- "The list of named ssids on the APs.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "References the configured name of the ssid";
- }
-
- container config {
- description
- "Configurable items at the global, ssid level";
-
- uses ssid-common-config;
- }
-
- container state {
- config false;
- description
- "Operational state data at the ssid level";
-
- uses ssid-common-config;
- uses ssid-common-state;
- }
- uses wmm-top;
- uses dot11r-top;
- uses dot11v-top;
- uses clients-top;
- uses dot1x-timers-top;
- uses band-steering-top;
- }
- }
- }
- uses ssid-top;
- uses bssid-counters-top;
-}
diff --git a/src/plugins/yang/openconfig/openconfig-wifi-phy.yang b/src/plugins/yang/openconfig/openconfig-wifi-phy.yang
deleted file mode 100644
index 7c4453c..0000000
--- a/src/plugins/yang/openconfig/openconfig-wifi-phy.yang
+++ /dev/null
@@ -1,393 +0,0 @@
-module openconfig-wifi-phy {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/wifi/phy";
-
- // Assign this module a prefix to be used by other modules, when imported.
- prefix "oc-wifi-phy";
-
- // Imports
- import openconfig-yang-types { prefix oc-yang; }
- // OC-specific types
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-types { prefix oc-types; }
- import openconfig-wifi-types { prefix oc-wifi-types; }
-
- // Some required meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "Model for managing PHY layer configuration of Radio interfaces.";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2017-12-21" {
- description
- "Add last-seen to neighbor-table.";
- reference "0.2.0";
- }
-
- revision "2017-11-06" {
- description
- "Add SSID to neighbor-table.";
- reference "0.1.1";
- }
-
- revision "2017-07-25" {
- description
- "Initial revision.";
- reference "0.1.0";
- }
-
- // Grouping statements
- grouping radio-common-config {
- description
- "Configuration items common to all Radio interfaces, independent
- of frequency";
-
- leaf id {
- type uint8;
- description
- "Unique ID of the radio.";
- }
-
- leaf operating-frequency {
- type identityref {
- base oc-wifi-types:OPERATING_FREQUENCY;
- }
- description
- "Operating frequency of this radio.";
- }
-
- leaf enabled {
- type boolean;
- default "true";
- description
- "The desired operational state (up/down) of this radio interface.";
- }
-
- leaf transmit-power {
- type uint8;
- units dBm;
- default 9;
- description
- "Transmit power of the radio, in dBm.";
- }
-
- leaf channel {
- type uint8 {
- range "1..165";
- }
- description
- "Operating channel of this radio. If using channel-bonding this
- will represent the Primary 20MHz channel of the 40,80,160MHz channel.";
- }
-
- leaf channel-width {
- type uint8;
- units MHz;
- default 20;
- description
- "Operating channel-width of this radio.";
- }
-
- leaf dca {
- type boolean;
- default "true";
- description
- "Utilize Dynamic Channel Assignment on this Radio.";
- }
-
- leaf-list allowed-channels {
- type oc-wifi-types:channels-type;
- description
- "Allowed channel list for this Radio to utilize.";
- }
-
- leaf dtp {
- type boolean;
- default "true";
- description
- "Utilize dynamic transmit-power on this Radio.";
- }
-
- leaf dtp-min {
- when "../dtp = 'true'";
- type uint8;
- default '3';
- description
- "Minimum allowed transmit-power on this radio, if utilizing dtp.
- Expressed in dBm.";
- }
-
- leaf dtp-max {
- when "../dtp = 'true'";
- type uint8;
- default '15';
- description
- "Maximum allowed transmit-power on this radio, if utilizing dtp.
- Expressed in dBm.";
- }
-
- leaf antenna-gain {
- type int8;
- description
- "Antenna gain applied to this Radio; typically used when
- external antennae connected.";
- }
-
- leaf scanning {
- type boolean;
- default "true";
- description
- "Whether the radio will perform off-channel scanning, to collect
- neighboring RF information.";
- }
-
- leaf scanning-interval {
- type uint8;
- units seconds;
- description
- "How often, in seconds, the radio will go off-channel to perform
- scanning.";
- }
-
- leaf scanning-dwell-time {
- type uint16;
- units milliseconds;
- description
- "Amount of time, in milliseconds, the radio will spend on a
- channel during scanning-interval. If a Monitor-mode Radio, it will
- cycle through scanning-allowed-channels spending this amount of time
- on each.";
- }
-
- leaf scanning-defer-clients {
- type uint8;
- description
- "Do not perform scanning if this amount of Stations are Associated
- to the Radio.";
- }
-
- leaf scanning-defer-traffic {
- type boolean;
- description
- "Do not perform scanning if any traffic received from an active Station
- in the past 100ms marked as AC_VO or AC_VI.";
- }
- }
-
- grouping radio-common-state {
- description
- "Grouping for defining radio-specific operational state";
-
- leaf base-radio-mac {
- type oc-yang:mac-address;
- description
- "Represents the 'burned-in' base-radio MAC
- address for the a Radio interface.";
- }
-
- leaf dfs-hit-time {
- type oc-types:timeticks64;
- description
- "Reports the time of the last DFS hit. The value is the timestamp
- in seconds relative to the Unix Epoch (Jan 1, 1970 00:00:00 UTC).";
- }
-
- leaf channel-change-reason {
- type identityref {
- base oc-wifi-types:CHANGE_REASON_TYPE;
- }
- description
- "When an Access Point changes channels, this will
- provide the reason that led to the change.";
- }
-
- leaf total-channel-utilization {
- type oc-types:percentage;
- description
- "Total 802.11 and non-802.11 channel utilization on this Radio. The
- total channel utilization should include all time periods the AP
- spent actively receiving and transmitting 802.11 frames, and also
- include all time spent with clear channel assessment (CCA) in a
- busy state";
- }
-
- leaf rx-dot11-channel-utilization {
- type oc-types:percentage;
- description
- "Received channel-utilization due to 802.11 frames";
- }
-
- leaf rx-noise-channel-utilization {
- type oc-types:percentage;
- description
- "Received channel-utilization percentage due to Noise.";
- }
-
- leaf tx-dot11-channel-utilization {
- type oc-types:percentage;
- description
- "Transmit channel-utilization percentage.";
- }
- }
-
- grouping radio-counters-state {
- description
- "Radio telemetry statistics.";
- container counters {
- description
- "A collection of radio-related statistics objects.";
-
- // Rx Counters
- leaf failed-fcs-frames {
- type oc-yang:counter64;
- description
- "Number of frames that failed the FCS";
- }
-
- // Tx Counters
- leaf noise-floor {
- type int8;
- description
- "Noise Floor, as measured by this radio.";
- }
- }
- }
-
- // neighbor BSSID | SSID | RSSI | Channel | Center Channel | Last-seen
- grouping neighbor-list-state {
- description
- "Operational state data relating to neighboring
- BSSIDs and their received signal strength.";
- leaf bssid {
- type oc-yang:mac-address;
- description
- "Neighboring BSSID.";
- }
-
- leaf ssid {
- type string;
- description
- "The SSID of this neighboring BSSID.";
- }
-
- leaf rssi {
- type int8;
- description
- "The RSSI of this neighboring BSSID.";
- }
-
- leaf channel {
- type uint16;
- description
- "The channel of this neighboring BSSID. This is to utilize 802.11ac
- nomenclature. For example, 40MHz channel 36-40 represented as
- channel 38. primary-channel used to identify the primary
- 20MHz channel of the neighbor.";
- }
-
- leaf primary-channel {
- type uint16;
- description
- "The primary 20MHz channel, if the neighbor is operating on bonded
- channel.";
- }
-
- leaf last-seen {
- type oc-types:timeticks64;
- description
- "Reports the time this reading was taken, indicating when this neighbor
- was last seen. If a cache is used, it MUST be updated instantly when a
- neighbor BSS changes channels, or a new BSS is seen. The value is the
- timestamp in seconds relative to the Unix Epoch
- (Jan 1, 1970 00:00:00 UTC).";
- }
- }
-
- grouping neighbor-bssid-top {
- description
- "Top-level grouping for neighbor table
- operational state data.";
-
- container neighbors {
- description
- "Top-level container for RF neighbors.";
- list neighbor {
- key "bssid";
- config false;
- description
- "The mac address, or BSSID, of a neighbor, and
- their corresponding RSSI.";
-
- leaf bssid {
- type leafref {
- path "../state/bssid";
- }
- config false;
- description "Reference to neighbor bssid.";
- }
-
- container state {
- config false;
- description
- "State container for RF neighbors.";
- uses neighbor-list-state;
- }
- }
- }
- }
-
- grouping radio-top {
- description
- "Top-level grouping for radio configuration and
- operational state data";
-
- container radios {
- description
- "Top level container for radios, including configuration
- and state data.";
-
- list radio {
- key "id";
- description
- "The list of radios on the device.";
-
- leaf id {
- type leafref {
- path "../config/id";
- }
- description
- "References the configured id of the radio";
- }
-
- container config {
- description
- "Configurable items at the global, radio interface
- level";
-
- uses radio-common-config;
- }
-
- container state {
- config false;
- description
- "Operational state data at the global radio level";
-
- uses radio-common-config;
- uses radio-common-state;
- uses radio-counters-state;
- }
- uses neighbor-bssid-top;
- }
- }
- }
- uses radio-top;
-}
diff --git a/src/plugins/yang/openconfig/openconfig-wifi-types.yang b/src/plugins/yang/openconfig/openconfig-wifi-types.yang
deleted file mode 100644
index 01bf89c..0000000
--- a/src/plugins/yang/openconfig/openconfig-wifi-types.yang
+++ /dev/null
@@ -1,295 +0,0 @@
-module openconfig-wifi-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/wifi/types";
-
- // Assign this module a prefix to be used by other modules, when imported.
- prefix "oc-wifi-types";
-
- import openconfig-extensions { prefix oc-ext; }
-
- // Some required meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module contains a set of WiFi-specific type definitions
- that are used in the openconfig-wifi modules. It can be
- imported by any module to make use of these types.";
-
- oc-ext:openconfig-version "0.1.0";
-
- revision "2017-07-25" {
- description
- "Initial revision";
- reference "0.1.0";
- }
-
- //typdef statements
- typedef channels-type {
- type uint8 {
- range "1..14 | 36 | 40 | 44| 48 | 52 | 56 | 60 | 64 | 100 | 104 | 108 | 112 | 116 | 120 | 124 | 128 | 132 | 136 | 140 | 144 | 149 | 153 | 157 | 161 | 165";
- }
- description
- "Type to specify all the WiFi channels available for use. This is
- a superset of what may be allowed by any one particular regulatory
- domain.";
- }
-
- // identity statements
- identity CLIENT_STATE {
- description
- "Base type to specify the current state of a Client.";
- }
-
- identity ASSOCIATED {
- base CLIENT_STATE;
- description
- "Client has finished 802.11 Association phase. This implies 'Open' system,
- or 802.11 Authentication complete.";
- }
-
- identity L2AUTH_REQD {
- base CLIENT_STATE;
- description
- "Client has Assocated, but not L2 Authenticated (e.g. 802.1X)";
- }
-
- identity L3AUTH_REQD {
- base CLIENT_STATE;
- description
- "Client has Assocated, but not L3 Authenticated (e.g. Captive Portal)";
- }
-
- identity DHCP_REQD {
- base CLIENT_STATE;
- description
- "Client has Associated & Authenticated, but has not obtained IP address.";
- }
-
- identity AUTHENTICATED {
- base CLIENT_STATE;
- description
- "Client has fully Authenticated & permitted to access network resources.";
- }
-
- identity L2AUTH_FAILURE_REJECT {
- base CLIENT_STATE;
- description
- "L2 failure, due to RADIUS Access-Reject.";
- }
-
- identity L2AUTH_FAILURE_TIMEOUT {
- base CLIENT_STATE;
- description
- "L2 failure, due to RADIUS timeout.";
- }
-
- identity L3AUTH_FAILURE {
- base CLIENT_STATE;
- description
- "L3 failure. Could be incorrect CP credentials or higher layer
- Captive Portal issues.";
- }
-
- identity DHCP_FAILURE {
- base CLIENT_STATE;
- description
- "Client has Associated & Authenticated but has failed to recieve an IP
- address, utilizing DHCP.";
- }
-
- identity POWERSAVE {
- base CLIENT_STATE;
- description
- "AP has recieved a PS frame, indicating the client is currently in a
- powersave state.";
- }
-
- identity BLACKLISTED {
- base CLIENT_STATE;
- description
- "This client has been blacklisted, through either L2 (MAC) or higher-level
- (signature) mechanisms.";
- }
-
- identity AP_STATE {
- description "The Up/Down state of an AP.";
- }
-
- identity UP {
- base AP_STATE;
- description
- "The AP is in the up state.";
- }
-
- identity DOWN {
- base AP_STATE;
- description
- "The AP is in the down state.";
- }
-
- identity UPGRADING {
- base AP_STATE;
- description
- "The AP is in the Downgrading firmware state.";
- }
-
- // Possible basic-rates are: 1, 2, 5.5, 6, 9, 11, 12, 18, 24, 36, 48, 54 //
- identity DATA_RATE {
- description "base type to specify available Data-rates.";
- }
-
- identity RATE_1MB {
- base DATA_RATE;
- description "1 Mbps DSSS PHY";
- }
-
- identity RATE_2MB {
- base DATA_RATE;
- description "2 Mbps DSSS PHY";
- }
-
- identity RATE_5.5MB {
- base DATA_RATE;
- description "5.5 Mbps DSSS PHY";
- }
-
- identity RATE_6MB {
- base DATA_RATE;
- description "6 Mbps OFDM PHY";
- }
-
- identity RATE_9MB {
- base DATA_RATE;
- description "9 Mbps OFDM PHY";
- }
-
- identity RATE_11MB {
- base DATA_RATE;
- description "11 Mbps DSSS PHY";
- }
-
- identity RATE_12MB {
- base DATA_RATE;
- description "12 Mbps OFDM PHY";
- }
-
- identity RATE_18MB {
- base DATA_RATE;
- description "18 Mbps OFDM PHY";
- }
-
- identity RATE_24MB {
- base DATA_RATE;
- description "24 Mbps OFDM PHY";
- }
-
- identity RATE_36MB {
- base DATA_RATE;
- description "36 Mbps OFDM PHY";
- }
-
- identity RATE_48MB {
- base DATA_RATE;
- description "48 Mbps OFDM PHY";
- }
-
- identity RATE_54MB {
- base DATA_RATE;
- description "54 Mbps OFDM PHY";
- }
-
- identity OPERATING_FREQUENCY {
- description "Operating frequency of a Radio or SSID.";
- }
-
- identity FREQ_2GHZ {
- base OPERATING_FREQUENCY;
- description "The Radio or SSID will operate at 2.4GHz only.";
- }
-
- identity FREQ_5GHZ {
- base OPERATING_FREQUENCY;
- description "The Radio or SSID will operate at 5GHz only.";
- }
-
- identity FREQ_2_5_GHZ {
- base OPERATING_FREQUENCY;
- description
- "The Radio or SSID will be dual-band; operating in
- both 2.4 & 5GHz frequencies.
-
- Dual-band Radio typically refers to a Monitor-mode radio, hopping
- between frequencies, dwelling for a configurable amount of time on
- each frequency.";
- }
-
- identity CLIENT_CAPABILITIES {
- description
- "Client capabilities, as reported by Assoc. Req. or
- Probe Req. frames.";
- }
-
- identity MU_BEAMFORMER {
- base CLIENT_CAPABILITIES;
- description "Whether this STA can MU-MIMO Beamform.";
- }
-
- identity MU_BEAMFORMEE {
- base CLIENT_CAPABILITIES;
- description "Whether this STA can Rx MU-MIMO Beamformed frames.";
- }
-
- identity DOT_11R {
- base CLIENT_CAPABILITIES;
- description
- "Whether this STA supports 802.11r. Note, must be
- enabled on BSS for this to be accurate.";
- }
-
- identity DOT_11V {
- base CLIENT_CAPABILITIES;
- description
- "Whether this STA supports 802.11v BSS Transition. Note, must
- be enabled on BSS for this to be accurate; unless Probe Req.
- are observied in addition to Assoc. Req.";
- }
-
- identity CHANGE_REASON_TYPE {
- description
- "Base type to specify the reason an Access Point
- has changed channels.";
- }
- identity DFS {
- base CHANGE_REASON_TYPE;
- description
- "DFS hit occured.";
- }
-
- identity NOISE {
- base CHANGE_REASON_TYPE;
- description
- "Excessive amounts of non-802.11 Noise occured.";
- }
-
- identity ERRORS {
- base CHANGE_REASON_TYPE;
- description
- "Excessive reception of frames which
- failed the FCS occured.";
- }
-
- identity BETTER-CHANNEL {
- base CHANGE_REASON_TYPE;
- description
- "A less utilized channel exists. eg CCI avoidance
- led to this channel-change.";
- }
- // Extend channel-change reasons here, when applicable.
-} \ No newline at end of file