draft-ietf-softwire-dslite-yang-02.txt   draft-ietf-softwire-dslite-yang-03.txt 
Network Working Group M. Boucadair Network Working Group M. Boucadair
Internet-Draft C. Jacquenet Internet-Draft C. Jacquenet
Intended status: Standards Track Orange Intended status: Standards Track Orange
Expires: July 7, 2017 S. Sivakumar Expires: January 4, 2018 S. Sivakumar
Cisco Systems Cisco Systems
January 3, 2017 July 3, 2017
A YANG Data Model for the DS-Lite A YANG Data Model for the DS-Lite
draft-ietf-softwire-dslite-yang-02 draft-ietf-softwire-dslite-yang-03
Abstract Abstract
This document defines a YANG data model for the DS-Lite Address This document defines a YANG data model for the DS-Lite Address
Family Transition Router (AFTR) and Basic Bridging BroadBand (B4) Family Transition Router (AFTR) and Basic Bridging BroadBand (B4)
elements . elements .
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
skipping to change at page 1, line 34 skipping to change at page 1, line 34
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 July 7, 2017. This Internet-Draft will expire on January 4, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 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 12 skipping to change at page 2, line 12
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 . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 2
2. DS-Lite YANG Data Model . . . . . . . . . . . . . . . . . . . 3 2. DS-Lite YANG Data Model . . . . . . . . . . . . . . . . . . . 3
3. DS-Lite YANG Module . . . . . . . . . . . . . . . . . . . . . 9 3. DS-Lite YANG Module . . . . . . . . . . . . . . . . . . . . . 9
4. Security Considerations . . . . . . . . . . . . . . . . . . . 40 4. Security Considerations . . . . . . . . . . . . . . . . . . . 39
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 40 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 40 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 40
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 41 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.1. Normative references . . . . . . . . . . . . . . . . . . 41 7.1. Normative references . . . . . . . . . . . . . . . . . . 40
7.2. Informative references . . . . . . . . . . . . . . . . . 41 7.2. Informative references . . . . . . . . . . . . . . . . . 41
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 42
1. Introduction 1. Introduction
This document defines a data model for DS-Lite [RFC6333], using the This document defines a data model for DS-Lite [RFC6333], using the
YANG data modeling language [RFC6020]. Both the Address Family YANG data modeling language [RFC6020]. Both the Address Family
Transition Router (AFTR) and Basic Bridging BroadBand (B4) elements Transition Router (AFTR) and Basic Bridging BroadBand (B4) elements
are covered by this specification. are covered by this specification.
skipping to change at page 3, line 36 skipping to change at page 3, line 36
This document assumes [RFC4787][RFC5382][RFC5508] are enabled by This document assumes [RFC4787][RFC5382][RFC5508] are enabled by
default. Also, the data model relies on the recommendations in default. Also, the data model relies on the recommendations in
[RFC6888] and [RFC7857]. In addition, the data model supports state [RFC6888] and [RFC7857]. In addition, the data model supports state
migration as per [RFC7785]. migration as per [RFC7785].
PCP-related considerations are out of scope of the document. A YANG PCP-related considerations are out of scope of the document. A YANG
data model for PCP is documented in [I-D.boucadair-pcp-yang]. data model for PCP is documented in [I-D.boucadair-pcp-yang].
module: ietf-dslite module: ietf-dslite
+--rw dslite-config +--rw dslite-config
| +--rw dslite-aftr-config {aftr}? | +--rw dslite-aftr-config {aftr}?
| | +--rw enable? boolean | | +--rw enable? boolean
| | +--rw dslite-aftr-instances | | +--rw dslite-aftr-instances
| | +--rw dslite-aftr-instance* [id] | | +--rw dslite-aftr-instance* [id]
| | +--rw id uint32 | | +--rw id uint32
| | +--rw name? string | | +--rw name? string
| | +--rw dslite-aftr-ipv6-address* [address-id] | | +--rw dslite-aftr-ipv6-address* [address-id]
| | | +--rw address-id uint32 | | | +--rw address-id uint32
| | | +--rw ipv6-address? inet:ipv6-address | | | +--rw ipv6-address? inet:ipv6-address
| | +--rw ipv4-address? inet:ipv4-address | | +--rw ipv4-address? inet:ipv4-address
| | +--rw tunnel-mtu? uint16 | | +--rw tunnel-mtu? uint16
| | +--rw external-ip-address-pool* [address-id] | | +--rw external-ip-address-pool* [address-id]
| | | +--rw address-id uint32 | | | +--rw address-id uint32
| | | +--rw external-ip-pool? inet:ipv4-prefix | | | +--rw external-ip-pool? inet:ipv4-prefix
| | +--rw subscriber-mask? uint8 | | +--rw subscriber-mask? uint8
| | +--rw nat-mapping-type? enumeration | | +--rw nat-mapping-type? enumeration
| | +--rw nat-filtering-type? enumeration | | +--rw nat-filtering-type? enumeration
| | +--rw port-quota uint16 | | +--rw port-quota uint16
| | +--rw exclude-ports* [id] | | +--rw exclude-ports* [id]
| | | +--rw id uint16 | | | +--rw id uint16
| | | +--rw (port-type)? | | | +--rw (port-type)?
| | | +--:(single-port-number) | | | +--:(single-port-number)
| | | | +--rw single-port-number? inet:port-number | | | | +--rw single-port-number? inet:port-number
| | | +--:(port-range) | | | +--:(port-range)
| | | +--rw start-port-number? inet:port-number | | | +--rw start-port-number? inet:port-number
| | | +--rw end-port-number? inet:port-number | | | +--rw end-port-number? inet:port-number
| | +--rw port-set | | +--rw port-set
| | | +--rw port-set-enable? boolean | | | +--rw port-set-enable? boolean
| | | +--rw port-set-size? uint16 | | | +--rw port-set-size? uint16
| | | +--rw port-set-timeout? uint32 | | | +--rw port-set-timeout? uint32
| | +--rw enable-app? boolean | | +--rw enable-app? boolean
| | +--rw max-softwire-per-subscriber? uint8 | | +--rw max-softwire-per-subscriber? uint8
| | +--rw transport-protocol* [transport-protocol-id] | | +--rw transport-protocol* [transport-protocol-id]
| | | +--rw transport-protocol-id uint8 | | | +--rw transport-protocol-id uint8
| | +--rw new-mappings-rate-limit? uint32 | | +--rw new-mappings-rate-limit? uint32
| | +--rw mss-clamping | | +--rw mss-clamping
| | | +--rw mss-clamping-enable? boolean | | | +--rw mss-clamping-enable? boolean
| | | +--rw mss-value? uint16 | | | +--rw mss-value? uint16
| | +--rw port-randomization-enable? boolean | | +--rw port-allocation-type? enumeration
| | +--rw port-preservation-enable? boolean | | +--rw address-roundrobin-enable? boolean
| | +--rw port-parity-preservation-enable? boolean | | +--rw udp-lifetime? uint32
| | +--rw address-roundrobin-enable? boolean | | +--rw tcp-idle-timeout? uint32
| | +--rw udp-lifetime? uint32 | | +--rw tcp-trans-open-timeout? uint32
| | +--rw tcp-idle-timeout? uint32 | | +--rw tcp-trans-close-timeout? uint32
| | +--rw tcp-trans-open-timeout? uint32 | | +--rw tcp-in-syn-timeout? uint32
| | +--rw tcp-trans-close-timeout? uint32 | | +--rw fragment-min-timeout? uint32
| | +--rw tcp-in-syn-timeout? uint32 | | +--rw icmp-timeout? uint32
| | +--rw fragment-min-timeout? uint32 | | +--rw hold-down-timeout? uint32
| | +--rw icmp-timeout? uint32 | | +--rw v6-v4-dscp-preservation boolean
| | +--rw hold-down-timeout? uint32 | | +--rw logging-info
| | +--rw v6-v4-dscp-preservation boolean | | | +--rw logging-enable? boolean
| | +--rw logging-info | | | +--rw destination-address? inet:ip-prefix
| | | +--rw logging-enable? boolean | | | +--rw destination-port? inet:port-number
| | | +--rw destination-address? inet:ip-prefix | | | +--rw (protocol)?
| | | +--rw destination-port? inet:port-number | | | +--:(syslog)
| | | +--rw (protocol)? | | | | +--rw syslog? boolean
| | | +--:(syslog) | | | +--:(ipfix)
| | | | +--rw syslog? boolean | | | | +--rw ipfix? boolean
| | | +--:(ipfix) | | | +--:(ftp)
| | | | +--rw ipfix? boolean | | | +--rw ftp? boolean
| | | +--:(ftp) | | +--rw notify-address-pool-usage
| | | +--rw ftp? boolean | | | +--rw pool-id? uint32
| | +--rw notify-address-pool-usage | | | +--rw notify-pool-hi-threshold percent
| | | +--rw pool-id? uint32 | | | +--rw notify-pool-low-threshold? percent
| | | +--rw notify-pool-hi-threshold percent | | +--rw ftp-alg-enable? boolean
| | | +--rw notify-pool-low-threshold? percent | | +--rw tftp-alg-enable? boolean
| | +--rw ftp-alg-enable? boolean | | +--rw sip-alg-enable? boolean
| | +--rw tftp-alg-enable? boolean | | +--rw rtsp-alg-enable? boolean
| | +--rw sip-alg-enable? boolean | | +--rw h323-alg-enable? boolean
| | +--rw rtsp-alg-enable? boolean | | +--rw all-algs-enable? boolean
| | +--rw h323-alg-enable? boolean | | +--rw mapping-table
| | +--rw all-algs-enable? boolean | | +--rw mapping-entry* [index]
| | +--rw mapping-table | | +--rw index uint32
| | +--rw mapping-entry* [index] | | +--rw status? enumeration
| | +--rw index uint32 | | +--rw type? enumeration
| | +--rw status? enumeration | | +--rw b4-ip-address inet:ipv6-address
| | +--rw type? enumeration | | +--rw internal-ip-address inet:ipv4-prefix
| | +--rw b4-ip-address inet:ipv6-address | | +--rw internal-port
| | +--rw internal-ip-address inet:ipv4-prefix | | | +--rw (port-type)?
| | +--rw internal-port | | | +--:(single-port-number)
| | | +--rw (port-type)? | | | | +--rw single-port-number? inet:port-number
| | | +--:(single-port-number) | | | +--:(port-range)
| | | | +--rw single-port-number? inet:port-number | | | +--rw start-port-number? inet:port-number
| | | +--:(port-range) | | | +--rw end-port-number? inet:port-number
| | | +--rw start-port-number? inet:port-number | | +--rw external-ip-address inet:ipv4-address
| | | +--rw end-port-number? inet:port-number | | +--rw external-port
| | +--rw external-ip-address inet:ipv4-address | | | +--rw (port-type)?
| | +--rw external-port | | | +--:(single-port-number)
| | | +--rw (port-type)? | | | | +--rw single-port-number? inet:port-number
| | | +--:(single-port-number) | | | +--:(port-range)
| | | | +--rw single-port-number? inet:port-number | | | +--rw start-port-number? inet:port-number
| | | +--:(port-range) | | | +--rw end-port-number? inet:port-number
| | | +--rw start-port-number? inet:port-number | | +--rw transport-protocol uint8
| | | +--rw end-port-number? inet:port-number | | +--rw lifetime uint32
| | +--rw transport-protocol uint8 | | +--rw v6-dscp? uint8
| | +--rw lifetime uint32 | | +--rw internal-v4-dscp? uint8
| | +--rw v6-dscp? uint8 | | +--rw external-v4-dscp? uint8
| | +--rw internal-v4-dscp? uint8 | | +--rw description? string
| | +--rw external-v4-dscp? uint8 | +--rw dslite-b4-config {b4}?
| | +--rw description? string | +--rw enable? boolean
| +--rw dslite-b4-config {b4}? | +--rw dslite-b4-instances
| +--rw enable? boolean | +--rw dslite-b4-instance* [id]
| +--rw dslite-b4-instances | +--rw id uint32
| +--rw dslite-b4-instance* [id] | +--rw name? string
| +--rw id uint32 | +--rw aftr-ipv6-addr inet:ipv6-address
| +--rw name? string | +--rw ipv4-address? inet:ipv4-address
| +--rw aftr-ipv6-addr inet:ipv6-address | +--rw tunnel-mtu? uint16
| +--rw ipv4-address? inet:ipv4-address | +--rw v6-v4-dscp-preservation boolean
| +--rw tunnel-mtu? uint16 +--rw dslite-state
| +--rw v6-v4-dscp-preservation boolean +--ro dslite-aftr-state {aftr}?
+--rw dslite-state | +--ro dslite-aftr-instances
+--ro dslite-aftr-state {aftr}? | +--ro dslite-aftr-instance* [id]
| +--ro dslite-aftr-instances | +--ro id int32
| +--ro dslite-aftr-instance* [id] | +--ro name? string
| +--ro id int32 | +--ro aftr-capabilities
| +--ro name? string | | +--ro eim-support? boolean
| +--ro aftr-capabilities | | +--ro eif-support? boolean
| | +--ro eim-support? boolean | | +--ro edm-support? boolean
| | +--ro eif-support? boolean | | +--ro edf-support? boolean
| | +--ro edm-support? boolean | | +--ro adm-support? boolean
| | +--ro edf-support? boolean | | +--ro adf-support? boolean
| | +--ro adm-support? boolean | | +--ro pcp-support? boolean
| | +--ro adf-support? boolean | | +--ro subscriber-mask-support? boolean
| | +--ro pcp-support? boolean | | +--ro port-set-support? boolean
| | +--ro subscriber-mask-support? boolean | | +--ro self-state-migration-support? boolean
| | +--ro port-set-support? boolean | | +--ro mss-clamping-support? boolean
| | +--ro self-state-migration-support? boolean | | +--ro port-randomization-support? boolean
| | +--ro mss-clamping-support? boolean | | +--ro port-preservation-support? boolean
| | +--ro port-randomization-support? boolean | | +--ro port-parity-preservation-support? boolean
| | +--ro port-preservation-support? boolean | | +--ro transport-proto-capabilities* [transport-protocol-id]
| | +--ro port-parity-preservation-support? boolean | | | +--ro transport-protocol-id uint8
| | +--ro transport-proto-capabilities* [transport-protocol-id] | | +--ro v6-v4-dscp-preservation-support? boolean
| | | +--ro transport-protocol-id uint8 | | +--ro logging-support? boolean
| | +--ro v6-v4-dscp-preservation-support? boolean | | +--ro ftp-alg-support? boolean
| | +--ro logging-support? boolean | | +--ro tftp-support? boolean
| | +--ro ftp-alg-support? boolean | | +--ro sip-alg-support? boolean
| | +--ro tftp-support? boolean | | +--ro rtsp-alg-support? boolean
| | +--ro sip-alg-support? boolean | | +--ro h323-alg-support? boolean
| | +--ro rtsp-alg-support? boolean | +--ro aftr-current-config
| | +--ro h323-alg-support? boolean | | +--ro dslite-aftr-ipv6-address* [address-id]
| +--ro aftr-current-config | | | +--ro address-id uint32
| | +--ro dslite-aftr-ipv6-address* [address-id] | | | +--ro ipv6-address? inet:ipv6-address
| | | +--ro address-id uint32 | | +--ro ipv4-address? inet:ipv4-address
| | | +--ro ipv6-address? inet:ipv6-address | | +--ro tunnel-mtu? uint16
| | +--ro ipv4-address? inet:ipv4-address | | +--ro external-ip-address-pool* [address-id]
| | +--ro tunnel-mtu? uint16 | | | +--ro address-id uint32
| | +--ro external-ip-address-pool* [address-id] | | | +--ro external-ip-pool? inet:ipv4-prefix
| | | +--ro address-id uint32 | | +--ro subscriber-mask? uint8
| | | +--ro external-ip-pool? inet:ipv4-prefix | | +--ro nat-mapping-type? enumeration
| | +--ro subscriber-mask? uint8 | | +--ro nat-filtering-type? enumeration
| | +--ro nat-mapping-type? enumeration | | +--ro port-quota uint16
| | +--ro nat-filtering-type? enumeration | | +--ro exclude-ports* [id]
| | +--ro port-quota uint16 | | | +--ro id uint16
| | +--ro exclude-ports* [id] | | | +--ro (port-type)?
| | | +--ro id uint16 | | | +--:(single-port-number)
| | | +--ro (port-type)? | | | | +--ro single-port-number? inet:port-number
| | | +--:(single-port-number) | | | +--:(port-range)
| | | | +--ro single-port-number? inet:port-number | | | +--ro start-port-number? inet:port-number
| | | +--:(port-range) | | | +--ro end-port-number? inet:port-number
| | | +--ro start-port-number? inet:port-number | | +--ro port-set
| | | +--ro end-port-number? inet:port-number | | | +--ro port-set-enable? boolean
| | +--ro port-set | | | +--ro port-set-size? uint16
| | | +--ro port-set-enable? boolean | | | +--ro port-set-timeout? uint32
| | | +--ro port-set-size? uint16 | | +--ro enable-app? boolean
| | | +--ro port-set-timeout? uint32 | | +--ro max-softwire-per-subscriber? uint8
| | +--ro enable-app? boolean | | +--ro transport-protocol* [transport-protocol-id]
| | +--ro max-softwire-per-subscriber? uint8 | | | +--ro transport-protocol-id uint8
| | +--ro transport-protocol* [transport-protocol-id] | | +--ro new-mappings-rate-limit? uint32
| | | +--ro transport-protocol-id uint8 | | +--ro mss-clamping
| | +--ro new-mappings-rate-limit? uint32 | | | +--ro mss-clamping-enable? boolean
| | +--ro mss-clamping | | | +--ro mss-value? uint16
| | | +--ro mss-clamping-enable? boolean | | +--ro port-allocation-type? enumeration
| | | +--ro mss-value? uint16 | | +--ro address-roundrobin-enable? boolean
| | +--ro port-randomization-enable? boolean | | +--ro udp-lifetime? uint32
| | +--ro port-preservation-enable? boolean | | +--ro tcp-idle-timeout? uint32
| | +--ro port-parity-preservation-enable? boolean | | +--ro tcp-trans-open-timeout? uint32
| | +--ro address-roundrobin-enable? boolean | | +--ro tcp-trans-close-timeout? uint32
| | +--ro udp-lifetime? uint32 | | +--ro tcp-in-syn-timeout? uint32
| | +--ro tcp-idle-timeout? uint32 | | +--ro fragment-min-timeout? uint32
| | +--ro tcp-trans-open-timeout? uint32 | | +--ro icmp-timeout? uint32
| | +--ro tcp-trans-close-timeout? uint32 | | +--ro hold-down-timeout? uint32
| | +--ro tcp-in-syn-timeout? uint32 | | +--ro v6-v4-dscp-preservation boolean
| | +--ro fragment-min-timeout? uint32 | | +--ro logging-info
| | +--ro icmp-timeout? uint32 | | | +--ro logging-enable? boolean
| | +--ro hold-down-timeout? uint32 | | | +--ro destination-address? inet:ip-prefix
| | +--ro v6-v4-dscp-preservation boolean | | | +--ro destination-port? inet:port-number
| | +--ro logging-info | | | +--ro (protocol)?
| | | +--ro logging-enable? boolean | | | +--:(syslog)
| | | +--ro destination-address? inet:ip-prefix | | | | +--ro syslog? boolean
| | | +--ro destination-port? inet:port-number | | | +--:(ipfix)
| | | +--ro (protocol)? | | | | +--ro ipfix? boolean
| | | +--:(syslog) | | | +--:(ftp)
| | | | +--ro syslog? boolean | | | +--ro ftp? boolean
| | | +--:(ipfix) | | +--ro notify-address-pool-usage
| | | | +--ro ipfix? boolean | | | +--ro pool-id? uint32
| | | +--:(ftp) | | | +--ro notify-pool-hi-threshold percent
| | | +--ro ftp? boolean | | | +--ro notify-pool-low-threshold? percent
| | +--ro notify-address-pool-usage | | +--ro ftp-alg-enable? boolean
| | | +--ro pool-id? uint32 | | +--ro tftp-alg-enable? boolean
| | | +--ro notify-pool-hi-threshold percent | | +--ro sip-alg-enable? boolean
| | | +--ro notify-pool-low-threshold? percent | | +--ro rtsp-alg-enable? boolean
| | +--ro ftp-alg-enable? boolean | | +--ro h323-alg-enable? boolean
| | +--ro tftp-alg-enable? boolean | | +--ro all-algs-enable? boolean
| | +--ro sip-alg-enable? boolean | +--ro mapping-table
| | +--ro rtsp-alg-enable? boolean | | +--ro mapping-entry* [index]
| | +--ro h323-alg-enable? boolean | | +--ro index uint32
| | +--ro all-algs-enable? boolean | | +--ro status? enumeration
| +--ro mapping-table | | +--ro type? enumeration
| | +--ro mapping-entry* [index] | | +--ro b4-ip-address inet:ipv6-address
| | +--ro index uint32 | | +--ro internal-ip-address inet:ipv4-prefix
| | +--ro status? enumeration | | +--ro internal-port
| | +--ro type? enumeration | | | +--ro (port-type)?
| | +--ro b4-ip-address inet:ipv6-address | | | +--:(single-port-number)
| | +--ro internal-ip-address inet:ipv4-prefix | | | | +--ro single-port-number? inet:port-number
| | +--ro internal-port | | | +--:(port-range)
| | | +--ro (port-type)? | | | +--ro start-port-number? inet:port-number
| | | +--:(single-port-number) | | | +--ro end-port-number? inet:port-number
| | | | +--ro single-port-number? inet:port-number | | +--ro external-ip-address inet:ipv4-address
| | | +--:(port-range) | | +--ro external-port
| | | +--ro start-port-number? inet:port-number | | | +--ro (port-type)?
| | | +--ro end-port-number? inet:port-number | | | +--:(single-port-number)
| | +--ro external-ip-address inet:ipv4-address | | | | +--ro single-port-number? inet:port-number
| | +--ro external-port | | | +--:(port-range)
| | | +--ro (port-type)? | | | +--ro start-port-number? inet:port-number
| | | +--:(single-port-number) | | | +--ro end-port-number? inet:port-number
| | | | +--ro single-port-number? inet:port-number | | +--ro transport-protocol uint8
| | | +--:(port-range) | | +--ro lifetime uint32
| | | +--ro start-port-number? inet:port-number | | +--ro v6-dscp? uint8
| | | +--ro end-port-number? inet:port-number | | +--ro internal-v4-dscp? uint8
| | +--ro transport-protocol uint8 | | +--ro external-v4-dscp? uint8
| | +--ro lifetime uint32 | | +--ro description? string
| | +--ro v6-dscp? uint8 | +--ro statistics
| | +--ro internal-v4-dscp? uint8 | | +--ro traffic-statistics
| | +--ro external-v4-dscp? uint8 | | | +--ro sent-packet? yang:zero-based-counter64
| | +--ro description? string | | | +--ro sent-byte? yang:zero-based-counter64
| +--ro statistics | | | +--ro rcvd-packet? yang:zero-based-counter64
| | +--ro traffic-statistics | | | +--ro rcvd-byte? yang:zero-based-counter64
| | | +--ro sent-packet? yang:zero-based-counter64 | | | +--ro dropped-packet? yang:zero-based-counter64
| | | +--ro sent-byte? yang:zero-based-counter64 | | | +--ro dropped-byte? yang:zero-based-counter64
| | | +--ro rcvd-packet? yang:zero-based-counter64 | | +--ro mapping-table-stats
| | | +--ro rcvd-byte? yang:zero-based-counter64 | | +--ro current-mt-size? yang:zero-based-counter64
| | | +--ro dropped-packet? yang:zero-based-counter64 | | +--ro max-mt-size? uint32
| | | +--ro dropped-byte? yang:zero-based-counter64 | | +--ro total-tcp-mappings? uint32
| | +--ro mapping-table-stats | | +--ro total-udp-mappings? uint32
| | +--ro current-mt-size? yang:zero-based-counter64 | | +--ro total-icmp-mappings? uint32
| | +--ro max-mt-size? uint32 | +--ro available-capacity-client? percent
| | +--ro total-tcp-mappings? uint32 | +--ro available-capacity-ext? percent
| | +--ro total-udp-mappings? uint32 | +--ro address-pool-in-use? percent
| | +--ro total-icmp-mappings? uint32 | +--ro port-in-use? percent
| +--ro available-capacity-client? percent +--ro dslite-b4-state {b4}?
| +--ro available-capacity-ext? percent +--ro dslite-b4-instances
| +--ro address-pool-in-use? percent +--ro dslite-b4-instance* [id]
| +--ro port-in-use? percent +--ro id int32
+--ro dslite-b4-state {b4}? +--ro name? string
+--ro dslite-b4-instances +--ro b4-capabilities
+--ro dslite-b4-instance* [id] | +--ro ipv4-address-modify? boolean
+--ro id int32 | +--ro tunnel-mtu-support? boolean
+--ro name? string | +--ro v6-v4-dscp-preservation-support boolean
+--ro b4-capabilities +--ro b4-state
| +--ro ipv4-address-modify? boolean +--ro status? boolean
| +--ro tunnel-mtu-support? boolean +--ro aftr-ipv6-addr inet:ipv6-address
| +--ro v6-v4-dscp-preservation-support boolean +--ro ipv4-address-configured? inet:ipv4-address
+--ro b4-state +--ro v6-v4-dscp-preservation-enabled? boolean
+--ro status? boolean
+--ro aftr-ipv6-addr inet:ipv6-address
+--ro ipv4-address-configured? inet:ipv4-address
+--ro v6-v4-dscp-preservation-enabled? boolean
Figure 1: YANG Data Model for DS-Lite AFTR
The following notifications are supported. These notifications are
triggered by configurable parameters.
notifications: notifications:
+---n dslite-aftr-event +---n dslite-aftr-event
+--ro id? -> /dslite-state/dslite-aftr-state/ +--ro id? -> /dslite-state/dslite-aftr-state/dslite-aftr-instances/dslite-aftr-instance/id
| dslite-aftr-instances/dslite-aftr-instance/id +--ro notify-pool-threshold percent
+--ro notify-pool-threshold percent
Figure 1: YANG Data Model for DS-Lite AFTR
3. DS-Lite YANG Module 3. DS-Lite YANG Module
<CODE BEGINS> file "ietf-dslite@2017-01-03" <CODE BEGINS> file "ietf-dslite@2017-07-03.yang"
module ietf-dslite { module ietf-dslite {
namespace "urn:ietf:params:xml:ns:yang:ietf-dslite"; namespace "urn:ietf:params:xml:ns:yang:ietf-dslite";
prefix dslite; prefix dslite;
import ietf-inet-types { prefix inet; } import ietf-inet-types { prefix inet; }
import ietf-yang-types { prefix yang; } import ietf-yang-types { prefix yang; }
organization "Softwire Working Group"; organization "Softwire Working Group";
contact contact
"Mohamed Boucadair <mohamed.boucadair@orange.com> "Mohamed Boucadair <mohamed.boucadair@orange.com>
Christian Jacquenet <christian.jacquenet@orange.com> Christian Jacquenet <christian.jacquenet@orange.com>
Senthil Sivakumar <ssenthil@cisco.com>"; Senthil Sivakumar <ssenthil@cisco.com>";
description description
"This module is a YANG module for DS-Lite AFTR "This module is a YANG module for DS-Lite AFTR/B4
implementations. implementations.
Copyright (c) 2016 IETF Trust and the persons identified as Copyright (c) 2017 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.";
revision 2017-07-03 {
description "Fix some minor points.";
reference "-ietf-03";
}
revision 2017-01-03 { revision 2017-01-03 {
description "Fixed a compilation error: description "Fixed a compilation error:
https://github.com/mbj4668/pyang/issues/296."; https://github.com/mbj4668/pyang/issues/296.";
reference "-ietf-02"; reference "-ietf-02";
} }
revision 2016-11-14 { revision 2016-11-14 {
description "Integrates the comments from Ian: description "Integrates the comments from Ian:
add B4 module, add an MSS leaf, add more details about add B4 module, add an MSS leaf, add more details about
logging protocols, and other edits."; logging protocols, and other edits.";
skipping to change at page 20, line 30 skipping to change at page 20, line 27
leaf mss-value { leaf mss-value {
type uint16; type uint16;
units "octets"; units "octets";
description description
"Sets the MSS value to be used for "Sets the MSS value to be used for
MSS rewriting."; MSS rewriting.";
} }
} }
leaf port-randomization-enable { leaf port-allocation-type {
type boolean; type enumeration {
description enum "random" {
"Enable/disable port randomization feature. description
Section 9 of [RFC7857] specifies that a NAT "Port port randomization.";
should follow the recommendations in }
Section 4 of RFC6056.";
}
leaf port-preservation-enable { enum "port-preservation" {
type boolean; description
description "Indicates whether the PCP server should
"Indicates whether the AFTR should preserve the internal port number.";
preserve the internal port number."; }
}
leaf port-parity-preservation-enable { enum "port-range-preservation" {
type boolean; description
description "Indicates whether the NAT device should
"Indicates whether the AFTR should preserve the internal port range.";
preserve the port parity of the }
internal port number.
Section 8 of [RFC7857] indicates that enum "port-parity-preservation" {
a NAT may disable port parity preservation description
for all dynamic mappings. "Indicates whether the PCP server should
It also specifies that a NAT should support preserve the port parity of the
means to explicitly request to preserve internal port number.";
port parity (e.g., [RFC7753])."; }
} }
description
"Indicates the type of a port allocation.";
}
leaf address-roundrobin-enable { leaf address-roundrobin-enable {
type boolean; type boolean;
description description
"Enable/disable address allocation "Enable/disable address allocation
round robin."; round robin.";
} }
uses lifetime; uses lifetime;
skipping to change at page 39, line 27 skipping to change at page 39, line 27
"Indicates whether this feature is "Indicates whether this feature is
enabled/disabled. enabled/disabled.
"; ";
} }
} }
} }
} }
} }
} }
/*
* Notifications
*/
notification dslite-aftr-event {
description
"Notifications must be generated when the defined
high/low threshold is reached. Related configuration
parameters must be provided to trigger
the notifications.";
leaf id {
type leafref {
path
"/dslite-state/dslite-aftr-state/dslite-aftr-instances/"
+ "dslite-aftr-instance/id";
}
description
"AFTR instance ID.";
}
leaf notify-pool-threshold {
type percent;
mandatory true;
description
"A threshold has been fired.";
}
}
} }
<CODE ENDS> <CODE ENDS>
4. Security Considerations 4. Security Considerations
The YANG module defined in this memo is designed to be accessed via The YANG module defined in this memo is designed to be accessed via
the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the
secure transport layer and the support of SSH is mandatory to secure transport layer and the support of SSH is mandatory to
implement secure transport [RFC6242]. The NETCONF access control implement secure transport [RFC6242]. The NETCONF access control
model [RFC6536] provides means to restrict access for particular model [RFC6536] provides means to restrict access for particular
skipping to change at page 41, line 46 skipping to change at page 41, line 19
[RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types", [RFC6991] Schoenwaelder, J., Ed., "Common YANG Data Types",
RFC 6991, DOI 10.17487/RFC6991, July 2013, RFC 6991, DOI 10.17487/RFC6991, July 2013,
<http://www.rfc-editor.org/info/rfc6991>. <http://www.rfc-editor.org/info/rfc6991>.
7.2. Informative references 7.2. Informative references
[I-D.boucadair-pcp-yang] [I-D.boucadair-pcp-yang]
Boucadair, M., Jacquenet, C., Sivakumar, S., and S. Boucadair, M., Jacquenet, C., Sivakumar, S., and S.
Vinapamula, "YANG Data Models for the Port Control Vinapamula, "YANG Data Models for the Port Control
Protocol (PCP)", draft-boucadair-pcp-yang-03 (work in Protocol (PCP)", draft-boucadair-pcp-yang-04 (work in
progress), November 2016. progress), May 2017.
[RFC4787] Audet, F., Ed. and C. Jennings, "Network Address [RFC4787] Audet, F., Ed. and C. Jennings, "Network Address
Translation (NAT) Behavioral Requirements for Unicast Translation (NAT) Behavioral Requirements for Unicast
UDP", BCP 127, RFC 4787, DOI 10.17487/RFC4787, January UDP", BCP 127, RFC 4787, DOI 10.17487/RFC4787, January
2007, <http://www.rfc-editor.org/info/rfc4787>. 2007, <http://www.rfc-editor.org/info/rfc4787>.
[RFC5382] Guha, S., Ed., Biswas, K., Ford, B., Sivakumar, S., and P. [RFC5382] Guha, S., Ed., Biswas, K., Ford, B., Sivakumar, S., and P.
Srisuresh, "NAT Behavioral Requirements for TCP", BCP 142, Srisuresh, "NAT Behavioral Requirements for TCP", BCP 142,
RFC 5382, DOI 10.17487/RFC5382, October 2008, RFC 5382, DOI 10.17487/RFC5382, October 2008,
<http://www.rfc-editor.org/info/rfc5382>. <http://www.rfc-editor.org/info/rfc5382>.
 End of changes. 17 change blocks. 
345 lines changed or deleted 314 lines changed or added

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