mirror of
https://github.com/Telecominfraproject/ols-ucentral-schema.git
synced 2026-03-20 03:39:31 +00:00
Compare commits
1 Commits
main
...
ols-975-di
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79848de50c |
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"major": 5,
|
||||
"minor": 0,
|
||||
"patch": 0
|
||||
"major": 4,
|
||||
"minor": 1,
|
||||
"patch": 0
|
||||
}
|
||||
|
||||
@@ -544,113 +544,23 @@ properties:
|
||||
minimum: 0
|
||||
default: 0
|
||||
description: Maximum allowed unknown unicast packets per second. 0 disables unknown unicast storm control.
|
||||
qos-priority-mapping:
|
||||
diffserv-policy:
|
||||
type: object
|
||||
description: Interface-level QoS priority mapping configuration. Defines how ingress packet
|
||||
markings (IP Precedence, CoS, DSCP) are interpreted and mapped to internal
|
||||
per-hop behavior (PHB), drop precedence, and egress queue selection.
|
||||
description: Associates DiffServ policy maps with a physical interface.
|
||||
This object represents the binding of policy maps to the
|
||||
ingress and/or egress direction of an interface.
|
||||
properties:
|
||||
priority-untagged:
|
||||
type: integer
|
||||
description: Sets the default priority for incoming untagged Ethernet frames.
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
qos-map-trust-mode:
|
||||
ingress:
|
||||
type: string
|
||||
description: Determines which packet header field is trusted for ingress classification.
|
||||
enum:
|
||||
- cos
|
||||
- dscp
|
||||
- ip-precedence
|
||||
qos-map-ipprec2dscp:
|
||||
type: array
|
||||
description: Maps IP Precedence values (0–7) in ingress packets to per-hop behavior (PHB)
|
||||
and drop precedence. Used when trust mode is set to ip-precedence.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
preced:
|
||||
type: integer
|
||||
description: IP Precedence value in the incoming packet.
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
phb:
|
||||
type: integer
|
||||
description: Per-hop behavior (PHB) assigned to this IP Precedence.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
drop-preced:
|
||||
type: string
|
||||
description: Drop precedence assigned for congestion control.
|
||||
enum:
|
||||
- green
|
||||
- yellow
|
||||
- red
|
||||
qos-map-cos2dscp:
|
||||
type: array
|
||||
description: Maps CoS/CFI values in ingress packets to PHB and drop precedence.
|
||||
Applied when trust mode is set to cos.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
cos:
|
||||
type: integer
|
||||
description: CoS value extracted from ingress frames.
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
cfi:
|
||||
type: integer
|
||||
description: Canonical Format Indicator (0 or 1).
|
||||
minimum: 0
|
||||
maximum: 1
|
||||
phb:
|
||||
type: integer
|
||||
description: PHB assigned to this CoS/CFI mapping.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
drop-preced:
|
||||
type: string
|
||||
description: Drop precedence for congestion handling.
|
||||
enum:
|
||||
- green
|
||||
- yellow
|
||||
- red
|
||||
qos-map-dscpmutate:
|
||||
type: array
|
||||
description: Maps DSCP values (0–63) in ingress packets to custom PHB and drop precedence.
|
||||
Used when trust mode is set to dscp.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
dscp:
|
||||
type: integer
|
||||
description: DSCP value from the IP header.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
phb:
|
||||
type: integer
|
||||
description: PHB derived from DSCP-to-internal-priority mapping.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
drop-preced:
|
||||
type: string
|
||||
description: Drop precedence classification for congestion.
|
||||
enum:
|
||||
- green
|
||||
- yellow
|
||||
- red
|
||||
qos-map-phb2queue:
|
||||
type: array
|
||||
description: Maps PHB to output hardware queues for traffic scheduling.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
phb:
|
||||
type: integer
|
||||
description: Per-hop behavior value (internal priority).
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
queue-id:
|
||||
type: integer
|
||||
description: Hardware queue ID chosen for this PHB.
|
||||
minimum: 0
|
||||
description: Name of the policy map applied to ingress (input) traffic
|
||||
on the interface. The referenced policy map must be defined prior to binding.
|
||||
minLength: 1
|
||||
maxLength: 32
|
||||
example: "PM-INGRESS-QOS"
|
||||
egress:
|
||||
type: string
|
||||
description: Name of the policy map applied to egress (output) traffic
|
||||
on the interface. The referenced policy map must be defined prior to binding.
|
||||
minLength: 1
|
||||
maxLength: 32
|
||||
example: "PM-EGRESS-SHAPE"
|
||||
@@ -590,11 +590,6 @@ properties:
|
||||
- short
|
||||
- long
|
||||
default: long
|
||||
trunk-id:
|
||||
description: Specifies the trunk group ID used as the mclag-group.
|
||||
type: integer
|
||||
minimum: 1
|
||||
maximum: 64
|
||||
system-priority:
|
||||
description: Specifies the system priority used by the switch for LACP negotiations.
|
||||
type: integer
|
||||
@@ -653,37 +648,272 @@ properties:
|
||||
lockout-period-seconds:
|
||||
description: Duration (in seconds) for which the user account remains locked after exceeding the failed attempt threshold.
|
||||
type: integer
|
||||
qos-queue-config:
|
||||
type: object
|
||||
description: Global configuration for QoS priority queue scheduling and processing on L2 switches.
|
||||
properties:
|
||||
queue-scheduler-mode:
|
||||
type: string
|
||||
description: Sets the scheduling mode used for processing each of the Class of Service (CoS) priority queues.
|
||||
enum:
|
||||
- strict
|
||||
- wrr
|
||||
- strict-wrr
|
||||
- wfq
|
||||
- dwrr
|
||||
queue-config:
|
||||
type: array
|
||||
description: List of priority queue configurations applied at the global QoS layer.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
queue-id:
|
||||
type: integer
|
||||
description: Identifier of the priority queue under configuration.
|
||||
minimum: 0
|
||||
queue-weight:
|
||||
type: integer
|
||||
description: Assigns weights to the CoS priority queues when using WRR or hybrid scheduling modes.
|
||||
minimum: 1
|
||||
queue-strict-mode:
|
||||
type: boolean
|
||||
description: Ensures that the highest priority packets are always serviced first, ahead of all other traffic.
|
||||
default: false
|
||||
class-maps:
|
||||
type: array
|
||||
description: Defines a list of DiffServ class maps. Each class map represents
|
||||
a traffic classification container that groups one or more match
|
||||
rules used to identify packets based on Layer 2, Layer 3, or
|
||||
Layer 4 header fields.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: Unique name identifying the class map. This name is later
|
||||
referenced by policy maps to associate actions with the
|
||||
classified traffic.
|
||||
example: CM-IP-VOICE
|
||||
match-rule:
|
||||
type: string
|
||||
description: Determines how multiple match rules within the class map
|
||||
are evaluated.
|
||||
- match-any - Packet matches if any rule matches
|
||||
- match-all - Packet matches only if all rules match
|
||||
enum:
|
||||
- match-any
|
||||
- match-all
|
||||
matches:
|
||||
type: array
|
||||
description: List of match rules that define the traffic classification
|
||||
criteria for this class map. Up to "n" match rules may be
|
||||
configured per class maps, per defined as maxItems. Mutual exclusivity rules may apply
|
||||
between the match rules.
|
||||
maxItems: 16
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
match-type:
|
||||
type: string
|
||||
description: Specifies the type of match criterion used for traffic classification.
|
||||
enum:
|
||||
- access-list
|
||||
- cos
|
||||
- ip-dscp
|
||||
- ip-precedence
|
||||
- ipv6-dscp
|
||||
- vlan
|
||||
- source-port
|
||||
example: ip-dscp
|
||||
value:
|
||||
type: string
|
||||
description: value associated with the selected match type. The
|
||||
interpretation of this field depends on the match type. Numeric values
|
||||
must be encoded as strings, to keep the type-value pair simple.
|
||||
example: "46"
|
||||
policy-maps:
|
||||
type: array
|
||||
description: Defines a list of DiffServ policy maps. Each policy map associates
|
||||
one or more previously defined class maps with specific QoS actions
|
||||
such as packet marking and traffic policing. Policy maps are later
|
||||
applied to interfaces using DiffServ service-policy bindings.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
description: Unique name identifying the policy map. This name is referenced
|
||||
when binding the policy map to an interface for ingress or
|
||||
egress traffic processing.
|
||||
example: rd-policy
|
||||
classes:
|
||||
type: array
|
||||
description: List of class map references included in this policy map.
|
||||
Each class entry applies a defined set of QoS actions
|
||||
to traffic matching the referenced class map.
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
class-name:
|
||||
type: string
|
||||
description: Name of a previously defined class map whose matching
|
||||
traffic will be subject to the configured marking
|
||||
and/or policing actions.
|
||||
example: rd-class
|
||||
marking-action:
|
||||
type: object
|
||||
description: Packet marking actions applied to traffic matching
|
||||
this class. Marking may update internal forwarding
|
||||
behavior, VLAN CoS bits, or IP DSCP values.
|
||||
Only one marking action is typically effective
|
||||
per packet processing stage.
|
||||
properties:
|
||||
phb:
|
||||
type: integer
|
||||
description: Per-Hop Behavior (PHB) value used for internal
|
||||
packet processing and queue selection within
|
||||
the forwarding pipeline.
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
cos:
|
||||
type: integer
|
||||
description: Class of Service (CoS) value written to the VLAN
|
||||
priority field (802.1p) of matching packets.
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
ip-dscp:
|
||||
type: integer
|
||||
description: Differentiated Services Code Point (DSCP) value
|
||||
written to the IP header of matching packets.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
police:
|
||||
type: object
|
||||
description: Traffic policing configuration applied to packets
|
||||
matching this class. Policing enforces bandwidth
|
||||
limits and applies actions based on traffic conformance.
|
||||
Only one policing mode may be configured per class.
|
||||
properties:
|
||||
flow:
|
||||
type: object
|
||||
description: Single-rate, two-color policing based on a token
|
||||
bucket defined by a committed rate and burst size.
|
||||
Traffic is classified as conforming or violating.
|
||||
properties:
|
||||
committed-rate-kbps:
|
||||
type: integer
|
||||
description: Committed Information Rate (CIR) in kilobits
|
||||
per second enforced by the policer.
|
||||
committed-burst-bytes:
|
||||
type: integer
|
||||
description: Committed Burst Size (BC) in bytes allowed
|
||||
by the policer.
|
||||
conform-action:
|
||||
type: object
|
||||
description: Action applied when traffic conforms to the
|
||||
committed rate and burst limits.
|
||||
properties:
|
||||
action:
|
||||
type: string
|
||||
description: Action taken for conforming packets.
|
||||
enum:
|
||||
- transmit
|
||||
- new-dscp
|
||||
new-dscp:
|
||||
type: integer
|
||||
description: DSCP value applied to conforming packets
|
||||
when action is set to new-dscp.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
violate-action:
|
||||
type: object
|
||||
description: Action applied when traffic exceeds the
|
||||
committed rate or burst size.
|
||||
properties:
|
||||
action:
|
||||
type: string
|
||||
description: Action taken for violating packets.
|
||||
enum:
|
||||
- drop
|
||||
- new-dscp
|
||||
new-dscp:
|
||||
type: integer
|
||||
description: DSCP value applied to violating packets
|
||||
when action is set to new-dscp.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
srtcm:
|
||||
type: object
|
||||
description: Single Rate Three Color Meter (srTCM) policing,
|
||||
supporting color-blind or color-aware modes.
|
||||
Traffic is classified as green, yellow, or red.
|
||||
properties:
|
||||
mode:
|
||||
type: string
|
||||
description: Specifies whether the policer operates in
|
||||
color-blind or color-aware mode.
|
||||
enum:
|
||||
- color-blind
|
||||
- color-aware
|
||||
committed-rate-kbps:
|
||||
type: integer
|
||||
description: Committed Information Rate (CIR) in kilobits
|
||||
per second.
|
||||
committed-burst-bytes:
|
||||
type: integer
|
||||
description: Committed Burst Size (CBS) in bytes.
|
||||
excess-burst-bytes:
|
||||
type: integer
|
||||
description: Excess Burst Size (EBS) in bytes used to
|
||||
classify packets as exceeding committed limits.
|
||||
conform-action:
|
||||
type: string
|
||||
description: Action applied to packets classified as
|
||||
conforming (green).
|
||||
enum:
|
||||
- transmit
|
||||
exceed-action:
|
||||
type: string
|
||||
description: Action applied to packets classified as
|
||||
exceeding (yellow).
|
||||
enum:
|
||||
- drop
|
||||
- new-dscp
|
||||
violate-action:
|
||||
type: string
|
||||
description: Action applied to packets classified as
|
||||
violating (red).
|
||||
enum:
|
||||
- drop
|
||||
- new-dscp
|
||||
new-dscp:
|
||||
type: integer
|
||||
description: DSCP value applied when exceed or violate
|
||||
action is set to new-dscp.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
trtcm:
|
||||
type: object
|
||||
description: Two Rate Three Color Meter (trTCM) policing,
|
||||
enforcing both committed and peak rate limits
|
||||
with three traffic colors.
|
||||
properties:
|
||||
mode:
|
||||
type: string
|
||||
description: Specifies whether the policer operates in
|
||||
color-blind or color-aware mode.
|
||||
enum:
|
||||
- color-blind
|
||||
- color-aware
|
||||
committed-rate-kbps:
|
||||
type: integer
|
||||
description: Committed Information Rate (CIR) in kilobits
|
||||
per second.
|
||||
committed-burst-bytes:
|
||||
type: integer
|
||||
description: Committed Burst Size (CBS) in bytes.
|
||||
peak-rate-kbps:
|
||||
type: integer
|
||||
description: Peak Information Rate (PIR) in kilobits
|
||||
per second.
|
||||
peak-burst-bytes:
|
||||
type: integer
|
||||
description: Peak Burst Size (PBS) in bytes.
|
||||
conform-action:
|
||||
type: string
|
||||
description: Action applied to packets conforming to
|
||||
committed rate limits.
|
||||
enum:
|
||||
- transmit
|
||||
- new-dscp
|
||||
exceed-action:
|
||||
type: string
|
||||
description: Action applied to packets exceeding committed
|
||||
rate but within peak rate.
|
||||
enum:
|
||||
- drop
|
||||
- new-dscp
|
||||
violate-action:
|
||||
type: string
|
||||
description: Action applied to packets exceeding peak rate.
|
||||
enum:
|
||||
- drop
|
||||
- new-dscp
|
||||
new-dscp:
|
||||
type: integer
|
||||
description: DSCP value applied when exceed or violate
|
||||
action is set to new-dscp.
|
||||
minimum: 0
|
||||
maximum: 63
|
||||
arp-inspect:
|
||||
$ref: "https://ucentral.io/schema/v1/switch/arp-inspect/"
|
||||
ip-source-guard:
|
||||
|
||||
@@ -803,140 +803,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-priority-mapping": {
|
||||
"diffserv-policy": {
|
||||
"type": "object",
|
||||
"description": "Interface-level QoS priority mapping configuration. Defines how ingress packet markings (IP Precedence, CoS, DSCP) are interpreted and mapped to internal per-hop behavior (PHB), drop precedence, and egress queue selection.",
|
||||
"description": "Associates DiffServ policy maps with a physical interface. This object represents the binding of policy maps to the ingress and/or egress direction of an interface.",
|
||||
"properties": {
|
||||
"priority-untagged": {
|
||||
"type": "integer",
|
||||
"description": "Sets the default priority for incoming untagged Ethernet frames.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"qos-map-trust-mode": {
|
||||
"ingress": {
|
||||
"type": "string",
|
||||
"description": "Determines which packet header field is trusted for ingress classification.",
|
||||
"enum": [
|
||||
"cos",
|
||||
"dscp",
|
||||
"ip-precedence"
|
||||
]
|
||||
"description": "Name of the policy map applied to ingress (input) traffic on the interface. The referenced policy map must be defined prior to binding.",
|
||||
"minLength": 1,
|
||||
"maxLength": 32,
|
||||
"example": "PM-INGRESS-QOS"
|
||||
},
|
||||
"qos-map-ipprec2dscp": {
|
||||
"type": "array",
|
||||
"description": "Maps IP Precedence values (0\u20137) in ingress packets to per-hop behavior (PHB) and drop precedence. Used when trust mode is set to ip-precedence.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"preced": {
|
||||
"type": "integer",
|
||||
"description": "IP Precedence value in the incoming packet.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "Per-hop behavior (PHB) assigned to this IP Precedence.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"description": "Drop precedence assigned for congestion control.",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-cos2dscp": {
|
||||
"type": "array",
|
||||
"description": "Maps CoS/CFI values in ingress packets to PHB and drop precedence. Applied when trust mode is set to cos.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"cos": {
|
||||
"type": "integer",
|
||||
"description": "CoS value extracted from ingress frames.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"cfi": {
|
||||
"type": "integer",
|
||||
"description": "Canonical Format Indicator (0 or 1).",
|
||||
"minimum": 0,
|
||||
"maximum": 1
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "PHB assigned to this CoS/CFI mapping.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"description": "Drop precedence for congestion handling.",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-dscpmutate": {
|
||||
"type": "array",
|
||||
"description": "Maps DSCP values (0\u201363) in ingress packets to custom PHB and drop precedence. Used when trust mode is set to dscp.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value from the IP header.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "PHB derived from DSCP-to-internal-priority mapping.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"description": "Drop precedence classification for congestion.",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-phb2queue": {
|
||||
"type": "array",
|
||||
"description": "Maps PHB to output hardware queues for traffic scheduling.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "Per-hop behavior value (internal priority).",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"queue-id": {
|
||||
"type": "integer",
|
||||
"description": "Hardware queue ID chosen for this PHB.",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
"egress": {
|
||||
"type": "string",
|
||||
"description": "Name of the policy map applied to egress (output) traffic on the interface. The referenced policy map must be defined prior to binding.",
|
||||
"minLength": 1,
|
||||
"maxLength": 32,
|
||||
"example": "PM-EGRESS-SHAPE"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1624,12 +1507,6 @@
|
||||
"default": "long"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trunk-id": {
|
||||
"description": "Specifies the trunk group ID used as the mclag-group.",
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 64
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1713,41 +1590,278 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-queue-config": {
|
||||
"type": "object",
|
||||
"description": "Global configuration for QoS priority queue scheduling and processing on L2 switches.",
|
||||
"properties": {
|
||||
"queue-scheduler-mode": {
|
||||
"type": "string",
|
||||
"description": "Sets the scheduling mode used for processing each of the Class of Service (CoS) priority queues.",
|
||||
"enum": [
|
||||
"strict",
|
||||
"wrr",
|
||||
"strict-wrr",
|
||||
"wfq",
|
||||
"dwrr"
|
||||
]
|
||||
},
|
||||
"queue-config": {
|
||||
"type": "array",
|
||||
"description": "List of priority queue configurations applied at the global QoS layer.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"queue-id": {
|
||||
"type": "integer",
|
||||
"description": "Identifier of the priority queue under configuration.",
|
||||
"minimum": 0
|
||||
},
|
||||
"queue-weight": {
|
||||
"type": "integer",
|
||||
"description": "Assigns weights to the CoS priority queues when using WRR or hybrid scheduling modes.",
|
||||
"minimum": 1
|
||||
},
|
||||
"queue-strict-mode": {
|
||||
"type": "boolean",
|
||||
"description": "Ensures that the highest priority packets are always serviced first, ahead of all other traffic.",
|
||||
"default": false
|
||||
"class-maps": {
|
||||
"type": "array",
|
||||
"description": "Defines a list of DiffServ class maps. Each class map represents a traffic classification container that groups one or more match rules used to identify packets based on Layer 2, Layer 3, or Layer 4 header fields.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Unique name identifying the class map. This name is later referenced by policy maps to associate actions with the classified traffic.",
|
||||
"example": "CM-IP-VOICE"
|
||||
},
|
||||
"match-rule": {
|
||||
"type": "string",
|
||||
"description": "Determines how multiple match rules within the class map are evaluated. - match-any - Packet matches if any rule matches - match-all - Packet matches only if all rules match",
|
||||
"enum": [
|
||||
"match-any",
|
||||
"match-all"
|
||||
]
|
||||
},
|
||||
"matches": {
|
||||
"type": "array",
|
||||
"description": "List of match rules that define the traffic classification criteria for this class map. Up to \"n\" match rules may be configured per class maps, per defined as maxItems. Mutual exclusivity rules may apply between the match rules.",
|
||||
"maxItems": 16,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"match-type": {
|
||||
"type": "string",
|
||||
"description": "Specifies the type of match criterion used for traffic classification.",
|
||||
"enum": [
|
||||
"access-list",
|
||||
"cos",
|
||||
"ip-dscp",
|
||||
"ip-precedence",
|
||||
"ipv6-dscp",
|
||||
"vlan",
|
||||
"source-port"
|
||||
],
|
||||
"example": "ip-dscp"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "value associated with the selected match type. The interpretation of this field depends on the match type. Numeric values must be encoded as strings, to keep the type-value pair simple.",
|
||||
"example": "46"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"policy-maps": {
|
||||
"type": "array",
|
||||
"description": "Defines a list of DiffServ policy maps. Each policy map associates one or more previously defined class maps with specific QoS actions such as packet marking and traffic policing. Policy maps are later applied to interfaces using DiffServ service-policy bindings.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Unique name identifying the policy map. This name is referenced when binding the policy map to an interface for ingress or egress traffic processing.",
|
||||
"example": "rd-policy"
|
||||
},
|
||||
"classes": {
|
||||
"type": "array",
|
||||
"description": "List of class map references included in this policy map. Each class entry applies a defined set of QoS actions to traffic matching the referenced class map.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"class-name": {
|
||||
"type": "string",
|
||||
"description": "Name of a previously defined class map whose matching traffic will be subject to the configured marking and/or policing actions.",
|
||||
"example": "rd-class"
|
||||
},
|
||||
"marking-action": {
|
||||
"type": "object",
|
||||
"description": "Packet marking actions applied to traffic matching this class. Marking may update internal forwarding behavior, VLAN CoS bits, or IP DSCP values. Only one marking action is typically effective per packet processing stage.",
|
||||
"properties": {
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "Per-Hop Behavior (PHB) value used for internal packet processing and queue selection within the forwarding pipeline.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"cos": {
|
||||
"type": "integer",
|
||||
"description": "Class of Service (CoS) value written to the VLAN priority field (802.1p) of matching packets.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"ip-dscp": {
|
||||
"type": "integer",
|
||||
"description": "Differentiated Services Code Point (DSCP) value written to the IP header of matching packets.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"police": {
|
||||
"type": "object",
|
||||
"description": "Traffic policing configuration applied to packets matching this class. Policing enforces bandwidth limits and applies actions based on traffic conformance. Only one policing mode may be configured per class.",
|
||||
"properties": {
|
||||
"flow": {
|
||||
"type": "object",
|
||||
"description": "Single-rate, two-color policing based on a token bucket defined by a committed rate and burst size. Traffic is classified as conforming or violating.",
|
||||
"properties": {
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer",
|
||||
"description": "Committed Information Rate (CIR) in kilobits per second enforced by the policer."
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Committed Burst Size (BC) in bytes allowed by the policer."
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "object",
|
||||
"description": "Action applied when traffic conforms to the committed rate and burst limits.",
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"description": "Action taken for conforming packets.",
|
||||
"enum": [
|
||||
"transmit",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value applied to conforming packets when action is set to new-dscp.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "object",
|
||||
"description": "Action applied when traffic exceeds the committed rate or burst size.",
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"description": "Action taken for violating packets.",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value applied to violating packets when action is set to new-dscp.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"srtcm": {
|
||||
"type": "object",
|
||||
"description": "Single Rate Three Color Meter (srTCM) policing, supporting color-blind or color-aware modes. Traffic is classified as green, yellow, or red.",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"description": "Specifies whether the policer operates in color-blind or color-aware mode.",
|
||||
"enum": [
|
||||
"color-blind",
|
||||
"color-aware"
|
||||
]
|
||||
},
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer",
|
||||
"description": "Committed Information Rate (CIR) in kilobits per second."
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Committed Burst Size (CBS) in bytes."
|
||||
},
|
||||
"excess-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Excess Burst Size (EBS) in bytes used to classify packets as exceeding committed limits."
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets classified as conforming (green).",
|
||||
"enum": [
|
||||
"transmit"
|
||||
]
|
||||
},
|
||||
"exceed-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets classified as exceeding (yellow).",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets classified as violating (red).",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value applied when exceed or violate action is set to new-dscp.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"trtcm": {
|
||||
"type": "object",
|
||||
"description": "Two Rate Three Color Meter (trTCM) policing, enforcing both committed and peak rate limits with three traffic colors.",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"description": "Specifies whether the policer operates in color-blind or color-aware mode.",
|
||||
"enum": [
|
||||
"color-blind",
|
||||
"color-aware"
|
||||
]
|
||||
},
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer",
|
||||
"description": "Committed Information Rate (CIR) in kilobits per second."
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Committed Burst Size (CBS) in bytes."
|
||||
},
|
||||
"peak-rate-kbps": {
|
||||
"type": "integer",
|
||||
"description": "Peak Information Rate (PIR) in kilobits per second."
|
||||
},
|
||||
"peak-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Peak Burst Size (PBS) in bytes."
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets conforming to committed rate limits.",
|
||||
"enum": [
|
||||
"transmit",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"exceed-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets exceeding committed rate but within peak rate.",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets exceeding peak rate.",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value applied when exceed or violate action is set to new-dscp.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -709,121 +709,20 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-priority-mapping": {
|
||||
"diffserv-policy": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"priority-untagged": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"qos-map-trust-mode": {
|
||||
"ingress": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"cos",
|
||||
"dscp",
|
||||
"ip-precedence"
|
||||
]
|
||||
"minLength": 1,
|
||||
"maxLength": 32,
|
||||
"example": "PM-INGRESS-QOS"
|
||||
},
|
||||
"qos-map-ipprec2dscp": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"preced": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-cos2dscp": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"cos": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"cfi": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 1
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-dscpmutate": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"dscp": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-phb2queue": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"queue-id": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
"egress": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 32,
|
||||
"example": "PM-EGRESS-SHAPE"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1757,11 +1656,6 @@
|
||||
"default": "long"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trunk-id": {
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 64
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1833,35 +1727,235 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-queue-config": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"queue-scheduler-mode": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"strict",
|
||||
"wrr",
|
||||
"strict-wrr",
|
||||
"wfq",
|
||||
"dwrr"
|
||||
]
|
||||
},
|
||||
"queue-config": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"queue-id": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"queue-weight": {
|
||||
"type": "integer",
|
||||
"minimum": 1
|
||||
},
|
||||
"queue-strict-mode": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
"class-maps": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "CM-IP-VOICE"
|
||||
},
|
||||
"match-rule": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"match-any",
|
||||
"match-all"
|
||||
]
|
||||
},
|
||||
"matches": {
|
||||
"type": "array",
|
||||
"maxItems": 16,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"match-type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"access-list",
|
||||
"cos",
|
||||
"ip-dscp",
|
||||
"ip-precedence",
|
||||
"ipv6-dscp",
|
||||
"vlan",
|
||||
"source-port"
|
||||
],
|
||||
"example": "ip-dscp"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"example": "46"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"policy-maps": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "rd-policy"
|
||||
},
|
||||
"classes": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"class-name": {
|
||||
"type": "string",
|
||||
"example": "rd-class"
|
||||
},
|
||||
"marking-action": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"cos": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"ip-dscp": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"police": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"flow": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer"
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer"
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"transmit",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"srtcm": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"color-blind",
|
||||
"color-aware"
|
||||
]
|
||||
},
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer"
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer"
|
||||
},
|
||||
"excess-burst-bytes": {
|
||||
"type": "integer"
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"transmit"
|
||||
]
|
||||
},
|
||||
"exceed-action": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"trtcm": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"color-blind",
|
||||
"color-aware"
|
||||
]
|
||||
},
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer"
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer"
|
||||
},
|
||||
"peak-rate-kbps": {
|
||||
"type": "integer"
|
||||
},
|
||||
"peak-burst-bytes": {
|
||||
"type": "integer"
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"transmit",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"exceed-action": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -837,140 +837,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-priority-mapping": {
|
||||
"diffserv-policy": {
|
||||
"type": "object",
|
||||
"description": "Interface-level QoS priority mapping configuration. Defines how ingress packet markings (IP Precedence, CoS, DSCP) are interpreted and mapped to internal per-hop behavior (PHB), drop precedence, and egress queue selection.",
|
||||
"description": "Associates DiffServ policy maps with a physical interface. This object represents the binding of policy maps to the ingress and/or egress direction of an interface.",
|
||||
"properties": {
|
||||
"priority-untagged": {
|
||||
"type": "integer",
|
||||
"description": "Sets the default priority for incoming untagged Ethernet frames.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"qos-map-trust-mode": {
|
||||
"ingress": {
|
||||
"type": "string",
|
||||
"description": "Determines which packet header field is trusted for ingress classification.",
|
||||
"enum": [
|
||||
"cos",
|
||||
"dscp",
|
||||
"ip-precedence"
|
||||
]
|
||||
"description": "Name of the policy map applied to ingress (input) traffic on the interface. The referenced policy map must be defined prior to binding.",
|
||||
"minLength": 1,
|
||||
"maxLength": 32,
|
||||
"example": "PM-INGRESS-QOS"
|
||||
},
|
||||
"qos-map-ipprec2dscp": {
|
||||
"type": "array",
|
||||
"description": "Maps IP Precedence values (0\u20137) in ingress packets to per-hop behavior (PHB) and drop precedence. Used when trust mode is set to ip-precedence.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"preced": {
|
||||
"type": "integer",
|
||||
"description": "IP Precedence value in the incoming packet.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "Per-hop behavior (PHB) assigned to this IP Precedence.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"description": "Drop precedence assigned for congestion control.",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-cos2dscp": {
|
||||
"type": "array",
|
||||
"description": "Maps CoS/CFI values in ingress packets to PHB and drop precedence. Applied when trust mode is set to cos.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"cos": {
|
||||
"type": "integer",
|
||||
"description": "CoS value extracted from ingress frames.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"cfi": {
|
||||
"type": "integer",
|
||||
"description": "Canonical Format Indicator (0 or 1).",
|
||||
"minimum": 0,
|
||||
"maximum": 1
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "PHB assigned to this CoS/CFI mapping.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"description": "Drop precedence for congestion handling.",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-dscpmutate": {
|
||||
"type": "array",
|
||||
"description": "Maps DSCP values (0\u201363) in ingress packets to custom PHB and drop precedence. Used when trust mode is set to dscp.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value from the IP header.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "PHB derived from DSCP-to-internal-priority mapping.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"drop-preced": {
|
||||
"type": "string",
|
||||
"description": "Drop precedence classification for congestion.",
|
||||
"enum": [
|
||||
"green",
|
||||
"yellow",
|
||||
"red"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-map-phb2queue": {
|
||||
"type": "array",
|
||||
"description": "Maps PHB to output hardware queues for traffic scheduling.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "Per-hop behavior value (internal priority).",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
},
|
||||
"queue-id": {
|
||||
"type": "integer",
|
||||
"description": "Hardware queue ID chosen for this PHB.",
|
||||
"minimum": 0
|
||||
}
|
||||
}
|
||||
}
|
||||
"egress": {
|
||||
"type": "string",
|
||||
"description": "Name of the policy map applied to egress (output) traffic on the interface. The referenced policy map must be defined prior to binding.",
|
||||
"minLength": 1,
|
||||
"maxLength": 32,
|
||||
"example": "PM-EGRESS-SHAPE"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2082,12 +1965,6 @@
|
||||
"default": "long"
|
||||
}
|
||||
}
|
||||
},
|
||||
"trunk-id": {
|
||||
"description": "Specifies the trunk group ID used as the mclag-group.",
|
||||
"type": "integer",
|
||||
"minimum": 1,
|
||||
"maximum": 64
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2171,41 +2048,278 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"qos-queue-config": {
|
||||
"type": "object",
|
||||
"description": "Global configuration for QoS priority queue scheduling and processing on L2 switches.",
|
||||
"properties": {
|
||||
"queue-scheduler-mode": {
|
||||
"type": "string",
|
||||
"description": "Sets the scheduling mode used for processing each of the Class of Service (CoS) priority queues.",
|
||||
"enum": [
|
||||
"strict",
|
||||
"wrr",
|
||||
"strict-wrr",
|
||||
"wfq",
|
||||
"dwrr"
|
||||
]
|
||||
},
|
||||
"queue-config": {
|
||||
"type": "array",
|
||||
"description": "List of priority queue configurations applied at the global QoS layer.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"queue-id": {
|
||||
"type": "integer",
|
||||
"description": "Identifier of the priority queue under configuration.",
|
||||
"minimum": 0
|
||||
},
|
||||
"queue-weight": {
|
||||
"type": "integer",
|
||||
"description": "Assigns weights to the CoS priority queues when using WRR or hybrid scheduling modes.",
|
||||
"minimum": 1
|
||||
},
|
||||
"queue-strict-mode": {
|
||||
"type": "boolean",
|
||||
"description": "Ensures that the highest priority packets are always serviced first, ahead of all other traffic.",
|
||||
"default": false
|
||||
"class-maps": {
|
||||
"type": "array",
|
||||
"description": "Defines a list of DiffServ class maps. Each class map represents a traffic classification container that groups one or more match rules used to identify packets based on Layer 2, Layer 3, or Layer 4 header fields.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Unique name identifying the class map. This name is later referenced by policy maps to associate actions with the classified traffic.",
|
||||
"example": "CM-IP-VOICE"
|
||||
},
|
||||
"match-rule": {
|
||||
"type": "string",
|
||||
"description": "Determines how multiple match rules within the class map are evaluated. - match-any - Packet matches if any rule matches - match-all - Packet matches only if all rules match",
|
||||
"enum": [
|
||||
"match-any",
|
||||
"match-all"
|
||||
]
|
||||
},
|
||||
"matches": {
|
||||
"type": "array",
|
||||
"description": "List of match rules that define the traffic classification criteria for this class map. Up to \"n\" match rules may be configured per class maps, per defined as maxItems. Mutual exclusivity rules may apply between the match rules.",
|
||||
"maxItems": 16,
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"match-type": {
|
||||
"type": "string",
|
||||
"description": "Specifies the type of match criterion used for traffic classification.",
|
||||
"enum": [
|
||||
"access-list",
|
||||
"cos",
|
||||
"ip-dscp",
|
||||
"ip-precedence",
|
||||
"ipv6-dscp",
|
||||
"vlan",
|
||||
"source-port"
|
||||
],
|
||||
"example": "ip-dscp"
|
||||
},
|
||||
"value": {
|
||||
"type": "string",
|
||||
"description": "value associated with the selected match type. The interpretation of this field depends on the match type. Numeric values must be encoded as strings, to keep the type-value pair simple.",
|
||||
"example": "46"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"policy-maps": {
|
||||
"type": "array",
|
||||
"description": "Defines a list of DiffServ policy maps. Each policy map associates one or more previously defined class maps with specific QoS actions such as packet marking and traffic policing. Policy maps are later applied to interfaces using DiffServ service-policy bindings.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "Unique name identifying the policy map. This name is referenced when binding the policy map to an interface for ingress or egress traffic processing.",
|
||||
"example": "rd-policy"
|
||||
},
|
||||
"classes": {
|
||||
"type": "array",
|
||||
"description": "List of class map references included in this policy map. Each class entry applies a defined set of QoS actions to traffic matching the referenced class map.",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"class-name": {
|
||||
"type": "string",
|
||||
"description": "Name of a previously defined class map whose matching traffic will be subject to the configured marking and/or policing actions.",
|
||||
"example": "rd-class"
|
||||
},
|
||||
"marking-action": {
|
||||
"type": "object",
|
||||
"description": "Packet marking actions applied to traffic matching this class. Marking may update internal forwarding behavior, VLAN CoS bits, or IP DSCP values. Only one marking action is typically effective per packet processing stage.",
|
||||
"properties": {
|
||||
"phb": {
|
||||
"type": "integer",
|
||||
"description": "Per-Hop Behavior (PHB) value used for internal packet processing and queue selection within the forwarding pipeline.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"cos": {
|
||||
"type": "integer",
|
||||
"description": "Class of Service (CoS) value written to the VLAN priority field (802.1p) of matching packets.",
|
||||
"minimum": 0,
|
||||
"maximum": 7
|
||||
},
|
||||
"ip-dscp": {
|
||||
"type": "integer",
|
||||
"description": "Differentiated Services Code Point (DSCP) value written to the IP header of matching packets.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"police": {
|
||||
"type": "object",
|
||||
"description": "Traffic policing configuration applied to packets matching this class. Policing enforces bandwidth limits and applies actions based on traffic conformance. Only one policing mode may be configured per class.",
|
||||
"properties": {
|
||||
"flow": {
|
||||
"type": "object",
|
||||
"description": "Single-rate, two-color policing based on a token bucket defined by a committed rate and burst size. Traffic is classified as conforming or violating.",
|
||||
"properties": {
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer",
|
||||
"description": "Committed Information Rate (CIR) in kilobits per second enforced by the policer."
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Committed Burst Size (BC) in bytes allowed by the policer."
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "object",
|
||||
"description": "Action applied when traffic conforms to the committed rate and burst limits.",
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"description": "Action taken for conforming packets.",
|
||||
"enum": [
|
||||
"transmit",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value applied to conforming packets when action is set to new-dscp.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "object",
|
||||
"description": "Action applied when traffic exceeds the committed rate or burst size.",
|
||||
"properties": {
|
||||
"action": {
|
||||
"type": "string",
|
||||
"description": "Action taken for violating packets.",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value applied to violating packets when action is set to new-dscp.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"srtcm": {
|
||||
"type": "object",
|
||||
"description": "Single Rate Three Color Meter (srTCM) policing, supporting color-blind or color-aware modes. Traffic is classified as green, yellow, or red.",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"description": "Specifies whether the policer operates in color-blind or color-aware mode.",
|
||||
"enum": [
|
||||
"color-blind",
|
||||
"color-aware"
|
||||
]
|
||||
},
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer",
|
||||
"description": "Committed Information Rate (CIR) in kilobits per second."
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Committed Burst Size (CBS) in bytes."
|
||||
},
|
||||
"excess-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Excess Burst Size (EBS) in bytes used to classify packets as exceeding committed limits."
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets classified as conforming (green).",
|
||||
"enum": [
|
||||
"transmit"
|
||||
]
|
||||
},
|
||||
"exceed-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets classified as exceeding (yellow).",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets classified as violating (red).",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value applied when exceed or violate action is set to new-dscp.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
},
|
||||
"trtcm": {
|
||||
"type": "object",
|
||||
"description": "Two Rate Three Color Meter (trTCM) policing, enforcing both committed and peak rate limits with three traffic colors.",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"type": "string",
|
||||
"description": "Specifies whether the policer operates in color-blind or color-aware mode.",
|
||||
"enum": [
|
||||
"color-blind",
|
||||
"color-aware"
|
||||
]
|
||||
},
|
||||
"committed-rate-kbps": {
|
||||
"type": "integer",
|
||||
"description": "Committed Information Rate (CIR) in kilobits per second."
|
||||
},
|
||||
"committed-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Committed Burst Size (CBS) in bytes."
|
||||
},
|
||||
"peak-rate-kbps": {
|
||||
"type": "integer",
|
||||
"description": "Peak Information Rate (PIR) in kilobits per second."
|
||||
},
|
||||
"peak-burst-bytes": {
|
||||
"type": "integer",
|
||||
"description": "Peak Burst Size (PBS) in bytes."
|
||||
},
|
||||
"conform-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets conforming to committed rate limits.",
|
||||
"enum": [
|
||||
"transmit",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"exceed-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets exceeding committed rate but within peak rate.",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"violate-action": {
|
||||
"type": "string",
|
||||
"description": "Action applied to packets exceeding peak rate.",
|
||||
"enum": [
|
||||
"drop",
|
||||
"new-dscp"
|
||||
]
|
||||
},
|
||||
"new-dscp": {
|
||||
"type": "integer",
|
||||
"description": "DSCP value applied when exceed or violate action is set to new-dscp.",
|
||||
"minimum": 0,
|
||||
"maximum": 63
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user