Contents

Introduction

Prerequisites

Requirements

Components Used

Configure VoD Sessions with GQI And PowerKEY

Verify

Troubleshoot: VoD Sessions Do Not Get Initiated Or Get Stuck in PowerKey Pending

Case 1. VoD Sessions Do Not Get Initiated

Case 2. VoD Sessions Get Stuck in PowerKey Pending

Introduction

This document describes how to configure and troubleshoot Video on Demand (VoD) with Generic QAM Interface (GQI) protocol and PowerKEY encryption on the Cisco CBR-8 device.

Further information on how to configure, verify, and troubleshoot these featurescan be found in Cisco cBR Converged Broadband Routers Video Features.

Prerequisites

Requirements

Cisco recommends that you have knowledge of these topics:

- Cisco cBR-8

- Cable Video

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.

Configure VoD Sessions with GQI And PowerKEY

This is a configuration example on a CBR-8 for 1 line card, with 1 Logical Edge Device (LED), and 1 service group.

cable video

[...]

mgmt-intf VirtualPortGroup 0

encryption

linecard 1/0 ca-system powerkey scrambler des

service-distribution-group SG1 id 1

rf-port integrated-cable 1/0/0

virtual-carrier-group SG1 id 1

encrypt

service-type narrowcast

rf-channel 32 tsid 10188 output-port-number 1

rf-channel 33-53 tsid 10189-10209 output-port-number 2-22

bind-vcg

vcg SG1 sdg SG1

logical-edge-device LED1 id 1

protocol gqi

mgmt-ip 10.10.10.10

mac-address aaaa.bbbb.cccc

server 10.20.30.40

keepalive retry 3 interval 10

reset interval 8

virtual-edge-input-ip 10.0.0.1 input-port-number 1

vcg SG1

active

Verify

Once a VoD session is started, its output on the cBR-8 must look like this:

cBR-8#show cable video session all

LED Session    Output Streaming   Sess Session Source                  UDP   Output  Input      Output  Input    Output   Encrypt  Encrypt        Low PMV   Session

Id  Id         Port   Type        Type Ucast Dest IP/Mcast IP (S,G)    Port  Program State      State   Bitrate  Bitrate  Type     Status         Lat NUM   Name

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

1   1          1      Remap       UDP  10.0.0.1                        1000  1       ACTIVE-PSI ON      14475285 14465257 PowerKey Encrypted      N   -     0x4C83DE87450000035B74

Troubleshoot: VoD Sessions Do Not Get Initiated Or Get Stuck in PowerKey Pending

If a VoD request is valid, in a correctly working environment, it triggers a session creation on the cBR-8 from a video management system device as the Cisco Videoscape Session Resource Manager (VSRM).

Case 1. VoD Sessions Do Not Get Initiated

If you do not see the VoD session created on the cBR-8 under the command show cable video session all, other than external issues as connectivity, routing, VSRM misconfiguration, etc., it is possible that the cBR-8 replied with an error code to the GQI Create Session Request coming from the VSRM.

For example, the Create Session Response Code 9002000 is the positive answer, while 9002000A is an error code which means that the channel bandwidth is unavailable. You can find a list of the response codes in this table, from the Time Warner Cable Switched Digital Video Channel Change Message Interface Specification (TWC-SDV-CCMIS):

Description

Code

GQI_NO_ERROR

0x90020000

GQI_ERROR_RPC_OUT_OF_MEMORY

0x90020001

GQI_ERROR_RPC_HARDWARE_FAILURE

0x90020002

GQI_ERROR_RPC_SESSION_NOT_FOUND

0x90020003

GQI_ERROR_RPC_MISSING_MSK

0x90020004

GQI_ERROR_RPC_SESSION_ALREADY_EXISTS

0x90020005

GQI_ERROR_RPC_INSUFFICIENT_MEMORY

0x90020006

GQI_ERROR_RPC_INSUFFICIENT_CAPACITY

