Introduction
This document describes the procedure and commands to create dynamic service flows on a Cable Modem Termination System (CMTS). For example, Unsolicited Grant Service (UGS) used in voice calls.
Prerequisites
Requirement
Cisco recommends that you have knowledge of these topics:
Components Used
This document is not restricted to specific software and hardware versions.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
Background Information
In order to create a dynamic service flow (whatever the type), either the CMTS or the Cable Modem (CM) need to send a Dynamic Service Add (DSA) message.
The DSA message contains two things:
- The Service Flow (SF) itself.
- The associated classifier(s).
The DSA message is a TLV encoded message which uses the same TLV definitions like the ones used for the CM.
Message sequence from PacketCable Multimedia (PCMM) specification:
Create The Flows
In order to create the flow, you need to send a DSA per service flow that you want to create (you could potentially merge the 2 messages into a single message as well, but split them makes them easier to understand).
Note: the commands used here are for cBR8 platform. The uBR10k uses the same command syntax, but without the docsis keyword in the test commands
Upstream Direction
Example:
test cable docsis dsa c005.c22c.dc5b message 1823010200040601060F010610040000037F130200E8160101150400000320140400004E20160f01010203020004090605040a305879
Decode of the TLVs
1. Service Flow TLV.
The Upstream SF TLV is TLV 24 (0x18):
1823010200040601060F010610040000037F130200E8160101150400000320140400004E20
Decode:
1823 TLV 0x18 (24) - Len 35 - Upstream Service Flow (0x23 = 35)
01020004 TLV 0x18.1 (24.1) - Len 02 - Upstream Service Flow ID - value 0004
060106 TLV 0x18.6 (24.6) - Len 01 - QoS Parameter set type - value 06 -> Admitted and Active bit set
0F0106 TLV 0x18.F (24.15) - Len 01 - Service flow scheduling type - value 06 -> UGS
10040000037F TLV 0x18.10(24.16) - Len 04 - Request Transmit policy - value 0x0000037F
130200E8 TLV 0x18.13(24.19) - Len 02 - Number of bytes - value 0xe8 -> 232 bytes
160101 TLV 0x18.16(24.22) - Len 01 - Number of grants per interval- value 1
150400000320 TLV 0x18.15(24.21) - Len 04 - Tolerated Grant Jitter - value 0x320 -> 800
140400004E20 TLV 0x18.14(24.20) - Len 04 - Nominal Grant interval - value 0x4e20 -> 20000
2. Classifier TLV.
The classifier used in this example is a simple IP packet classifier only. Other types of classifier exist (Protocol, UDP/TCP, etc.).
The Upstream Classifier TLV is TLV 22 (0x16):
160f01010203020004090605040a305879
Decode:
160f TLV 0x16 (22) - Len 15 - Upstream Classifier
010102 TLV 0x16.1 (22.1) - Len 01 - Classifier reference - Unique classifier ID - value 0x02
03020004 TLV 0x16.2 (22.2) - Len 02 - Service flow reference - value 0004 -> MUST match the SFID above
0906 TLV 0x16.9 (22.9) - Len 06 - IPv4 packet classifier encoding
05040a305879 TLV 0x16.9.5(22.9.5) - Len 04 - Destination IPv4 classifier - value 0a305879 10.48.88.121
It corresponds to this service flow/classifier on the CM configuration file:
Main
{
UsServiceFlow
{
UsServiceFlowRef 4;
QosParamSetType 6;
SchedulingType 6;
RequestOrTxPolicy 0x0000037f;
UnsolicitedGrantSize 232;
GrantsPerInterval 1;
ToleratedGrantJitter 800;
NominalGrantInterval 20000;
}
UsPacketClass
{
ClassifierRef 2;
ServiceFlowRef 4;
IpPacketClassifier
{
IpDstAddr 10.48.88.121;
}
}
}
Downstream Direction
Example:
test cable docsis dsa c005.c22c.dc5b message 191A010200990601060701050804000154A00A04000154A00B0200DA170f01010203020099090603040a305879
Decode of the TLVs
1. Service Flow TLV.
The Downstream Service Flow TLV is TLV 25 (0x19):
191A010200990601060701050804000154A00A04000154A00B0200DA
Decode:
191A TLV 0x19 (25) - Len 1A (26) - Downstream Service Flow definition
01020099 TLV 0x19.1 (25.1) - Len 02 - Downstream Service Flow ID - value 0x99
060106 TLV 0x19.6 (25.6) - Len 01 - QoS Parameter set type - value 06 -> Admitted and Active bit set
070105 TLV 0x19.7 (25.7) - Len 01 - Traffic Priority - value 05 -> Prio 5
0804000154A0 TLV 0x19.8 (25.8) - Len 04 - Max Sustain Rate - value 0x154a0 = 87200 bps
0A04000154A0 TLV 0x19.A (25.10) - Len 04 - Min Reserved Rate - value 0x154a0 = 87200 bps
0B0200DA TLV 0x19.B (25.11) - Len 02 - Assumed Min Rvd Rate packet size - value 0xda = 218
2. Classifier TLV.
This is also a plain IPv4 classifier. A more complex classifier can also be created.
The Downstream Classifer TLV is TLV 23 (0x17):
170f01010203020099090603040a305879
Decode:
170f TLV 0x17 (23) - Len 15 - Downstream Classifier
010102 TLV 0x17.1 (23.1) - Len 01 - Downstream Classifier Reference - value 0x02
03020099 TLV 0x17.3 (23.3) - Len 02 - Downstream Service Flow ID reference - value 0x99 -> MUST match SFID above
0906 TLV 0x17.9 (23.9) - Len 06 - IPv4 classifier
03040a305879 TLV 0x17.9.3(23.9.3) - Len 04 - Source IPv4 Address - value 0x0a305879 -> 10.48.88.121
It correspods to this service flow/classifier on the CM configuration file:
Main
{
DsServiceFlow
{
DsServiceFlowRef 153;
QosParamSetType 6;
TrafficPriority 5;
MaxRateSustained 87200;
MinReservedRate 87200;
MinResPacketSize 218;
}
DsPacketClass
{
ClassifierRef 2;
ServiceFlowRef 153;
IpPacketClassifier
{
IpSrcAddr 10.48.88.121;
}
}
}
Delete the Flows
Dynamic service flows can be deleted with a Dynamic-Service-Delete (DSD) message. The procedure is identical to delete both US SF and DS SF.
test cable docsis dsd <mac> <service-flow-id>
Example:
acdc-cbr8-2#show cable modem 2cab.a40c.5598 service-flow
SUMMARY:
MAC Address IP Address Host MAC Prim Num Primary DS
Interface State Sid CPE Downstream RfId
2cab.a40c.5598 172.54.0.4 C1/0/2/UB w-online 27 0 In1/0/2:7 8711
Sfid Dir Curr Sid Sched Prio MaxSusRate MaxBrst MinRsvRate Throughput
State Type
17 US act 27 BE 5 1024 3044 0 929
18 DS act N/A N/A 3 300000000 24600 0 887
--> Before : 2SFs only
acdc-cbr8-2#test cable docsis dsa 2cab.a40c.5598 message 1823010200040601060F010610040000037F130200E8160101150400000320140400004E20160f01010203020004090605040a305879
--> UGS SF
acdc-cbr8-2#test cable docsis dsa 2cab.a40c.5598 message 191A010200990601060701050804000154A00A04000154A00B0200DA170f01010203020099090603040a305879
--> DS SF
acdc-cbr8-2#show cable modem 2cab.a40c.5598 service-flow
Load for five secs: 10%/1%; one minute: 9%; five minutes: 10%
Time source is NTP, 10:54:57.426 CET Thu Nov 22 2018
SUMMARY:
MAC Address IP Address Host MAC Prim Num Primary DS
Interface State Sid CPE Downstream RfId
2cab.a40c.5598 172.54.0.4 C1/0/2/UB w-online 27 0 In1/0/2:7 8711
Sfid Dir Curr Sid Sched Prio MaxSusRate MaxBrst MinRsvRate Throughput
State Type
17 US act 27 BE 5 1024 3044 0 896
57 US act 43 UGS 0 0 0 0 0
18 DS act N/A N/A 3 300000000 24600 0 0
58 DS act N/A N/A 5 87200 3044 87200 0
--> Now Both UGS and DS voice flows are created (and throughput would be seen as soon as packets match the classifier.)
Related Information