diff --git a/CHANGELOG.md b/CHANGELOG.md index 90dc4c0a..38dce43a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ # Clixon Changelog +* [5.5.0](#550) Planned January, 2022 * [5.4.0](#540) 30 November 2021 * [5.3.0](#530) 27 September 2021 * [5.2.0](#520) 1 July 2021 @@ -31,6 +32,9 @@ * [3.3.2](#332) Aug 27 2017 * [3.3.1](#331) June 7 2017 +## 5.5.0 +Planned: January, 2022 + ## 5.4.0 30 November, 2021 diff --git a/README.md b/README.md index 7c0f2f61..2024a975 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ See [documentation](https://clixon-docs.readthedocs.io), [project page](https:// Clixon is open-source and dual licensed. Either Apache License, Version 2.0 or GNU General Public License Version 2; you choose, see [LICENSE.md](LICENSE.md). -Latest release is 5.3.0 from September 2021. See [CHANGELOG.md](CHANGELOG.md) release history. +Clixon has a master branch continuously tested with CI, but releases are made ca every second month. Latest 5.4.0 release is from November 2021. Next is planned in January 2022. See [CHANGELOG.md](CHANGELOG.md) release history. Clixon interaction is best done posting issues, pull requests, or joining the [slack channel](https://clixondev.slack.com). diff --git a/configure b/configure index 5fd2a868..88166778 100755 --- a/configure +++ b/configure @@ -2265,9 +2265,9 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. CLIXON_VERSION_MAJOR="5" -CLIXON_VERSION_MINOR="4" +CLIXON_VERSION_MINOR="5" CLIXON_VERSION_PATCH="0" -CLIXON_VERSION="\"${CLIXON_VERSION_MAJOR}.${CLIXON_VERSION_MINOR}.${CLIXON_VERSION_PATCH}\"" +CLIXON_VERSION="\"${CLIXON_VERSION_MAJOR}.${CLIXON_VERSION_MINOR}.${CLIXON_VERSION_PATCH}.PRE\"" # Debug flag # Check whether --enable-debug was given. @@ -5678,7 +5678,7 @@ _ACEOF -ac_config_files="$ac_config_files Makefile lib/Makefile lib/src/Makefile lib/clixon/Makefile apps/Makefile apps/cli/Makefile apps/backend/Makefile apps/netconf/Makefile apps/restconf/Makefile include/Makefile etc/Makefile etc/clixonrc example/Makefile example/main/Makefile example/main/example.xml extras/rpm/Makefile docker/Makefile docker/main/Makefile docker/base/Makefile util/Makefile yang/Makefile yang/clixon/Makefile yang/mandatory/Makefile yang/optional/Makefile doc/Makefile test/Makefile test/config.sh test/cicd/Makefile test/vagrant/Makefile" +ac_config_files="$ac_config_files Makefile lib/Makefile lib/src/Makefile lib/clixon/Makefile apps/Makefile apps/cli/Makefile apps/backend/Makefile apps/netconf/Makefile apps/restconf/Makefile include/Makefile etc/Makefile etc/clixonrc example/Makefile example/main/Makefile example/main/example.xml extras/rpm/Makefile docker/Makefile docker/main/Makefile docker/base/Makefile util/Makefile yang/Makefile yang/clixon/Makefile yang/mandatory/Makefile doc/Makefile test/Makefile test/config.sh test/cicd/Makefile test/vagrant/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -6395,7 +6395,6 @@ do "yang/Makefile") CONFIG_FILES="$CONFIG_FILES yang/Makefile" ;; "yang/clixon/Makefile") CONFIG_FILES="$CONFIG_FILES yang/clixon/Makefile" ;; "yang/mandatory/Makefile") CONFIG_FILES="$CONFIG_FILES yang/mandatory/Makefile" ;; - "yang/optional/Makefile") CONFIG_FILES="$CONFIG_FILES yang/optional/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "test/Makefile") CONFIG_FILES="$CONFIG_FILES test/Makefile" ;; "test/config.sh") CONFIG_FILES="$CONFIG_FILES test/config.sh" ;; diff --git a/configure.ac b/configure.ac index 0f352d64..9c565025 100644 --- a/configure.ac +++ b/configure.ac @@ -48,9 +48,9 @@ AC_INIT(lib/clixon/clixon.h.in) AC_CONFIG_AUX_DIR(config-aux) CLIXON_VERSION_MAJOR="5" -CLIXON_VERSION_MINOR="4" +CLIXON_VERSION_MINOR="5" CLIXON_VERSION_PATCH="0" -CLIXON_VERSION="\"${CLIXON_VERSION_MAJOR}.${CLIXON_VERSION_MINOR}.${CLIXON_VERSION_PATCH}\"" +CLIXON_VERSION="\"${CLIXON_VERSION_MAJOR}.${CLIXON_VERSION_MINOR}.${CLIXON_VERSION_PATCH}.PRE\"" # Debug flag AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug],[Build with debug symbols, default: no]),[ @@ -374,7 +374,6 @@ AC_OUTPUT(Makefile yang/Makefile yang/clixon/Makefile yang/mandatory/Makefile - yang/optional/Makefile doc/Makefile test/Makefile test/config.sh diff --git a/yang/optional/Makefile.in b/yang/optional/Makefile.in deleted file mode 100644 index a7b3e1e3..00000000 --- a/yang/optional/Makefile.in +++ /dev/null @@ -1,72 +0,0 @@ -# -# ***** BEGIN LICENSE BLOCK ***** -# -# Copyright (C) 2017-2019 Olof Hagsand -# Copyright (C) 2020-2021 Olof Hagsand and Rubicon Communications, LLC(Netgate) -# -# This file is part of CLIXON -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Alternatively, the contents of this file may be used under the terms of -# the GNU General Public License Version 3 or later (the "GPL"), -# in which case the provisions of the GPL are applicable instead -# of those above. If you wish to allow use of your version of this file only -# under the terms of the GPL, and not to allow others to -# use your version of this file under the terms of Apache License version 2, -# indicate your decision by deleting the provisions above and replace them with -# the notice and other provisions required by the GPL. If you do not delete -# the provisions above, a recipient may use your version of this file under -# the terms of any one of the Apache License version 2 or the GPL. -# -# ***** END LICENSE BLOCK ***** -# -VPATH = @srcdir@ -srcdir = @srcdir@ -top_srcdir = @top_srcdir@ -prefix = @prefix@ -bindir = @bindir@ -includedir = @includedir@ -datarootdir = @datarootdir@ - -# See also OPT_YANG_INSTALLDIR for optionali yang files -OPT_YANG_INSTALLDIR = @OPT_YANG_INSTALLDIR@ - -YANGSPECS = iana-if-type@2014-05-08.yang -YANGSPECS += ietf-interfaces@2018-02-20.yang -YANGSPECS += ietf-ip@2014-06-16.yang -YANGSPECS += ietf-netconf-monitoring@2010-10-04.yang -YANGSPECS += ietf-routing@2018-03-13.yang -YANGSPECS += iana-crypt-hash@2014-08-06.yang # collection example-module - -all: - -clean: - -distclean: clean - rm -f Makefile *~ .depend - -install: $(YANGSPECS) - install -d -m 0755 $(DESTDIR)$(OPT_YANG_INSTALLDIR) - install -m 0644 $(YANGSPECS) $(DESTDIR)$(OPT_YANG_INSTALLDIR) - -uninstall: - (cd $(DESTDIR)$(OPT_YANG_INSTALLDIR); rm -rf *.yang) - -install-include: - -depend: - - -#include .depend - diff --git a/yang/optional/iana-crypt-hash@2014-08-06.yang b/yang/optional/iana-crypt-hash@2014-08-06.yang deleted file mode 100644 index 44c4674f..00000000 --- a/yang/optional/iana-crypt-hash@2014-08-06.yang +++ /dev/null @@ -1,120 +0,0 @@ -module iana-crypt-hash { - namespace "urn:ietf:params:xml:ns:yang:iana-crypt-hash"; - prefix ianach; - - organization "IANA"; - contact - " Internet Assigned Numbers Authority - - Postal: ICANN - 12025 Waterfront Drive, Suite 300 - Los Angeles, CA 90094-2536 - United States - - Tel: +1 310 301 5800 - E-Mail: iana@iana.org>"; - description - "This YANG module defines a type for storing passwords - using a hash function and features to indicate which hash - functions are supported by an implementation. - - The latest revision of this YANG module can be obtained from - the IANA web site. - - Requests for new values should be made to IANA via - email (iana@iana.org). - - Copyright (c) 2014 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). - - The initial version of this YANG module is part of RFC 7317; - see the RFC itself for full legal notices."; - - revision 2014-08-06 { - description - "Initial revision."; - reference - "RFC 7317: A YANG Data Model for System Management"; - } - - typedef crypt-hash { - type string { - pattern - '$0$.*' - + '|$1$[a-zA-Z0-9./]{1,8}$[a-zA-Z0-9./]{22}' - + '|$5$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{43}' - + '|$6$(rounds=\d+$)?[a-zA-Z0-9./]{1,16}$[a-zA-Z0-9./]{86}'; - } - description - "The crypt-hash type is used to store passwords using - a hash function. The algorithms for applying the hash - function and encoding the result are implemented in - various UNIX systems as the function crypt(3). - - A value of this type matches one of the forms: - - $0$ - $$$ - $$$$ - - The '$0$' prefix signals that the value is clear text. When - such a value is received by the server, a hash value is - calculated, and the string '$$$' or - $$$$ is prepended to the result. This - value is stored in the configuration data store. - If a value starting with '$$', where is not '0', is - received, the server knows that the value already represents a - hashed value and stores it 'as is' in the data store. - - When a server needs to verify a password given by a user, it - finds the stored password hash string for that user, extracts - the salt, and calculates the hash with the salt and given - password as input. If the calculated hash value is the same - as the stored value, the password given by the client is - accepted. - - This type defines the following hash functions: - - id | hash function | feature - ---+---------------+------------------- - 1 | MD5 | crypt-hash-md5 - 5 | SHA-256 | crypt-hash-sha-256 - 6 | SHA-512 | crypt-hash-sha-512 - - The server indicates support for the different hash functions - by advertising the corresponding feature."; - reference - "IEEE Std 1003.1-2008 - crypt() function - RFC 1321: The MD5 Message-Digest Algorithm - FIPS.180-4.2012: Secure Hash Standard (SHS)"; - } - - feature crypt-hash-md5 { - description - "Indicates that the device supports the MD5 - hash function in 'crypt-hash' values."; - reference "RFC 1321: The MD5 Message-Digest Algorithm"; - } - - feature crypt-hash-sha-256 { - description - "Indicates that the device supports the SHA-256 - hash function in 'crypt-hash' values."; - reference "FIPS.180-4.2012: Secure Hash Standard (SHS)"; - } - - feature crypt-hash-sha-512 { - description - "Indicates that the device supports the SHA-512 - hash function in 'crypt-hash' values."; - reference "FIPS.180-4.2012: Secure Hash Standard (SHS)"; - } - -} diff --git a/yang/optional/iana-if-type@2014-05-08.yang b/yang/optional/iana-if-type@2014-05-08.yang deleted file mode 100644 index da5b65b7..00000000 --- a/yang/optional/iana-if-type@2014-05-08.yang +++ /dev/null @@ -1,1506 +0,0 @@ - module iana-if-type { - namespace "urn:ietf:params:xml:ns:yang:iana-if-type"; - prefix ianaift; - - import ietf-interfaces { - prefix if; - } - - organization "IANA"; - contact - " Internet Assigned Numbers Authority - - Postal: ICANN - 4676 Admiralty Way, Suite 330 - Marina del Rey, CA 90292 - - Tel: +1 310 823 9358 - "; - description - "This YANG module defines YANG identities for IANA-registered - interface types. - - This YANG module is maintained by IANA and reflects the - 'ifType definitions' registry. - - The latest revision of this YANG module can be obtained from - the IANA web site. - - Requests for new values should be made to IANA via - email (iana@iana.org). - - Copyright (c) 2014 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). - - The initial version of this YANG module is part of RFC 7224; - see the RFC itself for full legal notices."; - reference - "IANA 'ifType definitions' registry. - "; - - revision 2014-05-08 { - description - "Initial revision."; - reference - "RFC 7224: IANA Interface Type YANG Module"; - } - - identity iana-interface-type { - base if:interface-type; - description - "This identity is used as a base for all interface types - defined in the 'ifType definitions' registry."; - } - identity other { - base iana-interface-type; - } - identity regular1822 { - base iana-interface-type; - } - identity hdh1822 { - base iana-interface-type; - } - identity ddnX25 { - base iana-interface-type; - } - identity rfc877x25 { - base iana-interface-type; - reference - "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer"; - } - identity ethernetCsmacd { - base iana-interface-type; - description - "For all Ethernet-like interfaces, regardless of speed, - as per RFC 3635."; - reference - "RFC 3635 - Definitions of Managed Objects for the - Ethernet-like Interface Types"; - } - identity iso88023Csmacd { - base iana-interface-type; - status deprecated; - description - "Deprecated via RFC 3635. - Use ethernetCsmacd(6) instead."; - reference - "RFC 3635 - Definitions of Managed Objects for the - Ethernet-like Interface Types"; - } - identity iso88024TokenBus { - base iana-interface-type; - } - identity iso88025TokenRing { - base iana-interface-type; - } - identity iso88026Man { - base iana-interface-type; - } - identity starLan { - base iana-interface-type; - status deprecated; - description - "Deprecated via RFC 3635. - Use ethernetCsmacd(6) instead."; - reference - "RFC 3635 - Definitions of Managed Objects for the - Ethernet-like Interface Types"; - } - identity proteon10Mbit { - base iana-interface-type; - } - identity proteon80Mbit { - base iana-interface-type; - } - identity hyperchannel { - base iana-interface-type; - } - identity fddi { - base iana-interface-type; - reference - "RFC 1512 - FDDI Management Information Base"; - } - identity lapb { - base iana-interface-type; - reference - "RFC 1381 - SNMP MIB Extension for X.25 LAPB"; - } - identity sdlc { - base iana-interface-type; - } - identity ds1 { - base iana-interface-type; - description - "DS1-MIB."; - reference - "RFC 4805 - Definitions of Managed Objects for the - DS1, J1, E1, DS2, and E2 Interface Types"; - } - identity e1 { - base iana-interface-type; - status obsolete; - description - "Obsolete; see DS1-MIB."; - reference - "RFC 4805 - Definitions of Managed Objects for the - DS1, J1, E1, DS2, and E2 Interface Types"; - } - identity basicISDN { - base iana-interface-type; - description - "No longer used. See also RFC 2127."; - } - identity primaryISDN { - base iana-interface-type; - description - "No longer used. See also RFC 2127."; - } - identity propPointToPointSerial { - base iana-interface-type; - description - "Proprietary serial."; - } - identity ppp { - base iana-interface-type; - } - identity softwareLoopback { - base iana-interface-type; - } - identity eon { - base iana-interface-type; - description - "CLNP over IP."; - } - identity ethernet3Mbit { - base iana-interface-type; - } - identity nsip { - base iana-interface-type; - description - "XNS over IP."; - } - identity slip { - base iana-interface-type; - description - "Generic SLIP."; - } - identity ultra { - base iana-interface-type; - description - "Ultra Technologies."; - } - identity ds3 { - base iana-interface-type; - description - "DS3-MIB."; - reference - "RFC 3896 - Definitions of Managed Objects for the - DS3/E3 Interface Type"; - } - identity sip { - base iana-interface-type; - description - "SMDS, coffee."; - reference - "RFC 1694 - Definitions of Managed Objects for SMDS - Interfaces using SMIv2"; - } - identity frameRelay { - base iana-interface-type; - description - "DTE only."; - reference - "RFC 2115 - Management Information Base for Frame Relay - DTEs Using SMIv2"; - } - identity rs232 { - base iana-interface-type; - reference - "RFC 1659 - Definitions of Managed Objects for RS-232-like - Hardware Devices using SMIv2"; - } - identity para { - base iana-interface-type; - description - "Parallel-port."; - reference - "RFC 1660 - Definitions of Managed Objects for - Parallel-printer-like Hardware Devices using - SMIv2"; - } - identity arcnet { - base iana-interface-type; - description - "ARCnet."; - } - identity arcnetPlus { - base iana-interface-type; - description - "ARCnet Plus."; - } - identity atm { - base iana-interface-type; - description - "ATM cells."; - } - identity miox25 { - base iana-interface-type; - reference - "RFC 1461 - SNMP MIB extension for Multiprotocol - Interconnect over X.25"; - } - identity sonet { - base iana-interface-type; - description - "SONET or SDH."; - } - identity x25ple { - base iana-interface-type; - reference - "RFC 2127 - ISDN Management Information Base using SMIv2"; - } - identity iso88022llc { - base iana-interface-type; - } - identity localTalk { - base iana-interface-type; - } - identity smdsDxi { - base iana-interface-type; - } - identity frameRelayService { - base iana-interface-type; - description - "FRNETSERV-MIB."; - reference - "RFC 2954 - Definitions of Managed Objects for Frame - Relay Service"; - } - identity v35 { - base iana-interface-type; - } - identity hssi { - base iana-interface-type; - } - identity hippi { - base iana-interface-type; - } - identity modem { - base iana-interface-type; - description - "Generic modem."; - } - identity aal5 { - base iana-interface-type; - description - "AAL5 over ATM."; - } - identity sonetPath { - base iana-interface-type; - } - identity sonetVT { - base iana-interface-type; - } - identity smdsIcip { - base iana-interface-type; - description - "SMDS InterCarrier Interface."; - } - identity propVirtual { - base iana-interface-type; - description - "Proprietary virtual/internal."; - reference - "RFC 2863 - The Interfaces Group MIB"; - } - identity propMultiplexor { - base iana-interface-type; - description - "Proprietary multiplexing."; - reference - "RFC 2863 - The Interfaces Group MIB"; - } - identity ieee80212 { - base iana-interface-type; - description - "100BaseVG."; - } - identity fibreChannel { - base iana-interface-type; - description - "Fibre Channel."; - } - identity hippiInterface { - base iana-interface-type; - description - "HIPPI interfaces."; - } - identity frameRelayInterconnect { - base iana-interface-type; - status obsolete; - description - "Obsolete; use either - frameRelay(32) or frameRelayService(44)."; - } - identity aflane8023 { - base iana-interface-type; - description - "ATM Emulated LAN for 802.3."; - } - identity aflane8025 { - base iana-interface-type; - description - "ATM Emulated LAN for 802.5."; - } - identity cctEmul { - base iana-interface-type; - description - "ATM Emulated circuit."; - } - identity fastEther { - base iana-interface-type; - status deprecated; - description - "Obsoleted via RFC 3635. - ethernetCsmacd(6) should be used instead."; - reference - "RFC 3635 - Definitions of Managed Objects for the - Ethernet-like Interface Types"; - } - identity isdn { - base iana-interface-type; - description - "ISDN and X.25."; - reference - "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN - in the Packet Mode"; - } - identity v11 { - base iana-interface-type; - description - "CCITT V.11/X.21."; - } - identity v36 { - base iana-interface-type; - description - "CCITT V.36."; - } - identity g703at64k { - base iana-interface-type; - description - "CCITT G703 at 64Kbps."; - } - identity g703at2mb { - base iana-interface-type; - status obsolete; - description - "Obsolete; see DS1-MIB."; - } - identity qllc { - base iana-interface-type; - description - "SNA QLLC."; - } - identity fastEtherFX { - base iana-interface-type; - status deprecated; - description - "Obsoleted via RFC 3635. - ethernetCsmacd(6) should be used instead."; - reference - "RFC 3635 - Definitions of Managed Objects for the - Ethernet-like Interface Types"; - } - identity channel { - base iana-interface-type; - description - "Channel."; - } - identity ieee80211 { - base iana-interface-type; - description - "Radio spread spectrum."; - } - identity ibm370parChan { - base iana-interface-type; - description - "IBM System 360/370 OEMI Channel."; - } - identity escon { - base iana-interface-type; - description - "IBM Enterprise Systems Connection."; - } - identity dlsw { - base iana-interface-type; - description - "Data Link Switching."; - } - identity isdns { - base iana-interface-type; - description - "ISDN S/T interface."; - } - identity isdnu { - base iana-interface-type; - description - "ISDN U interface."; - } - identity lapd { - base iana-interface-type; - description - "Link Access Protocol D."; - } - identity ipSwitch { - base iana-interface-type; - description - "IP Switching Objects."; - } - identity rsrb { - base iana-interface-type; - description - "Remote Source Route Bridging."; - } - identity atmLogical { - base iana-interface-type; - description - "ATM Logical Port."; - reference - "RFC 3606 - Definitions of Supplemental Managed Objects - for ATM Interface"; - } - identity ds0 { - base iana-interface-type; - description - "Digital Signal Level 0."; - reference - "RFC 2494 - Definitions of Managed Objects for the DS0 - and DS0 Bundle Interface Type"; - } - identity ds0Bundle { - base iana-interface-type; - description - "Group of ds0s on the same ds1."; - reference - "RFC 2494 - Definitions of Managed Objects for the DS0 - and DS0 Bundle Interface Type"; - } - identity bsc { - base iana-interface-type; - description - "Bisynchronous Protocol."; - } - identity async { - base iana-interface-type; - description - "Asynchronous Protocol."; - } - identity cnr { - base iana-interface-type; - description - "Combat Net Radio."; - } - identity iso88025Dtr { - base iana-interface-type; - description - "ISO 802.5r DTR."; - } - identity eplrs { - base iana-interface-type; - description - "Ext Pos Loc Report Sys."; - } - identity arap { - base iana-interface-type; - description - "Appletalk Remote Access Protocol."; - } - identity propCnls { - base iana-interface-type; - description - "Proprietary Connectionless Protocol."; - } - identity hostPad { - base iana-interface-type; - description - "CCITT-ITU X.29 PAD Protocol."; - } - identity termPad { - base iana-interface-type; - description - "CCITT-ITU X.3 PAD Facility."; - } - identity frameRelayMPI { - base iana-interface-type; - description - "Multiproto Interconnect over FR."; - } - identity x213 { - base iana-interface-type; - description - "CCITT-ITU X213."; - } - identity adsl { - base iana-interface-type; - description - "Asymmetric Digital Subscriber Loop."; - } - identity radsl { - base iana-interface-type; - description - "Rate-Adapt. Digital Subscriber Loop."; - } - identity sdsl { - base iana-interface-type; - description - "Symmetric Digital Subscriber Loop."; - } - identity vdsl { - base iana-interface-type; - description - "Very H-Speed Digital Subscrib. Loop."; - } - identity iso88025CRFPInt { - base iana-interface-type; - description - "ISO 802.5 CRFP."; - } - identity myrinet { - base iana-interface-type; - description - "Myricom Myrinet."; - } - identity voiceEM { - base iana-interface-type; - description - "Voice recEive and transMit."; - } - identity voiceFXO { - base iana-interface-type; - description - "Voice Foreign Exchange Office."; - } - identity voiceFXS { - base iana-interface-type; - description - "Voice Foreign Exchange Station."; - } - identity voiceEncap { - base iana-interface-type; - description - "Voice encapsulation."; - } - identity voiceOverIp { - base iana-interface-type; - description - "Voice over IP encapsulation."; - } - identity atmDxi { - base iana-interface-type; - description - "ATM DXI."; - } - identity atmFuni { - base iana-interface-type; - description - "ATM FUNI."; - } - identity atmIma { - base iana-interface-type; - description - "ATM IMA."; - } - identity pppMultilinkBundle { - base iana-interface-type; - description - "PPP Multilink Bundle."; - } - identity ipOverCdlc { - base iana-interface-type; - description - "IBM ipOverCdlc."; - } - identity ipOverClaw { - base iana-interface-type; - description - "IBM Common Link Access to Workstn."; - } - identity stackToStack { - base iana-interface-type; - description - "IBM stackToStack."; - } - identity virtualIpAddress { - base iana-interface-type; - description - "IBM VIPA."; - } - identity mpc { - base iana-interface-type; - description - "IBM multi-protocol channel support."; - } - identity ipOverAtm { - base iana-interface-type; - description - "IBM ipOverAtm."; - reference - "RFC 2320 - Definitions of Managed Objects for Classical IP - and ARP Over ATM Using SMIv2 (IPOA-MIB)"; - } - identity iso88025Fiber { - base iana-interface-type; - description - "ISO 802.5j Fiber Token Ring."; - } - identity tdlc { - base iana-interface-type; - description - "IBM twinaxial data link control."; - } - identity gigabitEthernet { - base iana-interface-type; - status deprecated; - description - "Obsoleted via RFC 3635. - ethernetCsmacd(6) should be used instead."; - reference - "RFC 3635 - Definitions of Managed Objects for the - Ethernet-like Interface Types"; - } - identity hdlc { - base iana-interface-type; - description - "HDLC."; - } - identity lapf { - base iana-interface-type; - description - "LAP F."; - } - identity v37 { - base iana-interface-type; - description - "V.37."; - } - identity x25mlp { - base iana-interface-type; - description - "Multi-Link Protocol."; - } - identity x25huntGroup { - base iana-interface-type; - description - "X25 Hunt Group."; - } - identity transpHdlc { - base iana-interface-type; - description - "Transp HDLC."; - } - identity interleave { - base iana-interface-type; - description - "Interleave channel."; - } - identity fast { - base iana-interface-type; - description - "Fast channel."; - } - identity ip { - base iana-interface-type; - description - "IP (for APPN HPR in IP networks)."; - } - identity docsCableMaclayer { - base iana-interface-type; - description - "CATV Mac Layer."; - } - identity docsCableDownstream { - base iana-interface-type; - description - "CATV Downstream interface."; - } - identity docsCableUpstream { - base iana-interface-type; - description - "CATV Upstream interface."; - } - identity a12MppSwitch { - base iana-interface-type; - description - "Avalon Parallel Processor."; - } - identity tunnel { - base iana-interface-type; - description - "Encapsulation interface."; - } - identity coffee { - base iana-interface-type; - description - "Coffee pot."; - reference - "RFC 2325 - Coffee MIB"; - } - identity ces { - base iana-interface-type; - description - "Circuit Emulation Service."; - } - identity atmSubInterface { - base iana-interface-type; - description - "ATM Sub Interface."; - } - identity l2vlan { - base iana-interface-type; - description - "Layer 2 Virtual LAN using 802.1Q."; - } - identity l3ipvlan { - base iana-interface-type; - description - "Layer 3 Virtual LAN using IP."; - } - identity l3ipxvlan { - base iana-interface-type; - description - "Layer 3 Virtual LAN using IPX."; - } - identity digitalPowerline { - base iana-interface-type; - description - "IP over Power Lines."; - } - identity mediaMailOverIp { - base iana-interface-type; - description - "Multimedia Mail over IP."; - } - identity dtm { - base iana-interface-type; - description - "Dynamic synchronous Transfer Mode."; - } - identity dcn { - base iana-interface-type; - description - "Data Communications Network."; - } - identity ipForward { - base iana-interface-type; - description - "IP Forwarding Interface."; - } - identity msdsl { - base iana-interface-type; - description - "Multi-rate Symmetric DSL."; - } - identity ieee1394 { - base iana-interface-type; - description - "IEEE1394 High Performance Serial Bus."; - } - identity if-gsn { - base iana-interface-type; - description - "HIPPI-6400."; - } - identity dvbRccMacLayer { - base iana-interface-type; - description - "DVB-RCC MAC Layer."; - } - identity dvbRccDownstream { - base iana-interface-type; - description - "DVB-RCC Downstream Channel."; - } - identity dvbRccUpstream { - base iana-interface-type; - description - "DVB-RCC Upstream Channel."; - } - identity atmVirtual { - base iana-interface-type; - description - "ATM Virtual Interface."; - } - identity mplsTunnel { - base iana-interface-type; - description - "MPLS Tunnel Virtual Interface."; - } - identity srp { - base iana-interface-type; - description - "Spatial Reuse Protocol."; - } - identity voiceOverAtm { - base iana-interface-type; - description - "Voice over ATM."; - } - identity voiceOverFrameRelay { - base iana-interface-type; - description - "Voice Over Frame Relay."; - } - identity idsl { - base iana-interface-type; - description - "Digital Subscriber Loop over ISDN."; - } - identity compositeLink { - base iana-interface-type; - description - "Avici Composite Link Interface."; - } - identity ss7SigLink { - base iana-interface-type; - description - "SS7 Signaling Link."; - } - identity propWirelessP2P { - base iana-interface-type; - description - "Prop. P2P wireless interface."; - } - identity frForward { - base iana-interface-type; - description - "Frame Forward Interface."; - } - identity rfc1483 { - base iana-interface-type; - description - "Multiprotocol over ATM AAL5."; - reference - "RFC 1483 - Multiprotocol Encapsulation over ATM - Adaptation Layer 5"; - } - identity usb { - base iana-interface-type; - description - "USB Interface."; - } - identity ieee8023adLag { - base iana-interface-type; - description - "IEEE 802.3ad Link Aggregate."; - } - identity bgppolicyaccounting { - base iana-interface-type; - description - "BGP Policy Accounting."; - } - identity frf16MfrBundle { - base iana-interface-type; - description - "FRF.16 Multilink Frame Relay."; - } - identity h323Gatekeeper { - base iana-interface-type; - description - "H323 Gatekeeper."; - } - identity h323Proxy { - base iana-interface-type; - description - "H323 Voice and Video Proxy."; - } - identity mpls { - base iana-interface-type; - description - "MPLS."; - } - identity mfSigLink { - base iana-interface-type; - description - "Multi-frequency signaling link."; - } - identity hdsl2 { - base iana-interface-type; - description - "High Bit-Rate DSL - 2nd generation."; - } - identity shdsl { - base iana-interface-type; - description - "Multirate HDSL2."; - } - identity ds1FDL { - base iana-interface-type; - description - "Facility Data Link (4Kbps) on a DS1."; - } - identity pos { - base iana-interface-type; - description - "Packet over SONET/SDH Interface."; - } - identity dvbAsiIn { - base iana-interface-type; - description - "DVB-ASI Input."; - } - identity dvbAsiOut { - base iana-interface-type; - description - "DVB-ASI Output."; - } - identity plc { - base iana-interface-type; - description - "Power Line Communications."; - } - identity nfas { - base iana-interface-type; - description - "Non-Facility Associated Signaling."; - } - identity tr008 { - base iana-interface-type; - description - "TR008."; - } - identity gr303RDT { - base iana-interface-type; - description - "Remote Digital Terminal."; - } - identity gr303IDT { - base iana-interface-type; - description - "Integrated Digital Terminal."; - } - identity isup { - base iana-interface-type; - description - "ISUP."; - } - identity propDocsWirelessMaclayer { - base iana-interface-type; - description - "Cisco proprietary Maclayer."; - } - identity propDocsWirelessDownstream { - base iana-interface-type; - description - "Cisco proprietary Downstream."; - } - identity propDocsWirelessUpstream { - base iana-interface-type; - description - "Cisco proprietary Upstream."; - } - identity hiperlan2 { - base iana-interface-type; - description - "HIPERLAN Type 2 Radio Interface."; - } - identity propBWAp2Mp { - base iana-interface-type; - description - "PropBroadbandWirelessAccesspt2Multipt (use of this value - for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f - is deprecated, and ieee80216WMAN(237) should be used - instead)."; - } - identity sonetOverheadChannel { - base iana-interface-type; - description - "SONET Overhead Channel."; - } - identity digitalWrapperOverheadChannel { - base iana-interface-type; - description - "Digital Wrapper."; - } - identity aal2 { - base iana-interface-type; - description - "ATM adaptation layer 2."; - } - identity radioMAC { - base iana-interface-type; - description - "MAC layer over radio links."; - } - identity atmRadio { - base iana-interface-type; - description - "ATM over radio links."; - } - identity imt { - base iana-interface-type; - description - "Inter-Machine Trunks."; - } - identity mvl { - base iana-interface-type; - description - "Multiple Virtual Lines DSL."; - } - identity reachDSL { - base iana-interface-type; - description - "Long Reach DSL."; - } - identity frDlciEndPt { - base iana-interface-type; - description - "Frame Relay DLCI End Point."; - } - identity atmVciEndPt { - base iana-interface-type; - description - "ATM VCI End Point."; - } - identity opticalChannel { - base iana-interface-type; - description - "Optical Channel."; - } - identity opticalTransport { - base iana-interface-type; - description - "Optical Transport."; - } - identity propAtm { - base iana-interface-type; - description - "Proprietary ATM."; - } - identity voiceOverCable { - base iana-interface-type; - description - "Voice Over Cable Interface."; - } - identity infiniband { - base iana-interface-type; - description - "Infiniband."; - } - identity teLink { - base iana-interface-type; - description - "TE Link."; - } - identity q2931 { - base iana-interface-type; - description - "Q.2931."; - } - identity virtualTg { - base iana-interface-type; - description - "Virtual Trunk Group."; - } - identity sipTg { - base iana-interface-type; - description - "SIP Trunk Group."; - } - identity sipSig { - base iana-interface-type; - description - "SIP Signaling."; - } - identity docsCableUpstreamChannel { - base iana-interface-type; - description - "CATV Upstream Channel."; - } - identity econet { - base iana-interface-type; - description - "Acorn Econet."; - } - identity pon155 { - base iana-interface-type; - description - "FSAN 155Mb Symetrical PON interface."; - } - identity pon622 { - base iana-interface-type; - description - "FSAN 622Mb Symetrical PON interface."; - } - identity bridge { - base iana-interface-type; - description - "Transparent bridge interface."; - } - identity linegroup { - base iana-interface-type; - description - "Interface common to multiple lines."; - } - identity voiceEMFGD { - base iana-interface-type; - description - "Voice E&M Feature Group D."; - } - identity voiceFGDEANA { - base iana-interface-type; - description - "Voice FGD Exchange Access North American."; - } - identity voiceDID { - base iana-interface-type; - description - "Voice Direct Inward Dialing."; - } - identity mpegTransport { - base iana-interface-type; - description - "MPEG transport interface."; - } - identity sixToFour { - base iana-interface-type; - status deprecated; - description - "6to4 interface (DEPRECATED)."; - reference - "RFC 4087 - IP Tunnel MIB"; - } - identity gtp { - base iana-interface-type; - description - "GTP (GPRS Tunneling Protocol)."; - } - identity pdnEtherLoop1 { - base iana-interface-type; - description - "Paradyne EtherLoop 1."; - } - identity pdnEtherLoop2 { - base iana-interface-type; - description - "Paradyne EtherLoop 2."; - } - identity opticalChannelGroup { - base iana-interface-type; - description - "Optical Channel Group."; - } - identity homepna { - base iana-interface-type; - description - "HomePNA ITU-T G.989."; - } - identity gfp { - base iana-interface-type; - description - "Generic Framing Procedure (GFP)."; - } - identity ciscoISLvlan { - base iana-interface-type; - description - "Layer 2 Virtual LAN using Cisco ISL."; - } - identity actelisMetaLOOP { - base iana-interface-type; - description - "Acteleis proprietary MetaLOOP High Speed Link."; - } - identity fcipLink { - base iana-interface-type; - description - "FCIP Link."; - } - identity rpr { - base iana-interface-type; - description - "Resilient Packet Ring Interface Type."; - } - identity qam { - base iana-interface-type; - description - "RF Qam Interface."; - } - identity lmp { - base iana-interface-type; - description - "Link Management Protocol."; - reference - "RFC 4327 - Link Management Protocol (LMP) Management - Information Base (MIB)"; - } - identity cblVectaStar { - base iana-interface-type; - description - "Cambridge Broadband Networks Limited VectaStar."; - } - identity docsCableMCmtsDownstream { - base iana-interface-type; - description - "CATV Modular CMTS Downstream Interface."; - } - identity adsl2 { - base iana-interface-type; - status deprecated; - description - "Asymmetric Digital Subscriber Loop Version 2 - (DEPRECATED/OBSOLETED - please use adsl2plus(238) - instead)."; - reference - "RFC 4706 - Definitions of Managed Objects for Asymmetric - Digital Subscriber Line 2 (ADSL2)"; - } - identity macSecControlledIF { - base iana-interface-type; - description - "MACSecControlled."; - } - identity macSecUncontrolledIF { - base iana-interface-type; - description - "MACSecUncontrolled."; - } - identity aviciOpticalEther { - base iana-interface-type; - description - "Avici Optical Ethernet Aggregate."; - } - identity atmbond { - base iana-interface-type; - description - "atmbond."; - } - identity voiceFGDOS { - base iana-interface-type; - description - "Voice FGD Operator Services."; - } - identity mocaVersion1 { - base iana-interface-type; - description - "MultiMedia over Coax Alliance (MoCA) Interface - as documented in information provided privately to IANA."; - } - identity ieee80216WMAN { - base iana-interface-type; - description - "IEEE 802.16 WMAN interface."; - } - identity adsl2plus { - base iana-interface-type; - description - "Asymmetric Digital Subscriber Loop Version 2 - - Version 2 Plus and all variants."; - } - identity dvbRcsMacLayer { - base iana-interface-type; - description - "DVB-RCS MAC Layer."; - reference - "RFC 5728 - The SatLabs Group DVB-RCS MIB"; - } - identity dvbTdm { - base iana-interface-type; - description - "DVB Satellite TDM."; - reference - "RFC 5728 - The SatLabs Group DVB-RCS MIB"; - } - identity dvbRcsTdma { - base iana-interface-type; - description - "DVB-RCS TDMA."; - reference - "RFC 5728 - The SatLabs Group DVB-RCS MIB"; - } - identity x86Laps { - base iana-interface-type; - description - "LAPS based on ITU-T X.86/Y.1323."; - } - identity wwanPP { - base iana-interface-type; - description - "3GPP WWAN."; - } - identity wwanPP2 { - base iana-interface-type; - description - "3GPP2 WWAN."; - } - identity voiceEBS { - base iana-interface-type; - description - "Voice P-phone EBS physical interface."; - } - identity ifPwType { - base iana-interface-type; - description - "Pseudowire interface type."; - reference - "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)"; - } - identity ilan { - base iana-interface-type; - description - "Internal LAN on a bridge per IEEE 802.1ap."; - } - identity pip { - base iana-interface-type; - description - "Provider Instance Port on a bridge per IEEE 802.1ah PBB."; - } - identity aluELP { - base iana-interface-type; - description - "Alcatel-Lucent Ethernet Link Protection."; - } - identity gpon { - base iana-interface-type; - description - "Gigabit-capable passive optical networks (G-PON) as per - ITU-T G.948."; - } - identity vdsl2 { - base iana-interface-type; - description - "Very high speed digital subscriber line Version 2 - (as per ITU-T Recommendation G.993.2)."; - reference - "RFC 5650 - Definitions of Managed Objects for Very High - Speed Digital Subscriber Line 2 (VDSL2)"; - } - identity capwapDot11Profile { - base iana-interface-type; - description - "WLAN Profile Interface."; - reference - "RFC 5834 - Control and Provisioning of Wireless Access - Points (CAPWAP) Protocol Binding MIB for - IEEE 802.11"; - } - identity capwapDot11Bss { - base iana-interface-type; - description - "WLAN BSS Interface."; - reference - "RFC 5834 - Control and Provisioning of Wireless Access - Points (CAPWAP) Protocol Binding MIB for - IEEE 802.11"; - } - identity capwapWtpVirtualRadio { - base iana-interface-type; - description - "WTP Virtual Radio Interface."; - reference - "RFC 5833 - Control and Provisioning of Wireless Access - Points (CAPWAP) Protocol Base MIB"; - } - identity bits { - base iana-interface-type; - description - "bitsport."; - } - identity docsCableUpstreamRfPort { - base iana-interface-type; - description - "DOCSIS CATV Upstream RF Port."; - } - identity cableDownstreamRfPort { - base iana-interface-type; - description - "CATV downstream RF Port."; - } - identity vmwareVirtualNic { - base iana-interface-type; - description - "VMware Virtual Network Interface."; - } - identity ieee802154 { - base iana-interface-type; - description - "IEEE 802.15.4 WPAN interface."; - reference - "IEEE 802.15.4-2006"; - } - identity otnOdu { - base iana-interface-type; - description - "OTN Optical Data Unit."; - } - identity otnOtu { - base iana-interface-type; - description - "OTN Optical channel Transport Unit."; - } - identity ifVfiType { - base iana-interface-type; - description - "VPLS Forwarding Instance Interface Type."; - } - identity g9981 { - base iana-interface-type; - description - "G.998.1 bonded interface."; - } - identity g9982 { - base iana-interface-type; - description - "G.998.2 bonded interface."; - } - identity g9983 { - base iana-interface-type; - description - "G.998.3 bonded interface."; - } - identity aluEpon { - base iana-interface-type; - description - "Ethernet Passive Optical Networks (E-PON)."; - } - identity aluEponOnu { - base iana-interface-type; - description - "EPON Optical Network Unit."; - } - identity aluEponPhysicalUni { - base iana-interface-type; - description - "EPON physical User to Network interface."; - } - identity aluEponLogicalLink { - base iana-interface-type; - description - "The emulation of a point-to-point link over the EPON - layer."; - } - identity aluGponOnu { - base iana-interface-type; - description - "GPON Optical Network Unit."; - reference - "ITU-T G.984.2"; - } - identity aluGponPhysicalUni { - base iana-interface-type; - description - "GPON physical User to Network interface."; - reference - "ITU-T G.984.2"; - } - identity vmwareNicTeam { - base iana-interface-type; - description - "VMware NIC Team."; - } - } diff --git a/yang/optional/ietf-interfaces@2018-02-20.yang b/yang/optional/ietf-interfaces@2018-02-20.yang deleted file mode 100644 index f66c205c..00000000 --- a/yang/optional/ietf-interfaces@2018-02-20.yang +++ /dev/null @@ -1,1123 +0,0 @@ -module ietf-interfaces { - yang-version 1.1; - namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; - prefix if; - - import ietf-yang-types { - prefix yang; - } - - organization - "IETF NETMOD (Network Modeling) Working Group"; - - contact - "WG Web: - WG List: - - Editor: Martin Bjorklund - "; - - description - "This module contains a collection of YANG definitions for - managing network interfaces. - - 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 8343; see - the RFC itself for full legal notices."; - - revision 2018-02-20 { - description - "Updated to support NMDA."; - reference - "RFC 8343: A YANG Data Model for Interface Management"; - } - - revision 2014-05-08 { - description - "Initial revision."; - reference - "RFC 7223: A YANG Data Model for Interface Management"; - } - - /* - * Typedefs - */ - - typedef interface-ref { - type leafref { - path "/if:interfaces/if:interface/if:name"; - } - description - "This type is used by data models that need to reference - interfaces."; - } - - /* - * Identities - */ - - identity interface-type { - description - "Base identity from which specific interface types are - derived."; - } - - /* - * Features - */ - - feature arbitrary-names { - description - "This feature indicates that the device allows user-controlled - interfaces to be named arbitrarily."; - } - feature pre-provisioning { - description - "This feature indicates that the device supports - pre-provisioning of interface configuration, i.e., it is - possible to configure an interface whose physical interface - hardware is not present on the device."; - } - feature if-mib { - description - "This feature indicates that the device implements - the IF-MIB."; - reference - "RFC 2863: The Interfaces Group MIB"; - } - - /* - * Data nodes - */ - - container interfaces { - description - "Interface parameters."; - - list interface { - key "name"; - - description - "The list of interfaces on the device. - - The status of an interface is available in this list in the - operational state. If the configuration of a - system-controlled interface cannot be used by the system - (e.g., the interface hardware present does not match the - interface type), then the configuration is not applied to - the system-controlled interface shown in the operational - state. If the configuration of a user-controlled interface - cannot be used by the system, the configured interface is - not instantiated in the operational state. - - System-controlled interfaces created by the system are - always present in this list in the operational state, - whether or not they are configured."; - - leaf name { - type string; - description - "The name of the interface. - - A device MAY restrict the allowed values for this leaf, - possibly depending on the type of the interface. - For system-controlled interfaces, this leaf is the - device-specific name of the interface. - - If a client tries to create configuration for a - system-controlled interface that is not present in the - operational state, the server MAY reject the request if - the implementation does not support pre-provisioning of - interfaces or if the name refers to an interface that can - never exist in the system. A Network Configuration - Protocol (NETCONF) server MUST reply with an rpc-error - with the error-tag 'invalid-value' in this case. - - If the device supports pre-provisioning of interface - configuration, the 'pre-provisioning' feature is - advertised. - - If the device allows arbitrarily named user-controlled - interfaces, the 'arbitrary-names' feature is advertised. - - When a configured user-controlled interface is created by - the system, it is instantiated with the same name in the - operational state. - - A server implementation MAY map this leaf to the ifName - MIB object. Such an implementation needs to use some - mechanism to handle the differences in size and characters - allowed between this leaf and ifName. The definition of - such a mechanism is outside the scope of this document."; - reference - "RFC 2863: The Interfaces Group MIB - ifName"; - } - - leaf description { - type string; - description - "A textual description of the interface. - - A server implementation MAY map this leaf to the ifAlias - MIB object. Such an implementation needs to use some - mechanism to handle the differences in size and characters - allowed between this leaf and ifAlias. The definition of - such a mechanism is outside the scope of this document. - - Since ifAlias is defined to be stored in non-volatile - storage, the MIB implementation MUST map ifAlias to the - value of 'description' in the persistently stored - configuration."; - reference - "RFC 2863: The Interfaces Group MIB - ifAlias"; - } - - leaf type { - type identityref { - base interface-type; - } - mandatory true; - description - "The type of the interface. - - When an interface entry is created, a server MAY - initialize the type leaf with a valid value, e.g., if it - is possible to derive the type from the name of the - interface. - - If a client tries to set the type of an interface to a - value that can never be used by the system, e.g., if the - type is not supported or if the type does not match the - name of the interface, the server MUST reject the request. - A NETCONF server MUST reply with an rpc-error with the - error-tag 'invalid-value' in this case."; - reference - "RFC 2863: The Interfaces Group MIB - ifType"; - } - - leaf enabled { - type boolean; - default "true"; - description - "This leaf contains the configured, desired state of the - interface. - - Systems that implement the IF-MIB use the value of this - leaf in the intended configuration to set - IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry - has been initialized, as described in RFC 2863. - - Changes in this leaf in the intended configuration are - reflected in ifAdminStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; - } - - leaf link-up-down-trap-enable { - if-feature if-mib; - type enumeration { - enum enabled { - value 1; - description - "The device will generate linkUp/linkDown SNMP - notifications for this interface."; - } - enum disabled { - value 2; - description - "The device will not generate linkUp/linkDown SNMP - notifications for this interface."; - } - } - description - "Controls whether linkUp/linkDown SNMP notifications - should be generated for this interface. - - If this node is not configured, the value 'enabled' is - operationally used by the server for interfaces that do - not operate on top of any other interface (i.e., there are - no 'lower-layer-if' entries), and 'disabled' otherwise."; - reference - "RFC 2863: The Interfaces Group MIB - - ifLinkUpDownTrapEnable"; - } - - leaf admin-status { - if-feature if-mib; - type enumeration { - enum up { - value 1; - description - "Ready to pass packets."; - } - enum down { - value 2; - description - "Not ready to pass packets and not in some test mode."; - } - enum testing { - value 3; - description - "In some test mode."; - } - } - config false; - mandatory true; - description - "The desired state of the interface. - - This leaf has the same read semantics as ifAdminStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; - } - - leaf oper-status { - type enumeration { - enum up { - value 1; - description - "Ready to pass packets."; - } - enum down { - value 2; - - description - "The interface does not pass any packets."; - } - enum testing { - value 3; - description - "In some test mode. No operational packets can - be passed."; - } - enum unknown { - value 4; - description - "Status cannot be determined for some reason."; - } - enum dormant { - value 5; - description - "Waiting for some external event."; - } - enum not-present { - value 6; - description - "Some component (typically hardware) is missing."; - } - enum lower-layer-down { - value 7; - description - "Down due to state of lower-layer interface(s)."; - } - } - config false; - mandatory true; - description - "The current operational state of the interface. - - This leaf has the same semantics as ifOperStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifOperStatus"; - } - - leaf last-change { - type yang:date-and-time; - config false; - description - "The time the interface entered its current operational - state. If the current state was entered prior to the - last re-initialization of the local network management - subsystem, then this node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - ifLastChange"; - } - - leaf if-index { - if-feature if-mib; - type int32 { - range "1..2147483647"; - } - config false; - mandatory true; - description - "The ifIndex value for the ifEntry represented by this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifIndex"; - } - - leaf phys-address { - type yang:phys-address; - config false; - description - "The interface's address at its protocol sub-layer. For - example, for an 802.x interface, this object normally - contains a Media Access Control (MAC) address. The - interface's media-specific modules must define the bit - and byte ordering and the format of the value of this - object. For interfaces that do not have such an address - (e.g., a serial line), this node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; - } - - leaf-list higher-layer-if { - type interface-ref; - config false; - description - "A list of references to interfaces layered on top of this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifStackTable"; - } - - leaf-list lower-layer-if { - type interface-ref; - config false; - - description - "A list of references to interfaces layered underneath this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifStackTable"; - } - - leaf speed { - type yang:gauge64; - units "bits/second"; - config false; - description - "An estimate of the interface's current bandwidth in bits - per second. For interfaces that do not vary in - bandwidth or for those where no accurate estimation can - be made, this node should contain the nominal bandwidth. - For interfaces that have no concept of bandwidth, this - node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - - ifSpeed, ifHighSpeed"; - } - - container statistics { - config false; - description - "A collection of interface-related statistics objects."; - - leaf discontinuity-time { - type yang:date-and-time; - mandatory true; - description - "The time on the most recent occasion at which any one or - more of this interface's counters suffered a - discontinuity. If no such discontinuities have occurred - since the last re-initialization of the local management - subsystem, then this node contains the time the local - management subsystem re-initialized itself."; - } - - leaf in-octets { - type yang:counter64; - description - "The total number of octets received on the interface, - including framing characters. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; - } - - leaf in-unicast-pkts { - type yang:counter64; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were not addressed to a - multicast or broadcast address at this sub-layer. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; - } - - leaf in-broadcast-pkts { - type yang:counter64; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were addressed to a broadcast - address at this sub-layer. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCInBroadcastPkts"; - } - - leaf in-multicast-pkts { - type yang:counter64; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were addressed to a multicast - address at this sub-layer. For a MAC-layer protocol, - this includes both Group and Functional addresses. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCInMulticastPkts"; - } - - leaf in-discards { - type yang:counter32; - description - "The number of inbound packets that were chosen to be - discarded even though no errors had been detected to - prevent their being deliverable to a higher-layer - protocol. One possible reason for discarding such a - packet could be to free up buffer space. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInDiscards"; - } - - leaf in-errors { - type yang:counter32; - description - "For packet-oriented interfaces, the number of inbound - packets that contained errors preventing them from being - deliverable to a higher-layer protocol. For character- - oriented or fixed-length interfaces, the number of - inbound transmission units that contained errors - preventing them from being deliverable to a higher-layer - protocol. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInErrors"; - } - - leaf in-unknown-protos { - type yang:counter32; - - description - "For packet-oriented interfaces, the number of packets - received via the interface that were discarded because - of an unknown or unsupported protocol. For - character-oriented or fixed-length interfaces that - support protocol multiplexing, the number of - transmission units received via the interface that were - discarded because of an unknown or unsupported protocol. - For any interface that does not support protocol - multiplexing, this counter is not present. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; - } - - leaf out-octets { - type yang:counter64; - description - "The total number of octets transmitted out of the - interface, including framing characters. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; - } - - leaf out-unicast-pkts { - type yang:counter64; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were not addressed - to a multicast or broadcast address at this sub-layer, - including those that were discarded or not sent. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; - } - - leaf out-broadcast-pkts { - type yang:counter64; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were addressed to a - broadcast address at this sub-layer, including those - that were discarded or not sent. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCOutBroadcastPkts"; - } - - leaf out-multicast-pkts { - type yang:counter64; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were addressed to a - multicast address at this sub-layer, including those - that were discarded or not sent. For a MAC-layer - protocol, this includes both Group and Functional - addresses. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCOutMulticastPkts"; - } - - leaf out-discards { - type yang:counter32; - description - "The number of outbound packets that were chosen to be - discarded even though no errors had been detected to - prevent their being transmitted. One possible reason - for discarding such a packet could be to free up buffer - space. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; - } - - leaf out-errors { - type yang:counter32; - description - "For packet-oriented interfaces, the number of outbound - packets that could not be transmitted because of errors. - For character-oriented or fixed-length interfaces, the - number of outbound transmission units that could not be - transmitted because of errors. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifOutErrors"; - } - } - - } - } - - /* - * Legacy typedefs - */ - - typedef interface-state-ref { - type leafref { - path "/if:interfaces-state/if:interface/if:name"; - } - status deprecated; - description - "This type is used by data models that need to reference - the operationally present interfaces."; - } - - /* - * Legacy operational state data nodes - */ - - container interfaces-state { - config false; - status deprecated; - description - "Data nodes for the operational state of interfaces."; - - list interface { - key "name"; - status deprecated; - - description - "The list of interfaces on the device. - - System-controlled interfaces created by the system are - always present in this list, whether or not they are - configured."; - - leaf name { - type string; - status deprecated; - description - "The name of the interface. - - A server implementation MAY map this leaf to the ifName - MIB object. Such an implementation needs to use some - mechanism to handle the differences in size and characters - allowed between this leaf and ifName. The definition of - such a mechanism is outside the scope of this document."; - reference - "RFC 2863: The Interfaces Group MIB - ifName"; - } - - leaf type { - type identityref { - base interface-type; - } - mandatory true; - status deprecated; - description - "The type of the interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifType"; - } - - leaf admin-status { - if-feature if-mib; - type enumeration { - enum up { - value 1; - description - "Ready to pass packets."; - } - enum down { - value 2; - description - "Not ready to pass packets and not in some test mode."; - } - enum testing { - value 3; - description - "In some test mode."; - } - } - mandatory true; - status deprecated; - description - "The desired state of the interface. - - This leaf has the same read semantics as ifAdminStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; - } - - leaf oper-status { - type enumeration { - enum up { - value 1; - description - "Ready to pass packets."; - } - enum down { - value 2; - description - "The interface does not pass any packets."; - } - enum testing { - value 3; - description - "In some test mode. No operational packets can - be passed."; - } - enum unknown { - value 4; - description - "Status cannot be determined for some reason."; - } - enum dormant { - value 5; - description - "Waiting for some external event."; - } - enum not-present { - value 6; - description - "Some component (typically hardware) is missing."; - } - enum lower-layer-down { - value 7; - description - "Down due to state of lower-layer interface(s)."; - } - } - mandatory true; - status deprecated; - description - "The current operational state of the interface. - - This leaf has the same semantics as ifOperStatus."; - reference - "RFC 2863: The Interfaces Group MIB - ifOperStatus"; - } - - leaf last-change { - type yang:date-and-time; - status deprecated; - description - "The time the interface entered its current operational - state. If the current state was entered prior to the - last re-initialization of the local network management - subsystem, then this node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - ifLastChange"; - } - - leaf if-index { - if-feature if-mib; - type int32 { - range "1..2147483647"; - } - mandatory true; - status deprecated; - description - "The ifIndex value for the ifEntry represented by this - interface."; - - reference - "RFC 2863: The Interfaces Group MIB - ifIndex"; - } - - leaf phys-address { - type yang:phys-address; - status deprecated; - description - "The interface's address at its protocol sub-layer. For - example, for an 802.x interface, this object normally - contains a Media Access Control (MAC) address. The - interface's media-specific modules must define the bit - and byte ordering and the format of the value of this - object. For interfaces that do not have such an address - (e.g., a serial line), this node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - ifPhysAddress"; - } - - leaf-list higher-layer-if { - type interface-state-ref; - status deprecated; - description - "A list of references to interfaces layered on top of this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifStackTable"; - } - - leaf-list lower-layer-if { - type interface-state-ref; - status deprecated; - description - "A list of references to interfaces layered underneath this - interface."; - reference - "RFC 2863: The Interfaces Group MIB - ifStackTable"; - } - - leaf speed { - type yang:gauge64; - units "bits/second"; - status deprecated; - description - "An estimate of the interface's current bandwidth in bits - per second. For interfaces that do not vary in - bandwidth or for those where no accurate estimation can - - be made, this node should contain the nominal bandwidth. - For interfaces that have no concept of bandwidth, this - node is not present."; - reference - "RFC 2863: The Interfaces Group MIB - - ifSpeed, ifHighSpeed"; - } - - container statistics { - status deprecated; - description - "A collection of interface-related statistics objects."; - - leaf discontinuity-time { - type yang:date-and-time; - mandatory true; - status deprecated; - description - "The time on the most recent occasion at which any one or - more of this interface's counters suffered a - discontinuity. If no such discontinuities have occurred - since the last re-initialization of the local management - subsystem, then this node contains the time the local - management subsystem re-initialized itself."; - } - - leaf in-octets { - type yang:counter64; - status deprecated; - description - "The total number of octets received on the interface, - including framing characters. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCInOctets"; - } - - leaf in-unicast-pkts { - type yang:counter64; - status deprecated; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were not addressed to a - multicast or broadcast address at this sub-layer. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts"; - } - - leaf in-broadcast-pkts { - type yang:counter64; - status deprecated; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were addressed to a broadcast - address at this sub-layer. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCInBroadcastPkts"; - } - - leaf in-multicast-pkts { - type yang:counter64; - status deprecated; - description - "The number of packets, delivered by this sub-layer to a - higher (sub-)layer, that were addressed to a multicast - address at this sub-layer. For a MAC-layer protocol, - this includes both Group and Functional addresses. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCInMulticastPkts"; - } - - leaf in-discards { - type yang:counter32; - status deprecated; - - description - "The number of inbound packets that were chosen to be - discarded even though no errors had been detected to - prevent their being deliverable to a higher-layer - protocol. One possible reason for discarding such a - packet could be to free up buffer space. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInDiscards"; - } - - leaf in-errors { - type yang:counter32; - status deprecated; - description - "For packet-oriented interfaces, the number of inbound - packets that contained errors preventing them from being - deliverable to a higher-layer protocol. For character- - oriented or fixed-length interfaces, the number of - inbound transmission units that contained errors - preventing them from being deliverable to a higher-layer - protocol. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInErrors"; - } - - leaf in-unknown-protos { - type yang:counter32; - status deprecated; - description - "For packet-oriented interfaces, the number of packets - received via the interface that were discarded because - of an unknown or unsupported protocol. For - character-oriented or fixed-length interfaces that - support protocol multiplexing, the number of - transmission units received via the interface that were - discarded because of an unknown or unsupported protocol. - For any interface that does not support protocol - multiplexing, this counter is not present. - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos"; - } - - leaf out-octets { - type yang:counter64; - status deprecated; - description - "The total number of octets transmitted out of the - interface, including framing characters. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCOutOctets"; - } - - leaf out-unicast-pkts { - type yang:counter64; - status deprecated; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were not addressed - to a multicast or broadcast address at this sub-layer, - including those that were discarded or not sent. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts"; - } - - leaf out-broadcast-pkts { - type yang:counter64; - status deprecated; - - description - "The total number of packets that higher-level protocols - requested be transmitted and that were addressed to a - broadcast address at this sub-layer, including those - that were discarded or not sent. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCOutBroadcastPkts"; - } - - leaf out-multicast-pkts { - type yang:counter64; - status deprecated; - description - "The total number of packets that higher-level protocols - requested be transmitted and that were addressed to a - multicast address at this sub-layer, including those - that were discarded or not sent. For a MAC-layer - protocol, this includes both Group and Functional - addresses. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - - ifHCOutMulticastPkts"; - } - - leaf out-discards { - type yang:counter32; - status deprecated; - description - "The number of outbound packets that were chosen to be - discarded even though no errors had been detected to - prevent their being transmitted. One possible reason - for discarding such a packet could be to free up buffer - space. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifOutDiscards"; - } - - leaf out-errors { - type yang:counter32; - status deprecated; - description - "For packet-oriented interfaces, the number of outbound - packets that could not be transmitted because of errors. - For character-oriented or fixed-length interfaces, the - number of outbound transmission units that could not be - transmitted because of errors. - - Discontinuities in the value of this counter can occur - at re-initialization of the management system and at - other times as indicated by the value of - 'discontinuity-time'."; - reference - "RFC 2863: The Interfaces Group MIB - ifOutErrors"; - } - } - } - } -} diff --git a/yang/optional/ietf-ip@2014-06-16.yang b/yang/optional/ietf-ip@2014-06-16.yang deleted file mode 100644 index ce235e12..00000000 --- a/yang/optional/ietf-ip@2014-06-16.yang +++ /dev/null @@ -1,701 +0,0 @@ -module ietf-ip { - - 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 (NETCONF Data Modeling Language) Working Group"; - - contact - "WG Web: - WG List: - - WG Chair: Thomas Nadeau - - - WG Chair: Juergen Schoenwaelder - - - Editor: Martin Bjorklund - "; - - - description - "This module contains a collection of YANG definitions for - configuring IP implementations. - - Copyright (c) 2014 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). - - This version of this YANG module is part of RFC 7277; see - the RFC itself for full legal notices."; - - 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 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."; - } - - /* - * Configuration data nodes - */ - - augment "/if:interfaces/if:interface" { - description - "Parameters for configuring IP 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 configured 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."; - } - } - } - 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 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."; - } - } - - } - - 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 2460: Internet Protocol, Version 6 (IPv6) Specification - Section 5"; - } - - list address { - key "ip"; - description - "The list of configured 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."; - } - } - list neighbor { - key "ip"; - description - "A list of mappings from IPv6 addresses to - link-layer addresses. - - Entries in this list are used as static entries in 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."; - } - } - - 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"; - } - } - } - } - - /* - * Operational state data nodes - */ - - augment "/if:interfaces-state/if:interface" { - description - "Data nodes for the operational state of IP on interfaces."; - - container ipv4 { - presence "Present if IPv4 is enabled on this interface"; - config false; - description - "Interface-specific parameters for the IPv4 address family."; - - leaf forwarding { - type boolean; - description - "Indicates whether IPv4 packet forwarding is enabled or - disabled on this interface."; - } - 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."; - 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 { - 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; - description - "The origin of this address."; - } - } - list neighbor { - key "ip"; - 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; - description - "The IPv4 address of the neighbor node."; - } - leaf link-layer-address { - type yang:phys-address; - description - "The link-layer address of the neighbor node."; - } - leaf origin { - type neighbor-origin; - description - "The origin of this neighbor entry."; - } - } - - } - - container ipv6 { - presence "Present if IPv6 is enabled on this interface"; - config false; - description - "Parameters for the IPv6 address family."; - - leaf forwarding { - type boolean; - default false; - 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; - description - "The size, in octets, of the largest IPv6 packet that the - interface will send and receive."; - reference - "RFC 2460: 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; - 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."; - } - } - 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. - - 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; - description - "The link-layer address of the neighbor node."; - } - 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 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"; - } - } - } - } -} diff --git a/yang/optional/ietf-netconf-monitoring@2010-10-04.yang b/yang/optional/ietf-netconf-monitoring@2010-10-04.yang deleted file mode 100644 index 38a92d06..00000000 --- a/yang/optional/ietf-netconf-monitoring@2010-10-04.yang +++ /dev/null @@ -1,555 +0,0 @@ -module ietf-netconf-monitoring { - - namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-monitoring"; - prefix "ncm"; - - import ietf-yang-types { prefix yang; } - import ietf-inet-types { prefix inet; } - - organization - "IETF NETCONF (Network Configuration) Working Group"; - - contact - "WG Web: - WG List: - - WG Chair: Mehmet Ersue - - - WG Chair: Bert Wijnen - - - Editor: Mark Scott - - - Editor: Martin Bjorklund - "; - - description - "NETCONF Monitoring Module. - All elements in this module are read-only. - - Copyright (c) 2010 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). - - This version of this YANG module is part of RFC 6022; see - the RFC itself for full legal notices."; - - revision 2010-10-04 { - description - "Initial revision."; - reference - "RFC 6022: YANG Module for NETCONF Monitoring"; - } - - typedef netconf-datastore-type { - type enumeration { - enum running; - enum candidate; - enum startup; - } - description - "Enumeration of possible NETCONF datastore types."; - reference - "RFC 4741: NETCONF Configuration Protocol"; - } - - identity transport { - description - "Base identity for NETCONF transport types."; - } - - identity netconf-ssh { - base transport; - description - "NETCONF over Secure Shell (SSH)."; - reference - "RFC 4742: Using the NETCONF Configuration Protocol - over Secure SHell (SSH)"; - } - - identity netconf-soap-over-beep { - base transport; - description - "NETCONF over Simple Object Access Protocol (SOAP) over - Blocks Extensible Exchange Protocol (BEEP)."; - reference - "RFC 4743: Using NETCONF over the Simple Object - Access Protocol (SOAP)"; - } - - identity netconf-soap-over-https { - base transport; - description - "NETCONF over Simple Object Access Protocol (SOAP) - over Hypertext Transfer Protocol Secure (HTTPS)."; - reference - "RFC 4743: Using NETCONF over the Simple Object - Access Protocol (SOAP)"; - } - - identity netconf-beep { - base transport; - description - "NETCONF over Blocks Extensible Exchange Protocol (BEEP)."; - reference - "RFC 4744: Using the NETCONF Protocol over the - Blocks Extensible Exchange Protocol (BEEP)"; - } - - identity netconf-tls { - base transport; - description - "NETCONF over Transport Layer Security (TLS)."; - reference - "RFC 5539: NETCONF over Transport Layer Security (TLS)"; - } - - identity schema-format { - description - "Base identity for data model schema languages."; - } - - identity xsd { - base schema-format; - description - "W3C XML Schema Definition."; - reference - "W3C REC REC-xmlschema-1-20041028: - XML Schema Part 1: Structures"; - } - - identity yang { - base schema-format; - description - "The YANG data modeling language for NETCONF."; - reference - "RFC 6020: YANG - A Data Modeling Language for the - Network Configuration Protocol (NETCONF)"; - } - - identity yin { - base schema-format; - description - "The YIN syntax for YANG."; - reference - "RFC 6020: YANG - A Data Modeling Language for the - Network Configuration Protocol (NETCONF)"; - } - - identity rng { - base schema-format; - description - "Regular Language for XML Next Generation (RELAX NG)."; - reference - "ISO/IEC 19757-2:2008: RELAX NG"; - } - - identity rnc { - base schema-format; - description - "Relax NG Compact Syntax"; - reference - "ISO/IEC 19757-2:2008: RELAX NG"; - } - - grouping common-counters { - description - "Counters that exist both per session, and also globally, - accumulated from all sessions."; - - leaf in-rpcs { - type yang:zero-based-counter32; - description - "Number of correct messages received."; - } - leaf in-bad-rpcs { - type yang:zero-based-counter32; - description - "Number of messages received when an message was expected, - that were not correct messages. This includes XML parse - errors and errors on the rpc layer."; - } - leaf out-rpc-errors { - type yang:zero-based-counter32; - description - "Number of messages sent that contained an - element."; - } - leaf out-notifications { - type yang:zero-based-counter32; - description - "Number of messages sent."; - } - } - - container netconf-state { - config false; - description - "The netconf-state container is the root of the monitoring - data model."; - - container capabilities { - description - "Contains the list of NETCONF capabilities supported by the - server."; - - leaf-list capability { - type inet:uri; - description - "List of NETCONF capabilities supported by the server."; - } - } - - container datastores { - description - "Contains the list of NETCONF configuration datastores."; - - list datastore { - key name; - description - "List of NETCONF configuration datastores supported by - the NETCONF server and related information."; - - leaf name { - type netconf-datastore-type; - description - "Name of the datastore associated with this list entry."; - } - container locks { - presence - "This container is present only if the datastore - is locked."; - description - "The NETCONF and operations allow - a client to lock specific resources in a datastore. The - NETCONF server will prevent changes to the locked - resources by all sessions except the one that acquired - the lock(s). - - Monitoring information is provided for each datastore - entry including details such as the session that acquired - the lock, the type of lock (global or partial) and the - list of locked resources. Multiple locks per datastore - are supported."; - - grouping lock-info { - description - "Lock related parameters, common to both global and - partial locks."; - - leaf locked-by-session { - type uint32; - mandatory true; - description - "The session ID of the session that has locked - this resource. Both a global lock and a partial - lock MUST contain the NETCONF session-id. - - If the lock is held by a session that is not managed - by the NETCONF server (e.g., a CLI session), a session - id of 0 (zero) is reported."; - reference - "RFC 4741: NETCONF Configuration Protocol"; - } - leaf locked-time { - type yang:date-and-time; - mandatory true; - description - "The date and time of when the resource was - locked."; - } - } - choice lock-type { - description - "Indicates if a global lock or a set of partial locks - are set."; - - container global-lock { - description - "Present if the global lock is set."; - uses lock-info; - } - - list partial-lock { - key lock-id; - description - "List of partial locks."; - reference - "RFC 5717: Partial Lock Remote Procedure Call (RPC) for - NETCONF"; - - leaf lock-id { - type uint32; - description - "This is the lock id returned in the - response."; - } - uses lock-info; - leaf-list select { - type yang:xpath1.0; - min-elements 1; - description - "The xpath expression that was used to request - the lock. The select expression indicates the - original intended scope of the lock."; - } - leaf-list locked-node { - type instance-identifier; - description - "The list of instance-identifiers (i.e., the - locked nodes). - - The scope of the partial lock is defined by the list - of locked nodes."; - } - } - } - } - } - } - container schemas { - description - "Contains the list of data model schemas supported by the - server."; - - list schema { - key "identifier version format"; - - description - "List of data model schemas supported by the server."; - - leaf identifier { - type string; - description - "Identifier to uniquely reference the schema. The - identifier is used in the operation and may - be used for other purposes such as file retrieval. - - For modeling languages that support or require a data - model name (e.g., YANG module name) the identifier MUST - match that name. For YANG data models, the identifier is - the name of the module or submodule. In other cases, an - identifier such as a filename MAY be used instead."; - } - leaf version { - type string; - description - "Version of the schema supported. Multiple versions MAY be - supported simultaneously by a NETCONF server. Each - version MUST be reported individually in the schema list, - i.e., with same identifier, possibly different location, - but different version. - - For YANG data models, version is the value of the most - recent YANG 'revision' statement in the module or - submodule, or the empty string if no 'revision' statement - is present."; - } - leaf format { - type identityref { - base schema-format; - } - description - "The data modeling language the schema is written - in (currently xsd, yang, yin, rng, or rnc). - For YANG data models, 'yang' format MUST be supported and - 'yin' format MAY also be provided."; - } - leaf namespace { - type inet:uri; - mandatory true; - description - "The XML namespace defined by the data model. - - For YANG data models, this is the module's namespace. - If the list entry describes a submodule, this field - contains the namespace of the module to which the - submodule belongs."; - } - leaf-list location { - type union { - type enumeration { - enum "NETCONF"; - } - type inet:uri; - } - description - "One or more locations from which the schema can be - retrieved. This list SHOULD contain at least one - entry per schema. - - A schema entry may be located on a remote file system - (e.g., reference to file system for ftp retrieval) or - retrieved directly from a server supporting the - operation (denoted by the value 'NETCONF')."; - } - } - } - container sessions { - description - "The sessions container includes session-specific data for - NETCONF management sessions. The session list MUST include - all currently active NETCONF sessions."; - - list session { - key session-id; - description - "All NETCONF sessions managed by the NETCONF server - MUST be reported in this list."; - - leaf session-id { - type uint32 { - range "1..max"; - } - description - "Unique identifier for the session. This value is the - NETCONF session identifier, as defined in RFC 4741."; - reference - "RFC 4741: NETCONF Configuration Protocol"; - } - leaf transport { - type identityref { - base transport; - } - mandatory true; - description - "Identifies the transport for each session, e.g., - 'netconf-ssh', 'netconf-soap', etc."; - } - leaf username { - type string; - mandatory true; - description - "The username is the client identity that was authenticated - by the NETCONF transport protocol. The algorithm used to - derive the username is NETCONF transport protocol specific - and in addition specific to the authentication mechanism - used by the NETCONF transport protocol."; - } - leaf source-host { - type inet:host; - description - "Host identifier of the NETCONF client. The value - returned is implementation specific (e.g., hostname, - IPv4 address, IPv6 address)"; - } - leaf login-time { - type yang:date-and-time; - mandatory true; - description - "Time at the server at which the session was established."; - } - uses common-counters { - description - "Per-session counters. Zero based with following reset - behaviour: - - at start of a session - - when max value is reached"; - } - } - } - - container statistics { - description - "Statistical data pertaining to the NETCONF server."; - - leaf netconf-start-time { - type yang:date-and-time; - description - "Date and time at which the management subsystem was - started."; - } - leaf in-bad-hellos { - type yang:zero-based-counter32; - description - "Number of sessions silently dropped because an - invalid message was received. This includes - messages with a 'session-id' attribute, bad namespace, and - bad capability declarations."; - } - leaf in-sessions { - type yang:zero-based-counter32; - description - "Number of sessions started. This counter is incremented - when a message with a is sent. - - 'in-sessions' - 'in-bad-hellos' = - 'number of correctly started netconf sessions'"; - } - leaf dropped-sessions { - type yang:zero-based-counter32; - description - "Number of sessions that were abnormally terminated, e.g., - due to idle timeout or transport close. This counter is not - incremented when a session is properly closed by a - operation, or killed by a - operation."; - } - uses common-counters { - description - "Global counters, accumulated from all sessions. - Zero based with following reset behaviour: - - re-initialization of NETCONF server - - when max value is reached"; - } - } - } - - rpc get-schema { - description - "This operation is used to retrieve a schema from the - NETCONF server. - - Positive Response: - The NETCONF server returns the requested schema. - - Negative Response: - If requested schema does not exist, the is - 'invalid-value'. - - If more than one schema matches the requested parameters, the - is 'operation-failed', and is - 'data-not-unique'."; - - input { - leaf identifier { - type string; - mandatory true; - description - "Identifier for the schema list entry."; - } - leaf version { - type string; - description - "Version of the schema requested. If this parameter is not - present, and more than one version of the schema exists on - the server, a 'data-not-unique' error is returned, as - described above."; - } - leaf format { - type identityref { - base schema-format; - } - description - "The data modeling language of the schema. If this - parameter is not present, and more than one formats of - the schema exists on the server, a 'data-not-unique' error - is returned, as described above."; - } - } - output { - anyxml data { - description - "Contains the schema content."; - } - } - } -} diff --git a/yang/optional/ietf-routing@2018-03-13.yang b/yang/optional/ietf-routing@2018-03-13.yang deleted file mode 100644 index 9e259f0e..00000000 --- a/yang/optional/ietf-routing@2018-03-13.yang +++ /dev/null @@ -1,684 +0,0 @@ -module ietf-routing { - yang-version "1.1"; - namespace "urn:ietf:params:xml:ns:yang:ietf-routing"; - prefix "rt"; - - import ietf-yang-types { - prefix "yang"; - } - - import ietf-interfaces { - prefix "if"; - description - "An 'ietf-interfaces' module version that is compatible with - the Network Management Datastore Architecture (NMDA) - is required."; - } - - organization - "IETF NETMOD (Network Modeling) Working Group"; - contact - "WG Web: - WG List: - - Editor: Ladislav Lhotka - - Acee Lindem - - Yingzhen Qu - "; - - description - "This YANG module defines essential components for the management - of a routing subsystem. The model fully conforms to the Network - Management Datastore Architecture (NMDA). - - 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 8349; see - the RFC itself for full legal notices."; - - revision 2018-03-13 { - description - "Network Management Datastore Architecture (NMDA) revision."; - reference - "RFC 8349: A YANG Data Model for Routing Management - (NMDA Version)"; - } - - revision 2016-11-04 { - description - "Initial revision."; - reference - "RFC 8022: A YANG Data Model for Routing Management"; - } - - /* Features */ - feature multiple-ribs { - description - "This feature indicates that the server supports - user-defined RIBs. - - Servers that do not advertise this feature SHOULD provide - exactly one system-controlled RIB per supported address family - and also make it the default RIB. This RIB then appears as an - entry in the list '/routing/ribs/rib'."; - } - - feature router-id { - description - "This feature indicates that the server supports an explicit - 32-bit router ID that is used by some routing protocols. - - Servers that do not advertise this feature set a router ID - algorithmically, usually to one of the configured IPv4 - addresses. However, this algorithm is implementation - specific."; - } - - /* Identities */ - - identity address-family { - description - "Base identity from which identities describing address - families are derived."; - } - identity ipv4 { - base address-family; - description - "This identity represents an IPv4 address family."; - } - - identity ipv6 { - base address-family; - description - "This identity represents an IPv6 address family."; - } - - identity control-plane-protocol { - description - "Base identity from which control-plane protocol identities are - derived."; - } - - identity routing-protocol { - base control-plane-protocol; - description - "Identity from which Layer 3 routing protocol identities are - derived."; - } - - identity direct { - base routing-protocol; - description - "Routing pseudo-protocol that provides routes to directly - connected networks."; - } - - identity static { - base routing-protocol; - description - "'Static' routing pseudo-protocol."; - } - - /* Type Definitions */ - - typedef route-preference { - type uint32; - description - "This type is used for route preferences."; - } - - /* Groupings */ - - grouping address-family { - description - "This grouping provides a leaf identifying an address - family."; - leaf address-family { - type identityref { - base address-family; - } - mandatory true; - description - "Address family."; - } - } - - grouping router-id { - description - "This grouping provides a router ID."; - leaf router-id { - type yang:dotted-quad; - description - "A 32-bit number in the form of a dotted quad that is used by - some routing protocols identifying a router."; - reference - "RFC 2328: OSPF Version 2"; - } - } - - grouping special-next-hop { - description - "This grouping provides a leaf with an enumeration of special - next hops."; - leaf special-next-hop { - type enumeration { - enum blackhole { - description - "Silently discard the packet."; - } - enum unreachable { - description - "Discard the packet and notify the sender with an error - message indicating that the destination host is - unreachable."; - } - enum prohibit { - description - "Discard the packet and notify the sender with an error - message indicating that the communication is - administratively prohibited."; - } - enum receive { - description - "The packet will be received by the local system."; - } - } - description - "Options for special next hops."; - } - } - - grouping next-hop-content { - description - "Generic parameters of next hops in static routes."; - choice next-hop-options { - mandatory true; - description - "Options for next hops in static routes. - - It is expected that further cases will be added through - augments from other modules."; - case simple-next-hop { - description - "This case represents a simple next hop consisting of the - next-hop address and/or outgoing interface. - - Modules for address families MUST augment this case with a - leaf containing a next-hop address of that address - family."; - leaf outgoing-interface { - type if:interface-ref; - description - "Name of the outgoing interface."; - } - } - case special-next-hop { - uses special-next-hop; - } - case next-hop-list { - container next-hop-list { - description - "Container for multiple next hops."; - list next-hop { - key "index"; - description - "An entry in a next-hop list. - - Modules for address families MUST augment this list - with a leaf containing a next-hop address of that - address family."; - leaf index { - type string; - description - "A user-specified identifier utilized 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 outgoing-interface { - type if:interface-ref; - description - "Name of the outgoing interface."; - } - } - } - } - } - } - - grouping next-hop-state-content { - description - "Generic state parameters of next hops."; - choice next-hop-options { - mandatory true; - description - "Options for next hops. - - It is expected that further cases will be added through - augments from other modules, e.g., for recursive - next hops."; - case simple-next-hop { - description - "This case represents a simple next hop consisting of the - next-hop address and/or outgoing interface. - - Modules for address families MUST augment this case with a - leaf containing a next-hop address of that address - family."; - leaf outgoing-interface { - type if:interface-ref; - description - "Name of the outgoing interface."; - } - } - case special-next-hop { - uses special-next-hop; - } - case next-hop-list { - container next-hop-list { - description - "Container for multiple next hops."; - list next-hop { - description - "An entry in a next-hop list. - - Modules for address families MUST augment this list - with a leaf containing a next-hop address of that - address family."; - leaf outgoing-interface { - type if:interface-ref; - description - "Name of the outgoing interface."; - } - } - } - } - } - } - - grouping route-metadata { - description - "Common route metadata."; - leaf source-protocol { - type identityref { - base routing-protocol; - } - mandatory true; - description - "Type of the routing protocol from which the route - originated."; - } - leaf active { - type empty; - description - "The presence of this leaf indicates that the route is - preferred among all routes in the same RIB that have the - same destination prefix."; - } - leaf last-updated { - type yang:date-and-time; - description - "Timestamp of the last modification of the route. If the - route was never modified, it is the time when the route was - inserted into the RIB."; - } - } - - /* Data nodes */ - - container routing { - description - "Configuration parameters for the routing subsystem."; - uses router-id { - if-feature "router-id"; - description - "Support for the global router ID. Routing protocols - that use a router ID can use this parameter or override it - with another value."; - } - container interfaces { - config false; - description - "Network-layer interfaces used for routing."; - leaf-list interface { - type if:interface-ref; - description - "Each entry is a reference to the name of a configured - network-layer interface."; - } - } - container control-plane-protocols { - description - "Support for control-plane protocol instances."; - list control-plane-protocol { - key "type name"; - description - "Each entry contains a control-plane protocol instance."; - leaf type { - type identityref { - base control-plane-protocol; - } - description - "Type of the control-plane protocol -- an identity - derived from the 'control-plane-protocol' - base identity."; - } - leaf name { - type string; - description - "An arbitrary name of the control-plane protocol - instance."; - } - leaf description { - type string; - description - "Textual description of the control-plane protocol - instance."; - } - container static-routes { - when "derived-from-or-self(../type, 'rt:static')" { - description - "This container is only valid for the 'static' routing - protocol."; - } - description - "Support for the 'static' pseudo-protocol. - - Address-family-specific modules augment this node with - their lists of routes."; - } - } - } - container ribs { - description - "Support for RIBs."; - list rib { - key "name"; - description - "Each entry contains a configuration for a RIB identified - by the 'name' key. - - Entries having the same key as a system-controlled entry - in the list '/routing/ribs/rib' are used for - configuring parameters of that entry. Other entries - define additional user-controlled RIBs."; - leaf name { - type string; - description - "The name of the RIB. - - For system-controlled entries, the value of this leaf - must be the same as the name of the corresponding entry - in the operational state. - - For user-controlled entries, an arbitrary name can be - used."; - } - uses address-family { - description - "The address family of the system-controlled RIB."; - } - - leaf default-rib { - if-feature "multiple-ribs"; - type boolean; - default "true"; - config false; - description - "This flag has the value of 'true' if and only if the RIB - is the default RIB for the given address family. - - By default, control-plane protocols place their routes - in the default RIBs."; - } - container routes { - config false; - description - "Current contents of the RIB."; - list route { - description - "A RIB route entry. This data node MUST be augmented - with information specific to routes of each address - family."; - leaf route-preference { - type route-preference; - description - "This route attribute, also known as 'administrative - distance', allows for selecting the preferred route - among routes with the same destination prefix. A - smaller value indicates a route that is - more preferred."; - } - container next-hop { - description - "Route's next-hop attribute."; - uses next-hop-state-content; - } - uses route-metadata; - } - } - action active-route { - description - "Return the active RIB route that is used for the - destination address. - - Address-family-specific modules MUST augment input - parameters with a leaf named 'destination-address'."; - output { - container route { - description - "The active RIB route for the specified destination. - - If no route exists in the RIB for the destination - address, no output is returned. - - Address-family-specific modules MUST augment this - container with appropriate route contents."; - container next-hop { - description - "Route's next-hop attribute."; - uses next-hop-state-content; - } - uses route-metadata; - } - } - } - leaf description { - type string; - description - "Textual description of the RIB."; - } - } - } - } - - /* - * The subsequent data nodes are obviated and obsoleted - * by the Network Management Datastore Architecture - * as described in RFC 8342. - */ - container routing-state { - config false; - status obsolete; - description - "State data of the routing subsystem."; - uses router-id { - status obsolete; - description - "Global router ID. - - It may be either configured or assigned algorithmically by - the implementation."; - } - container interfaces { - status obsolete; - description - "Network-layer interfaces used for routing."; - leaf-list interface { - type if:interface-state-ref; - status obsolete; - description - "Each entry is a reference to the name of a configured - network-layer interface."; - } - } - container control-plane-protocols { - status obsolete; - description - "Container for the list of routing protocol instances."; - list control-plane-protocol { - key "type name"; - status obsolete; - description - "State data of a control-plane protocol instance. - - An implementation MUST provide exactly one - system-controlled instance of the 'direct' - pseudo-protocol. Instances of other control-plane - protocols MAY be created by configuration."; - leaf type { - type identityref { - base control-plane-protocol; - } - status obsolete; - description - "Type of the control-plane protocol."; - } - leaf name { - type string; - status obsolete; - description - "The name of the control-plane protocol instance. - - For system-controlled instances, this name is - persistent, i.e., it SHOULD NOT change across - reboots."; - } - } - } - container ribs { - status obsolete; - description - "Container for RIBs."; - list rib { - key "name"; - min-elements 1; - status obsolete; - description - "Each entry represents a RIB identified by the 'name' - key. All routes in a RIB MUST belong to the same address - family. - - An implementation SHOULD provide one system-controlled - default RIB for each supported address family."; - leaf name { - type string; - status obsolete; - description - "The name of the RIB."; - } - uses address-family { - status obsolete; - description - "The address family of the RIB."; - } - leaf default-rib { - if-feature "multiple-ribs"; - type boolean; - default "true"; - status obsolete; - description - "This flag has the value of 'true' if and only if the - RIB is the default RIB for the given address family. - - By default, control-plane protocols place their routes - in the default RIBs."; - } - container routes { - status obsolete; - description - "Current contents of the RIB."; - list route { - status obsolete; - description - "A RIB route entry. This data node MUST be augmented - with information specific to routes of each address - family."; - leaf route-preference { - type route-preference; - status obsolete; - description - "This route attribute, also known as 'administrative - distance', allows for selecting the preferred route - among routes with the same destination prefix. A - smaller value indicates a route that is - more preferred."; - } - container next-hop { - status obsolete; - description - "Route's next-hop attribute."; - uses next-hop-state-content { - status obsolete; - description - "Route's next-hop attribute operational state."; - } - } - uses route-metadata { - status obsolete; - description - "Route metadata."; - } - } - } - action active-route { - status obsolete; - description - "Return the active RIB route that is used for the - destination address. - - Address-family-specific modules MUST augment input - parameters with a leaf named 'destination-address'."; - output { - container route { - status obsolete; - description - "The active RIB route for the specified - destination. - - If no route exists in the RIB for the destination - address, no output is returned. - - Address-family-specific modules MUST augment this - container with appropriate route contents."; - container next-hop { - status obsolete; - description - "Route's next-hop attribute."; - uses next-hop-state-content { - status obsolete; - description - "Active route state data."; - } - } - uses route-metadata { - status obsolete; - description - "Active route metadata."; - } - } - } - } - } - } - } -}