< draft-xiong-detnet-qos-yang-00.txt   draft-xiong-detnet-qos-yang-01.txt >
DeNet WG Quan Xiong DeNet WG Quan Xiong
Internet-Draft Yufang Han Internet-Draft Yufang Han
Intended status: Standards Track ZTE Corporation Intended status: Standards Track ZTE Corporation
Expires: April 22, 2019 October 19, 2018 Expires: September 12, 2019 March 11, 2019
DetNet QoS Yang DetNet QoS Yang
draft-xiong-detnet-qos-yang-00 draft-xiong-detnet-qos-yang-01
Abstract Abstract
This document defines a YANG data model for Deterministic Networking This document defines a YANG data model for Deterministic Networking
(DetNet) Quality of Service (QoS) based on the Differentiated (DetNet) Quality of Service (QoS) based on the Differentiated
Services (DiffServ) model. Services (DiffServ) model.
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 32 skipping to change at page 1, line 32
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 https://datatracker.ietf.org/drafts/current/. Drafts is at https://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 April 22, 2019. This Internet-Draft will expire on September 12, 2019.
Copyright Notice Copyright Notice
Copyright (c) 2018 IETF Trust and the persons identified as the Copyright (c) 2019 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
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 . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2
2. DetNet DiffServ QoS Model . . . . . . . . . . . . . . . . . . 2 2. DetNet DiffServ QoS Model . . . . . . . . . . . . . . . . . . 2
2.1. DetNet QoS Tree Structure . . . . . . . . . . . . . . . . 3 2.1. DetNet QoS Tree Structure . . . . . . . . . . . . . . . . 3
2.2. DetNet QoS Module . . . . . . . . . . . . . . . . . . . . 4 2.2. DetNet QoS Module . . . . . . . . . . . . . . . . . . . . 4
3. Security Considerations . . . . . . . . . . . . . . . . . . . 12 3. Security Considerations . . . . . . . . . . . . . . . . . . . 13
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 13
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.1. Informative References . . . . . . . . . . . . . . . . . 13 6.1. Informative References . . . . . . . . . . . . . . . . . 13
6.2. Normative References . . . . . . . . . . . . . . . . . . 13 6.2. Normative References . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
Deterministic Networking (DetNet) as defined in Deterministic Networking (DetNet) as defined in
[I-D.ietf-detnet-architecture], provides a capability to carry [I-D.ietf-detnet-architecture], provides a capability to carry
specified unicast or multicast data flows for real-time applications specified unicast or multicast data flows for real-time applications
with extremely low data loss rates and bounded latency. In the with extremely low data loss rates and bounded latency. In the
skipping to change at page 3, line 18 skipping to change at page 3, line 18
policy types can be defined in detnet-policy-type. policy types can be defined in detnet-policy-type.
[I-D.xiong-detnet-qos-policy] specified two types of classifiers [I-D.xiong-detnet-qos-policy] specified two types of classifiers
including BA (Behavior Aggregate) and MF (Multi-Field) classifiers in including BA (Behavior Aggregate) and MF (Multi-Field) classifiers in
detnet-classifier-type. DetNet IP BA classifier selects packets detnet-classifier-type. DetNet IP BA classifier selects packets
based on the DiffServ Code Point (DSCP) and DetNet MPLS BA classifier based on the DiffServ Code Point (DSCP) and DetNet MPLS BA classifier
is based on the MPLS Traffic Class (TC) field. DetNet IP MF is based on the MPLS Traffic Class (TC) field. DetNet IP MF
classifier selects packets based on the value of a combination of classifier selects packets based on the value of a combination of
source address, destination address, DSCP, protocol ID, source port source address, destination address, DSCP, protocol ID, source port
and destination port numbers and DetNet MPLS MF classifier is based and destination port numbers and DetNet MPLS MF classifier is based
on the MPLS TC and Service Label (S-Label) field of the header. on the MPLS TC , service label (S-Label) field and forwarding labels
(F-Labels) of the header.
[I-D.xiong-detnet-qos-policy] defined a DetNet (DN) Per Hop Behavior [I-D.xiong-detnet-qos-policy] defined a DetNet (DN) Per Hop Behavior
(PHB) for DetNet forward other than existing PHBs including (PHB) for DetNet forward other than existing PHBs including
AF,EF,CS,DF etc. The PHB class information description is as qos- AF,EF,CS,DF etc. The PHB class information description is as qos-
phb-class shown. phb-class shown.
[I-D.xiong-detnet-qos-policy] defined a new type of action for DetNet [I-D.xiong-detnet-qos-policy] defined two new types of action for
traffic conditioning named order action to reorder the packets. DetNet traffic conditioning named order and scheduler action. Other
Other actions including meter, shaper, dropper and marker as the actions including meter, shaper, dropper and marker as the detnet-
detnet-action-type shown. action-type shown.
module: ietf-detnet-qos module: ietf-detnet-qos
+--rw detnet-qos-policies +--rw detnet-qos-policies
+--rw detnet-policy-template* [detnet-policy-name] +--rw detnet-policy-template* [detnet-policy-name]
+--rw detnet-policy-name string +--rw detnet-policy-name string
+--rw detnet-policy-type? detnet-policy-type +--rw detnet-policy-type? detnet-policy-type
+--rw detnet-classifier-template* [detnet-classifier-name] +--rw detnet-classifier-template* [detnet-classifier-name]
+--rw detnet-classifier-name string +--rw detnet-classifier-name string
+--rw detnet-classifier-type? detnet-classifier-type +--rw detnet-classifier-type? detnet-classifier-type
+--rw (classifier-type)? +--rw (classifier-type)?
| +--:(ba) | +--:(ba)
| | +--rw (encapsulation-type)? | | +--rw (encapsulation-type)?
| | +--:(MPLS) | | +--:(MPLS)
| | | +--rw mpls-ba* [tc-value] | | | +--rw mpls-ba* [tc-value]
| | | +--rw phb-class? qos-phb-class | | | +--rw phb-class? qos-phb-class
| | | +--rw tc-value uint8 | | | +--rw tc-value uint8
| | +--:(IP) | | +--:(IP)
| | +--rw ip-ba* [dscp-value] | | +--rw ip-ba* [dscp-value]
| | +--rw phb-class? qos-phb-class | | +--rw phb-class? qos-phb-class
| | +--rw dscp-value uint8 | | +--rw dscp-value uint8
| +--:(mf) | +--:(mf)
| +--rw (tunnel-type)? | +--rw (tunnel-type)?
| +--:(MPLS) | +--:(MPLS)
| | +--rw mpls-mf* [tc-value] | | +--rw mpls-mf* [tc-value]
| | +--rw phb-class? qos-phb-class | | +--rw phb-class? qos-phb-class
| | +--rw tc-value uint8 | | +--rw tc-value uint8
| | +--rw s-label? uint32 | | +--rw s-label? uint32
| +--:(IPv4) | | +--rw f-labels* [f-label-id]
| | +--rw ipv4-mf* [dscp-value] | | +--rw f-label-id uint32
| | +--rw phb-class? qos-phb-class | +--:(IPv4)
| | +--rw dscp-value uint8 | | +--rw ipv4-mf* [dscp-value]
| | +--rw ipv4-source-address? inet:ipv4-address | | +--rw phb-class? qos-phb-class
| | +--rw ipv4-destination-address? inet:ipv4-address | | +--rw dscp-value uint8
| | +--rw protocol-ID? uint8 | | +--rw ipv4-source-address? inet:ipv4-address
| | +--rw source-port-numbers? inet:port-number | | +--rw ipv4-destination-address? inet:ipv4-address
| | +--rw destination-port-numbers? inet:port-number | | +--rw protocol-ID? uint8
| +--:(IPv6) | | +--rw source-port-numbers? inet:port-number
| +--rw ipv6-mf* [dscp-value] | | +--rw destination-port-numbers? inet:port-number
| +--rw phb-class? qos-phb-class | +--:(IPv6)
| +--rw dscp-value uint8 | +--rw ipv6-mf* [dscp-value]
| +--rw ipv6-source-address? inet:ipv6-address | +--rw phb-class? qos-phb-class
| +--rw ipv6-destination-address? inet:ipv6-address | +--rw dscp-value uint8
| +--rw protocol-ID? uint8 | +--rw ipv6-source-address? inet:ipv6-address
| +--rw source-port-numbers? inet:port-number | +--rw ipv6-destination-address? inet:ipv6-address
| +--rw destination-port-numbers? inet:port-number | +--rw protocol-ID? uint8
+--rw detnet-action* [detnet-action-type] | +--rw source-port-numbers? inet:port-number
+--rw detnet-action-type detnet-action-type | +--rw destination-port-numbers? inet:port-number
+--rw (actions)? | +--rw flow-label? inet:ipv6-flow-label
+--:(meter) +--rw detnet-action* [detnet-action-type]
+--:(marker) +--rw detnet-action-type detnet-action-type
+--:(shaper) +--rw (actions)?
+--:(dropper) +--:(meter)
+--:(order) +--:(marker)
+--:(shaper)
+--:(dropper)
+--:(order)
+--:(scheduler)
2.2. DetNet QoS Module 2.2. DetNet QoS Module
<CODE BEGINS> file "detnet-diffserv-qos@2018-10-13.yang" <CODE BEGINS> file "detnet-diffserv-qos@2018-10-13.yang"
module ietf-detnet-qos { module ietf-detnet-qos {
yang-version 1; yang-version 1;
namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-qos"; namespace "urn:ietf:params:xml:ns:yang:ietf-detnet-qos";
prefix detnet-qos; prefix detnet-qos;
import ietf-inet-types{ import ietf-inet-types{
skipping to change at page 5, line 18 skipping to change at page 5, line 23
Editor: Yufang Han Editor: Yufang Han
<mailto:han.yufang1@zte.com.cn>"; <mailto:han.yufang1@zte.com.cn>";
description description
"This YANG module describes the Deterministic Networking (DetNet) "This YANG module describes the Deterministic Networking (DetNet)
Quality of Service (QoS) based on the Differentiated Services (DiffServ) Quality of Service (QoS) based on the Differentiated Services (DiffServ)
model."; model.";
revision "2018-10-13" { revision "2018-10-13" {
description "initial revision"; description "initial revision";
reference "RFC XXXX: draft-xiong-detnet-qos-yang-00"; reference "RFC XXXX: draft-xiong-detnet-qos-yang-01";
} }
typedef qos-phb-class { typedef qos-phb-class {
type enumeration { type enumeration {
enum df { enum df {
value 1 ; value 1 ;
description "Default Forwarding for Best effort"; description "Default Forwarding for Best effort";
} }
enum af1 { enum af1 {
value 2 ; value 2 ;
skipping to change at page 7, line 16 skipping to change at page 7, line 22
description "DiffServ dropper Action"; description "DiffServ dropper Action";
} }
enum marker { enum marker {
value 4 ; value 4 ;
description "DiffServ marker Action"; description "DiffServ marker Action";
} }
enum order { enum order {
value 5 ; value 5 ;
description "DiffServ order Action"; description "DiffServ order Action";
} }
enum scheduler {
value 6 ;
description "DiffServ scheduler Action";
}
} }
description description
"The DetNet classifier type including BA and MF."; "The DetNet classifier type including BA and MF.";
} }
grouping mpls-tc { grouping mpls-tc {
description "MPLS TC Information"; description "MPLS TC Information";
leaf phb-class { leaf phb-class {
type qos-phb-class; type qos-phb-class;
description "Specify phb class of PHB info, support [a" description "Specify phb class of PHB info, support [a"
+ "f1,af2,af3,af4,be,ef,cs6,cs7,dt]"; + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]";
} }
leaf tc-value { leaf tc-value {
type uint8 { type uint8 {
range 0..7 { range 0..7 {
description "MPLS-TC value, support [0-7]"; description "MPLS-TC value, support [0-7]";
} }
} }
mandatory true ; mandatory true ;
description "MPLS-TC value, support [0-7]"; description "MPLS-TC value, support [0-7]";
} }
skipping to change at page 7, line 43 skipping to change at page 8, line 4
} }
mandatory true ; mandatory true ;
description "MPLS-TC value, support [0-7]"; description "MPLS-TC value, support [0-7]";
} }
} }
grouping ip-dscp { grouping ip-dscp {
description "IP DSCP Information"; description "IP DSCP Information";
leaf phb-class { leaf phb-class {
type qos-phb-class ; type qos-phb-class ;
description "Specify server class of PHB info, support [a" description "Specify server class of PHB info, support [a"
+ "f1,af2,af3,af4,be,ef,cs6,cs7,dt]"; + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]";
} }
leaf dscp-value { leaf dscp-value {
type uint8 { type uint8 {
range 0..63 { range 0..63 {
description "IPv4/IPv6 DSCP value, support [0-63]"; description "IPv4/IPv6 DSCP value, support [0-63]";
} }
} }
mandatory true ; mandatory true ;
description "IPv4/IPv6 DSCP value, support [0-63]"; description "IPv4/IPv6 DSCP value, support [0-63]";
} }
} }
grouping mpls-header-info { grouping mpls-header-info {
description "MPLS TC Information"; description "MPLS TC Information";
leaf phb-class { leaf phb-class {
type qos-phb-class ; type qos-phb-class ;
description "Specify phb class of PHB info, support [a" description "Specify phb class of PHB info, support [a"
+ "f1,af2,af3,af4,be,ef,cs6,cs7,dt]"; + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]";
} }
leaf tc-value { leaf tc-value {
type uint8 { type uint8 {
range 0..7 { range 0..7 {
description "MPLS-TC value, support [0-7]"; description "MPLS-TC value, support [0-7]";
} }
} }
mandatory true ; mandatory true ;
description "MPLS-TC value, support [0-7]"; description "MPLS-TC value, support [0-7]";
} }
leaf s-label { leaf s-label {
type uint32; type uint32;
description "DetNet Flow ID value, support classifier MF"; description "DetNet Flow ID value, support classifier MF";
} }
list f-labels {
key "f-label-id";
description "DetNet forwarding label id, support classifier MF";
leaf f-label-id {
type uint32;
description "DetNet forwarding label value, support classifier MF";
}
}
} }
grouping ipv4-header-info { grouping ipv4-header-info {
description "IP DSCP Information"; description "IP DSCP Information";
leaf phb-class { leaf phb-class {
type qos-phb-class ; type qos-phb-class ;
description "Specify server class of PHB info, support [a" description "Specify server class of PHB info, support [a"
+ "f1,af2,af3,af4,be,ef,cs6,cs7,dt]"; + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]";
} }
leaf dscp-value { leaf dscp-value {
type uint8 { type uint8 {
range 0..63 { range 0..63 {
description "IPv4/IPv6 DSCP value, support [0-63]"; description "IPv4/IPv6 DSCP value, support [0-63]";
} }
} }
mandatory true ; mandatory true ;
description "IPv4/IPv6 DSCP value, support [0-63]"; description "IPv4/IPv6 DSCP value, support [0-63]";
} }
skipping to change at page 9, line 26 skipping to change at page 9, line 44
type inet:port-number; type inet:port-number;
description "destination port numbers, support classifier MF"; description "destination port numbers, support classifier MF";
} }
} }
grouping ipv6-header-info { grouping ipv6-header-info {
description "IPv6 DSCP Information"; description "IPv6 DSCP Information";
leaf phb-class { leaf phb-class {
type qos-phb-class ; type qos-phb-class ;
description "Specify server class of PHB info, support [a" description "Specify server class of PHB info, support [a"
+ "f1,af2,af3,af4,be,ef,cs6,cs7,dt]"; + "f1,af2,af3,af4,be,ef,cs6,cs7,dn]";
} }
leaf dscp-value { leaf dscp-value {
type uint8 { type uint8 {
range 0..63 { range 0..63 {
description "IPv4/IPv6 DSCP value, support [0-63]"; description "IPv4/IPv6 DSCP value, support [0-63]";
} }
} }
mandatory true ; mandatory true ;
description "IPv4/IPv6 DSCP value, support [0-63]"; description "IPv4/IPv6 DSCP value, support [0-63]";
} }
skipping to change at page 10, line 4 skipping to change at page 10, line 21
type inet:ipv6-address; type inet:ipv6-address;
description "destination address value, support classifier MF"; description "destination address value, support classifier MF";
} }
leaf protocol-ID { leaf protocol-ID {
type uint8; type uint8;
description "protocol ID, support classifier MF"; description "protocol ID, support classifier MF";
} }
leaf source-port-numbers { leaf source-port-numbers {
type inet:port-number; type inet:port-number;
description "source port numbers, support classifier MF"; description "source port numbers, support classifier MF";
} }
leaf destination-port-numbers { leaf destination-port-numbers {
type inet:port-number; type inet:port-number;
description "destination port numbers, support classifier MF"; description "destination port numbers, support classifier MF";
} }
leaf flow-label {
type inet:ipv6-flow-label;
description
"The flow label of the header.";
}
} }
grouping detnet-classifiers { grouping detnet-classifiers {
description "Configure the DetNet classifiers"; description "Configure the DetNet classifiers";
choice classifier-type { choice classifier-type {
description "Choice of classifiers types"; description "Choice of classifiers types";
case ba { case ba {
description "BA classifier"; description "BA classifier";
choice encapsulation-type { choice encapsulation-type {
description "Tunnel type includes: IP, MPLS."; description "Tunnel type includes: IP, MPLS.";
skipping to change at page 11, line 45 skipping to change at page 12, line 19
} }
case shaper { case shaper {
description "shaper action"; description "shaper action";
} }
case dropper { case dropper {
description "dropper action"; description "dropper action";
} }
case order { case order {
description "order action"; description "order action";
} }
case scheduler {
description "scheduler action";
}
} }
} }
} }
container detnet-qos-policies { container detnet-qos-policies {
description "Configuration about DetNet QoS Policy"; description "Configuration about DetNet QoS Policy";
list detnet-policy-template { list detnet-policy-template {
key detnet-policy-name; key detnet-policy-name;
description "DetNet policy template"; description "DetNet policy template";
leaf detnet-policy-name { leaf detnet-policy-name {
skipping to change at page 13, line 16 skipping to change at page 13, line 37
[RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., [RFC2475] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z.,
and W. Weiss, "An Architecture for Differentiated and W. Weiss, "An Architecture for Differentiated
Services", RFC 2475, DOI 10.17487/RFC2475, December 1998, Services", RFC 2475, DOI 10.17487/RFC2475, December 1998,
<https://www.rfc-editor.org/info/rfc2475>. <https://www.rfc-editor.org/info/rfc2475>.
6.2. Normative References 6.2. Normative References
[I-D.ietf-detnet-architecture] [I-D.ietf-detnet-architecture]
Finn, N., Thubert, P., Varga, B., and J. Farkas, Finn, N., Thubert, P., Varga, B., and J. Farkas,
"Deterministic Networking Architecture", draft-ietf- "Deterministic Networking Architecture", draft-ietf-
detnet-architecture-08 (work in progress), September 2018. detnet-architecture-11 (work in progress), February 2019.
[I-D.ietf-detnet-dp-sol-ip] [I-D.ietf-detnet-dp-sol-ip]
Korhonen, J. and B. Varga, "DetNet IP Data Plane Korhonen, J. and B. Varga, "DetNet IP Data Plane
Encapsulation", draft-ietf-detnet-dp-sol-ip-00 (work in Encapsulation", draft-ietf-detnet-dp-sol-ip-01 (work in
progress), July 2018. progress), October 2018.
[I-D.xiong-detnet-qos-policy] [I-D.xiong-detnet-qos-policy]
Xiong, Q. and Y. jinghai, "DetNet QoS Policy", draft- Xiong, Q. and Y. jinghai, "DetNet QoS Policy", draft-
xiong-detnet-qos-policy-00 (work in progress), October xiong-detnet-qos-policy-00 (work in progress), October
2018. 2018.
[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, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
 End of changes. 23 change blocks. 
74 lines changed or deleted 100 lines changed or added

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