draft-ietf-netmod-ip-cfg-10.txt   draft-ietf-netmod-ip-cfg-11.txt 
Network Working Group M. Bjorklund Network Working Group M. Bjorklund
Internet-Draft Tail-f Systems Internet-Draft Tail-f Systems
Intended status: Standards Track August 25, 2013 Intended status: Standards Track October 18, 2013
Expires: February 26, 2014 Expires: April 21, 2014
A YANG Data Model for IP Management A YANG Data Model for IP Management
draft-ietf-netmod-ip-cfg-10 draft-ietf-netmod-ip-cfg-11
Abstract Abstract
This document defines a YANG data model for management of IP This document defines a YANG data model for management of IP
implementations. implementations.
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 31 skipping to change at page 1, line 31
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on February 26, 2014. This Internet-Draft will expire on April 21, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2013 IETF Trust and the persons identified as the Copyright (c) 2013 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 11 skipping to change at page 2, line 11
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3
2. IP Data Model . . . . . . . . . . . . . . . . . . . . . . . . 5 2. IP Data Model . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Relationship to IP-MIB . . . . . . . . . . . . . . . . . . . . 8 3. Relationship to IP-MIB . . . . . . . . . . . . . . . . . . . . 7
4. IP management YANG Module . . . . . . . . . . . . . . . . . . 10 4. IP management YANG Module . . . . . . . . . . . . . . . . . . 9
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 24
6. Security Considerations . . . . . . . . . . . . . . . . . . . 26 6. Security Considerations . . . . . . . . . . . . . . . . . . . 25
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 28 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27
8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 8. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.1. Normative References . . . . . . . . . . . . . . . . . . . 29 8.1. Normative References . . . . . . . . . . . . . . . . . . . 28
8.2. Informative References . . . . . . . . . . . . . . . . . . 29 8.2. Informative References . . . . . . . . . . . . . . . . . . 28
Appendix A. Example: NETCONF <get> reply . . . . . . . . . . . . 31 Appendix A. Example: NETCONF <get> reply . . . . . . . . . . . . 30
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 33 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 32
1. Introduction 1. Introduction
This document defines a YANG [RFC6020] data model for management of This document defines a YANG [RFC6020] data model for management of
IP implementations. IP implementations.
The data model includes configuration and state data. The data model covers configuration of per-interface IPv4 and IPv6
parameters, and mappings of IP addresses to link-layer addresses. It
also provides information about which IP addresses are operationally
used, and which link-layer mappings exist.
Parameters to manage IP routing are defined in Parameters to manage IP routing are defined in
[I-D.ietf-netmod-routing-cfg]. [I-D.ietf-netmod-routing-cfg].
1.1. Terminology 1.1. Terminology
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14, [RFC2119]. 14, [RFC2119].
skipping to change at page 3, line 49 skipping to change at page 4, line 5
A simplified graphical representation of the data model is used in A simplified graphical representation of the data model is used in
this document. The meaning of the symbols in these diagrams is as this document. The meaning of the symbols in these diagrams is as
follows: follows:
o Brackets "[" and "]" enclose list keys. o Brackets "[" and "]" enclose list keys.
o Abbreviations before data node names: "rw" means configuration o Abbreviations before data node names: "rw" means configuration
(read-write) and "ro" state data (read-only). (read-write) and "ro" state data (read-only).
o Symbols after data node names: "?" means an optional node and "*" o Symbols after data node names: "?" means an optional node, "!"
denotes a "list" and "leaf-list". means a presence container, and "*" denotes a list and leaf-list.
o Parentheses enclose choice and case nodes, and case nodes are also o Parentheses enclose choice and case nodes, and case nodes are also
marked with a colon (":"). marked with a colon (":").
o Ellipsis ("...") stands for contents of subtrees that are not o Ellipsis ("...") stands for contents of subtrees that are not
shown. shown.
2. IP Data Model 2. IP Data Model
This document defines the YANG module "ietf-ip", which augments the This document defines the YANG module "ietf-ip", which augments the
"interface" and "interface-state" lists defined in the "interface" and "interface-state" lists defined in the
"ietf-interfaces" module [I-D.ietf-netmod-interfaces-cfg] with IP "ietf-interfaces" module [I-D.ietf-netmod-interfaces-cfg] with IP
specific nodes, and adds IP specific state data. specific nodes, and adds IP specific state data.
The data model has the following structure for IP configuration per The data model has the following structure for IP configuration per
interface: interface:
+--rw if:interfaces +--rw if:interfaces
+--rw if:interface* [name] +--rw if:interface* [name]
... ...
+--rw ipv4? +--rw ipv4!
| +--rw enabled? boolean | +--rw enabled? boolean
| +--rw forwarding? boolean | +--rw forwarding? boolean
| +--rw mtu? uint16 | +--rw mtu? uint16
| +--rw address* [ip] | +--rw address* [ip]
| | +--rw ip inet:ipv4-address-no-zone | | +--rw ip inet:ipv4-address-no-zone
| | +--rw (subnet) | | +--rw (subnet)
| | +--:(prefix-length) | | +--:(prefix-length)
| | | +--rw ip:prefix-length? uint8 | | | +--rw ip:prefix-length? uint8
| | +--:(netmask) | | +--:(netmask)
| | +--rw ip:netmask? yang:dotted-quad | | +--rw ip:netmask? yang:dotted-quad
| +--rw neighbor* [ip] | +--rw neighbor* [ip]
| +--rw ip inet:ipv4-address-no-zone | +--rw ip inet:ipv4-address-no-zone
| +--rw link-layer-address? yang:phys-address | +--rw link-layer-address yang:phys-address
+--rw ipv6? +--rw ipv6!
+--rw enabled? boolean +--rw enabled? boolean
+--rw forwarding? boolean +--rw forwarding? boolean
+--rw mtu? uint32 +--rw mtu? uint32
+--rw address* [ip] +--rw address* [ip]
| +--rw ip inet:ipv6-address-no-zone | +--rw ip inet:ipv6-address-no-zone
| +--rw prefix-length uint8 | +--rw prefix-length uint8
+--rw neighbor* [ip] +--rw neighbor* [ip]
| +--rw ip inet:ipv6-address-no-zone | +--rw ip inet:ipv6-address-no-zone
| +--rw link-layer-address? yang:phys-address | +--rw link-layer-address yang:phys-address
+--rw dup-addr-detect-transmits? uint32 +--rw dup-addr-detect-transmits? uint32
+--rw autoconf +--rw autoconf
+--rw create-global-addresses? boolean +--rw create-global-addresses? boolean
+--rw create-temporary-addresses? boolean +--rw create-temporary-addresses? boolean
+--rw temporary-valid-lifetime? uint32 +--rw temporary-valid-lifetime? uint32
+--rw temporary-preferred-lifetime? uint32 +--rw temporary-preferred-lifetime? uint32
The data model defines two configuration containers per interface, The data model defines two configuration containers per interface,
"ipv4" and "ipv6", representing the IPv4 and IPv6 address families. "ipv4" and "ipv6", representing the IPv4 and IPv6 address families.
In each container, there is a leaf "enabled" that controls if the In each container, there is a leaf "enabled" that controls if the
skipping to change at page 6, line 15 skipping to change at page 6, line 15
enabled on the interface. In each container, there is also a list of enabled on the interface. In each container, there is also a list of
configured addresses, and a list of configured mappings from IP configured addresses, and a list of configured mappings from IP
addresses to link-layer addresses. addresses to link-layer addresses.
The data model has the following structure for IP state per The data model has the following structure for IP state per
interface: interface:
+--ro if:interfaces-state +--ro if:interfaces-state
+--ro if:interface* [name] +--ro if:interface* [name]
... ...
+--ro ipv4? +--ro ipv4!
| +--ro forwarding? boolean | +--ro forwarding? boolean
| +--ro mtu? uint16 | +--ro mtu? uint16
| +--ro address* [ip] | +--ro address* [ip]
| +--ro ip inet:ipv4-address-no-zone | | +--ro ip inet:ipv4-address-no-zone
| +--ro (subnet)? | | +--ro (subnet)?
| | +--:(prefix-length) | | | +--:(prefix-length)
| | | +--ro prefix-length? uint8 | | | | +--ro prefix-length? uint8
| | +--:(netmask) | | | +--:(netmask)
| | +--ro netmask? yang:dotted-quad | | | +--ro netmask? yang:dotted-quad
| +--ro origin? ip-address-origin | | +--ro origin? ip-address-origin
+--ro ipv6? | +--ro neighbor* [ip]
| +--ro ip inet:ipv4-address-no-zone
| +--ro link-layer-address? yang:phys-address
| +--ro origin? neighbor-origin
+--ro ipv6!
+--ro forwarding? boolean +--ro forwarding? boolean
+--ro mtu? uint32 +--ro mtu? uint32
+--ro address* [ip] +--ro address* [ip]
+--ro ip inet:ipv6-address-no-zone | +--ro ip inet:ipv6-address-no-zone
+--ro prefix-length uint8 | +--ro prefix-length uint8
+--ro origin? ip-address-origin | +--ro origin? ip-address-origin
+--ro status? enumeration | +--ro status? enumeration
+--ro neighbor* [ip]
+--ro ip inet:ipv6-address-no-zone
+--ro link-layer-address? yang:phys-address
+--ro origin? neighbor-origin
+--ro is-router? empty
+--ro state? enumeration
The data model defines two state containers per interface, "ipv4" and The data model defines two state containers per interface, "ipv4" and
"ipv6", representing the IPv4 and IPv6 address families. In each "ipv6", representing the IPv4 and IPv6 address families. In each
container, there is a leaf "forwarding" that indicates if IP packet container, there is a leaf "forwarding" that indicates if IP packet
forwarding is enabled on that interface. In each container there is forwarding is enabled on that interface. In each container there is
also a list of all addresses in use. also a list of all addresses in use, and a list of known mappings
from IP addresses to link-layer addresses.
The data model has the following structure for global IP state:
+--ro ip-state
+--ro ipv4?
| +--ro neighbor* [interface ip]
| +--ro interface if:interface-state-ref
| +--ro ip inet:ipv4-address-no-zone
| +--ro link-layer-address? yang:phys-address
| +--ro origin? neighbor-origin
+--ro ipv6?
+--ro neighbor* [interface ip]
+--ro interface if:interface-state-ref
+--ro ip inet:ipv6-address-no-zone
+--ro link-layer-address? yang:phys-address
+--ro origin? neighbor-origin
+--ro is-router? boolean
+--ro state? enumeration
The data model defines a top-level container "ip-state" that contains
containers for ipv4 and ipv6 state. For each address family, there
is a list of known mappings from IP addresses to link-layer
addresses.
3. Relationship to IP-MIB 3. Relationship to IP-MIB
If the device implements IP-MIB [RFC4293], each entry in the "ipv4/ If the device implements IP-MIB [RFC4293], each entry in the "ipv4/
address" and "ipv6/address" lists is mapped to one ipAddressEntry, address" and "ipv6/address" lists is mapped to one ipAddressEntry,
where the ipAddressIfIndex refers to the "address" entry's interface. where the ipAddressIfIndex refers to the "address" entry's interface.
The IP-MIB defines objects to control IPv6 Router Advertisement. The The IP-MIB defines objects to control IPv6 Router Advertisement. The
corresponding YANG data nodes are defined in corresponding YANG data nodes are defined in
[I-D.ietf-netmod-routing-cfg]. [I-D.ietf-netmod-routing-cfg].
skipping to change at page 9, line 5 skipping to change at page 8, line 5
| ipv6/address | ipAddressEntry | | ipv6/address | ipAddressEntry |
| ipv6/address/ip | ipAddressAddrType | | ipv6/address/ip | ipAddressAddrType |
| | ipAddressAddr | | | ipAddressAddr |
| ipv6/neighbor | ipNetToPhysicalEntry | | ipv6/neighbor | ipNetToPhysicalEntry |
| ipv6/neighbor/link-layer-address | ipNetToPhysicalPhysAddress | | ipv6/neighbor/link-layer-address | ipNetToPhysicalPhysAddress |
| ipv6/neighbor/origin | ipNetToPhysicalType | | ipv6/neighbor/origin | ipNetToPhysicalType |
+----------------------------------+--------------------------------+ +----------------------------------+--------------------------------+
YANG interface configuration data nodes and related IP-MIB objects YANG interface configuration data nodes and related IP-MIB objects
+---------------------------------------+---------------------------+ +-----------------------------------+-------------------------------+
| YANG data node in | IP-MIB object | | YANG data node in | IP-MIB object |
| /if:interfaces-state/if:interface | | | /if:interfaces-state/if:interface | |
+---------------------------------------+---------------------------+ +-----------------------------------+-------------------------------+
| ipv4 | ipv4InterfaceEnableStatus | | ipv4 | ipv4InterfaceEnableStatus |
| ipv4/address | ipAddressEntry | | ipv4/address | ipAddressEntry |
| ipv4/address/ip | ipAddressAddrType | | ipv4/address/ip | ipAddressAddrType |
| | ipAddressAddr | | | ipAddressAddr |
| ipv4/address/origin | ipAddressOrigin | | ipv4/address/origin | ipAddressOrigin |
| ipv6 | ipv6InterfaceEnableStatus | | ipv4/neighbor | ipNetToPhysicalEntry |
| ipv6/forwarding | ipv6InterfaceForwarding | | ipv4/neighbor/interface | ipNetToPhysicalIfIndex |
| ipv6/address | ipAddressEntry | | ipv4/neighbor/ip | ipNetToPhysicalNetAddressType |
| ipv6/address/ip | ipAddressAddrType | | | ipNetToPhysicalNetAddressAddr |
| | ipAddressAddr | | ipv4/neighbor/link-layer-address | ipNetToPhysicalPhysAddress |
| ipv6/address/origin | ipAddressOrigin | | ipv4/neighbor/origin | ipNetToPhysicalType |
| ipv6/address/status | ipAddressStatus | | ipv6 | ipv6InterfaceEnableStatus |
+---------------------------------------+---------------------------+ | ipv6/forwarding | ipv6InterfaceForwarding |
| ipv6/address | ipAddressEntry |
| ipv6/address/ip | ipAddressAddrType |
| | ipAddressAddr |
| ipv6/address/origin | ipAddressOrigin |
| ipv6/address/status | ipAddressStatus |
| ipv6/neighbor | ipNetToPhysicalEntry |
| ipv6/neighbor/interface | ipNetToPhysicalIfIndex |
| ipv6/neighbor/ip | ipNetToPhysicalNetAddressType |
| | ipNetToPhysicalNetAddressAddr |
| ipv6/neighbor/link-layer-address | ipNetToPhysicalPhysAddress |
| ipv6/neighbor/origin | ipNetToPhysicalType |
| ipv6/neighbor/state | ipNetToPhysicalState |
+-----------------------------------+-------------------------------+
YANG interface state data nodes and related IP-MIB objects YANG interface state data nodes and related IP-MIB objects
+----------------------------------+--------------------------------+
| YANG data node in /ip-state | IP-MIB object |
+----------------------------------+--------------------------------+
| ipv4/neighbor | ipNetToPhysicalEntry |
| ipv4/neighbor/interface | ipNetToPhysicalIfIndex |
| ipv4/neighbor/ip | ipNetToPhysicalNetAddressType |
| | ipNetToPhysicalNetAddressAddr |
| ipv4/neighbor/link-layer-address | ipNetToPhysicalPhysAddress |
| ipv4/neighbor/origin | ipNetToPhysicalType |
| ipv6/neighbor | ipNetToPhysicalEntry |
| ipv6/neighbor/interface | ipNetToPhysicalIfIndex |
| ipv6/neighbor/ip | ipNetToPhysicalNetAddressType |
| | ipNetToPhysicalNetAddressAddr |
| ipv6/neighbor/link-layer-address | ipNetToPhysicalPhysAddress |
| ipv6/neighbor/origin | ipNetToPhysicalType |
| ipv6/neighbor/state | ipNetToPhysicalState |
+----------------------------------+--------------------------------+
YANG state data nodes and related IP-MIB objects
4. IP management YANG Module 4. IP management YANG Module
This module imports typedefs from [I-D.ietf-netmod-rfc6021-bis] and This module imports typedefs from [RFC6991] and
[I-D.ietf-netmod-interfaces-cfg], and references [RFC0791], [I-D.ietf-netmod-interfaces-cfg], and references [RFC0791],
[RFC0826], [RFC2460], [RFC4861], [RFC4862], and [RFC4941]. [RFC0826], [RFC2460], [RFC4861], [RFC4862], and [RFC4941].
RFC Ed.: update the date below with the date of RFC publication and RFC Ed.: update the date below with the date of RFC publication and
remove this note. remove this note.
<CODE BEGINS> file "ietf-ip@2013-08-25.yang" <CODE BEGINS> file "ietf-ip@2013-10-18.yang"
module ietf-ip { module ietf-ip {
namespace "urn:ietf:params:xml:ns:yang:ietf-ip"; namespace "urn:ietf:params:xml:ns:yang:ietf-ip";
prefix ip; prefix ip;
import ietf-interfaces { import ietf-interfaces {
prefix if; prefix if;
} }
import ietf-inet-types { import ietf-inet-types {
skipping to change at page 11, line 20 skipping to change at page 10, line 20
(http://trustee.ietf.org/license-info). (http://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX; see This version of this YANG module is part of RFC XXXX; see
the RFC itself for full legal notices."; the RFC itself for full legal notices.";
// RFC Ed.: replace XXXX with actual RFC number and remove this // RFC Ed.: replace XXXX with actual RFC number and remove this
// note. // note.
// RFC Ed.: update the date below with the date of RFC publication // RFC Ed.: update the date below with the date of RFC publication
// and remove this note. // and remove this note.
revision 2013-08-25 { revision 2013-10-18 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for IP Management"; "RFC XXXX: A YANG Data Model for IP Management";
} }
/* /*
* Features * Features
*/ */
skipping to change at page 13, line 22 skipping to change at page 12, line 22
*/ */
augment "/if:interfaces/if:interface" { augment "/if:interfaces/if:interface" {
description description
"Parameters for configuring IP on interfaces. "Parameters for configuring IP on interfaces.
If an interface is not capable of running IP, the server If an interface is not capable of running IP, the server
must not allow the client to configure these parameters."; must not allow the client to configure these parameters.";
container ipv4 { container ipv4 {
presence "Configure IPv4 on this interface."; presence
"Enables IPv4 unless the 'enabled' leaf
(which defaults to 'true') is set to 'false'";
description description
"Parameters for the IPv4 address family."; "Parameters for the IPv4 address family.";
leaf enabled { leaf enabled {
type boolean; type boolean;
default true; default true;
description description
"Controls if IPv4 is enabled or disabled on this "Controls if IPv4 is enabled or disabled on this
interface."; interface.";
} }
skipping to change at page 15, line 9 skipping to change at page 14, line 10
reference reference
"RFC 826: An Ethernet Address Resolution Protocol"; "RFC 826: An Ethernet Address Resolution Protocol";
leaf ip { leaf ip {
type inet:ipv4-address-no-zone; type inet:ipv4-address-no-zone;
description description
"The IPv4 address of the neighbor node."; "The IPv4 address of the neighbor node.";
} }
leaf link-layer-address { leaf link-layer-address {
type yang:phys-address; type yang:phys-address;
mandatory true;
description description
"The link-layer address of the neighbor node."; "The link-layer address of the neighbor node.";
} }
} }
} }
container ipv6 { container ipv6 {
presence "Configure IPv6 on this interface."; presence
"Enables IPv6 unless the 'enabled' leaf
(which defaults to 'true') is set to 'false'";
description description
"Parameters for the IPv6 address family."; "Parameters for the IPv6 address family.";
leaf enabled { leaf enabled {
type boolean; type boolean;
default true; default true;
description description
"Controls if IPv6 is enabled or disabled on this "Controls if IPv6 is enabled or disabled on this
interface."; interface.";
} }
skipping to change at page 16, line 44 skipping to change at page 15, line 48
reference reference
"RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"; "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
leaf ip { leaf ip {
type inet:ipv6-address-no-zone; type inet:ipv6-address-no-zone;
description description
"The IPv6 address of the neighbor node."; "The IPv6 address of the neighbor node.";
} }
leaf link-layer-address { leaf link-layer-address {
type yang:phys-address; type yang:phys-address;
mandatory true;
description description
"The link-layer address of the neighbor node."; "The link-layer address of the neighbor node.";
} }
} }
leaf dup-addr-detect-transmits { leaf dup-addr-detect-transmits {
type uint32; type uint32;
default 1; default 1;
description description
"The number of consecutive Neighbor Solicitation messages "The number of consecutive Neighbor Solicitation messages
sent while performing Duplicate Address Detection on a sent while performing Duplicate Address Detection on a
skipping to change at page 19, line 41 skipping to change at page 18, line 44
description description
"The subnet specified as a netmask."; "The subnet specified as a netmask.";
} }
} }
leaf origin { leaf origin {
type ip-address-origin; type ip-address-origin;
description description
"The origin of this address."; "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 { container ipv6 {
presence "Present if IPv6 is enabled on this interface"; presence "Present if IPv6 is enabled on this interface";
config false; config false;
description description
"Parameters for the IPv6 address family."; "Parameters for the IPv6 address family.";
leaf forwarding { leaf forwarding {
type boolean; type boolean;
skipping to change at page 22, line 8 skipping to change at page 21, line 40
"The status of an address. Most of the states correspond "The status of an address. Most of the states correspond
to states from the IPv6 Stateless Address to states from the IPv6 Stateless Address
Autoconfiguration protocol."; Autoconfiguration protocol.";
reference reference
"RFC 4293: Management Information Base for the "RFC 4293: Management Information Base for the
Internet Protocol (IP) Internet Protocol (IP)
- IpAddressStatusTC - IpAddressStatusTC
RFC 4862: IPv6 Stateless Address Autoconfiguration"; RFC 4862: IPv6 Stateless Address Autoconfiguration";
} }
} }
}
}
container ip-state {
config false;
description
"Data nodes for the operational state of IP.";
container ipv4 {
presence "Present if IPv4 is enabled";
description
"Parameters for the IPv4 address family.";
list neighbor {
key "interface 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 interface {
type if:interface-state-ref;
description
"The name of the interface for this neighbor.";
}
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";
description
"Parameters for the IPv6 address family.";
list neighbor { list neighbor {
key "interface ip"; key "ip";
description description
"A list of mappings from IPv6 addresses to "A list of mappings from IPv6 addresses to
link-layer addresses. link-layer addresses.
This list represents the Neighbor Cache."; This list represents the Neighbor Cache.";
reference reference
"RFC 4861: Neighbor Discovery for IP version 6 (IPv6)"; "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
leaf interface {
type if:interface-state-ref;
description
"The name of the interface for this neighbor.";
}
leaf ip { leaf ip {
type inet:ipv6-address-no-zone; type inet:ipv6-address-no-zone;
description description
"The IPv6 address of the neighbor node."; "The IPv6 address of the neighbor node.";
} }
leaf link-layer-address { leaf link-layer-address {
type yang:phys-address; type yang:phys-address;
description description
"The link-layer address of the neighbor node."; "The link-layer address of the neighbor node.";
} }
skipping to change at page 28, line 7 skipping to change at page 27, line 7
temporary addresses are used or not. By modifying the temporary addresses are used or not. By modifying the
corresponding leafs, an attacker might impact the addresses used corresponding leafs, an attacker might impact the addresses used
by a node and thus indirectly the privacy of the users using the by a node and thus indirectly the privacy of the users using the
node. node.
ipv4/mtu and ipv6/mtu: Setting these leafs to very small values can ipv4/mtu and ipv6/mtu: Setting these leafs to very small values can
be used to slow down interfaces. be used to slow down interfaces.
7. Acknowledgments 7. Acknowledgments
The author wishes to thank Ladislav Lhotka, Juergen Schoenwaelder, The author wishes to thank Jeffrey Lange, Ladislav Lhotka, Juergen
and Dave Thaler for their helpful comments. Schoenwaelder, and Dave Thaler for their helpful comments.
8. References 8. References
8.1. Normative References 8.1. Normative References
[I-D.ietf-netmod-interfaces-cfg] [I-D.ietf-netmod-interfaces-cfg]
Bjorklund, M., "A YANG Data Model for Interface Bjorklund, M., "A YANG Data Model for Interface
Configuration", draft-ietf-netmod-interfaces-cfg-09 (work Configuration", draft-ietf-netmod-interfaces-cfg-12 (work
in progress), July 2012. in progress), July 2012.
[I-D.ietf-netmod-rfc6021-bis]
Schoenwaelder, J., "Common YANG Data Types",
draft-ietf-netmod-rfc6021-bis-00 (work in progress),
Feb 2013.
[RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791, [RFC0791] Postel, J., "Internet Protocol", STD 5, RFC 791,
September 1981. September 1981.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", RFC 2460, December 1998. (IPv6) Specification", RFC 2460, December 1998.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
skipping to change at page 29, line 46 skipping to change at page 28, line 41
Address Autoconfiguration", RFC 4862, September 2007. Address Autoconfiguration", RFC 4862, September 2007.
[RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy
Extensions for Stateless Address Autoconfiguration in Extensions for Stateless Address Autoconfiguration in
IPv6", RFC 4941, September 2007. IPv6", RFC 4941, September 2007.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the
Network Configuration Protocol (NETCONF)", RFC 6020, Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010. October 2010.
[RFC6991] Schoenwaelder, J., "Common YANG Data Types", RFC 6991,
July 2013.
8.2. Informative References 8.2. Informative References
[I-D.ietf-netmod-routing-cfg] [I-D.ietf-netmod-routing-cfg]
Lhotka, L., "A YANG Data Model for Routing Configuration", Lhotka, L., "A YANG Data Model for Routing Configuration",
draft-ietf-netmod-routing-cfg-04 (work in progress), draft-ietf-netmod-routing-cfg-10 (work in progress),
July 2012. July 2012.
[RFC0826] Plummer, D., "Ethernet Address Resolution Protocol: Or [RFC0826] Plummer, D., "Ethernet Address Resolution Protocol: Or
converting network protocol addresses to 48.bit Ethernet converting network protocol addresses to 48.bit Ethernet
address for transmission on Ethernet hardware", STD 37, address for transmission on Ethernet hardware", STD 37,
RFC 826, November 1982. RFC 826, November 1982.
[RFC4293] Routhier, S., "Management Information Base for the [RFC4293] Routhier, S., "Management Information Base for the
Internet Protocol (IP)", RFC 4293, April 2006. Internet Protocol (IP)", RFC 4293, April 2006.
skipping to change at page 31, line 10 skipping to change at page 30, line 10
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536, Protocol (NETCONF) Access Control Model", RFC 6536,
March 2012. March 2012.
Appendix A. Example: NETCONF <get> reply Appendix A. Example: NETCONF <get> reply
This section gives an example of a reply to the NETCONF <get> request This section gives an example of a reply to the NETCONF <get> request
for a device that implements the data model defined in this document. for a device that implements the data model defined in this document.
<rpc-reply <rpc-reply
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"
message-id="101"> message-id="101">
<data> <data>
<interfaces <interfaces
xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>eth0</name>
<type>ethernetCsmacd</type>
<ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<address>
<ip>192.0.2.1</ip>
<prefix-length>24</prefix-length>
</address>
</ipv4>
<ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<mtu>1280</mtu>
<address>
<ip>2001:db8::10</ip>
<prefix-length>32</prefix-length>
</address>
<dup-addr-detect-transmits>0</dup-addr-detect-transmits>
</ipv6>
</interface>
</interfaces>
<interfaces-state
xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface> <interface>
<name>eth0</name> <name>eth0</name>
<type>ethernetCsmacd</type> <type>ethernetCsmacd</type>
<ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <!-- other parameters from ietf-interfaces omitted -->
<address>
<ip>192.0.2.1</ip>
<prefix-length>24</prefix-length>
</address>
</ipv4>
<ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<mtu>1280</mtu>
<address>
<ip>2001:DB8::10</ip>
<prefix-length>32</prefix-length>
</address>
<dup-addr-detect-transmits>0</dup-addr-detect-transmits>
</ipv6>
</interface>
</interfaces>
<interfaces-state
xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface>
<name>eth0</name>
<type>ethernetCsmacd</type>
<!-- other parameters from ietf-interfaces omitted -->
<ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <ipv4 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<forwarding>false</forwarding> <forwarding>false</forwarding>
<mtu>1500</mtu> <mtu>1500</mtu>
<address> <address>
<ip>192.0.2.1</ip> <ip>192.0.2.1</ip>
<prefix-length>24</prefix-length> <prefix-length>24</prefix-length>
<origin>static</origin> <origin>static</origin>
</address> </address>
</ipv4> </ipv4>
<ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <ipv6 xmlns="urn:ietf:params:xml:ns:yang:ietf-ip">
<forwarding>false</forwarding> <forwarding>false</forwarding>
<mtu>1500</mtu> <mtu>1500</mtu>
<address> <address>
<ip>2001:DB8::10</ip> <ip>2001:db8::10</ip>
<prefix-length>32</prefix-length> <prefix-length>32</prefix-length>
<origin>static</origin> <origin>static</origin>
<status>preferred</status> <status>preferred</status>
</address> </address>
<address> <address>
<ip>2001:DB8::1:100</ip> <ip>2001:db8::1:100</ip>
<prefix-length>32</prefix-length> <prefix-length>32</prefix-length>
<origin>dhcp</origin> <origin>dhcp</origin>
<status>preferred</status> <status>preferred</status>
</address> </address>
</ipv6> <neighbor>
</interface> <ip>2001:db8::1</ip>
</interfaces-state> <link-layer-address>00:01:02:03:04:05</link-layer-address>
<ip-state xmlns="urn:ietf:params:xml:ns:yang:ietf-ip"> <origin>dynamic</origin>
<ipv6> <is-router/>
<neighbor> <state>reachable</state>
<interface>eth0</interface> </neighbor>
<ip>2001:DB8::1</ip> <neighbor>
<link-layer-address>00:01:02:03:04:05</link-layer-address> <ip>2001:db8::4</ip>
<origin>dynamic</origin> <origin>dynamic</origin>
<is-router/> <state>incomplete</state>
<state>reachable</state> </neighbor>
</neighbor> </ipv6>
<neighbor> </interface>
<interface>eth0</interface> </interfaces-state>
<ip>2001:DB8::4</ip> </data>
<origin>dynamic</origin> </rpc-reply>
<state>incomplete</state>
</neighbor>
</ipv6>
</ip-state>
</data>
</rpc-reply>
Author's Address Author's Address
Martin Bjorklund Martin Bjorklund
Tail-f Systems Tail-f Systems
Email: mbj@tail-f.com Email: mbj@tail-f.com
 End of changes. 34 change blocks. 
244 lines changed or deleted 196 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/