Configuring DSCP to CoS Mapping


Netvisor One supports creating Quality of Service (QoS) maps that configure hardware based mapping of Differentiated Services Code Point (DSCP) value in a received IP header to a Cost of Service (CoS) priority. This helps in prioritizing traffic based on DSCP markings by using the appropriate egress CoS queues to send packets out.


DSCP value is the 6 upper bits in the 8-bit ToS field of an IP header. Details about the specific values and the proposed traffic disposition can be found in these RFCs :


  • RFC 2474 (DS Fields Definitions)
  • RFC 2475 (DiffServ architecture)
  • RFC 2597 (AF PHB Group)
  • RFC 2780 (IANA Allocation Guidelines)


A quick summary of DSCP in Netvisor One:


  • DSCP values range from 0 to 63, while packet priorities map to 8 CoS values or priority queues.
  • Standards (IANA) include specific values in their guidelines. These values are used by different vendors to facilitate inter-connectivity.
  • Class selector code points (CS0 through CS7, multiples of 8) are backwards compatible with IP ToS values. These values also serve as base selectors for other values.
  • Assured Forwarding (AF) code points have 4 priority classes, each class has three code points indicating the drop precedence.

Class1: AF11/12/13 (DSCP 10, 12, 14)

Class2: AF21/22/23 (DSCP 18, 20, 22)

Class3: AF31/32/33 (DSCP 26, 28, 30)

Class4: AF41/42/43 (DSCP 34, 36, 38


  • 0 is best effort (CoS 0, default)
  • 46 is an Expedited Forwarding (EF) code point, indicating critical traffic.


There are new commands to support this feature:


CLI (network-admin@Spine1) >  dscp-map


dscp-map-create

Create a DSCP priority mapping table with default DSCP to priority mappings.

name name-string

Create a name for the DSCP map


dscp-map-delete

Delete a DSCP priority mapping table.

name name-string

The name of the DSCP map to delete.


dscp-map-show

Display a DSCP priority mapping table

name name-string

Display the name of the DSCP map.


This command displays output only if there are maps configured.


dscp-map-pri-map-modify

Update priority mappings in tables.

dscp-map selector:

name name-string

Specify the name for the DSCP map to modify.

the following pri-map arguments:

 

pri number

Specify a CoS priority from 0 to 7.

dsmap number-list

Specify a DSCP value(s)as a single value, comma separated list, or a number range.


dscp-map-pri-map-show

Display priority mappings in tables.

dscp-map selector:

name name-string

Display the name of the DSCP map.

the following pri-map arguments:

 

pri number

Display a CoS priority from 0 to 7.

dsmap number-list

Display a DSCP value(s)a DSCP value(s)as a single value, comma separated list, or a number range.


The dscp-map-pri-map-show displays output only if there are maps configured.


The default values are listed in the following dscp-map-pri-map-show output:


CLI (network-admin@Spine1) >  dscp-map-pri-map-show name dscp-map1


switch  name pri dsmap

------- ---- --- -----------

Spine1  ds2  0   none

Spine1  ds2  1   8,10,12,14

Spine1  ds2  2   16,18,20,22

Spine1  ds2  3   24,26,28,30

Spine1  ds2  4   32,34,36,38

Spine1  ds2  5   40

Spine1  ds2  6   48

Spine1  ds2  7   56

 

The command, port-config-modify, has a new parameter, dscp-map map-name|none to support this feature.


Using the option none deletes or cancels a DSCP map previously configured on the port.