02-06-2014 08:10 PM - edited 03-04-2019 10:16 PM
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.
Solved! Go to Solution.
02-07-2014 06:50 AM
Yea it's called 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
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. |
output-dscp equals input-dscp.
Global configuration
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.
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
02-07-2014 08:49 AM
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.
02-06-2014 08:19 PM
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
02-07-2014 02:43 AM
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.
02-07-2014 04:54 AM
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
02-07-2014 05:14 AM
Hi,
many to many with classical MQC is not possible as far as I know.
Regards
Alain
Don't forget to rate helpful posts.
02-07-2014 06:50 AM
Yea it's called 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
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. |
output-dscp equals input-dscp.
Global configuration
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.
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
02-07-2014 08:15 AM
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
02-07-2014 08:49 AM
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.
02-07-2014 09:11 AM
Thank you!
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: