cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
3231
Views
8
Helpful
8
Replies

re-marking DSCP values

lcaruso
Level 6
Level 6

Hi,

Is there a mechanism to re-mark from DSCP values to other DSCP values on a router?

I'm supposed to match on a number of DSCP values in a class-map.

Then some of the DSCP values get re-mapped to one value while others get remapped to another value.

I've tried table-map but that only maps from DSCP to COS and visa versa. I want to map from DSCP to DSCP.

Many to Many mappings.

Thanks.

2 Accepted Solutions

Accepted Solutions

yahsiel2004
Level 7
Level 7

Yea it's called DSCP mutation.

mls qos map dscp-mutation

To define a named differentiated services code point (DSCP) mutation map, use the mls qos map dscp-mutation command in global configuration mode. To return to the default mapping, use the no form of this command.

mls qos map dscp-mutation map-name input-dscp1 [input-dscp2 [input-dscp3 [input-dscp4 [input-dscp5 [input-dscp6 [input-dscp7 [input-dscp8]]]]]]] to output-dscp

no mls qos map dscp-mutation map-name

Syntax Description

map-name

Name of the DSCP mutation map.

input-dscp#

Internal DSCP value; valid values are from 0 to 63. See the "Usage Guidelines" section for additional information.

to

Defines mapping.

output-dscp

Egress DSCP value; valid values are from 0 to 63.


Command Default

output-dscp equals input-dscp.

Command Modes

Global configuration

Command History

Release
Modification

12.3(4)T

This command was integrated into Cisco IOS Release 12.3(4)T on the  following platforms: Cisco 2600 series, Cisco 3600 series, and  Cisco 3700 series routers.

12.2(14)SX

Support for this command was introduced on the Supervisor Engine 720.

12.2(33)SRA

This command was integrated into Cisco IOS Release 12.2(33)SRA.


Usage Guidelines

This command is not supported on the Catalyst 6500 series switches and  the Cisco 7600 series routers that are configured with a Supervisor  Engine 2.

When configuring a named DSCP mutation map, note the following:

You can enter up to eight input DSCP values that map to a mutated DSCP value.

You can enter multiple commands to map additional DSCP values to a mutated DSCP value.

You can enter a separate command for each mutated DSCP value.

You can configure 15 egress-DSCP mutation maps to mutate the internal  DSCP value before it is written as the egress-DSCP value. You can attach  egress-DSCP mutation maps to any interface that Policy Feature Card  (PFC) QoS supports.

PFC QoS derives the egress-class-of-service (CoS) value from the  internal DSCP value. If you configure egress-DSCP mutation, PFC QoS does  not derive the egress-CoS value from the mutated DSCP value.

Examples

This example shows how to map DSCP 30 to mutated DSCP value 8:

Router(config)# mls qos map dscp-mutation mutemap1 30 to 8 

HTH

Regards,

Yosh

HTH Regards, Yosh

View solution in original post

Hello

from a switch perspective

==================

mls qos map dscp-mutation DSCPChanges 8 to 10

mls qos map dscp-mutation DSCPChanges 9 11 13 14 15 to 12

mls qos map dscp-mutation DSCPChanges 16 to 18

mls qos map dscp-mutation DSCPChanges 17 19 21 22 23 to 20

mls qos map dscp-mutation DSCPChanges 24 to 26

mls qos map dscp-mutation DSCPChanges 25 27 29 30 31 to 28

mls qos map dscp-mutation DSCPChanges 32 33 35 36 37 38 39 to 34

int xxx

mls qos dscp-mutation DSCPChanges

mls qos trust dscp

sh mls qos maps dscp-mutation

   Dscp-dscp mutation map:

  DSCPChanges:

     d1 :  d2 0  1  2  3  4  5  6  7  8  9

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

      0 :    00 01 02 03 04 05 06 07 10 12

      1 :    10 12 12 12 12 12 18 20 18 20

      2 :    20 20 20 20 26 28 26 28 28 28

      3 :    28 28 34 34 34 34 34 34 34 34

      4 :    40 41 42 43 44 45 46 47 48 49

      5 :    50 51 52 53 54 55 56 57 58 59

      6 :    60 61 62 63

   Dscp-dscp mutation map:

   Default DSCP Mutation Map:

     d1 :  d2 0  1  2  3  4  5  6  7  8  9

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

      0 :    00 01 02 03 04 05 06 07 08 09

      1 :    10 11 12 13 14 15 16 17 18 19

      2 :    20 21 22 23 24 25 26 27 28 29

      3 :    30 31 32 33 34 35 36 37 38 39

      4 :    40 41 42 43 44 45 46 47 48 49

      5 :    50 51 52 53 54 55 56 57 58 59

      6 :    60 61 62 63

From a router perspective ( even thought the router is taking this config not sure if this is all that applicabledue to the dscp -cos vaule values of 0,8,16 etc.) so

dscp 0-8 - dscp of 0

dscp 8 -15 dscp =1

dscp 16-23 dscp= 2

etc

etc...

======================

class-map match-all Dscp8

match  dscp cs1

