| < draft-chen-rtgwg-qos-yang-03.txt | draft-chen-rtgwg-qos-yang-04.txt > | |||
|---|---|---|---|---|
| RTGWG I. Chen | RTGWG I. Chen | |||
| Internet-Draft Kuatro Technologies | Internet-Draft Kuatro Technologies | |||
| Intended status: Standards Track October 19, 2016 | Intended status: Standards Track October 20, 2016 | |||
| Expires: April 22, 2017 | Expires: April 23, 2017 | |||
| YANG Data Model for QoS | YANG Data Model for QoS | |||
| draft-chen-rtgwg-qos-yang-03 | draft-chen-rtgwg-qos-yang-04 | |||
| Abstract | Abstract | |||
| This document defines a YANG data model to describe quality-of- | This document defines a YANG data model to describe quality-of- | |||
| service (QoS) configurations. | service (QoS) configurations. | |||
| 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 April 22, 2017. | This Internet-Draft will expire on April 23, 2017. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2016 IETF Trust and the persons identified as the | Copyright (c) 2016 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 16 ¶ | skipping to change at page 2, line 16 ¶ | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 1.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 2 | 1.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | 2. Design of the Data Model . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Related Work . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Related Work . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 4. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
| 5. Security Consideration . . . . . . . . . . . . . . . . . . . 55 | 5. Security Consideration . . . . . . . . . . . . . . . . . . . 55 | |||
| 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 55 | 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 55 | |||
| 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 55 | 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
| 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 | 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 55 | |||
| 8.1. Normative References . . . . . . . . . . . . . . . . . . 55 | 8.1. Normative References . . . . . . . . . . . . . . . . . . 56 | |||
| 8.2. Informative References . . . . . . . . . . . . . . . . . 56 | 8.2. Informative References . . . . . . . . . . . . . . . . . 56 | |||
| Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 56 | Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 56 | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a YANG [RFC7950] data model to specify Quality- | This document defines a YANG [RFC7950] data model to specify Quality- | |||
| of-Service (QoS) configurations. QoS configurations include policies | of-Service (QoS) configurations. QoS configurations include policies | |||
| and profiles that allow an administrator of a device to classify, | and profiles that allow an administrator of a device to classify, | |||
| mark, rate-limit, and perform other actions on incoming and outgoing | mark, rate-limit, and perform other actions on incoming and outgoing | |||
| packets. | packets. | |||
| skipping to change at page 5, line 19 ¶ | skipping to change at page 5, line 19 ¶ | |||
| the YANG model proposed in this document and ietf-qos- | the YANG model proposed in this document and ietf-qos- | |||
| policy@2016-03-03.yang is that both claim to model QoS. | policy@2016-03-03.yang is that both claim to model QoS. | |||
| Consequently, the authors of the two documents have put in contact to | Consequently, the authors of the two documents have put in contact to | |||
| understand the similarities and differences between the two YANG | understand the similarities and differences between the two YANG | |||
| models. While there are no resolutions yet, the goal of all involved | models. While there are no resolutions yet, the goal of all involved | |||
| is to eliminate unnecessary duplication and design one coherent QoS | is to eliminate unnecessary duplication and design one coherent QoS | |||
| model (or more if needed). | model (or more if needed). | |||
| 4. YANG Module | 4. YANG Module | |||
| <CODE BEGINS> file "ietf-qos.yang" | <CODE BEGINS> file "ietf-qos@2016-10-20.yang" | |||
| module ietf-qos { | module ietf-qos { | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-qos"; | namespace "urn:ietf:params:xml:ns:yang:ietf-qos"; | |||
| prefix qos; | prefix qos; | |||
| organization "IETF when standardized"; | organization "IETF when standardized"; | |||
| contact "IETF when standardized"; | contact "IETF when standardized"; | |||
| description | description | |||
| "QOS YANG Model"; | "QOS YANG Model"; | |||
| revision "2016-10-20" { | ||||
| description "Second revision: " + | ||||
| " - Correct confdc compile errors"; | ||||
| reference ""; | ||||
| } | ||||
| revision "2015-06-04" { | revision "2015-06-04" { | |||
| description "Initial revision"; | description "Initial revision"; | |||
| reference ""; | reference ""; | |||
| } | } | |||
| typedef dscp-code-all-values-type { | typedef dscp-code-all-values-type { | |||
| type union { | type union { | |||
| type uint8 { | type uint8 { | |||
| range "0..63"; | range "0..63"; | |||
| } | } | |||
| skipping to change at page 8, line 11 ¶ | skipping to change at page 8, line 17 ¶ | |||
| grouping mdrr-congestion-avoidance-map-grp { | grouping mdrr-congestion-avoidance-map-grp { | |||
| description "mdrr-congestion-avoidance-map-grp"; | description "mdrr-congestion-avoidance-map-grp"; | |||
| leaf congestion-avoidance-map-reference { | leaf congestion-avoidance-map-reference { | |||
| type leafref { | type leafref { | |||
| path "/qos:qos/qos:congestion-avoidance-maps" | path "/qos:qos/qos:congestion-avoidance-maps" | |||
| + "/qos:congestion-avoidance-map/qos:name"; | + "/qos:congestion-avoidance-map/qos:name"; | |||
| } | } | |||
| must | must | |||
| "/qos:qos/qos:congestion-avoidance-maps" + | "/qos:qos/qos:congestion-avoidance-maps" + | |||
| "/qos:congestion-avoidance-map/" + | "/qos:congestion-avoidance-map[qos:name = current()]" + | |||
| "[qos:name = current()]/qos:mdrr" { | "/qos:mdrr" { | |||
| description "Must be an mdrr congestion avoidance map"; | description "Must be an mdrr congestion avoidance map"; | |||
| } | } | |||
| description "congestion-avoidance-map-reference"; | description "congestion-avoidance-map-reference"; | |||
| } | } | |||
| } | } | |||
| grouping pwfq-congestion-avoidance-map-grp { | grouping pwfq-congestion-avoidance-map-grp { | |||
| description "pwfq-congestion-avoidance-map-grp"; | description "pwfq-congestion-avoidance-map-grp"; | |||
| leaf congestion-avoidance-map-reference { | leaf congestion-avoidance-map-reference { | |||
| type leafref { | type leafref { | |||
| path "/qos:qos/qos:congestion-avoidance-maps" | path "/qos:qos/qos:congestion-avoidance-maps" | |||
| + "/qos:congestion-avoidance-map/qos:name"; | + "/qos:congestion-avoidance-map/qos:name"; | |||
| } | } | |||
| must | must | |||
| "/qos:qos/qos:congestion-avoidance-maps/" + | "/qos:qos/qos:congestion-avoidance-maps/" + | |||
| "/qos:congestion-avoidance-map/" + | "/qos:congestion-avoidance-map[qos:name = current()]" + | |||
| "[qos:name = current()]/qos:pwfq" { | "/qos:pwfq" { | |||
| description "Must be a pwfq congestion avoidance map"; | description "Must be a pwfq congestion avoidance map"; | |||
| } | } | |||
| description "congestion-avoidance-map-reference"; | description "congestion-avoidance-map-reference"; | |||
| } | } | |||
| } | } | |||
| grouping queue-map-grp { | grouping queue-map-grp { | |||
| description "queue-map-grp"; | description "queue-map-grp"; | |||
| leaf queue-map-reference { | leaf queue-map-reference { | |||
| type leafref { | type leafref { | |||
| path "/qos:qos/qos:queue-maps/qos:queue-map/qos:name"; | path "/qos:qos/qos:queue-maps/qos:queue-map/qos:name"; | |||
| } | } | |||
| description "queue-map-reference"; | description "queue-map-reference"; | |||
| } | } | |||
| } | } | |||
| skipping to change at page 14, line 48 ¶ | skipping to change at page 15, line 4 ¶ | |||
| units "percent"; | units "percent"; | |||
| description "percentage"; | description "percentage"; | |||
| } | } | |||
| uses rate-counters-grp; | uses rate-counters-grp; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping policy-packet-handling-card-family-1-3-grp { | ||||
| description "policy packet handling for card-family 1 and 3"; | ||||
| uses policy-packet-handling-grp { | ||||
| augment "policy-packet-handling/" + | ||||
| "rate-limiting/rate-type/bit-rate-type/bit-rate" { | ||||
| description "bit-rate"; | ||||
| uses policy-card-family-1-3-bit-rate-grp; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping policy-packet-handling-card-family-2-grp { | ||||
| description "policy packet handling for card-family 2"; | ||||
| uses policy-packet-handling-grp { | ||||
| augment "policy-packet-handling/" + | ||||
| "rate-limiting/rate-type/bit-rate-type/bit-rate" { | ||||
| uses policy-card-family-2-bit-rate-grp; | ||||
| description "augment bit-rate"; | ||||
| } | ||||
| } | ||||
| } | ||||
| grouping inline-rate-specifications-packet-handling-grp { | grouping inline-rate-specifications-packet-handling-grp { | |||
| description "inline-rate-specifications-packet-handling-grp"; | description "inline-rate-specifications-packet-handling-grp"; | |||
| choice inline-rate-specifications { | choice inline-rate-specifications { | |||
| description "inline-rate-specifications"; | description "inline-rate-specifications"; | |||
| case mark-dscp { | case mark-dscp { | |||
| leaf mark-dscp { | leaf mark-dscp { | |||
| type dscp-code-all-values-type; | type dscp-code-all-values-type; | |||
| description "mark-dscp"; | description "mark-dscp"; | |||
| } | } | |||
| skipping to change at page 17, line 4 ¶ | skipping to change at page 17, line 29 ¶ | |||
| container card-family-2 { | container card-family-2 { | |||
| description "card-family-2"; | description "card-family-2"; | |||
| uses metering-or-policing-card-family-2-grp; | uses metering-or-policing-card-family-2-grp; | |||
| } | } | |||
| } | } | |||
| case card-family-3 { | case card-family-3 { | |||
| container card-family-3 { | container card-family-3 { | |||
| description "card-family-3"; | description "card-family-3"; | |||
| uses metering-or-policing-card-family-3-grp; | uses metering-or-policing-card-family-3-grp; | |||
| } | } | |||
| } | } | |||
| case default-card-family { | case default-card-family { | |||
| /* The default card-family is card-family-1. */ | /* The default card-family is card-family-1. */ | |||
| uses metering-or-policing-card-family-1-grp; | uses metering-or-policing-card-family-1-grp; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping metering-or-policing-card-family-1-grp { | grouping metering-or-policing-card-family-1-grp { | |||
| description "metering-or-policing-card-family-1-grp"; | description "metering-or-policing-card-family-1-grp"; | |||
| uses policy-group-grp { | uses policy-group-grp { | |||
| augment "policy/group/class-group/class-group/classes/class/" + | augment "policy/group/class-group/class-group/classes/class/" + | |||
| "packet-handling" { | "packet-handling" { | |||
| description "augment packet-handling"; | description "augment packet-handling"; | |||
| uses policy-packet-handling-grp { | uses policy-packet-handling-card-family-1-3-grp; | |||
| augment "policy-packet-handling/" + | ||||
| "rate-limiting/rate-type/bit-rate-type/bit-rate" { | ||||
| description "bit-rate"; | ||||
| uses policy-card-family-1-3-bit-rate-grp; | ||||
| } | ||||
| } | ||||
| } | } | |||
| } | } | |||
| uses inline-rate-specifications-packet-handling-grp { | uses inline-rate-specifications-packet-handling-grp { | |||
| augment "inline-rate-specifications/rate-limiting/rate" { | augment "inline-rate-specifications/rate-limiting/rate" { | |||
| description "augment rate"; | description "augment rate"; | |||
| uses policy-card-family-1-3-bit-rate-grp; | uses policy-card-family-1-3-bit-rate-grp; | |||
| uses informational-grp; | uses informational-grp; | |||
| } | } | |||
| } | } | |||
| uses rate-calculation-exclude-layer-2-overhead-grp; | uses rate-calculation-exclude-layer-2-overhead-grp; | |||
| } | } | |||
| grouping metering-or-policing-card-family-2-grp { | grouping metering-or-policing-card-family-2-grp { | |||
| description "metering-or-policing-card-family-2-grp"; | description "metering-or-policing-card-family-2-grp"; | |||
| uses policy-group-grp { | uses policy-group-grp { | |||
| augment "policy/group/class-group/class-group/classes/class/" + | augment "policy/group/class-group/class-group/classes/class/" + | |||
| "packet-handling" { | "packet-handling" { | |||
| description "packet-handling"; | description "packet-handling"; | |||
| uses policy-packet-handling-grp { | uses policy-packet-handling-card-family-2-grp; | |||
| augment "policy-packet-handling/" + | ||||
| "rate-limiting/rate-type/bit-rate-type/bit-rate" { | ||||
| description "augment bit-rate"; | ||||
| uses policy-card-family-2-bit-rate-grp; | ||||
| } | ||||
| } | ||||
| } | } | |||
| } | } | |||
| uses inline-rate-specifications-packet-handling-grp { | uses inline-rate-specifications-packet-handling-grp { | |||
| augment "inline-rate-specifications/rate-limiting/rate" { | augment "inline-rate-specifications/rate-limiting/rate" { | |||
| description "augment rate"; | description "augment rate"; | |||
| uses policy-card-family-2-bit-rate-grp; | uses policy-card-family-2-bit-rate-grp; | |||
| uses informational-grp; | uses informational-grp; | |||
| } | } | |||
| } | } | |||
| uses rate-calculation-exclude-layer-2-overhead-grp; | uses rate-calculation-exclude-layer-2-overhead-grp; | |||
| } | } | |||
| grouping metering-or-policing-card-family-3-grp { | grouping metering-or-policing-card-family-3-grp { | |||
| description "metering-or-policing-card-family-3-grp"; | description "metering-or-policing-card-family-3-grp"; | |||
| uses policy-group-grp { | uses policy-group-grp { | |||
| augment "policy/group/class-group/class-group/classes/class/" + | augment "policy/group/class-group/class-group/classes/class/" + | |||
| "packet-handling" { | "packet-handling" { | |||
| description "augment packet-handling"; | description "augment packet-handling"; | |||
| uses policy-packet-handling-grp { | uses policy-packet-handling-card-family-1-3-grp; | |||
| augment "policy-packet-handling/" + | ||||
| "rate-limiting/rate-type/bit-rate-type/bit-rate" { | ||||
| uses policy-card-family-2-bit-rate-grp; | ||||
| description "augment bit-rate"; | ||||
| } | ||||
| } | ||||
| } | } | |||
| } | } | |||
| uses inline-rate-specifications-packet-handling-grp { | uses inline-rate-specifications-packet-handling-grp { | |||
| augment "inline-rate-specifications/rate-limiting/rate" { | augment "inline-rate-specifications/rate-limiting/rate" { | |||
| description "augment rate"; | description "augment rate"; | |||
| uses policy-card-family-1-3-bit-rate-grp; | uses policy-card-family-1-3-bit-rate-grp; | |||
| uses informational-grp; | uses informational-grp; | |||
| } | } | |||
| } | } | |||
| uses rate-calculation-exclude-layer-2-overhead-grp; | uses rate-calculation-exclude-layer-2-overhead-grp; | |||
| skipping to change at page 24, line 47 ¶ | skipping to change at page 25, line 4 ¶ | |||
| description "queue"; | description "queue"; | |||
| leaf num { | leaf num { | |||
| type uint8 { | type uint8 { | |||
| range "0..7"; | range "0..7"; | |||
| } | } | |||
| description "priority"; | description "priority"; | |||
| } | } | |||
| uses pwfq-queue-choice-priority-or-rate-grp; | uses pwfq-queue-choice-priority-or-rate-grp; | |||
| } | } | |||
| } | } | |||
| grouping pwfq-rate-card-family-1-grp { | grouping pwfq-rate-card-family-1-grp { | |||
| description "pwfq-rate-card-family-1-grp"; | description "pwfq-rate-card-family-1-grp"; | |||
| choice rate-or-weight { | choice rate-or-weight { | |||
| description "rate-or-weight"; | description "rate-or-weight"; | |||
| case rate-minimum { | case rate-minimum { | |||
| container rate-minimum { | container rate-minimum { | |||
| presence "Configure minimum rate"; | presence "Configure minimum rate"; | |||
| description "rate-minimum"; | description "rate-minimum"; | |||
| leaf rate-minimum { | leaf rate { | |||
| type uint32 { | type uint32 { | |||
| range "8..1000000"; | range "8..1000000"; | |||
| } | } | |||
| units "kbps"; | units "kbps"; | |||
| mandatory true; | mandatory true; | |||
| description "rate-minimum"; | description "rate-minimum"; | |||
| } | } | |||
| leaf burst { | leaf burst { | |||
| type uint32 { | type uint32 { | |||
| range "64..1875000000"; | range "64..1875000000"; | |||
| skipping to change at page 25, line 36 ¶ | skipping to change at page 25, line 41 ¶ | |||
| type uint16 { | type uint16 { | |||
| range "1..1023"; | range "1..1023"; | |||
| } | } | |||
| description "weight"; | description "weight"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container rate-maximum { | container rate-maximum { | |||
| presence "Configure maximum rate"; | presence "Configure maximum rate"; | |||
| description "rate-maximum"; | description "rate-maximum"; | |||
| leaf rate-maximum { | leaf rate { | |||
| type uint32 { | type uint32 { | |||
| range "8..10000000"; | range "8..10000000"; | |||
| } | } | |||
| units "kbps"; | units "kbps"; | |||
| mandatory true; | mandatory true; | |||
| description "rate-maximum"; | description "rate-maximum"; | |||
| } | } | |||
| leaf burst { | leaf burst { | |||
| type uint32 { | type uint32 { | |||
| range "64..1875000000"; | range "64..1875000000"; | |||
| skipping to change at page 25, line 47 ¶ | skipping to change at page 26, line 4 ¶ | |||
| type uint32 { | type uint32 { | |||
| range "8..10000000"; | range "8..10000000"; | |||
| } | } | |||
| units "kbps"; | units "kbps"; | |||
| mandatory true; | mandatory true; | |||
| description "rate-maximum"; | description "rate-maximum"; | |||
| } | } | |||
| leaf burst { | leaf burst { | |||
| type uint32 { | type uint32 { | |||
| range "64..1875000000"; | range "64..1875000000"; | |||
| } | } | |||
| units "byte"; | units "byte"; | |||
| description "burst"; | description "burst"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping pwfq-rate-card-family-2-grp { | grouping pwfq-rate-card-family-2-grp { | |||
| description "pwfq-rate-card-family-2-grp"; | description "pwfq-rate-card-family-2-grp"; | |||
| choice rate-or-weight { | choice rate-or-weight { | |||
| description "rate-or-weight"; | description "rate-or-weight"; | |||
| case rate-minimum { | case rate-minimum { | |||
| container rate-minimum { | container rate-minimum { | |||
| presence "Configure minimum rate"; | presence "Configure minimum rate"; | |||
| description "rate-minimum"; | description "rate-minimum"; | |||
| leaf rate-minimum { | leaf rate { | |||
| type uint32 { | type uint32 { | |||
| range "8..1000000"; | range "8..1000000"; | |||
| } | } | |||
| units "kbps"; | units "kbps"; | |||
| mandatory true; | mandatory true; | |||
| description "rate-minimum"; | description "rate-minimum"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| case weight { | case weight { | |||
| skipping to change at page 26, line 37 ¶ | skipping to change at page 26, line 42 ¶ | |||
| type uint16 { | type uint16 { | |||
| range "1..4096"; | range "1..4096"; | |||
| } | } | |||
| description "weight"; | description "weight"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| container rate-maximum { | container rate-maximum { | |||
| presence "Configure maximum rate"; | presence "Configure maximum rate"; | |||
| description "rate-maximum"; | description "rate-maximum"; | |||
| leaf rate-maximum { | leaf rate { | |||
| type uint32 { | type uint32 { | |||
| range "64..1000000"; | range "64..1000000"; | |||
| } | } | |||
| units "kbps"; | units "kbps"; | |||
| mandatory true; | mandatory true; | |||
| description "rate-maximum"; | description "rate-maximum"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping pwfq-rate-card-family-3-grp { | grouping pwfq-rate-card-family-3-grp { | |||
| description "pwfq-rate-card-family-3-grp"; | description "pwfq-rate-card-family-3-grp"; | |||
| container rate-minimum { | container rate-minimum { | |||
| presence "Configure minimum rate"; | presence "Configure minimum rate"; | |||
| description "rate-minimum"; | description "rate-minimum"; | |||
| leaf rate-minimum { | leaf rate { | |||
| type uint32 { | type uint32 { | |||
| range "8..1000000"; | range "8..1000000"; | |||
| } | } | |||
| units "kbps"; | units "kbps"; | |||
| mandatory true; | mandatory true; | |||
| description "rate-minimum"; | description "rate-minimum"; | |||
| } | } | |||
| leaf burst { | leaf burst { | |||
| type uint32 { | type uint32 { | |||
| range "64..1875000000"; | range "64..1875000000"; | |||
| } | } | |||
| units "byte"; | units "byte"; | |||
| description "burst"; | description "burst"; | |||
| } | } | |||
| } | } | |||
| container rate-maximum { | container rate-maximum { | |||
| presence "Configure maximum rate"; | presence "Configure maximum rate"; | |||
| description "rate-maximum"; | description "rate-maximum"; | |||
| leaf rate-maximum { | leaf rate { | |||
| type uint32 { | type uint32 { | |||
| range "8..10000000"; | range "8..10000000"; | |||
| } | } | |||
| units "kbps"; | units "kbps"; | |||
| mandatory true; | mandatory true; | |||
| description "rate-maximum"; | description "rate-maximum"; | |||
| } | } | |||
| container counters { | container counters { | |||
| presence "Enable counting"; | presence "Enable counting"; | |||
| description "counters"; | description "counters"; | |||
| skipping to change at page 39, line 26 ¶ | skipping to change at page 39, line 30 ¶ | |||
| } | } | |||
| description "ip list"; | description "ip list"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| case out { | case out { | |||
| container out { | container out { | |||
| presence "ip-class-map-out"; | presence "ip-class-map-out"; | |||
| description "out direction"; | description "out direction"; | |||
| list qos { | list qos { | |||
| must "dscp-code != to-qos" { | must "dscp-code != to-ip" { | |||
| description | description | |||
| "dscp-code must be different from to-qos"; | "dscp-code must be different from to-ip"; | |||
| } | } | |||
| key "dscp-code"; | key "dscp-code"; | |||
| leaf dscp-code { | leaf dscp-code { | |||
| type uint8 { | type uint8 { | |||
| range "0..63"; | range "0..63"; | |||
| } | } | |||
| description "dscp-code"; | description "dscp-code"; | |||
| } | } | |||
| leaf to-ip { | leaf to-ip { | |||
| type uint8 { | type uint8 { | |||
| skipping to change at page 52, line 31 ¶ | skipping to change at page 52, line 35 ¶ | |||
| key "num"; | key "num"; | |||
| description "num-queues"; | description "num-queues"; | |||
| leaf num { | leaf num { | |||
| type uint8 { | type uint8 { | |||
| range "2 | 4 | 8"; | range "2 | 4 | 8"; | |||
| } | } | |||
| description "num-queues"; | description "num-queues"; | |||
| } | } | |||
| uses num-queues-grp { | uses num-queues-grp { | |||
| refine "queue" { | refine "queue" { | |||
| must "id < num" { | must "id < ../num" { | |||
| description | description | |||
| "A queue's id must be less than number of queues"; | "A queue's id must be less than number of queues"; | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| } | } | |||
| grouping num-queues-grp { | grouping num-queues-grp { | |||
| description "num-queues"; | description "num-queues"; | |||
| End of changes. 29 change blocks. | ||||
| 46 lines changed or deleted | 51 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||