public
public copied to clipboard
Revert datatypes for QoS percentage leafs
- (M) release/models/qos/openconfig-qos-elements.yang
- (M) release/models/qos/openconfig-qos-interfaces.yang
- (M) release/models/qos/openconfig-qos-mem-mgmt.yang
- (M) release/models/qos/openconfig-qos.yang
- Revert datatypes for (min|max)-threshold-percent
- Increment version to 0.13.0
Change Scope
Reverting prior commit https://github.com/openconfig/public/pull/1382 as this
brought in a change from uint64 to uint8 which as been flagged as an
undesirable mostly athstetic breaking change (especially when it comes to an
encoding such as JSON_IETF)
While the type is being changed back to a uint64, we are still proposing
scoping and proper units declaration here.
This was to address issue https://github.com/openconfig/public/issues/1381
Platform Implementations
As in the previous PR, need comment/validation from implementors and operators.
Tree View
module: openconfig-qos
+--rw qos
+--rw config
+--ro state
+--rw interfaces
| +--rw interface* [interface-id]
| +--rw interface-id -> ../config/interface-id
| +--rw config
| | +--rw interface-id? string
| +--ro state
| | +--ro interface-id? string
| +--rw interface-ref
| | +--rw config
| | | +--rw interface? -> /oc-if:interfaces/interface/name
| | | +--rw subinterface? -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
| | +--ro state
| | +--ro interface? -> /oc-if:interfaces/interface/name
| | +--ro subinterface? -> /oc-if:interfaces/interface[oc-if:name=current()/../interface]/subinterfaces/subinterface/index
| +--rw input
| | +--rw config
| | | +--rw buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | | +--rw multicast-buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | | +--rw unicast-buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | +--ro state
| | | +--ro buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | | +--ro multicast-buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | | +--ro unicast-buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | +--rw classifiers
| | | +--rw classifier* [type]
| | | +--rw type -> ../config/type
| | | +--rw config
| | | | +--rw name? -> ../../../../../../../classifiers/classifier/config/name
| | | | +--rw type? enumeration
| | | +--ro state
| | | | +--ro name? -> ../../../../../../../classifiers/classifier/config/name
| | | | +--ro type? enumeration
| | | +--rw terms
| | | +--ro term* [id]
| | | +--ro id -> ../state/id
| | | +--ro state
| | | +--ro id? -> ../../../../../../../../../classifiers/classifier[name=current()/../../../../config/name]/terms/term/config/id
| | | +--ro matched-packets? oc-yang:counter64
| | | +--ro matched-octets? oc-yang:counter64
| | +--rw queues
| | | +--rw queue* [name]
| | | +--rw name -> ../config/name
| | | +--rw config
| | | | +--rw name? string
| | | | +--rw queue-management-profile? -> ../../../../../../../queue-management-profiles/queue-management-profile/config/name
| | | +--ro state
| | | +--ro name? string
| | | +--ro queue-management-profile? -> ../../../../../../../queue-management-profiles/queue-management-profile/config/name
| | | +--ro max-queue-len? oc-yang:counter64
| | | +--ro avg-queue-len? oc-yang:counter64
| | | +--ro transmit-pkts? oc-yang:counter64
| | | +--ro transmit-octets? oc-yang:counter64
| | | +--ro dropped-pkts? oc-yang:counter64
| | | +--ro dropped-octets? oc-yang:counter64
| | | +--ro ecn-marked-pkts? oc-yang:counter64
| | | +--ro ecn-marked-octets? oc-yang:counter64
| | | +--ro ecn-selected-pkts? oc-yang:counter64
| | | +--ro ecn-selected-octets? oc-yang:counter64
| | +--rw scheduler-policy
| | | +--rw config
| | | | +--rw name? -> ../../../../../../scheduler-policies/scheduler-policy/config/name
| | | +--ro state
| | | | +--ro name? -> ../../../../../../scheduler-policies/scheduler-policy/config/name
| | | +--ro schedulers
| | | +--ro scheduler* [sequence]
| | | +--ro sequence -> ../state/sequence
| | | +--ro state
| | | +--ro sequence? -> ../../../../../../../../scheduler-policies/scheduler-policy[name=current()/../../../../config/name]/schedulers/scheduler/config/sequence
| | | +--ro conforming-pkts? oc-yang:counter64
| | | +--ro conforming-octets? oc-yang:counter64
| | | +--ro exceeding-pkts? oc-yang:counter64
| | | +--ro exceeding-octets? oc-yang:counter64
| | | +--ro violating-pkts? oc-yang:counter64
| | | +--ro violating-octets? oc-yang:counter64
| | +--rw virtual-output-queues
| | +--rw voq-interface* [name]
| | +--rw name -> ../config/name
| | +--rw config
| | | +--rw name? string
| | +--ro state
| | | +--ro name? string
| | +--rw queues
| | +--rw queue* [name]
| | +--rw name -> ../config/name
| | +--rw config
| | | +--rw name? string
| | +--ro state
| | +--ro name? string
| | +--ro max-queue-len? oc-yang:counter64
| | +--ro avg-queue-len? oc-yang:counter64
| | +--ro transmit-pkts? oc-yang:counter64
| | +--ro transmit-octets? oc-yang:counter64
| | +--ro dropped-pkts? oc-yang:counter64
| | +--ro dropped-octets? oc-yang:counter64
| | +--ro ecn-marked-pkts? oc-yang:counter64
| | +--ro ecn-marked-octets? oc-yang:counter64
| | +--ro ecn-selected-pkts? oc-yang:counter64
| | +--ro ecn-selected-octets? oc-yang:counter64
| +--rw output
| +--rw config
| | +--rw buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | +--rw multicast-buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | +--rw unicast-buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| +--ro state
| | +--ro buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | +--ro multicast-buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| | +--ro unicast-buffer-allocation-profile? -> ../../../../../buffer-allocation-profiles/buffer-allocation-profile/config/name
| +--rw classifiers
| | +--rw classifier* [type]
| | +--rw type -> ../config/type
| | +--rw config
| | | +--rw name? -> ../../../../../../../classifiers/classifier/config/name
| | | +--rw type? enumeration
| | +--ro state
| | | +--ro name? -> ../../../../../../../classifiers/classifier/config/name
| | | +--ro type? enumeration
| | +--rw terms
| | +--ro term* [id]
| | +--ro id -> ../state/id
| | +--ro state
| | +--ro id? -> ../../../../../../../../../classifiers/classifier[name=current()/../../../../config/name]/terms/term/config/id
| | +--ro matched-packets? oc-yang:counter64
| | +--ro matched-octets? oc-yang:counter64
| +--rw queues
| | +--rw queue* [name]
| | +--rw name -> ../config/name
| | +--rw config
| | | +--rw name? string
| | | +--rw queue-management-profile? -> ../../../../../../../queue-management-profiles/queue-management-profile/config/name
| | +--ro state
| | +--ro name? string
| | +--ro queue-management-profile? -> ../../../../../../../queue-management-profiles/queue-management-profile/config/name
| | +--ro max-queue-len? oc-yang:counter64
| | +--ro avg-queue-len? oc-yang:counter64
| | +--ro transmit-pkts? oc-yang:counter64
| | +--ro transmit-octets? oc-yang:counter64
| | +--ro dropped-pkts? oc-yang:counter64
| | +--ro dropped-octets? oc-yang:counter64
| | +--ro ecn-marked-pkts? oc-yang:counter64
| | +--ro ecn-marked-octets? oc-yang:counter64
| | +--ro ecn-selected-pkts? oc-yang:counter64
| | +--ro ecn-selected-octets? oc-yang:counter64
| +--rw scheduler-policy
| +--rw config
| | +--rw name? -> ../../../../../../scheduler-policies/scheduler-policy/config/name
| +--ro state
| | +--ro name? -> ../../../../../../scheduler-policies/scheduler-policy/config/name
| +--ro schedulers
| +--ro scheduler* [sequence]
| +--ro sequence -> ../state/sequence
| +--ro state
| +--ro sequence? -> ../../../../../../../../scheduler-policies/scheduler-policy[name=current()/../../../../config/name]/schedulers/scheduler/config/sequence
| +--ro conforming-pkts? oc-yang:counter64
| +--ro conforming-octets? oc-yang:counter64
| +--ro exceeding-pkts? oc-yang:counter64
| +--ro exceeding-octets? oc-yang:counter64
| +--ro violating-pkts? oc-yang:counter64
| +--ro violating-octets? oc-yang:counter64
+--rw classifiers
| +--rw classifier* [name]
| +--rw name -> ../config/name
| +--rw config
| | +--rw name? string
| | +--rw type? enumeration
| +--ro state
| | +--ro name? string
| | +--ro type? enumeration
| +--rw terms
| +--rw term* [id]
| +--rw id -> ../config/id
| +--rw config
| | +--rw id? string
| +--ro state
| | +--ro id? string
| +--rw conditions
| | +--rw l2
| | | +--rw config
| | | | +--rw source-mac? oc-yang:mac-address
| | | | +--rw source-mac-mask? oc-yang:mac-address
| | | | +--rw destination-mac? oc-yang:mac-address
| | | | +--rw destination-mac-mask? oc-yang:mac-address
| | | | +--rw ethertype? oc-pkt-match-types:ethertype-type
| | | +--ro state
| | | +--ro source-mac? oc-yang:mac-address
| | | +--ro source-mac-mask? oc-yang:mac-address
| | | +--ro destination-mac? oc-yang:mac-address
| | | +--ro destination-mac-mask? oc-yang:mac-address
| | | +--ro ethertype? oc-pkt-match-types:ethertype-type
| | +--rw ipv4
| | | +--rw config
| | | | +--rw source-address? oc-inet:ipv4-prefix
| | | | +--rw source-address-prefix-set? -> /oc-sets:defined-sets/ipv4-prefix-sets/ipv4-prefix-set/name
| | | | +--rw destination-address? oc-inet:ipv4-prefix
| | | | +--rw destination-address-prefix-set? -> /oc-sets:defined-sets/ipv4-prefix-sets/ipv4-prefix-set/name
| | | | +--rw fragment-offsets* oc-pkt-match-types:fragment-offset-range
| | | | +--rw dscp? oc-inet:dscp
| | | | +--rw dscp-set* oc-inet:dscp
| | | | +--rw length? uint16
| | | | +--rw protocol? oc-pkt-match-types:ip-protocol-type
| | | | +--rw hop-limit? uint8
| | | +--ro state
| | | | +--ro source-address? oc-inet:ipv4-prefix
| | | | +--ro source-address-prefix-set? -> /oc-sets:defined-sets/ipv4-prefix-sets/ipv4-prefix-set/name
| | | | +--ro destination-address? oc-inet:ipv4-prefix
| | | | +--ro destination-address-prefix-set? -> /oc-sets:defined-sets/ipv4-prefix-sets/ipv4-prefix-set/name
| | | | +--ro fragment-offsets* oc-pkt-match-types:fragment-offset-range
| | | | +--ro dscp? oc-inet:dscp
| | | | +--ro dscp-set* oc-inet:dscp
| | | | +--ro length? uint16
| | | | +--ro protocol? oc-pkt-match-types:ip-protocol-type
| | | | +--ro hop-limit? uint8
| | | +--rw icmpv4
| | | +--rw config
| | | | +--rw type? identityref
| | | | +--rw code? identityref
| | | +--ro state
| | | +--ro type? identityref
| | | +--ro code? identityref
| | +--rw ipv6
| | | +--rw config
| | | | +--rw source-address? oc-inet:ipv6-prefix
| | | | +--rw source-address-prefix-set? -> /oc-sets:defined-sets/ipv6-prefix-sets/ipv6-prefix-set/name
| | | | +--rw source-flow-label? oc-inet:ipv6-flow-label
| | | | +--rw destination-address? oc-inet:ipv6-prefix
| | | | +--rw destination-address-prefix-set? -> /oc-sets:defined-sets/ipv6-prefix-sets/ipv6-prefix-set/name
| | | | +--rw destination-flow-label? oc-inet:ipv6-flow-label
| | | | +--rw dscp? oc-inet:dscp
| | | | +--rw dscp-set* oc-inet:dscp
| | | | +--rw length? uint16
| | | | +--rw protocol? oc-pkt-match-types:ip-protocol-type
| | | | +--rw hop-limit? uint8
| | | +--ro state
| | | | +--ro source-address? oc-inet:ipv6-prefix
| | | | +--ro source-address-prefix-set? -> /oc-sets:defined-sets/ipv6-prefix-sets/ipv6-prefix-set/name
| | | | +--ro source-flow-label? oc-inet:ipv6-flow-label
| | | | +--ro destination-address? oc-inet:ipv6-prefix
| | | | +--ro destination-address-prefix-set? -> /oc-sets:defined-sets/ipv6-prefix-sets/ipv6-prefix-set/name
| | | | +--ro destination-flow-label? oc-inet:ipv6-flow-label
| | | | +--ro dscp? oc-inet:dscp
| | | | +--ro dscp-set* oc-inet:dscp
| | | | +--ro length? uint16
| | | | +--ro protocol? oc-pkt-match-types:ip-protocol-type
| | | | +--ro hop-limit? uint8
| | | +--rw icmpv6
| | | +--rw config
| | | | +--rw type? identityref
| | | | +--rw code? identityref
| | | +--ro state
| | | +--ro type? identityref
| | | +--ro code? identityref
| | +--rw transport
| | | +--rw config
| | | | +--rw source-port? oc-pkt-match-types:port-num-range
| | | | +--rw source-port-set? -> /oc-sets:defined-sets/port-sets/port-set/name
| | | | +--rw destination-port? oc-pkt-match-types:port-num-range
| | | | +--rw destination-port-set? -> /oc-sets:defined-sets/port-sets/port-set/name
| | | | +--rw detail-mode? enumeration
| | | | +--rw explicit-detail-match-mode? enumeration
| | | | +--rw explicit-tcp-flags* identityref
| | | | +--rw builtin-detail? enumeration
| | | +--ro state
| | | +--ro source-port? oc-pkt-match-types:port-num-range
| | | +--ro source-port-set? -> /oc-sets:defined-sets/port-sets/port-set/name
| | | +--ro destination-port? oc-pkt-match-types:port-num-range
| | | +--ro destination-port-set? -> /oc-sets:defined-sets/port-sets/port-set/name
| | | +--ro detail-mode? enumeration
| | | +--ro explicit-detail-match-mode? enumeration
| | | +--ro explicit-tcp-flags* identityref
| | | +--ro builtin-detail? enumeration
| | +--rw mpls
| | +--rw config
| | | +--rw traffic-class? oc-mpls:mpls-tc
| | | +--rw start-label-value? oc-mpls:mpls-label
| | | +--rw end-label-value? oc-mpls:mpls-label
| | | +--rw ttl-value? uint8
| | +--ro state
| | +--ro traffic-class? oc-mpls:mpls-tc
| | +--ro start-label-value? oc-mpls:mpls-label
| | +--ro end-label-value? oc-mpls:mpls-label
| | +--ro ttl-value? uint8
| +--rw actions
| +--rw config
| | +--rw target-group? -> ../../../../../../../forwarding-groups/forwarding-group/config/name
| +--ro state
| | +--ro target-group? -> ../../../../../../../forwarding-groups/forwarding-group/config/name
| +--rw remark
| +--rw config
| | +--rw set-dscp? uint8
| | +--rw set-dot1p? uint8
| | +--rw set-mpls-tc? uint8
| +--ro state
| +--ro set-dscp? uint8
| +--ro set-dot1p? uint8
| +--ro set-mpls-tc? uint8
+--rw forwarding-groups
| +--rw forwarding-group* [name]
| +--rw name -> ../config/name
| +--rw config
| | +--rw name? string
| | +--rw fabric-priority? uint8
| | +--rw output-queue? -> ../../../../queues/queue/config/name
| | +--rw unicast-output-queue? -> ../../../../queues/queue/config/name
| | +--rw multicast-output-queue? -> ../../../../queues/queue/config/name
| +--ro state
| +--ro name? string
| +--ro fabric-priority? uint8
| +--ro output-queue? -> ../../../../queues/queue/config/name
| +--ro unicast-output-queue? -> ../../../../queues/queue/config/name
| +--ro multicast-output-queue? -> ../../../../queues/queue/config/name
+--rw queues
| +--rw queue* [name]
| +--rw name -> ../config/name
| +--rw config
| | +--rw name? string
| | +--rw queue-id? uint8
| +--ro state
| +--ro name? string
| +--ro queue-id? uint8
+--rw scheduler-policies
| +--rw scheduler-policy* [name]
| +--rw name -> ../config/name
| +--rw config
| | +--rw name? string
| +--ro state
| | +--ro name? string
| +--rw schedulers
| +--rw scheduler* [sequence]
| +--rw sequence -> ../config/sequence
| +--rw config
| | +--rw sequence? uint32
| | +--rw type? identityref
| | +--rw priority? enumeration
| +--ro state
| | +--ro sequence? uint32
| | +--ro type? identityref
| | +--ro priority? enumeration
| +--rw inputs
| | +--rw input* [id]
| | +--rw id -> ../config/id
| | +--rw config
| | | +--rw id? string
| | | +--rw input-type? enumeration
| | | +--rw queue? -> ../../../../../../../../queues/queue/name
| | | +--rw weight? uint64
| | +--ro state
| | +--ro id? string
| | +--ro input-type? enumeration
| | +--ro queue? -> ../../../../../../../../queues/queue/name
| | +--ro weight? uint64
| +--rw output
| | +--rw config
| | | +--rw output-type? enumeration
| | | +--rw child-scheduler? -> ../../../../../../../scheduler-policies/scheduler-policy/config/name
| | | +--rw output-fwd-group? -> ../../../../../../../forwarding-groups/forwarding-group/config/name
| | +--ro state
| | +--ro output-type? enumeration
| | +--ro child-scheduler? -> ../../../../../../../scheduler-policies/scheduler-policy/config/name
| | +--ro output-fwd-group? -> ../../../../../../../forwarding-groups/forwarding-group/config/name
| +--rw one-rate-two-color
| | +--rw config
| | | +--rw cir? uint64
| | | +--rw cir-pct? oc-types:percentage
| | | +--rw cir-pct-remaining? oc-types:percentage
| | | +--rw bc? uint32
| | | +--rw queuing-behavior? oc-qos-types:queue-behavior
| | | +--rw max-queue-depth-bytes? uint32
| | | +--rw max-queue-depth-packets? uint32
| | | +--rw max-queue-depth-percent? oc-types:percentage
| | +--ro state
| | | +--ro cir? uint64
| | | +--ro cir-pct? oc-types:percentage
| | | +--ro cir-pct-remaining? oc-types:percentage
| | | +--ro bc? uint32
| | | +--ro queuing-behavior? oc-qos-types:queue-behavior
| | | +--ro max-queue-depth-bytes? uint32
| | | +--ro max-queue-depth-packets? uint32
| | | +--ro max-queue-depth-percent? oc-types:percentage
| | +--rw conform-action
| | | +--rw config
| | | | +--rw set-dscp? uint8
| | | | +--rw set-dot1p? uint8
| | | | +--rw set-mpls-tc? uint8
| | | +--ro state
| | | +--ro set-dscp? uint8
| | | +--ro set-dot1p? uint8
| | | +--ro set-mpls-tc? uint8
| | +--rw exceed-action
| | +--rw config
| | | +--rw set-dscp? uint8
| | | +--rw set-dot1p? uint8
| | | +--rw set-mpls-tc? uint8
| | | +--rw drop? boolean
| | +--ro state
| | +--ro set-dscp? uint8
| | +--ro set-dot1p? uint8
| | +--ro set-mpls-tc? uint8
| | +--ro drop? boolean
| +--rw two-rate-three-color
| +--rw config
| | +--rw cir? uint64
| | +--rw cir-pct? oc-types:percentage
| | +--rw cir-pct-remaining? oc-types:percentage
| | +--rw pir? uint64
| | +--rw pir-pct? oc-types:percentage
| | +--rw pir-pct-remaining? oc-types:percentage
| | +--rw bc? uint32
| | +--rw be? uint32
| +--ro state
| | +--ro cir? uint64
| | +--ro cir-pct? oc-types:percentage
| | +--ro cir-pct-remaining? oc-types:percentage
| | +--ro pir? uint64
| | +--ro pir-pct? oc-types:percentage
| | +--ro pir-pct-remaining? oc-types:percentage
| | +--ro bc? uint32
| | +--ro be? uint32
| +--rw conform-action
| | +--rw config
| | | +--rw set-dscp? uint8
| | | +--rw set-dot1p? uint8
| | | +--rw set-mpls-tc? uint8
| | +--ro state
| | +--ro set-dscp? uint8
| | +--ro set-dot1p? uint8
| | +--ro set-mpls-tc? uint8
| +--rw exceed-action
| | +--rw config
| | | +--rw set-dscp? uint8
| | | +--rw set-dot1p? uint8
| | | +--rw set-mpls-tc? uint8
| | | +--rw drop? boolean
| | +--ro state
| | +--ro set-dscp? uint8
| | +--ro set-dot1p? uint8
| | +--ro set-mpls-tc? uint8
| | +--ro drop? boolean
| +--rw violate-action
| +--rw config
| | +--rw set-dscp? uint8
| | +--rw set-dot1p? uint8
| | +--rw set-mpls-tc? uint8
| | +--rw drop? boolean
| +--ro state
| +--ro set-dscp? uint8
| +--ro set-dot1p? uint8
| +--ro set-mpls-tc? uint8
| +--ro drop? boolean
+--rw buffer-allocation-profiles
| +--rw buffer-allocation-profile* [name]
| +--rw name -> ../config/name
| +--rw config
| | +--rw name? string
| +--ro state
| | +--ro name? string
| +--rw queues
| +--rw queue* [name]
| +--rw name -> ../config/name
| +--rw config
| | +--rw name? -> ../../../../../../queues/queue/config/name
| | +--rw dedicated-buffer? uint64
| | +--rw dedicated-buffer-temporal? uint64
| | +--rw use-shared-buffer? boolean
| | +--rw shared-buffer-limit-type? identityref
| | +--rw static-shared-buffer-limit? uint32
| | +--rw static-shared-buffer-limit-temporal? uint32
| | +--rw dynamic-limit-scaling-factor? int32
| +--ro state
| +--ro name? -> ../../../../../../queues/queue/config/name
| +--ro dedicated-buffer? uint64
| +--ro dedicated-buffer-temporal? uint64
| +--ro use-shared-buffer? boolean
| +--ro shared-buffer-limit-type? identityref
| +--ro static-shared-buffer-limit? uint32
| +--ro static-shared-buffer-limit-temporal? uint32
| +--ro dynamic-limit-scaling-factor? int32
+--rw queue-management-profiles
+--rw queue-management-profile* [name]
+--rw name -> ../config/name
+--rw config
| +--rw name? string
+--ro state
| +--ro name? string
+--rw wred
| +--rw uniform
| +--rw config
| | +--rw min-threshold? uint64
| | +--rw max-threshold? uint64
- | | +--rw min-threshold-percent? oc-types:percentage
- | | +--rw max-threshold-percent? oc-types:percentage
+ | | +--rw min-threshold-percent? uint64
+ | | +--rw max-threshold-percent? uint64
| | +--rw enable-ecn? boolean
| | +--rw drop? boolean
| | +--rw weight? uint32
| | +--rw max-drop-probability-percent? oc-types:percentage
| +--ro state
| +--ro min-threshold? uint64
| +--ro max-threshold? uint64
- | +--ro min-threshold-percent? oc-types:percentage
- | +--ro max-threshold-percent? oc-types:percentage
+ | +--ro min-threshold-percent? uint64
+ | +--ro max-threshold-percent? uint64
| +--ro enable-ecn? boolean
| +--ro drop? boolean
| +--ro weight? uint32
| +--ro max-drop-probability-percent? oc-types:percentage
+--rw red
+--rw uniform
+--rw config
| +--rw min-threshold? uint64
| +--rw max-threshold? uint64
- | +--rw min-threshold-percent? oc-types:percentage
- | +--rw max-threshold-percent? oc-types:percentage
+ | +--rw min-threshold-percent? uint64
+ | +--rw max-threshold-percent? uint64
| +--rw enable-ecn? boolean
| +--rw drop? boolean
+--ro state
+--ro min-threshold? uint64
+--ro max-threshold? uint64
- +--ro min-threshold-percent? oc-types:percentage
- +--ro max-threshold-percent? oc-types:percentage
+ +--ro min-threshold-percent? uint64
+ +--ro max-threshold-percent? uint64
+--ro enable-ecn? boolean
+--ro drop? boolean