class-map match-all Dscp9-11-13-14-14

match  dscp 9  11  13  af13  15

class-map match-all Dscp24

match  dscp cs3

class-map match-all Dscp16

match  dscp cs2

class-map match-all Dscp

class-map match-all Dscp17-19-21-22-23

match  dscp 17  19  21  af23  23

class-map match-all Dscp25-27-29-30-31

match  dscp 25  27  29  af33  31

class-map match-all Dscp32-33-35to39

match  dscp cs4  33  35  af42  37  af43  39

!

!

policy-map DSCP_pm

class Dscp8

  set dscp af11

class Dscp9-11-13-14-14

  set dscp af12

class Dscp24

  set dscp af31

class Dscp16

  set dscp af21

class Dscp17-19-21-22-23

  set dscp af22

class Dscp25-27-29-30-31

  set dscp af32

class Dscp32-33-35to39

  set dscp af41

int xx

service-policy xxput DSCP_pm

res

Paul

Please don't forget to rate any posts that have been helpful.

Thanks.


Please rate and mark as an accepted solution if you have found any of the information provided useful.
This then could assist others on these forums to find a valuable answer and broadens the community’s global network.

Kind Regards
Paul

View solution in original post

8 Replies 8

lcaruso
Level 6
Level 6

This is an example of both what I need and tried.

table-map COS2-MAP

map from  24 to 26

map from  25 to 28

map from  26 to 26

map from  27 to 28

map from  28 to 28

map from  29 to 28

map from  30 to 28

map from  31 to 28

default copy

class-map match-any COS2

match dscp cs3  25  af31  27  af32  29  af33  31

policy-map FOO

.

.

.

class COS2

  bandwidth remaining percent 30 account user-defined 24

  set dscp cos table COS2-MAP

  queue-limit 64 packets

  fair-queue

  random-detect dscp-based

This is what I need to accomplish...just taking one class an example here.

    Class                    COS2

    TOS Byte                 011xxxYY

    DHCP PHB                 CS3, AF3x

    Compliant DSCP values    24(cs3), 26(af31)

    Noncompliant DSCP values 25, 27, 28(af32), 29, 30(af33), 31

    CE Compliant Action      Remark to 26(af31)

    CE noncompliant Action   Remark to 28(af32)

    PE Compliant Action      Map to EXP-4

    PE Noncompliant Action   Map to EXP-3

Hi,

I don't think you can use table-map to change DSCP to DSCP(as far as I know) if this is what you want

You would have to use 1 table-map from DSCP to Qos-group and 1 table-map from QoS-group to DSCP( for example).

Otherwise you can use just regular MQC matching on DSCP and resetting DSCP

Regards

Alain

Don't forget to rate helpful posts.

Don't forget to rate helpful posts.

lcaruso
Level 6
Level 6

Thanks for your reply. I haven't found an example of a many to many dscp mapping just many to one. Can you provide an example?

Sent from Cisco Technical Support Android App

Hi,

many to many with classical MQC is not possible as far as I know.

Regards

Alain

Don't forget to rate helpful posts.

Don't forget to rate helpful posts.

yahsiel2004
Level 7
Level 7

Yea it's called DSCP mutation.

mls qos map dscp-mutation

To define a named differentiated services code point (DSCP) mutation map, use the mls qos map dscp-mutation command in global configuration mode. To return to the default mapping, use the no form of this command.

mls qos map dscp-mutation map-name input-dscp1 [input-dscp2 [input-dscp3 [input-dscp4 [input-dscp5 [input-dscp6 [input-dscp7 [input-dscp8]]]]]]] to output-dscp

no mls qos map dscp-mutation map-name

Syntax Description

map-name

Name of the DSCP mutation map.

input-dscp#

Internal DSCP value; valid values are from 0 to 63. See the "Usage Guidelines" section for additional information.

to

Defines mapping.

output-dscp

Egress DSCP value; valid values are from 0 to 63.


Command Default

output-dscp equals input-dscp.

Command Modes

Global configuration

Command History

Release
Modification

12.3(4)T

This command was integrated into Cisco IOS Release 12.3(4)T on the  following platforms: Cisco 2600 series, Cisco 3600 series, and  Cisco 3700 series routers.

12.2(14)SX

Support for this command was introduced on the Supervisor Engine 720.

12.2(33)SRA

This command was integrated into Cisco IOS Release 12.2(33)SRA.


Usage Guidelines

This command is not supported on the Catalyst 6500 series switches and  the Cisco 7600 series routers that are configured with a Supervisor  Engine 2.

When configuring a named DSCP mutation map, note the following:

You can enter up to eight input DSCP values that map to a mutated DSCP value.

You can enter multiple commands to map additional DSCP values to a mutated DSCP value.

You can enter a separate command for each mutated DSCP value.

You can configure 15 egress-DSCP mutation maps to mutate the internal  DSCP value before it is written as the egress-DSCP value. You can attach  egress-DSCP mutation maps to any interface that Policy Feature Card  (PFC) QoS supports.