0x90020007

GQI_ERROR_RPC_PROVISION_FAILURE

0x90020008

GQI_ERROR_RPC_PROGRAM_NUMBER_CONFLICT

0x90020009

GQI_ERROR_RPC_BANDWIDTH_UNAVAILABLE

0x9002000A

GQI_ERROR_RPC_SAME_GIGAIP

0x9002000B

GQI_ERROR_RPC_GIGAIP_INVALID

0x9002000C

GQI_ERROR_RPC_GIGAIP_FAILURE

0x9002000D

GQI_ERROR_RPC_GROUP_SDB_SESSION_FAILURE

0x9002000E

GQI_ERROR_RPC_INSUFFICIENT_OUTPUT_CAPACITY

0x9002000F

GQI_ERROR_RPC_ROUTE_CONFLICT_OUTPUT

0x90020010

GQI_ERROR_RPC_ROUTE_CONFLICT_INPUT

0x90020011

GQI_ERROR_RPC_ROUTE_NOT_FOUND

0x90020012

GQI_ERROR_RPC_ROUTE_ALREADY_EXISTS

0x90020013

GQI_ERROR_RPC_INVALID_MULTICAST_ADDRESS

0x90020014

GQI_ERROR_RPC_INVALID_SOURCE_ADDRESS

0x90020015

GQI_ERROR_RPC_STAT_MUX_GROUP_DEJITTER_FAILURE

0x90020016

GQI_ERROR_RPC_GIGE_TYPE_CONFLICT

0x90020017

You can check the GQI messages in the cBR-8 by enabling the platform traces to debug or noise level of verbosity, and restore it to notice level after the troubleshoot:

cBR-8#set platform software trace led-01 rp active vgqi-mgmt noise

cBR-8#set platform software trace led-01 rp active vgqi-msg noise

Once the traces are set, you can request a VoD session, and then check the output of the traces with show platform software trace message led-01 rp active.

Here is an example of the GQI transaction in the cBR-8 traces, with the 9002000A error code sent to the VSRM. In this case the VSRM does not initiate the session on the cBR-8:

cBR-8#show platform software trace message led-01 rp active

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-mgmt] [24599]: UUID: 0, ra: 0, TID: 0 (debug): abcdefghijklmnopabcdefghijklmnopabc, Received GQI Create Session V2 Request from 10.20.30.40 to 10.10.10.10    <<<<<<<<<<<<<  the request points at LED1 mgmt-ip

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-msg] [24599]: UUID: 0, ra: 0, TID: 0 (info):

abcdefghijklmnopabcdefghijklmnopabcdef -> Received GQI Create Session Request:

Transaction Header:

Transaction ID: 4F75000F

Response Program Number: 30000082

Session ID:

Session ID Length: 10

Session ID Value:  54 52 00 64 6A 7F 06 99 11 E1

Incomming Program Number: 62351

Outgoing  Program Number: 62351

Input  Port Number: 1

Output Port Number: 1

Session Rate: 125000

Is Multicast: 1

Input UDP Port: PORT#

Multicast Details:

Source Address Len: 3

Source IP Address Value: 10.20.31.40, 0.0.0.0, 0.0.0.0,

Group IP Address: IP, IP, IP,

UDP Port : 0, 0, 0,

NO PID Remapping: 1

Encryption: 0

Override Session Flag 0

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-mgmt] [24599]: UUID: 0, ra: 0, TID: 0 (debug):

abcdefghijklmnopabcdefghijklmnopabcd - GQI Input Port 1 is mapped to LED IP Address 10.0.0.1   <<<<<<<<<<<<< input mapping correctly pointing at LED1 IP

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-mgmt] [24599]: UUID: 0, ra: 0, TID: 0 (debug):

