aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang')
-rw-r--r--src/plugins/yang/ietf/ietf-ip@2018-02-22.yang876
-rw-r--r--src/plugins/yang/openconfig/openconfig-acl@2018-11-21.yang847
-rw-r--r--src/plugins/yang/openconfig/openconfig-extensions@2017-04-11.yang91
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang223
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-ethernet@2018-09-04.yang428
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-ip@2018-01-05.yang1312
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-types@2018-01-05.yang98
-rw-r--r--src/plugins/yang/openconfig/openconfig-inet-types@2018-11-21.yang343
-rw-r--r--src/plugins/yang/openconfig/openconfig-local-routing@2017-05-15.yang408
-rw-r--r--src/plugins/yang/openconfig/openconfig-packet-match-types@2018-11-21.yang309
-rw-r--r--src/plugins/yang/openconfig/openconfig-packet-match@2018-11-21.yang371
-rw-r--r--src/plugins/yang/openconfig/openconfig-policy-types@2018-06-05.yang220
-rw-r--r--src/plugins/yang/openconfig/openconfig-vlan-types@2018-02-14.yang195
-rw-r--r--src/plugins/yang/openconfig/openconfig-vlan@2018-06-05.yang438
14 files changed, 0 insertions, 6159 deletions
diff --git a/src/plugins/yang/ietf/ietf-ip@2018-02-22.yang b/src/plugins/yang/ietf/ietf-ip@2018-02-22.yang
deleted file mode 100644
index a270f67..0000000
--- a/src/plugins/yang/ietf/ietf-ip@2018-02-22.yang
+++ /dev/null
@@ -1,876 +0,0 @@
-module ietf-ip {
- yang-version 1.1;
- namespace "urn:ietf:params:xml:ns:yang:ietf-ip";
- prefix ip;
-
- import ietf-interfaces {
- prefix if;
- }
- import ietf-inet-types {
- prefix inet;
- }
- import ietf-yang-types {
- prefix yang;
- }
-
- organization
- "IETF NETMOD (Network Modeling) Working Group";
-
- contact
- "WG Web: <https://datatracker.ietf.org/wg/netmod/>
- WG List: <mailto:netmod@ietf.org>
-
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>";
- description
- "This module contains a collection of YANG definitions for
- managing IP implementations.
-
- Copyright (c) 2018 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
- (https://trustee.ietf.org/license-info).
-
- This version of this YANG module is part of RFC 8344; see
- the RFC itself for full legal notices.";
-
- revision 2018-02-22 {
- description
- "Updated to support NMDA.";
- reference
- "RFC 8344: A YANG Data Model for IP Management";
- }
-
- revision 2014-06-16 {
- description
- "Initial revision.";
- reference
- "RFC 7277: A YANG Data Model for IP Management";
- }
-
- /*
- * Features
- */
-
- feature ipv4-non-contiguous-netmasks {
- description
- "Indicates support for configuring non-contiguous
- subnet masks.";
- }
-
- feature ipv6-privacy-autoconf {
- description
- "Indicates support for privacy extensions for stateless address
- autoconfiguration in IPv6.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6";
- }
-
- /*
- * Typedefs
- */
-
- typedef ip-address-origin {
- type enumeration {
- enum other {
- description
- "None of the following.";
- }
-
- enum static {
- description
- "Indicates that the address has been statically
- configured -- for example, using the Network Configuration
- Protocol (NETCONF) or a command line interface.";
- }
- enum dhcp {
- description
- "Indicates an address that has been assigned to this
- system by a DHCP server.";
- }
- enum link-layer {
- description
- "Indicates an address created by IPv6 stateless
- autoconfiguration that embeds a link-layer address in its
- interface identifier.";
- }
- enum random {
- description
- "Indicates an address chosen by the system at
- random, e.g., an IPv4 address within 169.254/16, a
- temporary address as described in RFC 4941, or a
- semantically opaque address as described in RFC 7217.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6
- RFC 7217: A Method for Generating Semantically Opaque
- Interface Identifiers with IPv6 Stateless
- Address Autoconfiguration (SLAAC)";
- }
- }
- description
- "The origin of an address.";
- }
-
- typedef neighbor-origin {
- type enumeration {
- enum other {
- description
- "None of the following.";
- }
- enum static {
- description
- "Indicates that the mapping has been statically
- configured -- for example, using NETCONF or a command line
- interface.";
- }
-
- enum dynamic {
- description
- "Indicates that the mapping has been dynamically resolved
- using, for example, IPv4 ARP or the IPv6 Neighbor
- Discovery protocol.";
- }
- }
- description
- "The origin of a neighbor entry.";
- }
-
- /*
- * Data nodes
- */
-
- augment "/if:interfaces/if:interface" {
- description
- "IP parameters on interfaces.
-
- If an interface is not capable of running IP, the server
- must not allow the client to configure these parameters.";
-
- container ipv4 {
- presence
- "Enables IPv4 unless the 'enabled' leaf
- (which defaults to 'true') is set to 'false'";
- description
- "Parameters for the IPv4 address family.";
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Controls whether IPv4 is enabled or disabled on this
- interface. When IPv4 is enabled, this interface is
- connected to an IPv4 stack, and the interface can send
- and receive IPv4 packets.";
- }
- leaf forwarding {
- type boolean;
- default false;
- description
- "Controls IPv4 packet forwarding of datagrams received by,
- but not addressed to, this interface. IPv4 routers
- forward datagrams. IPv4 hosts do not (except those
- source-routed via the host).";
- }
-
- leaf mtu {
- type uint16 {
- range "68..max";
- }
- units "octets";
- description
- "The size, in octets, of the largest IPv4 packet that the
- interface will send and receive.
-
- The server may restrict the allowed values for this leaf,
- depending on the interface's type.
-
- If this leaf is not configured, the operationally used MTU
- depends on the interface's type.";
- reference
- "RFC 791: Internet Protocol";
- }
- list address {
- key "ip";
- description
- "The list of IPv4 addresses on the interface.";
-
- leaf ip {
- type inet:ipv4-address-no-zone;
- description
- "The IPv4 address on the interface.";
- }
- choice subnet {
- mandatory true;
- description
- "The subnet can be specified as a prefix length or,
- if the server supports non-contiguous netmasks, as
- a netmask.";
- leaf prefix-length {
- type uint8 {
- range "0..32";
- }
- description
- "The length of the subnet prefix.";
- }
- leaf netmask {
- if-feature ipv4-non-contiguous-netmasks;
- type yang:dotted-quad;
- description
- "The subnet specified as a netmask.";
- }
- }
-
- leaf origin {
- type ip-address-origin;
- config false;
- description
- "The origin of this address.";
- }
- }
- list neighbor {
- key "ip";
- description
- "A list of mappings from IPv4 addresses to
- link-layer addresses.
-
- Entries in this list in the intended configuration are
- used as static entries in the ARP Cache.
-
- In the operational state, this list represents the ARP
- Cache.";
- reference
- "RFC 826: An Ethernet Address Resolution Protocol";
-
- leaf ip {
- type inet:ipv4-address-no-zone;
- description
- "The IPv4 address of the neighbor node.";
- }
- leaf link-layer-address {
- type yang:phys-address;
- mandatory true;
- description
- "The link-layer address of the neighbor node.";
- }
- leaf origin {
- type neighbor-origin;
- config false;
- description
- "The origin of this neighbor entry.";
- }
- }
- }
-
- container ipv6 {
- presence
- "Enables IPv6 unless the 'enabled' leaf
- (which defaults to 'true') is set to 'false'";
- description
- "Parameters for the IPv6 address family.";
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Controls whether IPv6 is enabled or disabled on this
- interface. When IPv6 is enabled, this interface is
- connected to an IPv6 stack, and the interface can send
- and receive IPv6 packets.";
- }
- leaf forwarding {
- type boolean;
- default false;
- description
- "Controls IPv6 packet forwarding of datagrams received by,
- but not addressed to, this interface. IPv6 routers
- forward datagrams. IPv6 hosts do not (except those
- source-routed via the host).";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 6.2.1, IsRouter";
- }
- leaf mtu {
- type uint32 {
- range "1280..max";
- }
- units "octets";
- description
- "The size, in octets, of the largest IPv6 packet that the
- interface will send and receive.
-
- The server may restrict the allowed values for this leaf,
- depending on the interface's type.
-
- If this leaf is not configured, the operationally used MTU
- depends on the interface's type.";
- reference
- "RFC 8200: Internet Protocol, Version 6 (IPv6)
- Specification
- Section 5";
- }
-
- list address {
- key "ip";
- description
- "The list of IPv6 addresses on the interface.";
-
- leaf ip {
- type inet:ipv6-address-no-zone;
- description
- "The IPv6 address on the interface.";
- }
- leaf prefix-length {
- type uint8 {
- range "0..128";
- }
- mandatory true;
- description
- "The length of the subnet prefix.";
- }
- leaf origin {
- type ip-address-origin;
- config false;
- description
- "The origin of this address.";
- }
- leaf status {
- type enumeration {
- enum preferred {
- description
- "This is a valid address that can appear as the
- destination or source address of a packet.";
- }
- enum deprecated {
- description
- "This is a valid but deprecated address that should
- no longer be used as a source address in new
- communications, but packets addressed to such an
- address are processed as expected.";
- }
- enum invalid {
- description
- "This isn't a valid address, and it shouldn't appear
- as the destination or source address of a packet.";
- }
-
- enum inaccessible {
- description
- "The address is not accessible because the interface
- to which this address is assigned is not
- operational.";
- }
- enum unknown {
- description
- "The status cannot be determined for some reason.";
- }
- enum tentative {
- description
- "The uniqueness of the address on the link is being
- verified. Addresses in this state should not be
- used for general communication and should only be
- used to determine the uniqueness of the address.";
- }
- enum duplicate {
- description
- "The address has been determined to be non-unique on
- the link and so must not be used.";
- }
- enum optimistic {
- description
- "The address is available for use, subject to
- restrictions, while its uniqueness on a link is
- being verified.";
- }
- }
- config false;
- description
- "The status of an address. Most of the states correspond
- to states from the IPv6 Stateless Address
- Autoconfiguration protocol.";
- reference
- "RFC 4293: Management Information Base for the
- Internet Protocol (IP)
- - IpAddressStatusTC
- RFC 4862: IPv6 Stateless Address Autoconfiguration";
- }
- }
-
- list neighbor {
- key "ip";
- description
- "A list of mappings from IPv6 addresses to
- link-layer addresses.
-
- Entries in this list in the intended configuration are
- used as static entries in the Neighbor Cache.
-
- In the operational state, this list represents the
- Neighbor Cache.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
-
- leaf ip {
- type inet:ipv6-address-no-zone;
- description
- "The IPv6 address of the neighbor node.";
- }
- leaf link-layer-address {
- type yang:phys-address;
- mandatory true;
- description
- "The link-layer address of the neighbor node.
-
- In the operational state, if the neighbor's 'state' leaf
- is 'incomplete', this leaf is not instantiated.";
- }
- leaf origin {
- type neighbor-origin;
- config false;
- description
- "The origin of this neighbor entry.";
- }
- leaf is-router {
- type empty;
- config false;
- description
- "Indicates that the neighbor node acts as a router.";
- }
-
- leaf state {
- type enumeration {
- enum incomplete {
- description
- "Address resolution is in progress, and the
- link-layer address of the neighbor has not yet been
- determined.";
- }
- enum reachable {
- description
- "Roughly speaking, the neighbor is known to have been
- reachable recently (within tens of seconds ago).";
- }
- enum stale {
- description
- "The neighbor is no longer known to be reachable, but
- until traffic is sent to the neighbor no attempt
- should be made to verify its reachability.";
- }
- enum delay {
- description
- "The neighbor is no longer known to be reachable, and
- traffic has recently been sent to the neighbor.
- Rather than probe the neighbor immediately, however,
- delay sending probes for a short while in order to
- give upper-layer protocols a chance to provide
- reachability confirmation.";
- }
- enum probe {
- description
- "The neighbor is no longer known to be reachable, and
- unicast Neighbor Solicitation probes are being sent
- to verify reachability.";
- }
- }
- config false;
- description
- "The Neighbor Unreachability Detection state of this
- entry.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 7.3.2";
- }
- }
-
- leaf dup-addr-detect-transmits {
- type uint32;
- default 1;
- description
- "The number of consecutive Neighbor Solicitation messages
- sent while performing Duplicate Address Detection on a
- tentative address. A value of zero indicates that
- Duplicate Address Detection is not performed on
- tentative addresses. A value of one indicates a single
- transmission with no follow-up retransmissions.";
- reference
- "RFC 4862: IPv6 Stateless Address Autoconfiguration";
- }
- container autoconf {
- description
- "Parameters to control the autoconfiguration of IPv6
- addresses, as described in RFC 4862.";
- reference
- "RFC 4862: IPv6 Stateless Address Autoconfiguration";
-
- leaf create-global-addresses {
- type boolean;
- default true;
- description
- "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 {
- if-feature ipv6-privacy-autoconf;
- type boolean;
- default false;
- description
- "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 {
- if-feature ipv6-privacy-autoconf;
- type uint32;
- units "seconds";
- default 604800;
- description
- "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 {
- if-feature ipv6-privacy-autoconf;
- type uint32;
- units "seconds";
- default 86400;
- description
- "The time period during which the temporary address is
- preferred.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6
- - TEMP_PREFERRED_LIFETIME";
- }
- }
- }
- }
-
- /*
- * Legacy operational state data nodes
- */
-
- augment "/if:interfaces-state/if:interface" {
- status deprecated;
- description
- "Data nodes for the operational state of IP on interfaces.";
-
- container ipv4 {
- presence
- "Present if IPv4 is enabled on this interface";
- config false;
- status deprecated;
- description
- "Interface-specific parameters for the IPv4 address family.";
-
- leaf forwarding {
- type boolean;
- status deprecated;
- description
- "Indicates whether IPv4 packet forwarding is enabled or
- disabled on this interface.";
- }
- leaf mtu {
- type uint16 {
- range "68..max";
- }
- units "octets";
- status deprecated;
- description
- "The size, in octets, of the largest IPv4 packet that the
- interface will send and receive.";
- reference
- "RFC 791: Internet Protocol";
- }
- list address {
- key "ip";
- status deprecated;
- description
- "The list of IPv4 addresses on the interface.";
-
- leaf ip {
- type inet:ipv4-address-no-zone;
- status deprecated;
- description
- "The IPv4 address on the interface.";
- }
- choice subnet {
- status deprecated;
- description
- "The subnet can be specified as a prefix length or,
- if the server supports non-contiguous netmasks, as
- a netmask.";
- leaf prefix-length {
- type uint8 {
- range "0..32";
- }
- status deprecated;
- description
- "The length of the subnet prefix.";
- }
- leaf netmask {
- if-feature ipv4-non-contiguous-netmasks;
- type yang:dotted-quad;
- status deprecated;
- description
- "The subnet specified as a netmask.";
- }
- }
- leaf origin {
- type ip-address-origin;
- status deprecated;
- description
- "The origin of this address.";
- }
- }
- list neighbor {
- key "ip";
- status deprecated;
- description
- "A list of mappings from IPv4 addresses to
- link-layer addresses.
-
- This list represents the ARP Cache.";
- reference
- "RFC 826: An Ethernet Address Resolution Protocol";
-
- leaf ip {
- type inet:ipv4-address-no-zone;
- status deprecated;
- description
- "The IPv4 address of the neighbor node.";
- }
-
- leaf link-layer-address {
- type yang:phys-address;
- status deprecated;
- description
- "The link-layer address of the neighbor node.";
- }
- leaf origin {
- type neighbor-origin;
- status deprecated;
- description
- "The origin of this neighbor entry.";
- }
- }
- }
-
- container ipv6 {
- presence
- "Present if IPv6 is enabled on this interface";
- config false;
- status deprecated;
- description
- "Parameters for the IPv6 address family.";
-
- leaf forwarding {
- type boolean;
- default false;
- status deprecated;
- description
- "Indicates whether IPv6 packet forwarding is enabled or
- disabled on this interface.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 6.2.1, IsRouter";
- }
- leaf mtu {
- type uint32 {
- range "1280..max";
- }
- units "octets";
- status deprecated;
- description
- "The size, in octets, of the largest IPv6 packet that the
- interface will send and receive.";
- reference
- "RFC 8200: Internet Protocol, Version 6 (IPv6)
- Specification
- Section 5";
- }
- list address {
- key "ip";
- status deprecated;
- description
- "The list of IPv6 addresses on the interface.";
-
- leaf ip {
- type inet:ipv6-address-no-zone;
- status deprecated;
- description
- "The IPv6 address on the interface.";
- }
- leaf prefix-length {
- type uint8 {
- range "0..128";
- }
- mandatory true;
- status deprecated;
- description
- "The length of the subnet prefix.";
- }
- leaf origin {
- type ip-address-origin;
- status deprecated;
- description
- "The origin of this address.";
- }
- leaf status {
- type enumeration {
- enum preferred {
- description
- "This is a valid address that can appear as the
- destination or source address of a packet.";
- }
- enum deprecated {
- description
- "This is a valid but deprecated address that should
- no longer be used as a source address in new
- communications, but packets addressed to such an
- address are processed as expected.";
- }
- enum invalid {
- description
- "This isn't a valid address, and it shouldn't appear
- as the destination or source address of a packet.";
- }
-
- enum inaccessible {
- description
- "The address is not accessible because the interface
- to which this address is assigned is not
- operational.";
- }
- enum unknown {
- description
- "The status cannot be determined for some reason.";
- }
- enum tentative {
- description
- "The uniqueness of the address on the link is being
- verified. Addresses in this state should not be
- used for general communication and should only be
- used to determine the uniqueness of the address.";
- }
- enum duplicate {
- description
- "The address has been determined to be non-unique on
- the link and so must not be used.";
- }
- enum optimistic {
- description
- "The address is available for use, subject to
- restrictions, while its uniqueness on a link is
- being verified.";
- }
- }
- status deprecated;
- description
- "The status of an address. Most of the states correspond
- to states from the IPv6 Stateless Address
- Autoconfiguration protocol.";
- reference
- "RFC 4293: Management Information Base for the
- Internet Protocol (IP)
- - IpAddressStatusTC
- RFC 4862: IPv6 Stateless Address Autoconfiguration";
- }
- }
-
- list neighbor {
- key "ip";
- status deprecated;
- description
- "A list of mappings from IPv6 addresses to
- link-layer addresses.
-
- This list represents the Neighbor Cache.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
-
- leaf ip {
- type inet:ipv6-address-no-zone;
- status deprecated;
- description
- "The IPv6 address of the neighbor node.";
- }
- leaf link-layer-address {
- type yang:phys-address;
- status deprecated;
- description
- "The link-layer address of the neighbor node.";
- }
- leaf origin {
- type neighbor-origin;
- status deprecated;
- description
- "The origin of this neighbor entry.";
- }
- leaf is-router {
- type empty;
- status deprecated;
- description
- "Indicates that the neighbor node acts as a router.";
- }
- leaf state {
- type enumeration {
- enum incomplete {
- description
- "Address resolution is in progress, and the
- link-layer address of the neighbor has not yet been
- determined.";
- }
- enum reachable {
- description
- "Roughly speaking, the neighbor is known to have been
- reachable recently (within tens of seconds ago).";
- }
- enum stale {
- description
- "The neighbor is no longer known to be reachable, but
- until traffic is sent to the neighbor no attempt
- should be made to verify its reachability.";
- }
- enum delay {
- description
- "The neighbor is no longer known to be reachable, and
- traffic has recently been sent to the neighbor.
- Rather than probe the neighbor immediately, however,
- delay sending probes for a short while in order to
- give upper-layer protocols a chance to provide
- reachability confirmation.";
- }
- enum probe {
- description
- "The neighbor is no longer known to be reachable, and
- unicast Neighbor Solicitation probes are being sent
- to verify reachability.";
- }
- }
- status deprecated;
- description
- "The Neighbor Unreachability Detection state of this
- entry.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 7.3.2";
- }
- }
- }
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-acl@2018-11-21.yang b/src/plugins/yang/openconfig/openconfig-acl@2018-11-21.yang
deleted file mode 100644
index fe80988..0000000
--- a/src/plugins/yang/openconfig/openconfig-acl@2018-11-21.yang
+++ /dev/null
@@ -1,847 +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.2";
-
- revision "2018-11-21" {
- description
- "Add OpenConfig module metadata extensions.";
- reference "1.0.2";
- }
-
- 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";
- }
-
- // OpenConfig specific extensions for module metadata.
- oc-ext:regexp-posix;
- oc-ext:catalog-organization "openconfig";
- oc-ext:origin "openconfig";
-
- 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-extensions@2017-04-11.yang b/src/plugins/yang/openconfig/openconfig-extensions@2017-04-11.yang
deleted file mode 100644
index f39ecf6..0000000
--- a/src/plugins/yang/openconfig/openconfig-extensions@2017-04-11.yang
+++ /dev/null
@@ -1,91 +0,0 @@
-module openconfig-extensions {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/openconfig-ext";
-
- prefix "oc-ext";
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module provides extensions to the YANG language to allow
- OpenConfig specific functionality and meta-data to be defined.";
-
- revision "2017-04-11" {
- description
- "rename password type to 'hashed' and clarify description";
- reference "0.3.0";
- }
-
- revision "2017-01-29" {
- description
- "Added extension for annotating encrypted values.";
- reference "0.2.0";
- }
-
- revision "2015-10-09" {
- description
- "Initial OpenConfig public release";
- reference "0.1.0";
- }
-
-
- // extension statements
- extension openconfig-version {
- argument "semver" {
- yin-element false;
- }
- description
- "The OpenConfig version number for the module. This is
- expressed as a semantic version number of the form:
- x.y.z
- where:
- * x corresponds to the major version,
- * y corresponds to a minor version,
- * z corresponds to a patch version.
- This version corresponds to the model file within which it is
- defined, and does not cover the whole set of OpenConfig models.
- Where several modules are used to build up a single block of
- functionality, the same module version is specified across each
- file that makes up the module.
-
- A major version number of 0 indicates that this model is still
- in development (whether within OpenConfig or with industry
- partners), and is potentially subject to change.
-
- Following a release of major version 1, all modules will
- increment major revision number where backwards incompatible
- changes to the model are made.
-
- The minor version is changed when features are added to the
- model that do not impact current clients use of the model.
-
- The patch-level version is incremented when non-feature changes
- (such as bugfixes or clarifications to human-readable
- descriptions that do not impact model functionality) are made
- that maintain backwards compatibility.
-
- The version number is stored in the module meta-data.";
- }
-
- extension openconfig-hashed-value {
- description
- "This extension provides an annotation on schema nodes to
- indicate that the corresponding value should be stored and
- reported in hashed form.
-
- Hash algorithms are by definition not reversible. Clients
- reading the configuration or applied configuration for the node
- should expect to receive only the hashed value. Values written
- in cleartext will be hashed. This annotation may be used on
- nodes such as secure passwords in which the device never reports
- a cleartext value, even if the input is provided as cleartext.";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang b/src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang
deleted file mode 100644
index 5aa80bb..0000000
--- a/src/plugins/yang/openconfig/openconfig-if-aggregate@2018-03-23.yang
+++ /dev/null
@@ -1,223 +0,0 @@
-module openconfig-if-aggregate {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/interfaces/aggregate";
-
- prefix "oc-lag";
-
- // import some basic types
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-if-ethernet { prefix oc-eth; }
- import iana-if-type { prefix ift; }
- import openconfig-if-types { prefix oc-ift; }
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Model for managing aggregated (aka bundle, LAG) interfaces.";
-
- oc-ext:openconfig-version "2.3.1";
-
- revision "2018-03-23" {
- description
- "Fix/cleanup when statements in aggregates model.";
- reference "2.3.1";
- }
-
- revision "2018-01-05" {
- description
- "Add logical loopback to interface.";
- reference "2.3.0";
- }
-
- revision "2017-12-22" {
- description
- "Add IPv4 proxy ARP configuration.";
- reference "2.2.0";
- }
-
- revision "2017-12-21" {
- description
- "Added IPv6 router advertisement configuration.";
- reference "2.1.0";
- }
-
- revision "2017-07-14" {
- description
- "Added Ethernet/IP state data; Add dhcp-client;
- migrate to OpenConfig types modules; Removed or
- renamed opstate values";
- reference "2.0.0";
- }
-
- revision "2016-12-22" {
- description
- "Fixes to Ethernet interfaces model";
- reference "1.1.0";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- // typedef statements
-
-
-
- typedef aggregation-type {
- type enumeration {
- enum LACP {
- description "LAG managed by LACP";
- }
- enum STATIC {
- description "Statically configured bundle / LAG";
- }
- }
- description
- "Type to define the lag-type, i.e., how the LAG is
- defined and managed";
- }
-
- // grouping statements
-
-
- grouping aggregation-logical-config {
- description
- "Configuration data for aggregate interfaces";
-
-
- leaf lag-type {
- type aggregation-type;
- description
- "Sets the type of LAG, i.e., how it is
- configured / maintained";
- }
-
- leaf min-links {
- type uint16;
- description
- "Specifies the mininum number of member
- interfaces that must be active for the aggregate interface
- to be available";
- }
- }
-
- grouping aggregation-logical-state {
- description
- "Operational state data for aggregate interfaces";
-
- leaf lag-speed {
- type uint32;
- units Mbps;
- description
- "Reports effective speed of the aggregate interface,
- based on speed of active member interfaces";
- }
-
- leaf-list member {
- when "../../config/lag-type = 'STATIC'" {
- description
- "The simple list of member interfaces is active
- when the aggregate is statically configured";
- }
- type oc-if:base-interface-ref;
- description
- "List of current member interfaces for the aggregate,
- expressed as references to existing interfaces";
- }
- }
-
- grouping aggregation-logical-top {
- description "Top-level data definitions for LAGs";
-
- container aggregation {
-
- description
- "Options for logical interfaces representing
- aggregates";
-
- container config {
- description
- "Configuration variables for logical aggregate /
- LAG interfaces";
-
- uses aggregation-logical-config;
- }
-
- container state {
-
- config false;
- description
- "Operational state variables for logical
- aggregate / LAG interfaces";
-
- uses aggregation-logical-config;
- uses aggregation-logical-state;
-
- }
- }
- }
-
- grouping ethernet-if-aggregation-config {
- description
- "Adds configuration items for Ethernet interfaces
- belonging to a logical aggregate / LAG";
-
- leaf aggregate-id {
- type leafref {
- path "/oc-if:interfaces/oc-if:interface/oc-if:name";
- }
- description
- "Specify the logical aggregate interface to which
- this interface belongs";
- }
- }
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-if:interfaces/oc-if:interface" {
-
- description "Adds LAG configuration to the interface module";
-
- uses aggregation-logical-top {
- when "oc-if:state/oc-if:type = 'ift:ieee8023adLag' or " +
- "oc-if:state/oc-if:type = 'oc-ift:IF_AGGREGATE'" {
- description
- "active when the interface is set to type LAG";
- }
- }
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" +
- "oc-eth:config" {
- description
- "Adds LAG settings to individual Ethernet interfaces";
-
- uses ethernet-if-aggregation-config;
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet/" +
- "oc-eth:state" {
- description
- "Adds LAG settings to individual Ethernet interfaces";
-
- uses ethernet-if-aggregation-config;
- }
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-if-ethernet@2018-09-04.yang b/src/plugins/yang/openconfig/openconfig-if-ethernet@2018-09-04.yang
deleted file mode 100644
index cd6b526..0000000
--- a/src/plugins/yang/openconfig/openconfig-if-ethernet@2018-09-04.yang
+++ /dev/null
@@ -1,428 +0,0 @@
-module openconfig-if-ethernet {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/interfaces/ethernet";
-
- prefix "oc-eth";
-
- // import some basic types
- import openconfig-interfaces { prefix oc-if; }
- import iana-if-type { prefix ift; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "Model for managing Ethernet interfaces -- augments the OpenConfig
- model for interface configuration and state.";
-
- oc-ext:openconfig-version "2.6.1";
-
- revision "2018-09-04" {
- description
- "Remove in-crc-align-errors as it is a duplicate of
- in-crc-errors";
- reference "2.6.1";
- }
-
- revision "2018-08-28" {
- description
- "Add Ethernet counter in-block-errors";
- reference "2.6.0";
- }
-
- revision "2018-07-02" {
- description
- "Add new ethernet counters of in-undersize-frames,
- in-crc-align-errors and the distribution container";
- reference "2.5.0";
- }
-
- revision "2018-04-10" {
- description
- "Add identities for 2.5 and 5 Gbps.";
- reference "2.4.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";
- }
-
-
- // identity statements
-
- identity ETHERNET_SPEED {
- description "base type to specify available Ethernet link
- speeds";
- }
-
- identity SPEED_10MB {
- base ETHERNET_SPEED;
- description "10 Mbps Ethernet";
- }
-
- identity SPEED_100MB {
- base ETHERNET_SPEED;
- description "100 Mbps Ethernet";
- }
-
- identity SPEED_1GB {
- base ETHERNET_SPEED;
- description "1 Gbps Ethernet";
- }
-
- identity SPEED_2500MB {
- base ETHERNET_SPEED;
- description "2.5 Gbps Ethernet";
- }
-
- identity SPEED_5GB {
- base ETHERNET_SPEED;
- description "5 Gbps Ethernet";
- }
-
- identity SPEED_10GB {
- base ETHERNET_SPEED;
- description "10 Gbps Ethernet";
- }
-
- identity SPEED_25GB {
- base ETHERNET_SPEED;
- description "25 Gbps Ethernet";
- }
-
- identity SPEED_40GB {
- base ETHERNET_SPEED;
- description "40 Gbps Ethernet";
- }
-
- identity SPEED_50GB {
- base ETHERNET_SPEED;
- description "50 Gbps Ethernet";
- }
-
- identity SPEED_100GB {
- base ETHERNET_SPEED;
- description "100 Gbps Ethernet";
- }
-
- identity SPEED_UNKNOWN {
- base ETHERNET_SPEED;
- description
- "Interface speed is unknown. Systems may report
- speed UNKNOWN when an interface is down or unpopuplated (e.g.,
- pluggable not present).";
- }
-
- // typedef statements
-
-
- // grouping statements
-
- grouping ethernet-interface-config {
- description "Configuration items for Ethernet interfaces";
-
- leaf mac-address {
- type oc-yang:mac-address;
- description
- "Assigns a MAC address to the Ethernet interface. If not
- specified, the corresponding operational state leaf is
- expected to show the system-assigned MAC address.";
- }
-
- leaf auto-negotiate {
- type boolean;
- default true;
- description
- "Set to TRUE to request the interface to auto-negotiate
- transmission parameters with its peer interface. When
- set to FALSE, the transmission parameters are specified
- manually.";
- reference
- "IEEE 802.3-2012 auto-negotiation transmission parameters";
- }
-
- leaf duplex-mode {
- type enumeration {
- enum FULL {
- description "Full duplex mode";
- }
- enum HALF {
- description "Half duplex mode";
- }
- }
- description
- "When auto-negotiate is TRUE, this optionally sets the
- duplex mode that will be advertised to the peer. If
- unspecified, the interface should negotiate the duplex mode
- directly (typically full-duplex). When auto-negotiate is
- FALSE, this sets the duplex mode on the interface directly.";
- }
-
- leaf port-speed {
- type identityref {
- base ETHERNET_SPEED;
- }
- description
- "When auto-negotiate is TRUE, this optionally sets the
- port-speed mode that will be advertised to the peer for
- negotiation. If unspecified, it is expected that the
- interface will select the highest speed available based on
- negotiation. When auto-negotiate is set to FALSE, sets the
- link speed to a fixed value -- supported values are defined
- by ETHERNET_SPEED identities";
- }
-
- leaf enable-flow-control {
- type boolean;
- default false;
- description
- "Enable or disable flow control for this interface.
- Ethernet flow control is a mechanism by which a receiver
- may send PAUSE frames to a sender to stop transmission for
- a specified time.
-
- This setting should override auto-negotiated flow control
- settings. If left unspecified, and auto-negotiate is TRUE,
- flow control mode is negotiated with the peer interface.";
- reference
- "IEEE 802.3x";
- }
- }
-
- grouping ethernet-interface-state-counters {
- description
- "Ethernet-specific counters and statistics";
-
- // ingress counters
-
- leaf in-mac-control-frames {
- type oc-yang:counter64;
- description
- "MAC layer control frames received on the interface";
- }
-
- leaf in-mac-pause-frames {
- type oc-yang:counter64;
- description
- "MAC layer PAUSE frames received on the interface";
- }
-
- leaf in-oversize-frames {
- type oc-yang:counter64;
- description
- "The total number of frames received that were
- longer than 1518 octets (excluding framing bits,
- but including FCS octets) and were otherwise
- well formed.";
- }
-
- leaf in-undersize-frames {
- type oc-yang:counter64;
- description
- "The total number of frames received that were
- less than 64 octets long (excluding framing bits,
- but including FCS octets) and were otherwise well
- formed.";
- reference
- "RFC 2819: Remote Network Monitoring MIB -
- etherStatsUndersizePkts";
- }
-
- leaf in-jabber-frames {
- type oc-yang:counter64;
- description
- "Number of jabber frames received on the
- interface. Jabber frames are typically defined as oversize
- frames which also have a bad CRC. Implementations may use
- slightly different definitions of what constitutes a jabber
- frame. Often indicative of a NIC hardware problem.";
- }
-
- leaf in-fragment-frames {
- type oc-yang:counter64;
- description
- "The total number of frames received that were less than
- 64 octets in length (excluding framing bits but including
- FCS octets) and had either a bad Frame Check Sequence
- (FCS) with an integral number of octets (FCS Error) or a
- bad FCS with a non-integral number of octets (Alignment
- Error).";
- }
-
- leaf in-8021q-frames {
- type oc-yang:counter64;
- description
- "Number of 802.1q tagged frames received on the interface";
- }
-
- leaf in-crc-errors {
- type oc-yang:counter64;
- description
- "The total number of frames received that
- had a length (excluding framing bits, but
- including FCS octets) of between 64 and 1518
- octets, inclusive, but had either a bad
- Frame Check Sequence (FCS) with an integral
- number of octets (FCS Error) or a bad FCS with
- a non-integral number of octets (Alignment Error)";
- reference
- "RFC 2819: Remote Network Monitoring MIB -
- etherStatsCRCAlignErrors";
- }
-
- leaf in-block-errors {
- type oc-yang:counter64;
- description
- "The number of received 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";
- }
-
- // egress counters
-
- leaf out-mac-control-frames {
- type oc-yang:counter64;
- description
- "MAC layer control frames sent on the interface";
- }
-
- leaf out-mac-pause-frames {
- type oc-yang:counter64;
- description
- "MAC layer PAUSE frames sent on the interface";
- }
-
- leaf out-8021q-frames {
- type oc-yang:counter64;
- description
- "Number of 802.1q tagged frames sent on the interface";
- }
- }
-
- grouping ethernet-interface-state {
- description
- "Grouping for defining Ethernet-specific operational state";
-
- leaf hw-mac-address {
- type oc-yang:mac-address;
- description
- "Represenets the 'burned-in', or system-assigned, MAC
- address for the Ethernet interface.";
- }
-
- leaf negotiated-duplex-mode {
- type enumeration {
- enum FULL {
- description "Full duplex mode";
- }
- enum HALF {
- description "Half duplex mode";
- }
- }
- description
- "When auto-negotiate is set to TRUE, and the interface has
- completed auto-negotiation with the remote peer, this value
- shows the duplex mode that has been negotiated.";
- }
-
- leaf negotiated-port-speed {
- type identityref {
- base ETHERNET_SPEED;
- }
- description
- "When auto-negotiate is set to TRUE, and the interface has
- completed auto-negotiation with the remote peer, this value
- shows the interface speed that has been negotiated.";
- }
-
- container counters {
- description "Ethernet interface counters";
-
- uses ethernet-interface-state-counters;
-
- }
-
- }
-
- // data definition statements
-
- grouping ethernet-top {
- description "top-level Ethernet config and state containers";
-
- container ethernet {
- description
- "Top-level container for ethernet configuration
- and state";
-
- container config {
- description "Configuration data for ethernet interfaces";
-
- uses ethernet-interface-config;
-
- }
-
- container state {
-
- config false;
- description "State variables for Ethernet interfaces";
-
- uses ethernet-interface-config;
- uses ethernet-interface-state;
-
- }
-
- }
- }
-
- // augment statements
-
- augment "/oc-if:interfaces/oc-if:interface" {
- description "Adds addtional Ethernet-specific configuration to
- interfaces model";
-
- uses ethernet-top {
- when "oc-if:state/oc-if:type = 'ift:ethernetCsmacd'" {
- description "Additional interface configuration parameters when
- the interface type is Ethernet";
- }
- }
- }
-
- // rpc statements
-
- // notification statements
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-if-ip@2018-01-05.yang b/src/plugins/yang/openconfig/openconfig-if-ip@2018-01-05.yang
deleted file mode 100644
index a20e21c..0000000
--- a/src/plugins/yang/openconfig/openconfig-if-ip@2018-01-05.yang
+++ /dev/null
@@ -1,1312 +0,0 @@
-module openconfig-if-ip {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/interfaces/ip";
-
- prefix "oc-ip";
-
- // import some basic types
- import openconfig-inet-types { prefix oc-inet; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-vlan { prefix oc-vlan; }
- import openconfig-yang-types { prefix oc-yang; }
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This model defines data for managing configuration and
- operational state on IP (IPv4 and IPv6) interfaces.
-
- This model reuses data items defined in the IETF YANG model for
- interfaces described by RFC 7277 with an alternate structure
- (particularly for operational state data) and with
- additional configuration items.
-
- Portions of this code were derived from IETF RFC 7277.
- 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 "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 "2017-04-03"{
- description
- "Update copyright notice.";
- reference "1.1.1";
- }
-
- revision "2016-12-22" {
- description
- "Fixes to Ethernet interfaces model";
- reference "1.1.0";
- }
-
-
- // typedef statements
-
- typedef ip-address-origin {
- type enumeration {
- enum OTHER {
- description
- "None of the following.";
- }
- enum STATIC {
- description
- "Indicates that the address has been statically
- configured - for example, using NETCONF or a Command Line
- Interface.";
- }
- enum DHCP {
- description
- "Indicates an address that has been assigned to this
- system by a DHCP server.";
- }
- enum LINK_LAYER {
- description
- "Indicates an address created by IPv6 stateless
- autoconfiguration that embeds a link-layer address in its
- interface identifier.";
- }
- enum RANDOM {
- description
- "Indicates an address chosen by the system at
- random, e.g., an IPv4 address within 169.254/16, an
- RFC 4941 temporary address, or an RFC 7217 semantically
- opaque address.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6
- RFC 7217: A Method for Generating Semantically Opaque
- Interface Identifiers with IPv6 Stateless
- Address Autoconfiguration (SLAAC)";
- }
- }
- description
- "The origin of an address.";
- }
-
- typedef neighbor-origin {
- type enumeration {
- enum OTHER {
- description
- "None of the following.";
- }
- enum STATIC {
- description
- "Indicates that the mapping has been statically
- configured - for example, using NETCONF or a Command Line
- Interface.";
- }
- enum DYNAMIC {
- description
- "Indicates that the mapping has been dynamically resolved
- using, e.g., IPv4 ARP or the IPv6 Neighbor Discovery
- protocol.";
- }
- }
- description
- "The origin of a neighbor entry.";
- }
-
- // grouping statements
-
- grouping ip-common-global-config {
- description
- "Shared configuration data for IPv4 or IPv6 assigned
- globally on an interface.";
-
- leaf dhcp-client {
- type boolean;
- default false;
- description
- "Enables a DHCP client on the interface in order to request
- an address";
- }
- }
-
- grouping ip-common-counters-state {
- description
- "Operational state for IP traffic statistics for IPv4 and
- IPv6";
-
- container counters {
- description
- "Packet and byte counters for IP transmission and
- reception for the address family.";
-
-
- leaf in-pkts {
- type oc-yang:counter64;
- description
- "The total number of IP packets received for the specified
- address family, including those received in error";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf in-octets {
- type oc-yang:counter64;
- description
- "The total number of octets received in input IP packets
- for the specified address family, including those received
- in error.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf in-error-pkts {
- // TODO: this counter combines several error conditions --
- // could consider breaking them out to separate leaf nodes
- type oc-yang:counter64;
- description
- "Number of IP packets discarded due to errors for the
- specified address family, including errors in the IP
- header, no route found to the IP destination, invalid
- address, unknown protocol, etc.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf in-forwarded-pkts {
- type oc-yang:counter64;
- description
- "The number of input packets for which the device was not
- their final IP destination and for which the device
- attempted to find a route to forward them to that final
- destination.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf in-forwarded-octets {
- type oc-yang:counter64;
- description
- "The number of octets received in input IP packets
- for the specified address family for which the device was
- not their final IP destination and for which the
- device attempted to find a route to forward them to that
- final destination.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf in-discarded-pkts {
- type oc-yang:counter64;
- description
- "The number of input IP packets for the
- specified address family, for which no problems were
- encountered to prevent their continued processing, but
- were discarded (e.g., for lack of buffer space).";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf out-pkts {
- type oc-yang:counter64;
- description
- "The total number of IP packets for the
- specified address family that the device supplied
- to the lower layers for transmission. This includes
- packets generated locally and those forwarded by the
- device.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf out-octets {
- type oc-yang:counter64;
- description
- "The total number of octets in IP packets for the
- specified address family that the device
- supplied to the lower layers for transmission. This
- includes packets generated locally and those forwarded by
- the device.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf out-error-pkts {
- // TODO: this counter combines several error conditions --
- // could consider breaking them out to separate leaf nodes
- type oc-yang:counter64;
- description
- "Number of IP packets for the specified address family
- locally generated and discarded due to errors, including
- no route found to the IP destination.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf out-forwarded-pkts {
- type oc-yang:counter64;
- description
- "The number of packets for which this entity was not their
- final IP destination and for which it was successful in
- finding a path to their final destination.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf out-forwarded-octets {
- type oc-yang:counter64;
- description
- "The number of octets in packets for which this entity was
- not their final IP destination and for which it was
- successful in finding a path to their final destination.";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
-
- leaf out-discarded-pkts {
- type oc-yang:counter64;
- description
- "The number of output IP packets for the
- specified address family for which no problem was
- encountered to prevent their transmission to their
- destination, but were discarded (e.g., for lack of
- buffer space).";
- reference
- "RFC 4293 - Management Information Base for the
- Internet Protocol (IP)";
- }
- }
-
- }
-
-
-
- grouping ipv4-global-config {
- description
- "Configuration data for IPv4 interfaces across
- all addresses assigned to the interface";
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Controls whether IPv4 is enabled or disabled on this
- interface. When IPv4 is enabled, this interface is
- connected to an IPv4 stack, and the interface can send
- and receive IPv4 packets.";
- }
-
- leaf mtu {
- type uint16 {
- range "68..max";
- }
- units octets;
- description
- "The size, in octets, of the largest IPv4 packet that the
- interface will send and receive.
-
- The server may restrict the allowed values for this leaf,
- depending on the interface's type.
-
- If this leaf is not configured, the operationally used MTU
- depends on the interface's type.";
- reference
- "RFC 791: Internet Protocol";
- }
-
- uses ip-common-global-config;
-
-
- }
-
- grouping ipv4-address-config {
-
- description
- "Per IPv4 adresss configuration data for the
- interface.";
-
- leaf ip {
- type oc-inet:ipv4-address;
- description
- "The IPv4 address on the interface.";
- }
-
- leaf prefix-length {
- type uint8 {
- range "0..32";
- }
- description
- "The length of the subnet prefix.";
- }
- }
-
- grouping ipv4-neighbor-config {
- description
- "Per IPv4 neighbor configuration data. Neighbor
- entries are analagous to static ARP entries, i.e., they
- create a correspondence between IP and link-layer addresses";
-
- leaf ip {
- type oc-inet:ipv4-address;
- description
- "The IPv4 address of the neighbor node.";
- }
- leaf link-layer-address {
- type oc-yang:phys-address;
- mandatory true;
- description
- "The link-layer address of the neighbor node.";
- }
- }
-
- grouping ipv4-address-state {
- description
- "State variables for IPv4 addresses on the interface";
-
- leaf origin {
- type ip-address-origin;
- description
- "The origin of this address, e.g., statically configured,
- assigned by DHCP, etc..";
- }
- }
-
- grouping ipv4-neighbor-state {
- description
- "State variables for IPv4 neighbor entries on the interface.";
-
- leaf origin {
- type neighbor-origin;
- description
- "The origin of this neighbor entry, static or dynamic.";
- }
- }
-
- grouping ipv6-global-config {
- description
- "Configuration data at the global level for each
- IPv6 interface";
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Controls whether IPv6 is enabled or disabled on this
- interface. When IPv6 is enabled, this interface is
- connected to an IPv6 stack, and the interface can send
- and receive IPv6 packets.";
- }
-
- leaf mtu {
- type uint32 {
- range "1280..max";
- }
- units octets;
- description
- "The size, in octets, of the largest IPv6 packet that the
- interface will send and receive.
-
- The server may restrict the allowed values for this leaf,
- depending on the interface's type.
-
- If this leaf is not configured, the operationally used MTU
- depends on the interface's type.";
- reference
- "RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
- Section 5";
- }
-
- leaf dup-addr-detect-transmits {
- type uint32;
- default 1;
- description
- "The number of consecutive Neighbor Solicitation messages
- sent while performing Duplicate Address Detection on a
- tentative address. A value of zero indicates that
- Duplicate Address Detection is not performed on
- tentative addresses. A value of one indicates a single
- transmission with no follow-up retransmissions.";
- reference
- "RFC 4862: IPv6 Stateless Address Autoconfiguration";
- }
-
- uses ip-common-global-config;
- }
-
- grouping ipv6-address-config {
- description "Per-address configuration data for IPv6 interfaces";
-
- leaf ip {
- type oc-inet:ipv6-address;
- description
- "The IPv6 address on the interface.";
- }
-
- leaf prefix-length {
- type uint8 {
- range "0..128";
- }
- mandatory true;
- description
- "The length of the subnet prefix.";
- }
- }
-
- grouping ipv6-address-state {
- description
- "Per-address operational state data for IPv6 interfaces";
-
- leaf origin {
- type ip-address-origin;
- description
- "The origin of this address, e.g., static, dhcp, etc.";
- }
-
- leaf status {
- type enumeration {
- enum PREFERRED {
- description
- "This is a valid address that can appear as the
- destination or source address of a packet.";
- }
- enum DEPRECATED {
- description
- "This is a valid but deprecated address that should
- no longer be used as a source address in new
- communications, but packets addressed to such an
- address are processed as expected.";
- }
- enum INVALID {
- description
- "This isn't a valid address, and it shouldn't appear
- as the destination or source address of a packet.";
- }
- enum INACCESSIBLE {
- description
- "The address is not accessible because the interface
- to which this address is assigned is not
- operational.";
- }
- enum UNKNOWN {
- description
- "The status cannot be determined for some reason.";
- }
- enum TENTATIVE {
- description
- "The uniqueness of the address on the link is being
- verified. Addresses in this state should not be
- used for general communication and should only be
- used to determine the uniqueness of the address.";
- }
- enum DUPLICATE {
- description
- "The address has been determined to be non-unique on
- the link and so must not be used.";
- }
- enum OPTIMISTIC {
- description
- "The address is available for use, subject to
- restrictions, while its uniqueness on a link is
- being verified.";
- }
- }
- description
- "The status of an address. Most of the states correspond
- to states from the IPv6 Stateless Address
- Autoconfiguration protocol.";
- reference
- "RFC 4293: Management Information Base for the
- Internet Protocol (IP)
- - IpAddressStatusTC
- RFC 4862: IPv6 Stateless Address Autoconfiguration";
- }
- }
-
- grouping ipv6-neighbor-config {
- description
- "Per-neighbor configuration data for IPv6 interfaces";
-
- leaf ip {
- type oc-inet:ipv6-address;
- description
- "The IPv6 address of the neighbor node.";
- }
-
- leaf link-layer-address {
- type oc-yang:phys-address;
- mandatory true;
- description
- "The link-layer address of the neighbor node.";
- }
- }
-
- grouping ipv6-neighbor-state {
- description "Per-neighbor state variables for IPv6 interfaces";
-
- leaf origin {
- type neighbor-origin;
- description
- "The origin of this neighbor entry.";
- }
- leaf is-router {
- type empty;
- description
- "Indicates that the neighbor node acts as a router.";
- }
- leaf neighbor-state {
- type enumeration {
- enum INCOMPLETE {
- description
- "Address resolution is in progress, and the link-layer
- address of the neighbor has not yet been
- determined.";
- }
- enum REACHABLE {
- description
- "Roughly speaking, the neighbor is known to have been
- reachable recently (within tens of seconds ago).";
- }
- enum STALE {
- description
- "The neighbor is no longer known to be reachable, but
- until traffic is sent to the neighbor no attempt
- should be made to verify its reachability.";
- }
- enum DELAY {
- description
- "The neighbor is no longer known to be reachable, and
- traffic has recently been sent to the neighbor.
- Rather than probe the neighbor immediately, however,
- delay sending probes for a short while in order to
- give upper-layer protocols a chance to provide
- reachability confirmation.";
- }
- enum PROBE {
- description
- "The neighbor is no longer known to be reachable, and
- unicast Neighbor Solicitation probes are being sent
- to verify reachability.";
- }
- }
- description
- "The Neighbor Unreachability Detection state of this
- entry.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 7.3.2";
- }
- }
-
- grouping ip-vrrp-ipv6-config {
- description
- "IPv6-specific configuration data for VRRP on IPv6
- interfaces";
-
- leaf virtual-link-local {
- type oc-inet:ip-address;
- description
- "For VRRP on IPv6 interfaces, sets the virtual link local
- address";
- }
- }
-
- grouping ip-vrrp-ipv6-state {
- description
- "IPv6-specific operational state for VRRP on IPv6 interfaces";
-
- uses ip-vrrp-ipv6-config;
- }
-
- grouping ip-vrrp-tracking-config {
- description
- "Configuration data for tracking interfaces
- in a VRRP group";
-
- leaf-list track-interface {
- type leafref {
- path "/oc-if:interfaces/oc-if:interface/oc-if:name";
- }
- // TODO: we may need to add some restriction to ethernet
- // or IP interfaces.
- description
- "Sets a list of one or more interfaces that should
- be tracked for up/down events to dynamically change the
- priority state of the VRRP group, and potentially
- change the mastership if the tracked interface going
- down lowers the priority sufficiently. Any of the tracked
- interfaces going down will cause the priority to be lowered.
- Some implementations may only support a single
- tracked interface.";
- }
-
- leaf priority-decrement {
- type uint8 {
- range 0..254;
- }
- default 0;
- description "Set the value to subtract from priority when
- the tracked interface goes down";
- }
- }
-
- grouping ip-vrrp-tracking-state {
- description
- "Operational state data for tracking interfaces in a VRRP
- group";
- }
-
- grouping ip-vrrp-tracking-top {
- description
- "Top-level grouping for VRRP interface tracking";
-
- container interface-tracking {
- description
- "Top-level container for VRRP interface tracking";
-
- container config {
- description
- "Configuration data for VRRP interface tracking";
-
- uses ip-vrrp-tracking-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for VRRP interface tracking";
-
- uses ip-vrrp-tracking-config;
- uses ip-vrrp-tracking-state;
- }
- }
- }
-
- grouping ip-vrrp-config {
- description
- "Configuration data for VRRP on IP interfaces";
-
- leaf virtual-router-id {
- type uint8 {
- range 1..255;
- }
- description
- "Set the virtual router id for use by the VRRP group. This
- usually also determines the virtual MAC address that is
- generated for the VRRP group";
- }
-
- leaf-list virtual-address {
- type oc-inet:ip-address;
- description
- "Configure one or more virtual addresses for the
- VRRP group";
- }
-
- leaf priority {
- type uint8 {
- range 1..254;
- }
- default 100;
- description
- "Specifies the sending VRRP interface's priority
- for the virtual router. Higher values equal higher
- priority";
- }
-
- leaf preempt {
- type boolean;
- default true;
- description
- "When set to true, enables preemption by a higher
- priority backup router of a lower priority master router";
- }
-
- leaf preempt-delay {
- type uint16 {
- range 0..3600;
- }
- default 0;
- description
- "Set the delay the higher priority router waits
- before preempting";
- }
-
- leaf accept-mode {
- type boolean;
- // TODO: should we adopt the RFC default given the common
- // operational practice of setting to true?
- default false;
- description
- "Configure whether packets destined for
- virtual addresses are accepted even when the virtual
- address is not owned by the router interface";
- }
-
- leaf advertisement-interval {
- type uint16 {
- range 1..4095;
- }
- // TODO this range is theoretical -- needs to be validated
- // against major implementations.
- units "centiseconds";
- default 100;
- description
- "Sets the interval between successive VRRP
- advertisements -- RFC 5798 defines this as a 12-bit
- value expressed as 0.1 seconds, with default 100, i.e.,
- 1 second. Several implementation express this in units of
- seconds";
- }
- }
-
- grouping ip-vrrp-state {
- description
- "Operational state data for VRRP on IP interfaces";
-
- leaf current-priority {
- type uint8;
- description "Operational value of the priority for the
- interface in the VRRP group";
- }
- }
-
- grouping ip-vrrp-top {
- description
- "Top-level grouping for Virtual Router Redundancy Protocol";
-
- container vrrp {
- description
- "Enclosing container for VRRP groups handled by this
- IP interface";
-
- reference "RFC 5798 - Virtual Router Redundancy Protocol
- (VRRP) Version 3 for IPv4 and IPv6";
-
- list vrrp-group {
- key "virtual-router-id";
- description
- "List of VRRP groups, keyed by virtual router id";
-
- leaf virtual-router-id {
- type leafref {
- path "../config/virtual-router-id";
- }
- description
- "References the configured virtual router id for this
- VRRP group";
- }
-
- container config {
- description
- "Configuration data for the VRRP group";
-
- uses ip-vrrp-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the VRRP group";
-
- uses ip-vrrp-config;
- uses ip-vrrp-state;
- }
-
- uses ip-vrrp-tracking-top;
- }
- }
- }
-
- grouping ipv6-ra-config {
- description
- "Configuration parameters for IPv6 router advertisements.";
-
- leaf interval {
- type uint32;
- units seconds;
- description
- "The interval between periodic router advertisement neighbor
- discovery messages sent on this interface expressed in
- seconds.";
- }
-
- leaf lifetime {
- type uint32;
- units seconds;
- description
- "The lifetime advertised in the router advertisement neighbor
- discovery message on this interface.";
- }
-
- leaf suppress {
- type boolean;
- default false;
- description
- "When set to true, router advertisement neighbor discovery
- messages are not transmitted on this interface.";
- }
- }
-
- grouping ipv4-proxy-arp-config {
- description
- "Configuration parameters for IPv4 proxy ARP";
-
- leaf mode {
- type enumeration {
- enum DISABLE {
- description
- "The system should not respond to ARP requests that
- do not specify an IP address configured on the local
- subinterface as the target address.";
- }
- enum REMOTE_ONLY {
- description
- "The system responds to ARP requests only when the
- sender and target IP addresses are in different
- subnets.";
- }
- enum ALL {
- description
- "The system responds to ARP requests where the sender
- and target IP addresses are in different subnets, as well
- as those where they are in the same subnet.";
- }
- }
- default "DISABLE";
- description
- "When set to a value other than DISABLE, the local system should
- respond to ARP requests that are for target addresses other than
- those that are configured on the local subinterface using its own
- MAC address as the target hardware address. If the REMOTE_ONLY
- value is specified, replies are only sent when the target address
- falls outside the locally configured subnets on the interface,
- whereas with the ALL value, all requests, regardless of their
- target address are replied to.";
- reference "RFC1027: Using ARP to Implement Transparent Subnet Gateways";
- }
- }
-
- grouping ipv4-top {
- description "Top-level configuration and state for IPv4
- interfaces";
-
- container ipv4 {
- description
- "Parameters for the IPv4 address family.";
-
- container addresses {
- description
- "Enclosing container for address list";
-
- list address {
- key "ip";
- description
- "The list of configured IPv4 addresses on the interface.";
-
- leaf ip {
- type leafref {
- path "../config/ip";
- }
- description "References the configured IP address";
- }
-
- container config {
- description "Configuration data for each configured IPv4
- address on the interface";
-
- uses ipv4-address-config;
-
- }
-
- container state {
-
- config false;
- description "Operational state data for each IPv4 address
- configured on the interface";
-
- uses ipv4-address-config;
- uses ipv4-address-state;
- }
-
- }
- }
-
- container proxy-arp {
- description
- "Configuration and operational state parameters
- relating to proxy ARP. This functionality allows a
- system to respond to ARP requests that are not
- explicitly destined to the local system.";
-
- container config {
- description
- "Configuration parameters for proxy ARP";
- uses ipv4-proxy-arp-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters for proxy ARP";
- uses ipv4-proxy-arp-config;
- }
- }
-
- container neighbors {
- description
- "Enclosing container for neighbor list";
-
- list neighbor {
- key "ip";
- description
- "A list of mappings from IPv4 addresses to
- link-layer addresses.
-
- Entries in this list are used as static entries in the
- ARP Cache.";
- reference
- "RFC 826: An Ethernet Address Resolution Protocol";
-
- leaf ip {
- type leafref {
- path "../config/ip";
- }
- description "References the configured IP address";
- }
-
- container config {
- description "Configuration data for each configured IPv4
- address on the interface";
-
- uses ipv4-neighbor-config;
-
- }
-
- container state {
-
- config false;
- description "Operational state data for each IPv4 address
- configured on the interface";
-
- uses ipv4-neighbor-config;
- uses ipv4-neighbor-state;
- }
- }
- }
-
- uses oc-if:sub-unnumbered-top;
-
- container config {
- description
- "Top-level IPv4 configuration data for the interface";
-
- uses ipv4-global-config;
- }
-
- container state {
-
- config false;
- description
- "Top level IPv4 operational state data";
-
- uses ipv4-global-config;
- uses ip-common-counters-state;
- }
- }
- }
-
- grouping ipv6-top {
- description
- "Top-level configuration and state for IPv6 interfaces";
-
- container ipv6 {
- description
- "Parameters for the IPv6 address family.";
-
- container addresses {
- description
- "Enclosing container for address list";
-
- list address {
- key "ip";
- description
- "The list of configured IPv6 addresses on the interface.";
-
- leaf ip {
- type leafref {
- path "../config/ip";
- }
- description "References the configured IP address";
- }
-
- container config {
- description
- "Configuration data for each IPv6 address on
- the interface";
-
- uses ipv6-address-config;
-
- }
-
- container state {
-
- config false;
- description
- "State data for each IPv6 address on the
- interface";
-
- uses ipv6-address-config;
- uses ipv6-address-state;
- }
- }
- }
-
- container router-advertisement {
- description
- "Configuration and operational state parameters relating to
- router advertisements.";
-
- container config {
- description
- "Configuration parameters relating to router advertisements
- for IPv6.";
- uses ipv6-ra-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to router
- advertisements for IPv6.";
- uses ipv6-ra-config;
- }
- }
-
- container neighbors {
- description
- "Enclosing container for list of IPv6 neighbors";
-
- list neighbor {
- key "ip";
- description
- "List of IPv6 neighbors";
-
- leaf ip {
- type leafref {
- path "../config/ip";
- }
- description
- "References the configured IP neighbor address";
- }
-
- container config {
- description "Configuration data for each IPv6 address on
- the interface";
-
- uses ipv6-neighbor-config;
-
- }
-
- container state {
-
- config false;
- description "State data for each IPv6 address on the
- interface";
-
- uses ipv6-neighbor-config;
- uses ipv6-neighbor-state;
- }
- }
- }
- uses oc-if:sub-unnumbered-top;
-
- container config {
- description "Top-level config data for the IPv6 interface";
-
- uses ipv6-global-config;
- }
-
- container state {
- config false;
- description
- "Top-level operational state data for the IPv6 interface";
-
- uses ipv6-global-config;
- uses ip-common-counters-state;
-
- }
- }
- }
-
- // augment statements
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
- "oc-if:subinterface" {
- description
- "IPv4 address family configuration for
- interfaces";
-
- uses ipv4-top;
-
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
- "oc-if:subinterface" {
- description
- "IPv6 address family configuration for
- interfaces";
-
- uses ipv6-top;
-
- }
-
- // VRRP for IPv4 interfaces
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
- "oc-if:subinterface/oc-ip:ipv4/oc-ip:addresses/oc-ip:address" {
-
- description
- "Additional IP addr family configuration for
- interfaces";
-
- uses ip-vrrp-top;
-
- }
-
- // VRRP for IPv6 interfaces
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
- "oc-if:subinterface/oc-ip:ipv6/oc-ip:addresses/oc-ip:address" {
- description
- "Additional IP addr family configuration for
- interfaces";
-
- uses ip-vrrp-top;
-
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
- "oc-if:subinterface/oc-ip:ipv6/oc-ip:addresses/oc-ip:address/" +
- "vrrp/vrrp-group/config" {
- description
- "Additional VRRP data for IPv6 interfaces";
-
- uses ip-vrrp-ipv6-config;
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
- "oc-if:subinterface/oc-ip:ipv6/oc-ip:addresses/oc-ip:address/vrrp/" +
- "vrrp-group/state" {
- description
- "Additional VRRP data for IPv6 interfaces";
-
- uses ip-vrrp-ipv6-state;
- }
-
- // Augments for for routed VLANs
-
- augment "/oc-if:interfaces/oc-if:interface/oc-vlan:routed-vlan" {
- description
- "IPv4 address family configuration for
- interfaces";
-
- uses ipv4-top;
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-vlan:routed-vlan" {
- description
- "IPv6 address family configuration for
- interfaces";
-
- uses ipv6-top;
- }
-
- // VRRP for routed VLAN interfaces
-
- augment "/oc-if:interfaces/oc-if:interface/oc-vlan:routed-vlan/" +
- "oc-ip:ipv4/oc-ip:addresses/oc-ip:address" {
- description
- "Additional IP addr family configuration for
- interfaces";
-
- uses ip-vrrp-top;
-
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-vlan:routed-vlan/" +
- "oc-ip:ipv6/oc-ip:addresses/oc-ip:address" {
- description
- "Additional IP addr family configuration for
- interfaces";
-
- uses ip-vrrp-top;
-
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-vlan:routed-vlan/" +
- "oc-ip:ipv6/oc-ip:addresses/oc-ip:address/vrrp/vrrp-group/config" {
- description
- "Additional VRRP data for IPv6 interfaces";
-
- uses ip-vrrp-ipv6-config;
- }
-
-
- augment "/oc-if:interfaces/oc-if:interface/oc-vlan:routed-vlan/" +
- "oc-ip:ipv6/oc-ip:addresses/oc-ip:address/vrrp/vrrp-group/state" {
- description
- "Additional VRRP data for IPv6 interfaces";
-
- uses ip-vrrp-ipv6-state;
- }
-
- // rpc statements
-
- // notification statements
-}
diff --git a/src/plugins/yang/openconfig/openconfig-if-types@2018-01-05.yang b/src/plugins/yang/openconfig/openconfig-if-types@2018-01-05.yang
deleted file mode 100644
index 3743878..0000000
--- a/src/plugins/yang/openconfig/openconfig-if-types@2018-01-05.yang
+++ /dev/null
@@ -1,98 +0,0 @@
-module openconfig-if-types {
- yang-version "1";
-
- namespace "http://openconfig.net/yang/openconfig-if-types";
-
- prefix "oc-ift";
-
- // import statements
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module contains a set of interface type definitions that
- are used across OpenConfig models. These are generally physical
- or logical interfaces, distinct from hardware ports (which are
- described by the OpenConfig platform model).";
-
- oc-ext:openconfig-version "0.2.0";
-
- revision "2018-01-05" {
- description
- "Add tunnel types into the INTERFACE_TYPE identity.";
- reference "0.2.0";
- }
-
- revision "2016-11-14" {
- description
- "Initial version";
- reference "0.1.0";
- }
-
-
- identity INTERFACE_TYPE {
- description
- "Base identity from which interface types are derived.";
- }
-
- identity IF_ETHERNET {
- base INTERFACE_TYPE;
- description
- "Ethernet interfaces based on IEEE 802.3 standards, as well
- as FlexEthernet";
- reference
- "IEEE 802.3-2015 - IEEE Standard for Ethernet
- OIF Flex Ethernet Implementation Agreement 1.0";
- }
-
- identity IF_AGGREGATE {
- base INTERFACE_TYPE;
- description
- "An aggregated, or bonded, interface forming a
- Link Aggregation Group (LAG), or bundle, most often based on
- the IEEE 802.1AX (or 802.3ad) standard.";
- reference
- "IEEE 802.1AX-2008";
- }
-
- identity IF_LOOPBACK {
- base INTERFACE_TYPE;
- description
- "A virtual interface designated as a loopback used for
- various management and operations tasks.";
- }
-
- identity IF_ROUTED_VLAN {
- base INTERFACE_TYPE;
- description
- "A logical interface used for routing services on a VLAN.
- Such interfaces are also known as switch virtual interfaces
- (SVI) or integrated routing and bridging interfaces (IRBs).";
- }
-
- identity IF_SONET {
- base INTERFACE_TYPE;
- description
- "SONET/SDH interface";
- }
-
- identity IF_TUNNEL_GRE4 {
- base INTERFACE_TYPE;
- description
- "A GRE tunnel over IPv4 transport.";
- }
-
- identity IF_TUNNEL_GRE6 {
- base INTERFACE_TYPE;
- description
- "A GRE tunnel over IPv6 transport.";
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-inet-types@2018-11-21.yang b/src/plugins/yang/openconfig/openconfig-inet-types@2018-11-21.yang
deleted file mode 100644
index 7c23d2b..0000000
--- a/src/plugins/yang/openconfig/openconfig-inet-types@2018-11-21.yang
+++ /dev/null
@@ -1,343 +0,0 @@
-module openconfig-inet-types {
-
- yang-version "1";
- namespace "http://openconfig.net/yang/types/inet";
- prefix "oc-inet";
-
- import openconfig-extensions { prefix "oc-ext"; }
-
- organization
- "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module contains a set of Internet address related
- types for use in OpenConfig modules.
-
- Portions of this code were derived from IETF RFC 6021.
- 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.2";
-
- revision "2018-11-21" {
- description
- "Add OpenConfig module metadata extensions.";
- reference "0.3.2";
- }
-
- revision 2017-08-24 {
- description
- "Minor formatting fixes.";
- reference "0.3.1";
- }
-
- revision 2017-07-06 {
- description
- "Add domain-name and host typedefs";
- reference "0.3.0";
- }
-
- revision 2017-04-03 {
- description
- "Add ip-version typedef.";
- reference "0.2.0";
- }
-
- revision 2017-04-03 {
- description
- "Update copyright notice.";
- reference "0.1.1";
- }
-
- revision 2017-01-26 {
- description
- "Initial module for inet types";
- reference "0.1.0";
- }
-
- // OpenConfig specific extensions for module metadata.
- oc-ext:regexp-posix;
- oc-ext:catalog-organization "openconfig";
- oc-ext:origin "openconfig";
-
- // IPv4 and IPv6 types.
-
- typedef ipv4-address {
- 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])$';
- }
- description
- "An IPv4 address in dotted quad notation using the default
- zone.";
- }
-
- typedef ipv4-address-zoned {
- 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])(%[a-zA-Z0-9_]+)$';
- }
- description
- "An IPv4 address in dotted quad notation. This type allows
- specification of a zone index to disambiguate identical
- address values. For link-local addresses, the index is
- typically the interface index or interface name.";
- }
-
- typedef ipv6-address {
- type string {
- pattern
- // Must support compression through different lengths
- // therefore this regexp is complex.
- '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' +
- '([0-9a-fA-F]{1,4}:){1,7}:|' +
- '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' +
- '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
- '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
- '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
- '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
- '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' +
- ':((:[0-9a-fA-F]{1,4}){1,7}|:)' +
- ')$';
- }
- description
- "An IPv6 address represented as either a full address; shortened
- or mixed-shortened formats, using the default zone.";
- }
-
- typedef ipv6-address-zoned {
- type string {
- pattern
- // Must support compression through different lengths
- // therefore this regexp is complex.
- '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' +
- '([0-9a-fA-F]{1,4}:){1,7}:|' +
- '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|' +
- '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
- '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
- '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
- '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
- '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' +
- ':((:[0-9a-fA-F]{1,4}){1,7}|:)' +
- ')(%[a-zA-Z0-9_]+)$';
- }
- description
- "An IPv6 address represented as either a full address; shortened
- or mixed-shortened formats. This type allows specification of
- a zone index to disambiguate identical address values. For
- link-local addresses, the index is typically the interface
- index or interface name.";
- }
-
- typedef ipv4-prefix {
- 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])/(([0-9])|([1-2][0-9])|(3[0-2]))$';
- }
- description
- "An IPv4 prefix represented in dotted quad notation followed by
- a slash and a CIDR mask (0 <= mask <= 32).";
- }
-
- typedef ipv6-prefix {
- type string {
- pattern
- '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|' +
- '([0-9a-fA-F]{1,4}:){1,7}:|' +
- '([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}' +
- '([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|' +
- '([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|' +
- '([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|' +
- '([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|' +
- '[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|' +
- ':((:[0-9a-fA-F]{1,4}){1,7}|:)' +
- ')/(12[0-8]|1[0-1][0-9]|[1-9][0-9]|[0-9])$';
- }
- description
- "An IPv6 prefix represented in full, shortened, or mixed
- shortened format followed by a slash and CIDR mask
- (0 <= mask <= 128).";
- }
-
- typedef ip-address {
- type union {
- type ipv4-address;
- type ipv6-address;
- }
- description
- "An IPv4 or IPv6 address with no prefix specified.";
- }
-
- typedef ip-prefix {
- type union {
- type ipv4-prefix;
- type ipv6-prefix;
- }
- description
- "An IPv4 or IPv6 prefix.";
- }
-
- typedef ip-version {
- type enumeration {
- enum UNKNOWN {
- value 0;
- description
- "An unknown or unspecified version of the Internet
- protocol.";
- }
- enum IPV4 {
- value 4;
- description
- "The IPv4 protocol as defined in RFC 791.";
- }
- enum IPV6 {
- value 6;
- description
- "The IPv6 protocol as defined in RFC 2460.";
- }
- }
- description
- "This value represents the version of the IP protocol.
- Note that integer representation of the enumerated values
- are not specified, and are not required to follow the
- InetVersion textual convention in SMIv2.";
- reference
- "RFC 791: Internet Protocol
- RFC 2460: Internet Protocol, Version 6 (IPv6) Specification
- RFC 4001: Textual Conventions for Internet Network Addresses";
- }
-
- typedef domain-name {
- type string {
- length "1..253";
- pattern
- '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' +
- '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' +
- '|\.';
- }
- description
- "The domain-name type represents a DNS domain name.
- Fully quallified left to the models which utilize this type.
-
- Internet domain names are only loosely specified. Section
- 3.5 of RFC 1034 recommends a syntax (modified in Section
- 2.1 of RFC 1123). The pattern above is intended to allow
- for current practice in domain name use, and some possible
- future expansion. It is designed to hold various types of
- domain names, including names used for A or AAAA records
- (host names) and other records, such as SRV records. Note
- that Internet host names have a stricter syntax (described
- in RFC 952) than the DNS recommendations in RFCs 1034 and
- 1123, and that systems that want to store host names in
- schema nodes using the domain-name type are recommended to
- adhere to this stricter standard to ensure interoperability.
-
- The encoding of DNS names in the DNS protocol is limited
- to 255 characters. Since the encoding consists of labels
- prefixed by a length bytes and there is a trailing NULL
- byte, only 253 characters can appear in the textual dotted
- notation.
-
- Domain-name values use the US-ASCII encoding. Their canonical
- format uses lowercase US-ASCII characters. Internationalized
- domain names MUST be encoded in punycode as described in RFC
- 3492";
- }
-
- typedef host {
- type union {
- type ip-address;
- type domain-name;
- }
- description
- "The host type represents either an unzoned IP address or a DNS
- domain name.";
- }
-
- typedef as-number {
- type uint32;
- description
- "A numeric identifier for an autonomous system (AS). An AS is a
- single domain, under common administrative control, which forms
- a unit of routing policy. Autonomous systems can be assigned a
- 2-byte identifier, or a 4-byte identifier which may have public
- or private scope. Private ASNs are assigned from dedicated
- ranges. Public ASNs are assigned from ranges allocated by IANA
- to the regional internet registries (RIRs).";
- reference
- "RFC 1930 Guidelines for creation, selection, and registration
- of an Autonomous System (AS)
- RFC 4271 A Border Gateway Protocol 4 (BGP-4)";
- }
-
- typedef dscp {
- type uint8 {
- range "0..63";
- }
- description
- "A differentiated services code point (DSCP) marking within the
- IP header.";
- reference
- "RFC 2474 Definition of the Differentiated Services Field
- (DS Field) in the IPv4 and IPv6 Headers";
- }
-
- typedef ipv6-flow-label {
- type uint32 {
- range "0..1048575";
- }
- description
- "The IPv6 flow-label is a 20-bit value within the IPv6 header
- which is optionally used by the source of the IPv6 packet to
- label sets of packets for which special handling may be
- required.";
- reference
- "RFC 2460 Internet Protocol, Version 6 (IPv6) Specification";
- }
-
- typedef port-number {
- type uint16;
- description
- "A 16-bit port number used by a transport protocol such as TCP
- or UDP.";
- reference
- "RFC 768 User Datagram Protocol
- RFC 793 Transmission Control Protocol";
- }
-
- typedef uri {
- type string;
- description
- "An ASCII-encoded Uniform Resource Identifier (URI) as defined
- in RFC 3986.";
- reference
- "RFC 3986 Uniform Resource Identifier (URI): Generic Syntax";
- }
-
- typedef url {
- type string;
- description
- "An ASCII-encoded Uniform Resource Locator (URL) as defined
- in RFC 3986, section 1.1.3";
- reference
- "RFC 3986, paragraph 1.1.3";
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-local-routing@2017-05-15.yang b/src/plugins/yang/openconfig/openconfig-local-routing@2017-05-15.yang
deleted file mode 100644
index 5184fe7..0000000
--- a/src/plugins/yang/openconfig/openconfig-local-routing@2017-05-15.yang
+++ /dev/null
@@ -1,408 +0,0 @@
-module openconfig-local-routing {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/local-routing";
-
- prefix "oc-loc-rt";
-
- // import some basic types
- import openconfig-inet-types { prefix inet; }
- import openconfig-policy-types { prefix oc-pt; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-interfaces { prefix oc-if; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module describes configuration and operational state data
- for routes that are locally generated, i.e., not created by
- dynamic routing protocols. These include static routes, locally
- created aggregate routes for reducing the number of constituent
- routes that must be advertised, summary routes for IGPs, etc.
-
- This model expresses locally generated routes as generically as
- possible, avoiding configuration of protocol-specific attributes
- at the time of route creation. This is primarily to avoid
- assumptions about how underlying router implementations handle
- route attributes in various routing table data structures they
- maintain. Hence, the definition of locally generated routes
- essentially creates 'bare' routes that do not have any protocol-
- specific attributes.
-
- When protocol-specific attributes must be attached to a route
- (e.g., communities on a locally defined route meant to be
- advertised via BGP), the attributes should be attached via a
- protocol-specific policy after importing the route into the
- protocol for distribution (again via routing policy).";
-
- oc-ext:openconfig-version "1.0.1";
-
- revision "2017-05-15" {
- description
- "Update to resolve style guide non-compliance.";
- reference "1.0.1";
- }
-
- revision "2016-05-11" {
- description
- "OpenConfig public release";
- reference "1.0.0";
- }
-
-
- // identity statements
-
- identity LOCAL_DEFINED_NEXT_HOP {
- description
- "A base identity type of local defined next-hops";
- }
-
- identity DROP {
- base LOCAL_DEFINED_NEXT_HOP;
- description
- "Discard traffic for the corresponding destination";
- }
-
- identity LOCAL_LINK {
- base LOCAL_DEFINED_NEXT_HOP;
- description
- "Treat traffic towards addresses within the specified
- next-hop prefix as though they are connected to a local
- link. When the LOCAL_LINK next-hop type is specified,
- an interface must also be specified such that
- the local system can determine which link to trigger
- link-layer address discovery against";
- }
-
- // typedef statements
-
- typedef local-defined-next-hop {
- type identityref {
- base LOCAL_DEFINED_NEXT_HOP;
- }
- description
- "Pre-defined next-hop designation for locally generated
- routes";
- }
-
- // grouping statements
-
- grouping local-generic-settings {
- description
- "Generic options that can be set on local routes When
- they are defined";
-
- leaf set-tag {
- type oc-pt:tag-type;
- description
- "Set a generic tag value on the route. This tag can be
- used for filtering routes that are distributed to other
- routing protocols.";
- }
- }
-
- grouping local-static-config {
- description
- "Configuration data for static routes.";
-
- leaf prefix {
- type inet:ip-prefix;
- description
- "Destination prefix for the static route, either IPv4 or
- IPv6.";
- }
-
- uses local-generic-settings;
- }
-
- grouping local-static-state {
- description
- "Operational state data for static routes";
- }
-
-
- grouping local-static-nexthop-config {
- description
- "Configuration parameters related to each next-hop entry
- specified for a static route";
-
- leaf index {
- type string;
- description
- "An user-specified identifier utilised to uniquely reference
- the next-hop entry in the next-hop list. The value of this
- index has no semantic meaning other than for referencing
- the entry.";
- }
-
- leaf next-hop {
- type union {
- type inet:ip-address;
- type local-defined-next-hop;
- }
- description
- "The next-hop that is to be used for the static route
- - this may be specified as an IP address, an interface
- or a pre-defined next-hop type - for instance, DROP or
- LOCAL_LINK. When this leaf is not set, and the interface-ref
- value is specified for the next-hop, then the system should
- treat the prefix as though it is directly connected to the
- interface.";
- }
-
- leaf metric {
- type uint32;
- description
- "A metric which is utilised to specify the preference of
- the next-hop entry when it is injected into the RIB. The
- lower the metric, the more preferable the prefix is. When
- this value is not specified the metric is inherited from
- the default metric utilised for static routes within the
- network instance that the static routes are being
- instantiated. When multiple next-hops are specified for a
- static route, the metric is utilised to determine which of
- the next-hops is to be installed in the RIB. When multiple
- next-hops have the same metric (be it specified, or simply
- the default) then these next-hops should all be installed
- in the RIB";
- }
-
- leaf recurse {
- type boolean;
- default false;
- description
- "Determines whether the next-hop should be allowed to
- be looked up recursively - i.e., via a RIB entry which has
- been installed by a routing protocol, or another static route
- - rather than needing to be connected directly to an
- interface of the local system within the current network
- instance. When the interface reference specified within the
- next-hop entry is set (i.e., is not null) then forwarding is
- restricted to being via the interface specified - and
- recursion is hence disabled.";
- }
- }
-
- grouping local-static-nexthop-state {
- description
- "Operational state parameters relating to a next-hop entry
- for a static route";
- }
-
-
- grouping local-static-top {
- description
- "Top-level grouping for the list of static route definitions";
-
- container static-routes {
- description
- "Enclosing container for the list of static routes";
-
- list static {
- key "prefix";
- description
- "List of locally configured static routes";
-
- leaf prefix {
- type leafref {
- path "../config/prefix";
- }
- description
- "Reference to the destination prefix list key.";
- }
-
- container config {
- description
- "Configuration data for static routes";
-
- uses local-static-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for static routes";
-
- uses local-static-config;
- uses local-static-state;
- }
-
- container next-hops {
- description
- "Configuration and state parameters relating to the
- next-hops that are to be utilised for the static
- route being specified";
-
- list next-hop {
- key "index";
-
- description
- "A list of next-hops to be utilised for the static
- route being specified.";
-
- leaf index {
- type leafref {
- path "../config/index";
- }
- description
- "A reference to the index of the current next-hop.
- The index is intended to be a user-specified value
- which can be used to reference the next-hop in
- question, without any other semantics being
- assigned to it.";
- }
-
- container config {
- description
- "Configuration parameters relating to the next-hop
- entry";
-
- uses local-static-nexthop-config;
- }
-
- container state {
- config false;
- description
- "Operational state parameters relating to the
- next-hop entry";
-
- uses local-static-nexthop-config;
- uses local-static-nexthop-state;
- }
-
- uses oc-if:interface-ref;
- }
- }
- }
- }
- }
-
- grouping local-aggregate-config {
- description
- "Configuration data for aggregate routes";
-
- leaf prefix {
- type inet:ip-prefix;
- description
- "Aggregate prefix to be advertised";
- }
-
- leaf discard {
- type boolean;
- default false;
- description
- "When true, install the aggregate route with a discard
- next-hop -- traffic destined to the aggregate will be
- discarded with no ICMP message generated. When false,
- traffic destined to an aggregate address when no
- constituent routes are present will generate an ICMP
- unreachable message.";
- }
-
- uses local-generic-settings;
-
- }
-
- grouping local-aggregate-state {
- description
- "Operational state data for local aggregate advertisement
- definitions";
- }
-
- grouping local-aggregate-top {
- description
- "Top-level grouping for local aggregates";
-
- container local-aggregates {
- description
- "Enclosing container for locally-defined aggregate
- routes";
-
- list aggregate {
- key "prefix";
- description
- "List of aggregates";
-
- leaf prefix {
- type leafref {
- path "../config/prefix";
- }
- description
- "Reference to the configured prefix for this aggregate";
- }
-
- container config {
- description
- "Configuration data for aggregate advertisements";
-
- uses local-aggregate-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for aggregate
- advertisements";
-
- uses local-aggregate-config;
- uses local-aggregate-state;
- }
- }
- }
- }
-
- grouping local-routes-config {
- description
- "Configuration data for locally defined routes";
- }
-
- grouping local-routes-state {
- description
- "Operational state data for locally defined routes";
- }
-
- grouping local-routes-top {
- description
- "Top-level grouping for local routes";
-
- container local-routes {
- description
- "Top-level container for local routes";
-
- container config {
- description
- "Configuration data for locally defined routes";
-
- uses local-routes-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for locally defined routes";
-
- uses local-routes-config;
- uses local-routes-state;
- }
-
- uses local-static-top;
- uses local-aggregate-top;
- }
- }
-
- uses local-routes-top;
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-packet-match-types@2018-11-21.yang b/src/plugins/yang/openconfig/openconfig-packet-match-types@2018-11-21.yang
deleted file mode 100644
index 1b93d52..0000000
--- a/src/plugins/yang/openconfig/openconfig-packet-match-types@2018-11-21.yang
+++ /dev/null
@@ -1,309 +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.2";
-
- revision "2018-11-21" {
- description
- "Add OpenConfig module metadata extensions.";
- reference "1.0.2";
- }
-
- 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";
- }
-
- // OpenConfig specific extensions for module metadata.
- oc-ext:regexp-posix;
- oc-ext:catalog-organization "openconfig";
- oc-ext:origin "openconfig";
-
-
- // 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@2018-11-21.yang b/src/plugins/yang/openconfig/openconfig-packet-match@2018-11-21.yang
deleted file mode 100644
index 510bc57..0000000
--- a/src/plugins/yang/openconfig/openconfig-packet-match@2018-11-21.yang
+++ /dev/null
@@ -1,371 +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.1";
-
- revision "2018-11-21" {
- description
- "Add OpenConfig module metadata extensions.";
- reference "1.1.1";
- }
-
- 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";
- }
-
- // OpenConfig specific extensions for module metadata.
- oc-ext:regexp-posix;
- oc-ext:catalog-organization "openconfig";
- oc-ext:origin "openconfig";
-
-
- // 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-policy-types@2018-06-05.yang b/src/plugins/yang/openconfig/openconfig-policy-types@2018-06-05.yang
deleted file mode 100644
index ef47f33..0000000
--- a/src/plugins/yang/openconfig/openconfig-policy-types@2018-06-05.yang
+++ /dev/null
@@ -1,220 +0,0 @@
-module openconfig-policy-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/policy-types";
-
- prefix "oc-pol-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
- netopenconfig@googlegroups.com";
-
- description
- "This module contains general data definitions for use in routing
- policy. It can be imported by modules that contain protocol-
- specific policy conditions and actions.";
-
- 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";
- }
-
- // identity statements
-
- identity ATTRIBUTE_COMPARISON {
- description
- "base type for supported comparison operators on route
- attributes";
- }
-
- identity ATTRIBUTE_EQ {
- base ATTRIBUTE_COMPARISON;
- description "== comparison";
- }
-
- identity ATTRIBUTE_GE {
- base ATTRIBUTE_COMPARISON;
- description ">= comparison";
- }
-
- identity ATTRIBUTE_LE {
- base ATTRIBUTE_COMPARISON;
- description "<= comparison";
- }
-
- typedef match-set-options-type {
- type enumeration {
- enum ANY {
- description "match is true if given value matches any member
- of the defined set";
- }
- enum ALL {
- description "match is true if given value matches all
- members of the defined set";
- }
- enum INVERT {
- description "match is true if given value does not match any
- member of the defined set";
- }
- }
- default ANY;
- description
- "Options that govern the behavior of a match statement. The
- default behavior is ANY, i.e., the given value matches any
- of the members of the defined set";
- }
-
- typedef match-set-options-restricted-type {
- type enumeration {
- enum ANY {
- description "match is true if given value matches any member
- of the defined set";
- }
- enum INVERT {
- description "match is true if given value does not match any
- member of the defined set";
- }
- }
- default ANY;
- description
- "Options that govern the behavior of a match statement. The
- default behavior is ANY, i.e., the given value matches any
- of the members of the defined set. Note this type is a
- restricted version of the match-set-options-type.";
- //TODO: restriction on enumerated types is only allowed in
- //YANG 1.1. Until then, we will require this additional type
- }
-
- grouping attribute-compare-operators {
- description "common definitions for comparison operations in
- condition statements";
-
- leaf operator {
- type identityref {
- base ATTRIBUTE_COMPARISON;
- }
- description
- "type of comparison to be performed";
- }
-
- leaf value {
- type uint32;
- description
- "value to compare with the community count";
- }
- }
-
- typedef tag-type {
- type union {
- type uint32;
- type yang:hex-string;
- }
- description "type for expressing route tags on a local system,
- including IS-IS and OSPF; may be expressed as either decimal or
- hexidecimal integer";
- reference
- "RFC 2178 OSPF Version 2
- RFC 5130 A Policy Control Mechanism in IS-IS Using
- Administrative Tags";
- }
-
- identity INSTALL_PROTOCOL_TYPE {
- description
- "Base type for routing protocols, including those which may
- install prefixes into the RIB";
- }
-
- identity BGP {
- base INSTALL_PROTOCOL_TYPE;
- description
- "BGP";
- reference
- "RFC 4271";
- }
-
- identity ISIS {
- base INSTALL_PROTOCOL_TYPE;
- description
- "IS-IS";
- reference
- "ISO/IEC 10589";
- }
-
- identity OSPF {
- base INSTALL_PROTOCOL_TYPE;
- description
- "OSPFv2";
- reference
- "RFC 2328";
- }
-
- identity OSPF3 {
- base INSTALL_PROTOCOL_TYPE;
- description
- "OSPFv3";
- reference
- "RFC 5340";
- }
-
- identity STATIC {
- base INSTALL_PROTOCOL_TYPE;
- description
- "Locally-installed static route";
- }
-
- identity DIRECTLY_CONNECTED {
- base INSTALL_PROTOCOL_TYPE;
- description
- "A directly connected route";
- }
-
- identity LOCAL_AGGREGATE {
- base INSTALL_PROTOCOL_TYPE;
- description
- "Locally defined aggregate route";
- }
-
- identity PIM {
- base INSTALL_PROTOCOL_TYPE;
- description
- "Protocol Independent Multicast";
- reference
- "RFC 7761";
- }
-
- identity IGMP {
- base INSTALL_PROTOCOL_TYPE;
- description
- "Internet Group Management Protocol";
- reference
- "RFC 3376";
- }
-}
diff --git a/src/plugins/yang/openconfig/openconfig-vlan-types@2018-02-14.yang b/src/plugins/yang/openconfig/openconfig-vlan-types@2018-02-14.yang
deleted file mode 100644
index 6d9ab55..0000000
--- a/src/plugins/yang/openconfig/openconfig-vlan-types@2018-02-14.yang
+++ /dev/null
@@ -1,195 +0,0 @@
-module openconfig-vlan-types {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/vlan-types";
-
- prefix "oc-vlan-types";
-
- // import some basic types
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module defines configuration and state variables for VLANs,
- in addition to VLAN parameters associated with interfaces";
-
- oc-ext:openconfig-version "3.0.0";
-
- revision "2018-02-14" {
- description
- "Fix bug with name of 802.1ad identity.";
- reference "3.0.0";
- }
-
- revision "2017-07-14" {
- description
- "Move top-level vlan data to network-instance; Update
- identities to comply to style guide; fixed pattern
- quoting; corrected trunk vlan types; added TPID config to
- base interface.";
- reference "2.0.0";
- }
-
- revision "2016-05-26" {
- description
- "OpenConfig public release";
- reference "1.0.2";
- }
-
- // extension statements
-
- // feature statements
-
- // identity statements
-
- identity TPID_TYPES {
- description
- "Base identity for TPID values that can override the VLAN
- ethertype value";
- }
-
- identity TPID_0X8100 {
- base TPID_TYPES;
- description
- "Default TPID value for 802.1q single-tagged VLANs.";
- }
-
- identity TPID_0X88A8 {
- base TPID_TYPES;
- description
- "TPID value for 802.1ad provider bridging, QinQ or
- stacked VLANs.";
- }
-
- identity TPID_0X9100 {
- base TPID_TYPES;
- description
- "Alternate TPID value";
- }
-
- identity TPID_0X9200 {
- base TPID_TYPES;
- description
- "Alternate TPID value";
- }
-
- // typedef statements
-
- // TODO: typedefs should be defined in a vlan-types.yang file.
- typedef vlan-id {
- type uint16 {
- range 1..4094;
- }
- description
- "Type definition representing a single-tagged VLAN";
- }
-
- typedef vlan-range {
- type string {
- // range specified as [lower]..[upper]
- pattern '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9])\.\.(409[0-4]|' +
- '40[0-8][0-9]|[1-3][0-9]{3}|[1-9][0-9]{1,2}|' +
- '[1-9])$';
- }
- description
- "Type definition representing a range of single-tagged
- VLANs. A range is specified as x..y where x and y are
- valid VLAN IDs (1 <= vlan-id <= 4094). The range is
- assumed to be inclusive, such that any VLAN-ID matching
- x <= VLAN-ID <= y falls within the range.";
- }
-
- typedef qinq-id {
- type string {
- pattern
- '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9])\.' +
- '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9])|\*)$';
- }
- description
- "Type definition representing a single double-tagged/QinQ VLAN
- identifier. The format of a QinQ VLAN-ID is x.y where X is the
- 'outer' VLAN identifier, and y is the 'inner' VLAN identifier.
- Both x and y must be valid VLAN IDs (1 <= vlan-id <= 4094)
- with the exception that y may be equal to a wildcard (*). In
- cases where y is set to the wildcard, this represents all inner
- VLAN identifiers where the outer VLAN identifier is equal to
- x";
- }
-
- typedef qinq-id-range {
- type union {
- type string {
- // match cases where the range is specified as x..y.z
- pattern
- '^(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9])\.\.' +
- '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9])\.' +
- '((409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9])|\*)$';
- }
- type string {
- // match cases where the range is specified as x.y..z
- pattern
- '^(\*|(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9]))\.' +
- '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9])\.\.' +
- '(409[0-4]|40[0-8][0-9]|[1-3][0-9]{3}|' +
- '[1-9][0-9]{1,2}|[1-9])$';
- }
- }
- description
- "A type definition representing a range of double-tagged/QinQ
- VLAN identifiers. The format of a QinQ VLAN-ID range can be
- specified in three formats. Where the range is outer VLAN IDs
- the range is specified as x..y.z. In this case outer VLAN
- identifiers meeting the criteria x <= outer-vlan-id <= y are
- accepted iff the inner VLAN-ID is equal to y - or any inner-tag
- if the wildcard is specified. Alternatively the range can be
- specified as x.y..z. In this case only VLANs with an
- outer-vlan-id qual to x are accepted (x may again be the
- wildcard). Inner VLANs are accepted if they meet the inequality
- y <= inner-vlan-id <= z.";
- }
-
- typedef vlan-mode-type {
- type enumeration {
- enum ACCESS {
- description "Access mode VLAN interface (No 802.1q header)";
- }
- enum TRUNK {
- description "Trunk mode VLAN interface";
- }
- }
- description
- "VLAN interface mode (trunk or access)";
- }
-
- typedef vlan-ref {
- type union {
- type vlan-id;
- type string;
- // TODO: string should be changed to leafref to reference
- // an existing VLAN. this is not allowed in YANG 1.0 but
- // is expected to be in YANG 1.1.
- // type leafref {
- // path "vlan:vlans/vlan:vlan/vlan:config/vlan:name";
- // }
- }
- description
- "Reference to a VLAN by name or id";
- }
-
-}
diff --git a/src/plugins/yang/openconfig/openconfig-vlan@2018-06-05.yang b/src/plugins/yang/openconfig/openconfig-vlan@2018-06-05.yang
deleted file mode 100644
index 97348c0..0000000
--- a/src/plugins/yang/openconfig/openconfig-vlan@2018-06-05.yang
+++ /dev/null
@@ -1,438 +0,0 @@
-module openconfig-vlan {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/vlan";
-
- prefix "oc-vlan";
-
- // import some basic types
- import openconfig-vlan-types { prefix oc-vlan-types; }
- import openconfig-interfaces { prefix oc-if; }
- import openconfig-if-ethernet { prefix oc-eth; }
- import openconfig-if-aggregate { prefix oc-lag; }
- import iana-if-type { prefix ift; }
- import openconfig-extensions { prefix oc-ext; }
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- netopenconfig@googlegroups.com";
-
- description
- "This module defines configuration and state variables for VLANs,
- in addition to VLAN parameters associated with interfaces";
-
- oc-ext:openconfig-version "3.0.1";
-
- revision "2018-06-05" {
- description
- "Fix bugs in when statements.";
- reference "3.0.1";
- }
-
- revision "2018-02-14" {
- description
- "Fix bug with name of 802.1ad identity.";
- reference "3.0.0";
- }
-
- revision "2017-07-14" {
- description
- "Move top-level vlan data to network-instance; Update
- identities to comply to style guide; fixed pattern
- quoting; corrected trunk vlan types; added TPID config to
- base interface.";
- reference "2.0.0";
- }
-
- revision "2016-05-26" {
- description
- "OpenConfig public release";
- reference "1.0.2";
- }
-
- // grouping statements
-
- grouping vlan-config {
- description "VLAN configuration container.";
-
- leaf vlan-id {
- type oc-vlan-types:vlan-id;
- description "Interface VLAN id.";
- }
-
- leaf name {
- type string;
- description "Interface VLAN name.";
- }
-
- leaf status {
- type enumeration {
- enum ACTIVE {
- description "VLAN is active";
- }
- enum SUSPENDED {
- description "VLAN is inactive / suspended";
- }
- }
- default ACTIVE;
- description "Admin state of the VLAN";
- }
-
- }
-
- grouping vlan-state {
- description "State variables for VLANs";
-
- // placeholder
-
- }
-
- grouping vlan-tpid-config {
- description
- "TPID configuration for dot1q-enabled interfaces";
-
- leaf tpid {
- type identityref {
- base oc-vlan-types:TPID_TYPES;
- }
- default oc-vlan-types:TPID_0X8100;
- description
- "Optionally set the tag protocol identifier field (TPID) that
- is accepted on the VLAN";
- }
- }
-
- grouping vlan-tpid-state {
- description
- "TPID opstate for dot1q-enabled interfaces";
-
- // placeholder
-
- }
-
- grouping vlan-members-state {
- description
- "List of interfaces / subinterfaces belonging to the VLAN.";
-
- container members {
- description
- "Enclosing container for list of member interfaces";
-
- list member {
- config false;
- description
- "List of references to interfaces / subinterfaces
- associated with the VLAN.";
-
- uses oc-if:base-interface-ref-state;
- }
- }
- }
-
- grouping vlan-switched-config {
- description
- "VLAN related configuration that is part of the physical
- Ethernet interface.";
-
- leaf interface-mode {
- type oc-vlan-types:vlan-mode-type;
- description
- "Set the interface to access or trunk mode for
- VLANs";
- }
-
- leaf native-vlan {
- when "../interface-mode = 'TRUNK'" {
- description
- "Native VLAN is valid for trunk mode interfaces";
- }
- type oc-vlan-types:vlan-id;
- description
- "Set the native VLAN id for untagged frames arriving on
- a trunk interface. Tagged frames sent on an interface
- configured with a native VLAN should have their tags
- stripped prior to transmission. This configuration is only
- valid on a trunk interface.";
- }
-
- leaf access-vlan {
- when "../interface-mode = 'ACCESS'" {
- description
- "Access VLAN assigned to the interfaces";
- }
- type oc-vlan-types:vlan-id;
- description
- "Assign the access vlan to the access port.";
- }
-
- leaf-list trunk-vlans {
- when "../interface-mode = 'TRUNK'" {
- description
- "Allowed VLANs may be specified for trunk mode
- interfaces.";
- }
- type union {
- type oc-vlan-types:vlan-id;
- type oc-vlan-types:vlan-range;
- }
- description
- "Specify VLANs, or ranges thereof, that the interface may
- carry when in trunk mode. If not specified, all VLANs are
- allowed on the interface. Ranges are specified in the form
- x..y, where x<y - ranges are assumed to be inclusive (such
- that the VLAN range is x <= range <= y.";
- }
- }
-
- grouping vlan-switched-state {
- description
- "VLAN related operational state that is part of Ethernet
- interface state data";
-
- //TODO: placeholder for operational state related to VLANs
- //on the physical interface
- }
-
- grouping vlan-switched-top {
- description
- "Top-level grouping for VLAN data associated with an
- Ethernet interface";
-
- container switched-vlan {
- description
- "Enclosing container for VLAN interface-specific
- data on Ethernet interfaces. These are for standard
- L2, switched-style VLANs.";
-
- container config {
- description "Configuration parameters for VLANs";
-
- uses vlan-switched-config;
- }
-
- container state {
-
- config false;
- description "State variables for VLANs";
-
- uses vlan-switched-config;
- uses vlan-switched-state;
- }
- }
- }
-
- grouping vlan-logical-config {
- description
- "VLAN related configuration that is part of subinterface
- (logical interface) configuration. These are generally
- L3 VLANs with an id that is local.";
-
-
- leaf vlan-id {
- type union {
- type oc-vlan-types:vlan-id;
- type oc-vlan-types:qinq-id;
- }
- description
- "VLAN id for the subinterface -- specified inline for the
- case of a local VLAN. The id is scoped to the
- subinterface, and could be repeated on different
- subinterfaces.";
- }
- }
-
- grouping vlan-logical-state {
- description
- "VLAN related operational state that is part of logical
- interface state data";
-
- //TODO: placeholder to add VLAN-specific state variables on
- //the subinterface
- }
-
- grouping vlan-top {
- description "Top-level grouping for VLAN configuration";
-
- container vlans {
- description "Container for VLAN configuration and state
- variables";
-
- list vlan {
- key "vlan-id";
-
- description "Configured VLANs keyed by id";
-
- leaf vlan-id {
- type leafref {
- path "../config/vlan-id";
- }
- description "references the configured vlan-id";
- }
-
- container config {
- description "Configuration parameters for VLANs";
-
- uses vlan-config;
- }
-
- container state {
-
- config false;
- description "State variables for VLANs";
-
- uses vlan-config;
- uses vlan-state;
- }
- uses vlan-members-state;
- }
- }
- }
-
- grouping vlan-logical-top {
- description
- "Top-level grouping for VLAN data associated with a
- logical interface or subinterface";
-
- container vlan {
- description
- "Enclosing container for VLAN interface-specific
- data on subinterfaces";
-
- container config {
- description "Configuration parameters for VLANs";
-
- uses vlan-logical-config;
- }
-
- container state {
-
- config false;
- description "State variables for VLANs";
-
- uses vlan-logical-config;
- uses vlan-logical-state;
- }
- }
- }
-
- grouping vlan-routed-config {
- description
- "Configuration data for routed vlans (SVI, IRB, etc.)";
-
- leaf vlan {
- type union {
- // TODO: in YANG 1.1, unions support leafref types which
- // should be used here to reference a configured VLAN by
- // id or name
- type uint16;
- type string;
- }
- description
- "References the VLAN for which this IP interface
- provides routing services -- similar to a switch virtual
- interface (SVI), or integrated routing and bridging interface
- (IRB) in some implementations.";
- }
-
- }
-
- grouping vlan-routed-state {
- description
- "Operational state data for routed vlan interfaces.";
- }
-
- grouping vlan-routed-top {
- description
- "Top-level grouping for routed vlan logical interfaces";
-
- container routed-vlan {
- description
- "Top-level container for routed vlan interfaces. These
- logical interfaces are also known as SVI (switched virtual
- interface), IRB (integrated routing and bridging), RVI
- (routed VLAN interface)";
-
- container config {
- description
- "Configuration data for routed vlan interfaces";
-
- uses vlan-routed-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data ";
-
- uses vlan-routed-config;
- uses vlan-routed-state;
- }
- }
- }
-
- // data definition statements
-
- // augment statements
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:subinterfaces/" +
- "oc-if:subinterface" {
- description
- "Adds VLAN settings to individual subinterfaces";
-
- uses vlan-logical-top;
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:config" {
- description
- "Adds TPID / ethertype setting for the base interface";
-
- uses vlan-tpid-config;
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-if:state" {
- description
- "Adds TPID / ethertype opstate for the base interface";
-
- uses vlan-tpid-config;
- uses vlan-tpid-state;
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-eth:ethernet" {
- description
- "Adds VLAN settings to individual Ethernet interfaces";
-
- uses vlan-switched-top;
- }
-
- augment "/oc-if:interfaces/oc-if:interface/oc-lag:aggregation" {
- description "Adds VLAN settings to a LAG interface";
-
- uses vlan-switched-top;
- }
-
- augment "/oc-if:interfaces/oc-if:interface" {
- description
- "Adds configuration and state for routed VLAN interfaces";
-
- uses vlan-routed-top {
- when "current()/oc-if:config/oc-if:type = 'ift:l3ipvlan'" {
- description
- "Active when the interface is a logical interface providing
- L3 routing for VLANs";
- }
- }
- }
-
-
- // rpc statements
-
- // notification statements
-
-}