Compare commits

..

6 Commits

Author SHA1 Message Date
Mike Hansen
5aba2c37f3 Merge pull request #60 from Telecominfraproject/staging-release-5.0.0-pki-2.0
Release 5.0.0 - Update schema version

No other changes

This will be the schema for the release/v5.0.0
2026-02-26 12:51:58 -05:00
Mike Hansen
3fda75b7db Release 5.0.0 - Update schema version 2026-02-26 09:45:08 -05:00
Binny
f2a9d622e9 Merge pull request #56 from Telecominfraproject/ols-969-priority-mapping-schema
ols-969-Schema for Priority Mapping-firstdraft
2026-02-03 13:36:54 +05:30
Binny
f172a3630e ols-969-rev1-push 2026-01-30 19:03:48 +00:00
Binny
2c2a8810c8 ols-969-prio-mapping-rev1 2026-01-30 18:59:11 +00:00
Binny
ab89f53750 ols-969-Schema for Priority Mapping-firstdraft 2026-01-28 13:59:27 +00:00
6 changed files with 633 additions and 1095 deletions

View File

@@ -1,5 +1,5 @@
{
"major": 4,
"minor": 1,
"patch": 0
"major": 5,
"minor": 0,
"patch": 0
}

View File

@@ -544,23 +544,113 @@ properties:
minimum: 0
default: 0
description: Maximum allowed unknown unicast packets per second. 0 disables unknown unicast storm control.
diffserv-policy:
qos-priority-mapping:
type: object
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.
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.
properties:
ingress:
priority-untagged:
type: integer
description: Sets the default priority for incoming untagged Ethernet frames.
minimum: 0
maximum: 7
qos-map-trust-mode:
type: string
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"
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 (07) 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 (063) 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

View File

@@ -590,6 +590,11 @@ 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
@@ -648,272 +653,37 @@ properties:
lockout-period-seconds:
description: Duration (in seconds) for which the user account remains locked after exceeding the failed attempt threshold.
type: integer
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
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
arp-inspect:
$ref: "https://ucentral.io/schema/v1/switch/arp-inspect/"
ip-source-guard:

View File

@@ -803,23 +803,140 @@
}
}
},
"diffserv-policy": {
"qos-priority-mapping": {
"type": "object",
"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.",
"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.",
"properties": {
"ingress": {
"type": "string",
"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"
"priority-untagged": {
"type": "integer",
"description": "Sets the default priority for incoming untagged Ethernet frames.",
"minimum": 0,
"maximum": 7
},
"egress": {
"qos-map-trust-mode": {
"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"
"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\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
}
}
}
}
}
}
@@ -1507,6 +1624,12 @@
"default": "long"
}
}
},
"trunk-id": {
"description": "Specifies the trunk group ID used as the mclag-group.",
"type": "integer",
"minimum": 1,
"maximum": 64
}
}
}
@@ -1590,278 +1713,41 @@
}
}
},
"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
}
}
}
}
}
"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
}
}
}

View File

@@ -709,20 +709,121 @@
}
}
},
"diffserv-policy": {
"qos-priority-mapping": {
"type": "object",
"properties": {
"ingress": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"example": "PM-INGRESS-QOS"
"priority-untagged": {
"type": "integer",
"minimum": 0,
"maximum": 7
},
"egress": {
"qos-map-trust-mode": {
"type": "string",
"minLength": 1,
"maxLength": 32,
"example": "PM-EGRESS-SHAPE"
"enum": [
"cos",
"dscp",
"ip-precedence"
]
},
"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
}
}
}
}
}
}
@@ -1656,6 +1757,11 @@
"default": "long"
}
}
},
"trunk-id": {
"type": "integer",
"minimum": 1,
"maximum": 64
}
}
}
@@ -1727,235 +1833,35 @@
}
}
},
"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
}
}
}
}
}
"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
}
}
}

View File

@@ -837,23 +837,140 @@
}
}
},
"diffserv-policy": {
"qos-priority-mapping": {
"type": "object",
"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.",
"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.",
"properties": {
"ingress": {
"type": "string",
"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"
"priority-untagged": {
"type": "integer",
"description": "Sets the default priority for incoming untagged Ethernet frames.",
"minimum": 0,
"maximum": 7
},
"egress": {
"qos-map-trust-mode": {
"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"
"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\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
}
}
}
}
}
}
@@ -1965,6 +2082,12 @@
"default": "long"
}
}
},
"trunk-id": {
"description": "Specifies the trunk group ID used as the mclag-group.",
"type": "integer",
"minimum": 1,
"maximum": 64
}
}
}
@@ -2048,278 +2171,41 @@
}
}
},
"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
}
}
}
}
}
"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
}
}
}