PFC QoS derives the egress-class-of-service (CoS) value from the  internal DSCP value. If you configure egress-DSCP mutation, PFC QoS does  not derive the egress-CoS value from the mutated DSCP value.

Examples

This example shows how to map DSCP 30 to mutated DSCP value 8:

Router(config)# mls qos map dscp-mutation mutemap1 30 to 8 

HTH

Regards,

Yosh

HTH Regards, Yosh

Hi thanks for your suggestion. It only works on switches.

router(config)#mls qos map dscp-mutation mutemap1 30 to 8

                                             ^

% Invalid input detected at '^' marker.

router(config)#mls qos map ?                             

  cos-dscp  cos-dscp map: eight dscp values for cos 0-7

  dscp-cos  dscp-cos map: up to thirteen dscp values

I was trying to find a solution on the router. It seems like I'll need to write a bunch of individual class maps and policies to affect these transformations and put them on the ingress port. I was hoping to find a better way than this. 

There are the DSCP to DSCP mappings I need to perform. Thats a lot of class maps and policys.

map from  24 to 26

map from  25 to 28

map from  26 to 26

map from  27 to 28

map from  28 to 28

map from  29 to 28

map from  30 to 28

map from  31 to 28

map from  32 to 34

map from  33 to 34

map from  34 to 34

map from  35 to 34

map from  36 to 34

map from  37 to 34

map from  38 to 34

map from  39 to 34

map from  16 to 18

map from  17 to 20

map from  18 to 18

map from  19 to 20

map from  20 to 20

map from  21 to 20

map from  22 to 20

map from  23 to 20

map from  8 to 10

map from  9 to 12

map from  10 to 10

map from  11 to 12

map from  12 to 12

map from  13 to 12

map from  14 to 12

map from  15 to 12

Hello

from a switch perspective

==================

mls qos map dscp-mutation DSCPChanges 8 to 10

mls qos map dscp-mutation DSCPChanges 9 11 13 14 15 to 12

mls qos map dscp-mutation DSCPChanges 16 to 18

mls qos map dscp-mutation DSCPChanges 17 19 21 22 23 to 20

mls qos map dscp-mutation DSCPChanges 24 to 26

mls qos map dscp-mutation DSCPChanges 25 27 29 30 31 to 28

mls qos map dscp-mutation DSCPChanges 32 33 35 36 37 38 39 to 34

int xxx

mls qos dscp-mutation DSCPChanges

mls qos trust dscp

sh mls qos maps dscp-mutation

   Dscp-dscp mutation map:

  DSCPChanges:

     d1 :  d2 0  1  2  3  4  5  6  7  8  9

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

      0 :    00 01 02 03 04 05 06 07 10 12

      1 :    10 12 12 12 12 12 18 20 18 20

      2 :    20 20 20 20 26 28 26 28 28 28

      3 :    28 28 34 34 34 34 34 34 34 34

      4 :    40 41 42 43 44 45 46 47 48 49

      5 :    50 51 52 53 54 55 56 57 58 59

      6 :    60 61 62 63

   Dscp-dscp mutation map:

   Default DSCP Mutation Map:

     d1 :  d2 0  1  2  3  4  5  6  7  8  9

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

      0 :    00 01 02 03 04 05 06 07 08 09

      1 :    10 11 12 13 14 15 16 17 18 19

      2 :    20 21 22 23 24 25 26 27 28 29

      3 :    30 31 32 33 34 35 36 37 38 39

      4 :    40 41 42 43 44 45 46 47 48 49

      5 :    50 51 52 53 54 55 56 57 58 59

      6 :    60 61 62 63

From a router perspective ( even thought the router is taking this config not sure if this is all that applicabledue to the dscp -cos vaule values of 0,8,16 etc.) so

dscp 0-8 - dscp of 0

dscp 8 -15 dscp =1

dscp 16-23 dscp= 2

etc

etc...

======================

class-map match-all Dscp8

match  dscp cs1

class-map match-all Dscp9-11-13-14-14

match  dscp 9  11  13  af13  15

class-map match-all Dscp24

match  dscp cs3

class-map match-all Dscp16

match  dscp cs2

class-map match-all Dscp

class-map match-all Dscp17-19-21-22-23

match  dscp 17  19  21  af23  23

class-map match-all Dscp25-27-29-30-31

match  dscp 25  27  29  af33  31

class-map match-all Dscp32-33-35to39

match  dscp cs4  33  35  af42  37  af43  39

!

!

policy-map DSCP_pm

class Dscp8

  set dscp af11

class Dscp9-11-13-14-14

  set dscp af12

class Dscp24

  set dscp af31

class Dscp16

  set dscp af21

class Dscp17-19-21-22-23

  set dscp af22

class Dscp25-27-29-30-31

  set dscp af32

class Dscp32-33-35to39

  set dscp af41

int xx

service-policy xxput DSCP_pm

res

Paul

Please don't forget to rate any posts that have been helpful.

Thanks.


Please rate and mark as an accepted solution if you have found any of the information provided useful.
This then could assist others on these forums to find a valuable answer and broadens the community’s global network.

Kind Regards
Paul

Thank you!

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: