aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-if-ip@2018-01-05.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-if-ip@2018-01-05.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-if-ip@2018-01-05.yang1312
1 files changed, 0 insertions, 1312 deletions
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
-}