abcdefghijklmnopabcdefghijklmnopa - GQI Output Port 1 maps to physical QAM -> slot 2 port 1 channel 32   <<<<<<<<<<<<< output mapping incorrect: QAM 2/0/1:32 does not belong to LED1

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-mgmt] [24599]: UUID: 0, ra: 0, TID: 0 (debug):

abcdefghijklmnopabcdefghijklmnopabcd -> QAM Bandwidth request 125000 has exceeded the available bw 0 on QAM 2/0/1:32   <<<<<<<< Bandwidth exceeded error

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-mgmt] [24599]: UUID: 0, ra: 0, TID: 0 (debug):

Converting vgqi_rc_e (-22) to GQI Reponse Status code

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-mgmt] [24599]: UUID: 0, ra: 0, TID: 0 (debug): abcdefghijklmnopabcdef, Allocating GQI Response: GQI Server IP 10.20.30.40, LED Mgmt IP 10.10.10.10

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-mgmt] [24599]: UUID: 0, ra: 0, TID: 0 (debug): abcdefghijklmnopabcdefghijklmnopabcdefghijklmnop, Sending GQI Create Session V1/V2 Response from 10.10.10.10 to 10.20.30.40

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-mgmt] [24833]: UUID: 0, ra: 0, TID: 0 (debug):

abcdefghijklmnopabcdefghijk -> Client 0xfac14b422, conn_state = 4, req_type = 3, req version 2, conn version 2, sock = 19

2019/01/10 09:02:59.618 {led1_R0-0}{1}: [vgqi-msg] [24833]: UUID: 0, ra: 0, TID: 0 (info):

abcdefghijklmnopabcdefghijklmnopabcdefgh -> Sending GQI Create Session Response:

Result Code: 9002000A    <<<<<<< error code response

Transaction Header:

Transaction ID: 4F75000F

Response Program Number: 30000082

Session ID:

Session ID Length: 10

Session ID Value:  54 52 00 64 6A 7F 06 99 11 E1

2019/01/10 09:02:59.710 {led1_R0-0}{1}: [vgqi-mgmt] [24599]: UUID: 0, ra: 0, TID: 0 (debug):

abcdefghijklmnopabcdefghijkl -> ev_check_disconnect::remote fd 3 (0x0) has been disconnected

In this example, there is an incorrect bind in the cBR-8, possibly due to a misconfiguration or eventually a software defect to be further investigated by Cisco.

The internal bind in the cBR-8 can be verified with the commands described below.

This command shows a summary of the video databases for a single LED, where you can find information on each database name and ID, tables name and ID within a database, and key ID for each table. These indexes are needed for the next commands.

acdc-cbr8-2#show platform software vpm led1-ui rp active dbms data summary

Database Name: led-default-database      Database Id: 53

Database Name: Video Config Database     Database Id: 54   <<<<< Database name and ID

Table: DS Channel Table           Table Id: 0      Record Count: 4   <<<< Table name, ID, and records number

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

Table Options

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

Snapshot:                 DISABLED

Replication:              DISABLED

Shadowing:                DISABLED

Dynamic Mem Allocation:   ENABLED

Key Name                        Engine      ID

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

vcfg_dbms_qam_key               AVL         1         <<<<<< key ID

--More--

Once you identify what database and table you want to dump, you can use the command show platform software vpm led1-ui rp active dbms table dump <database ID> <table ID> <key ID> to display the content of the records. In this case you want to inspect the database 54 “Video Config Database”, table 0 “DS Channel Table” which has only Key ID 1:

acdc-cbr8-2#show platform software vpm led1-ui rp active dbms table dump 54 0 1

Record: Slot: 1, Bay: 0, Port: 0, Channel: 32

Logical QAM id: 48, Previous LQAM Id: 65535

QRG Role: none

SD group id: 1, VC group id: 1

Admin state: 1, Operational state: 1, Previous Operation State: 0    TSID: 10188

Override TSID: not configured

Encryption Support: Powerkey

Resource Id: 0

ONID: 100

PSI Interval: 100

Output Port number: 1

