draft-ietf-netmod-interfaces-cfg-00.txt | draft-ietf-netmod-interfaces-cfg-01.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 April 11, 2011 | Intended status: Standards Track May 20, 2011 | |||
Expires: October 13, 2011 | Expires: November 21, 2011 | |||
A YANG Data Model for Interface Configuration | A YANG Data Model for Interface Configuration | |||
draft-ietf-netmod-interfaces-cfg-00 | draft-ietf-netmod-interfaces-cfg-01 | |||
Abstract | Abstract | |||
This document defines a YANG data model for the configuration of | This document defines a YANG data model for the configuration of | |||
network interfaces. It is expected that interface type specific | network interfaces. It is expected that interface type specific | |||
configuration data models augment the generic interfaces data model | configuration data models augment the generic interfaces data model | |||
defined in this document. | defined in this document. | |||
Status of this Memo | Status of this Memo | |||
skipping to change at page 1, line 33 | skipping to change at page 1, line 33 | |||
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 October 13, 2011. | This Internet-Draft will expire on November 21, 2011. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2011 IETF Trust and the persons identified as the | Copyright (c) 2011 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 | |||
2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. Interfaces Data Model . . . . . . . . . . . . . . . . . . . . 5 | 3. Interfaces Data Model . . . . . . . . . . . . . . . . . . . . 5 | |||
3.1. The interface List . . . . . . . . . . . . . . . . . . . . 5 | 3.1. The interface List . . . . . . . . . . . . . . . . . . . . 5 | |||
3.2. Interface References . . . . . . . . . . . . . . . . . . . 5 | 3.2. Interface References . . . . . . . . . . . . . . . . . . . 6 | |||
3.3. Interface Layering . . . . . . . . . . . . . . . . . . . . 6 | 3.3. Interface Layering . . . . . . . . . . . . . . . . . . . . 6 | |||
4. Interfaces YANG Module . . . . . . . . . . . . . . . . . . . . 7 | 4. Interfaces YANG Module . . . . . . . . . . . . . . . . . . . . 7 | |||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 | |||
8. Normative References . . . . . . . . . . . . . . . . . . . . . 15 | 8. Normative References . . . . . . . . . . . . . . . . . . . . . 15 | |||
Appendix A. Example: Ethernet Interface Module . . . . . . . . . 16 | Appendix A. Example: Ethernet Interface Module . . . . . . . . . 16 | |||
Appendix B. Example: Ethernet Bonding Interface Module . . . . . 18 | Appendix B. Example: Ethernet Bonding Interface Module . . . . . 18 | |||
Appendix C. Example: VLAN Interface Module . . . . . . . . . . . 19 | Appendix C. Example: VLAN Interface Module . . . . . . . . . . . 19 | |||
Appendix D. Example: IP Module . . . . . . . . . . . . . . . . . 20 | Appendix D. Example: IP Module . . . . . . . . . . . . . . . . . 20 | |||
Appendix E. Example: NETCONF <get> reply . . . . . . . . . . . . 21 | Appendix E. Example: NETCONF <get> reply . . . . . . . . . . . . 21 | |||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 22 | Appendix F. ChangeLog . . . . . . . . . . . . . . . . . . . . . . 22 | |||
F.1. Version -01 . . . . . . . . . . . . . . . . . . . . . . . 22 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 23 | ||||
1. Introduction | 1. Introduction | |||
This document defines a YANG [RFC6020] data model for the | This document defines a YANG [RFC6020] data model for the | |||
configuration of network interfaces. It is expected that interface | configuration of network interfaces. It is expected that interface | |||
type specific configuration data models augment the generic | type specific configuration data models augment the generic | |||
interfaces data model defined in this document. | interfaces data model defined in this document. | |||
Network interfaces are central to the configuration of many Internet | Network interfaces are central to the configuration of many Internet | |||
protocols. Thus, it is important to establish a common data model | protocols. Thus, it is important to establish a common data model | |||
skipping to change at page 5, line 7 | skipping to change at page 5, line 7 | |||
o The data model should support the pre-provisioning of interface | o The data model should support the pre-provisioning of interface | |||
configuration, i.e., it should be possible to configure an | configuration, i.e., it should be possible to configure an | |||
interface whose physical interface hardware is not present on the | interface whose physical interface hardware is not present on the | |||
device. It is recommended that devices that support dynamic | device. It is recommended that devices that support dynamic | |||
addition and removal of physical interfaces also support pre- | addition and removal of physical interfaces also support pre- | |||
provisioning. | provisioning. | |||
3. Interfaces Data Model | 3. Interfaces Data Model | |||
The module "ietf-interfaces" has the following structure: | ||||
+--rw interfaces | ||||
+--rw interface [name] | ||||
+--rw name string | ||||
+--rw description? string | ||||
+--rw type ift:iana-if-type | ||||
+--rw location? string | ||||
+--rw enabled? boolean | ||||
+--ro if-index* int32 | ||||
+--rw mtu? uint32 | ||||
+--rw link-up-down-trap-enable? enumeration | ||||
This module defines one YANG feature: | ||||
snmp-if-mib: Indicates that the server implements IF-MIB [RFC2863]. | ||||
3.1. The interface List | 3.1. The interface List | |||
The data model for interface configuration presented in this document | The data model for interface configuration presented in this document | |||
uses a flat list of interfaces. Each interface in the list is | uses a flat list of interfaces. Each interface in the list is | |||
identified by its name. Furthermore, each interface has a mandatory | identified by its name. Furthermore, each interface has a mandatory | |||
"type" leaf, and a "location" leaf. The combination of "type" and | "type" leaf, and a "location" leaf. The combination of "type" and | |||
"location" is unique within the interface list. | "location" is unique within the interface list. | |||
It is expected that interface type specific data models augment the | It is expected that interface type specific data models augment the | |||
interface list, and use the "type" leaf to make the augmentation | interface list, and use the "type" leaf to make the augmentation | |||
skipping to change at page 7, line 10 | skipping to change at page 7, line 10 | |||
} | } | |||
} | } | |||
// other bonding config params, failover times etc. | // other bonding config params, failover times etc. | |||
} | } | |||
4. Interfaces YANG Module | 4. Interfaces YANG Module | |||
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. | |||
This YANG module references [RFC2863]. | <CODE BEGINS> file "ietf-interfaces@2011-05-20.yang" | |||
<CODE BEGINS> file "ietf-interfaces@2011-03-30.yang" | ||||
module ietf-interfaces { | module ietf-interfaces { | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; | namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces"; | |||
prefix "if"; | prefix if; | |||
import iana-if-type { | import iana-if-type { | |||
prefix ift; | prefix ift; | |||
} | } | |||
organization | organization | |||
"IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
skipping to change at page 8, line 4 | skipping to change at page 7, line 50 | |||
Copyright (c) 2011 IETF Trust and the persons identified as | Copyright (c) 2011 IETF Trust and the persons identified as | |||
authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(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 2011-03-29 { | revision 2011-05-20 { | |||
description | description | |||
"Initial revision."; | "Initial revision."; | |||
reference | reference | |||
"RFC XXXX: A YANG Data Model for Interface Configuration"; | "RFC XXXX: A YANG Data Model for Interface Configuration"; | |||
} | } | |||
/* Typedefs */ | /* Typedefs */ | |||
typedef interface-ref { | typedef interface-ref { | |||
type leafref { | type leafref { | |||
skipping to change at page 8, line 34 | skipping to change at page 8, line 32 | |||
} | } | |||
description | description | |||
"This type is used by data models that need to reference | "This type is used by data models that need to reference | |||
interfaces."; | interfaces."; | |||
} | } | |||
/* Features */ | /* Features */ | |||
feature snmp-if-mib { | feature snmp-if-mib { | |||
description | description | |||
"This feature indicates that the server implements IF-MIB, | "This feature indicates that the server implements IF-MIB."; | |||
accessible over SNMP."; | ||||
reference | reference | |||
"RFC 2863: The Interfaces Group MIB"; | "RFC 2863: The Interfaces Group MIB"; | |||
} | } | |||
/* Data nodes */ | /* Data nodes */ | |||
container interfaces { | container interfaces { | |||
description | description | |||
"Interface parameters."; | "Interface parameters."; | |||
skipping to change at page 10, line 17 | skipping to change at page 10, line 14 | |||
ports, the location can be one of '1' to '8'. As another | ports, the location can be one of '1' to '8'. As another | |||
example, if a device has N cards of M ports, the location | example, if a device has N cards of M ports, the location | |||
can be on the form 'n/m'. | can be on the form 'n/m'. | |||
When an interface entry is created, a server MAY | When an interface entry is created, a server MAY | |||
initialize the location leaf with a valid value, e.g., if | initialize the location leaf with a valid value, e.g., if | |||
it is possible to derive the location from the name of | it is possible to derive the location from the name of | |||
the interface."; | the interface."; | |||
} | } | |||
leaf admin-status { | leaf enabled { | |||
type enumeration { | type boolean; | |||
enum "up" { | default "true"; | |||
value 1; | ||||
} | ||||
enum "down" { | ||||
value 2; | ||||
} | ||||
} | ||||
default "up"; | ||||
description | description | |||
"The desired state of the interface. | "The desired state of the interface. | |||
This leaf contains the configured, desired state of the | This leaf contains the configured, desired state of the | |||
interface. Systems that implement the IF-MIB use the | interface. Systems that implement the IF-MIB use the | |||
value of this leaf to set IF-MIB.ifAdminStatus after an | value of this leaf to set IF-MIB.ifAdminStatus after an | |||
ifEntry has been initialized, as described in RFC 2863."; | ifEntry has been initialized, as described in RFC 2863."; | |||
// FIXME: Can we say that changing ifAdminStatus does NOT | ||||
// change this object? If not, is the opposite | ||||
// always true, i.e. that changing ifAdminStatus | ||||
// results in a change of this object (in running)? | ||||
// Or should we be silent? | ||||
reference | reference | |||
"RFC 2863: The Interfaces Group MIB - ifAdminStatus"; | "RFC 2863: The Interfaces Group MIB - ifAdminStatus"; | |||
} | } | |||
leaf-list if-index { | leaf-list if-index { | |||
if-feature snmp-if-mib; | if-feature snmp-if-mib; | |||
type int32 { | type int32 { | |||
range "1..2147483647"; | range "1..2147483647"; | |||
} | } | |||
config false; | config false; | |||
skipping to change at page 13, line 7 | skipping to change at page 13, line 7 | |||
This document registers a YANG module in the YANG Module Names | This document registers a YANG module in the YANG Module Names | |||
registry [RFC6020]. | registry [RFC6020]. | |||
name: ietf-interfaces | name: ietf-interfaces | |||
namespace: urn:ietf:params:xml:ns:yang:ietf-interfaces | namespace: urn:ietf:params:xml:ns:yang:ietf-interfaces | |||
prefix: if | prefix: if | |||
reference: RFC XXXX | reference: RFC XXXX | |||
6. Security Considerations | 6. Security Considerations | |||
TBD. | The YANG module and submodules defined in this memo are designed to | |||
be accessed via the NETCONF protocol [I-D.ietf-netconf-4741bis]. The | ||||
lowest NETCONF layer is the secure transport layer and the mandatory- | ||||
to-implement secure transport is SSH [I-D.ietf-netconf-rfc4742bis]. | ||||
There are a number of data nodes defined in the YANG module and | ||||
submodules which are writable/creatable/deletable (i.e., config true, | ||||
which is the default). These data nodes may be considered sensitive | ||||
or vulnerable in some network environments. Write operations (e.g., | ||||
edit-config) to these data nodes without proper protection can have a | ||||
negative effect on network operations. These are the subtrees and | ||||
data nodes and their sensitivity/vulnerability: | ||||
/interfaces/interface: This list specify the configured interfaces | ||||
on a device. Unauthorized access to this list could cause the | ||||
device to ignore packets destined to it. | ||||
/interfaces/interface/enabled: This leaf controls if an interface is | ||||
enabled or not. Unauthorized access to this leaf could cause the | ||||
device to ignore packets destined to it. | ||||
7. Acknowledgments | 7. Acknowledgments | |||
The author wishes to thank Per Hedeland, Ladislav Lhotka, and Juergen | The author wishes to thank Per Hedeland, Ladislav Lhotka, and Juergen | |||
Schoenwaelder for their helpful comments. | Schoenwaelder for their helpful comments. | |||
8. Normative References | 8. Normative References | |||
[I-D.ietf-netconf-4741bis] | ||||
Enns, R., Bjorklund, M., Schoenwaelder, J., and A. | ||||
Bierman, "Network Configuration Protocol (NETCONF)", | ||||
draft-ietf-netconf-4741bis-10 (work in progress), | ||||
March 2011. | ||||
[I-D.ietf-netconf-rfc4742bis] | ||||
Wasserman, M. and T. Goddard, "Using the NETCONF | ||||
Configuration Protocol over Secure Shell (SSH)", | ||||
draft-ietf-netconf-rfc4742bis-08 (work in progress), | ||||
March 2011. | ||||
[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. | |||
[RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group | [RFC2863] McCloghrie, K. and F. Kastenholz, "The Interfaces Group | |||
MIB", RFC 2863, June 2000. | MIB", RFC 2863, June 2000. | |||
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | |||
January 2004. | January 2004. | |||
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the | [RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the | |||
skipping to change at page 22, line 5 | skipping to change at page 22, line 5 | |||
<address> | <address> | |||
<ip>192.168.1.1</ip> | <ip>192.168.1.1</ip> | |||
<prefix-length>24</prefix-length> | <prefix-length>24</prefix-length> | |||
</address> | </address> | |||
</ip> | </ip> | |||
</interface> | </interface> | |||
</interfaces> | </interfaces> | |||
</data> | </data> | |||
</rpc-reply> | </rpc-reply> | |||
Appendix F. ChangeLog | ||||
RFC Editor: remove this section upon publication as an RFC. | ||||
F.1. Version -01 | ||||
o Changed leaf "if-admin-status" to leaf "enabled". | ||||
o Added Security Considerations | ||||
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. 16 change blocks. | ||||
29 lines changed or deleted | 75 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/ |