Power Adjust: 400 dBmV

Annex Type: ANNEX A

Modulation: 256QAM

Interleaver: QAM_INTERLEAVER_I_12_J_17

Frequency: 850000000

Bandwidth: 51253960 bps

Symbol Rate: 6952

Low Latency: 0

Channel Width: 8000000 Hz

NIT Reference: 0

--More--

From the output above, you can see that VCG 1 is correctly mapped to SDG 1, and that the first channel of LED 1 is 1/0/0:32 as per configuration.

Make always sure that the traffic that enters the session contains the expected parameters configured for that video session, like for example the TSID.

If you already know what record you want to access, you can obtain the same output displayed above with the command show platform software vpm led1-ui rp active dbms record 54 0 1 1/0/0:32

Case 2. VoD Sessions Get Stuck in PowerKey Pending

A session stuck in PowerKey Pending can look like this on the cBR-8:

cBR-8#show cable video session logical-edge-device id 1

Session    Output Frequency  Streaming   Sess Session Source                  UDP   Output  Input      Output  Input    Output   Encrypt  Encrypt        Low PMV   Session

Id         Port   Hz         Type        Type Ucast Dest IP/Mcast IP (S,G)    Port  Program State      State   Bitrate  Bitrate  Type     Status         Lat NUM   Name

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

1          1      850000000  Remap       UDP  10.0.0.1                        1000  1       OFF        PENDING 0        0        PowerKey Pending        N   -     0x4C83DE87450000035B74

The first parameters that need to be observed are the input and output bitrate.

If the input rate is 0, normally it means that there is really no traffic in input on the cBR-8 for this session, and the cause of the problem must be investigated outside the cBR-8.

Anyway, in order to verify this fact, you can create a packet capture on the incoming links in this way:

Step 1. Create an access list that permits all the input IPs configured under the affected LED, in this case you have only 1 IP address:

cBR-8(config)#ip access-list extended TAC_VOD

cBR-8(config)#permit ip any host 10.0.0.1

Step 2. Check on which interfaces of the cBR-8 you expect to receive the VoD traffic, sometimes on all the interfaces of the supervisor in slot 4 and slot 5. In this case you have to configure 2 different captures, as it is not possible to configure 8 interfaces in a single capture:

cBR-8#monitor capture TAC_VOD interface range Te4/1/0, Te4/1/1, Te4/1/2, Te4/1/3 both access-list TAC_VOD buffer size 100

Step 3. Verify the configuration and start the monitor capture:

cBR-8#show monitor capture TAC_VOD

cBR-8#monitor capture TAC_VOD start

Step 4. Request a new VoD session on LED 1 and check if there are packets being captured (you have different options for the level of detail for the packets display):

cBR-8#show monitor capture TAC_VOD buff <brief/detail/dump>

Step 5. Once done, these commands can be used to save the capture in the harddisk, stop the monitor capture, and remove it from the configuration:

cBR-8#monitor capture TAC_VOD export harddisk:/TAC_VOD.pcap

cBR-8#monitor capture TAC_VOD stop

cBR-8#no monitor capture TAC_VOD

In case the packet capture shows no packets, then perform the steps described in case 1 in order to debug the GQI protocol itself.

Otherwise, use these debugs in order to verify the proper operation of PowerKEY on the cBR-8:

set platform software trace led-01 rp active vsess-mgmt debug

set platform software trace led-01 rp active vsess-msg debug

show platform software trace message led-01 rp active

set platform software trace pk-ecmg 1/0 pk_ecmg-chnl debug

set platform software trace pk-ecmg 1/0 pk_ecmg-ipc debug

set platform software trace pk-ecmg 1/0 pk_ecmg-main debug

set platform software trace pk-ecmg 1/0 pk_ecmg-stream debug

show platform software trace message pk-ecmg 1/0

Note: Do not forget to restore all the platform traces to the notice level once you are done with the troubleshoot.