Downstream equalization | docsis.org

You are here

Downstream equalization

21 posts / 0 new
Last post
ByteMe
Downstream equalization

Does anyone have an idea what the specific formatting is to the OID .1.3.6.1.2.1.10.127.1.1.4.1.7(mib-2.transmission.docsIfMib.docsIfMibObjects.docsIfBaseObjects.docsIfSignalQualityTable.docsIfSignalQualityEntry.docsIfSigQEqualizationData.). And a second question: is this the status of the downstream post equalizer of the CM?

Msarmento
Try this

HI,

This is the data for the Upstream.

I had the same doubts in the past. Check the app I built for testing this.

http://www.msarmento.com.br/pre_eq.php

There are some links on the page that leads to resources where you can find the answer.

Regards,

MS

mbowe
Nice program Msarmento !

Nice program Msarmento !

I also really liked your live spectrum analyser tool

Although I was a bit bummed they weren't an open source php / perl or similar cgi :-)

Msarmento
V2 is coming soon

Thanks Mbowe.

Version 2 is coming in a couple of weeks and will add modem data capture (TX, RX, SNR) and also support for more CMTS models.
V3 will probably add PNM calculation and Power Supply data capture.

If you tried in your CMTS, please let me know the results.

I will consider publish the source code sometime. Right now it will just expose my poor programming skills :)

Regards,

MS

windwaterwaves
Great job

Nicely done MS. I have implemented the PNM demo although it does have it's share of bugs, mostly I think the problem is they didn't put in a bunch of error checking for those negative values and at times it won't read it.

Would love to share details and get this rolling. It is a pretty amazing tool.

R

Msarmento
New info on this one

Hi R,

i just figured out what I guess is the most common "bug" on the PNM implementations. It is not a real bug, it is just another way to interpret the data.
A negative value on the real part of the main TAP will mess up the calculations. What occurs on some modems is that the main TAP real value is someting like 7Fxx (in hex). If you take the 3-nibble strategy, it is negative; if you take it "as is", it is positive.
The trick is to consider it as positive, and assume the MTNA (Main Tap Nominal Amplitude) as the closest 2^n value. That will make all other values make sense.
I updated the Pre-eq Decoder to reflect that. It is available on this link: http://www.msarmento.com.br/app/pre_eq/latest/Pre_eq_Decoder.exe

Regards,

MS

cmcaldas
cmts monitor

Ola MS
I installed the cmts monitor, but couldn't get it working in my lab setup. I tried it on an Arris C4 and Cisco 10k. do have a Motorola 64k and some 2.0 cmts's I could still try it on, but I keep getting an error that it can't communicate with the cmts. I used basic snmp strings of public and private, is there an example setup or config available for review?

Abraço

cmcaldas@gmail.com

OldDocsisGuy
I doesn't work with

Ubr10k with 3g60's - 122-33.SCH2a
It gives an Unhandled exception error: Index was outside the bounds of the array.
CBR8: 03.17.00.S.156-1.S-std.SPA
Also give Unhandled exception error: Index was outside the bounds of the array.

72246 with mc88 linecards - 122-33.SCF4
It works with this configuration

Nice looking snr graphs though! Our field supervisors have shown interest in this!

ODG

Msarmento
One more try

Hi,

I was not expecting dealing with these big boxes. They have more interfaces than the code is configured to keep.

I generated a preview version available at http://www.msarmento.com.br/app/cmts_monitor/preview/cmts_monitor.zip

It is a new branch of the software and it is not completely done. But I guess it is stable enough for testing. Layout changed a little, but it should be easy to use as well.

Let me know if it solves this issue.

Regards,

MS

OldDocsisGuy
Yes! It works now

Ok, nice work! Your preview version now works with the 3g60's and the cbr8!
Thank you!
ODG

mbowe
I successfully tested the

I successfully tested the CMTS monitor works on :
* 10k UBR-MC20X20V 12.2(33)SCH6
* 7246VXR UBR-MC28U 12.3(9a)BC7

Bugs I noticed :
* Utilisation column always seems to be 0
* When you go to configuration -> Cisco -> Spectrum -> FFT, the default is ticked as 60, but I think the tool is running 120. If you tick the already-ticked 60, the resolution increases.

Msarmento
Docsis Util Interval

Hi Mbowe,

Thanks for the feedback. I will correct these for the updated version, it will be available next week.
Regarding the utilization column, sometimes it is not enabled by default on Cisco (and sometimes it doesn´t even appear as a command line option).

Try on cli:

cable util-interval 300

or configure it using snmp by setting docsIfCmtsChannelUtilizationInterval to an interval value (in seconds) if the cli command is not avaliable:

snmpset -v 2c -c your write community cmts_ip .1.3.6.1.2.1.10.127.1.3.8.0 i 300

Regards,

MS

Jony Enamorado (not verified)
Ios

I've searched for an ios to run with MC28U and none works

:-( ubr7200-ik9su2-mz.123-23.BC7.bin

ByteMe
Upon further investigation

I checked this, according to http://www.simpleweb.org/ietf/mibs/modules/html/right.php?category=IETF&... it is the downstream post EQ data if you're polling the CM and the upstream post EQ data if you're polling the CMTS. I'm building upon the CableLabs RI and I noticed a little bit of experimental code dealing with post EQ. I'm working on it now, but there's something peculiar about the way the DFE-taps are interpreted. Where you'd weigh the regular feedforward taps by dividing them by the square root of the TTE(total tap energy), the DFE-taps are weighed by dividing by the MTNA(main tap nominal energy). No clue as to WHY they did this...

Msarmento
Another point of view on this subject

Well, my interpretation is a little bit different than yours (and I'm not absolutely sure I am right on it) . I believe there is not such thing as downstream EQ, as EQ it is just for the upstream channel.
When reading the CM, you get the actual EQ data used by the CM to transmit the data (PRE), when you read the CMTS you get the received data (POST). Comparing one to another will give you an estimate about how effective the EQ process is.
I must say that the specs are not so clear as I expect. If you look at the RFC 4946, the description for DocsEqualizerData says "This data type represents the equaliser data as measured at the receiver interface". However, this is a description for a data type, not a real instance of an SNMP object. The objects are docsIf3CmStatusUsEqData (PRE) and docsIf3CmtsCmUsStatusEqData (POST). Both objects use the DocsEqualizerData as Syntax (data type).

I guess the words "measured at the receiver interface" are responsible for confusing the concept. If you take it literally, you can get the wrong path.

Does it makes sense?

Regards,

MS

ByteMe
I'm quite certain there is a

I'm quite certain there is a downstream equalizer, a post equalizer. AFAIK that equalizer is a DFE. I've seen test equipment such as the CM3800 that includes downstream equalizer analysis and I've done an snmpwalk on my test modem at .1.3.6.1.2.1.10.127.1.1.4.1.7 , which yields 16 OID's whose index (3, 48, 49, ..., 62) corresponds to those of the downstream channels. So it can't have anything to do with the upstream, I've only got 5 channels there (the modem is capable of 8, but the CMTS configuration is set up for 5). And it can't be any pre-equalizer, because pre-equalization on downstream is impossible, because pre-equalization requires exactly one path to the receiver.

Msarmento
Understood

Can you share the snmpwalk? I haven´t captured data like this so far. I guess I only have old modems to play with and I´m curious to see how it looks like.

ByteMe
SNMP walk

So this is what the SNMP walk looks like, comes from a DOCSIS 3.0 Compal CH7465LG modem. Alas, our network is not equiped with full band capture modems, that would be the ideal solution to what I'm trying to do here :P

iso.3.6.1.2.1.10.127.1.1.4.1.7.3 = Hex-STRING: 08 01 08 20 00 63 FF 95 FF B0 00 60 00 37 FF 9C
FF B2 00 62 00 6F FF 64 FF 34 00 DD 01 7C FE 32
00 00 00 00 FA 92 04 43 01 20 F7 57 02 A8 01 B7
00 1C 00 9C 00 57 01 7C 00 D9 00 09 00 20 00 77
FF E8 FF 58 00 0A 00 5D 00 04 FF F4 FF EA 00 02
FF F7 FF E4 FF B9 00 1D FF D2 00 1C FF EC 00 2C
FF F2 00 15 00 18 FF F4 FF E5 00 2F FF E6 00 37
FF D0 00 30 FF E7 00 1D 00 0C 00 39 FF F6 00 13
FF E1 00 22 FF FF 00 16 FF EC 00 17 FF D3 00 1C
00 14 FF FE 00 1E FF E9 FF E8 00 05 FF EE FF FC
FF E3 FF F6
iso.3.6.1.2.1.10.127.1.1.4.1.7.48 = Hex-STRING: 08 01 08 20 00 23 FF ED 00 09 00 07 FF F3 FF DC
FF E9 00 3D 00 12 FF A1 FF EF 00 56 FF 82 FF 83
00 00 00 00 FC 9E F8 81 0A B6 FF 8F 02 55 03 E9
04 72 03 97 FE B2 00 E2 00 22 00 3F FE B6 FF 8E
00 4E FF CF FF C4 FF F5 00 36 00 33 FF C5 00 55
00 14 00 17 FF 86 00 0E 00 07 00 34 FF CB 00 14
FF D6 00 1B FF DD 00 19 FF E5 FF EC FF D4 00 15
FF C9 00 06 FF C9 00 02 FF E2 00 15 FF DB 00 03
FF E0 00 0A FF CE 00 21 FF E5 FF F2 FF F2 FF E7
FF BD 00 22 FF FA 00 12 FF DA FF FD FF E3 FF F4
FF F3 00 18
iso.3.6.1.2.1.10.127.1.1.4.1.7.49 = Hex-STRING: 08 01 08 20 00 64 FF DF FF B4 00 5D 00 5F FF A8
FF 9E 00 5B 00 9F FF 70 FF 4D 00 CE 02 2C FD DB
00 00 00 00 FF 67 00 16 F9 D8 FE 45 FB 76 FF 07
FA 2C 03 96 00 1A 00 83 00 8B 00 7C FF DF FF D9
FF E4 00 2A 00 39 FF FA FF E7 00 06 FF F7 FF E1
00 25 FF FF FF D4 FF F7 FF F1 00 22 FF FB FF E1
00 17 00 00 00 00 00 06 FF E4 00 09 00 33 00 20
FF D6 FF E9 00 06 FF C0 FF ED FF E8 FF E8 FF E8
00 15 FF D1 00 1C FF FE 00 1D 00 0A 00 13 FF F9
FF E0 FF F5 FF EF FF F2 00 21 FF ED 00 04 00 06
FF F9 FF F2
iso.3.6.1.2.1.10.127.1.1.4.1.7.50 = Hex-STRING: 08 01 08 20 00 43 FF 9A FF AA 00 69 00 3C FF 84
FF B4 00 6F 00 64 FE F2 FF 68 01 6B 00 D4 FC D7
00 00 00 00 00 25 01 52 02 87 FF 2D 00 67 FB E7
01 82 FC 40 FF 22 02 7B FF 89 FE EF FF 5E 00 75
00 27 FF F0 00 13 00 46 00 15 FF C7 FF D2 00 2F
00 0E FF E4 FF E7 FF D5 00 2E 00 01 00 08 00 20
FF F9 00 0D FF FC FF E0 FF FC 00 00 00 12 FF E8
00 13 00 04 00 17 00 1C 00 23 00 2B 00 2B FF ED
00 24 00 30 FF DE FF EC FF E7 FF DE FF FB 00 1A
FF E5 FF FC FF EF FF F5 00 1D FF E6 00 0F FF F2
FF EB 00 03
iso.3.6.1.2.1.10.127.1.1.4.1.7.51 = Hex-STRING: 08 01 08 20 00 46 FF B2 FF 9E 00 44 00 31 FF 9A
FF 98 00 67 00 7F FF A5 FF 7A 00 E7 01 35 FE 44
00 00 00 00 FF 95 FA CB 00 66 00 2D 01 D6 02 AD
01 57 02 FD FF C5 00 55 00 1C 00 59 00 7C 00 AE
00 04 FF 9B FF F1 00 3F 00 0D FF FB 00 2B 00 17
00 14 FF E5 00 0D FF FD 00 02 00 0A 00 13 FF FD
00 1F 00 09 00 1A FF F5 FF C7 FF CE 00 35 FF EE
00 03 00 03 FF F8 00 1E FF F7 FF F1 FF FD FF FD
00 20 00 10 00 32 00 00 00 26 FF DB 00 1E FF E3
FF F6 FF F9 00 0C FF F5 FF F9 FF D3 FF FD 00 07
00 28 FF F1
iso.3.6.1.2.1.10.127.1.1.4.1.7.52 = Hex-STRING: 08 01 08 20 00 25 00 24 FF BB FF B7 00 39 00 4D
FF 9F FF BC 00 3D 00 87 FF 7A FF 82 00 D1 01 0D
00 00 00 00 FE 53 00 5A F7 A1 08 35 00 22 00 FE
00 7D FD 00 FF 79 FF E2 00 60 00 1B FF 7E FF CB
00 42 FF E2 FF E0 FF F4 00 1D FF F3 FF ED FF B3
00 3C FF FB FF DB FF F3 FF FA 00 18 FF F1 00 0E
FF E9 FF FE FF E7 00 01 FF E4 00 22 00 1D 00 0C
00 04 00 27 FF E0 FF FD FF FD FF F5 FF E7 00 1B
00 0B FF EC 00 1A FF FA FF FA FF CF 00 18 FF DF
FF FB 00 0A FF F7 FF E4 FF E4 00 16 00 09 00 08
00 0A 00 1E
iso.3.6.1.2.1.10.127.1.1.4.1.7.53 = Hex-STRING: 08 01 08 20 00 6F FF B0 FF A7 00 A6 00 75 FF 37
FF A6 01 5E 00 FF FD FC FE DD 03 19 03 4A FA 25
00 00 00 00 FD 81 07 AD 04 1C EC 01 01 AF FD B1
00 02 FB AB FF D3 01 6F 00 A2 00 02 00 5F 01 5D
00 1D FF 40 00 17 00 7D FF E8 FF A6 FF E1 00 1E
FF F5 FF E1 FF E6 FF E4 00 11 FF B5 00 00 FF EC
FF E8 FF F5 00 1C FF FA FF E9 FF FF 00 13 00 0A
00 00 00 1A 00 1F 00 1B 00 11 FF DC FF ED 00 1C
00 11 FF ED FF F7 FF ED FF DA 00 0B FF F3 00 15
FF BA FF F9 00 00 00 1D FF CF 00 45 FF EB FF EE
FF E6 00 15
iso.3.6.1.2.1.10.127.1.1.4.1.7.54 = Hex-STRING: 08 01 08 20 FF FA FF C4 FF FC 00 66 00 0D FF A5
FF EA 00 81 FF A7 FF 68 00 66 01 60 FE 54 FD 64
00 00 00 00 FD F8 FC A3 02 E4 03 E2 FE A7 08 06
00 A6 FE 28 00 0C 00 B0 00 8A FF 57 FF E0 FF AC
00 5C 00 0E FF 86 00 6F 00 42 FF F0 00 25 00 27
00 1A FF CE FF E2 00 1B FF FB 00 21 FF EB FF E5
FF DE FF E1 FF FE FF FE FF C0 FF F8 00 25 FF FC
FF ED 00 1E 00 06 FF EA FF F6 FF FB FF EC 00 19
FF F9 00 00 00 2C 00 07 00 0C FF F4 FF EA FF E7
FF EC FF E9 FF EF FF E4 FF EA 00 08 00 0C FF ED
FF FC FF FE
iso.3.6.1.2.1.10.127.1.1.4.1.7.55 = Hex-STRING: 08 01 08 20 00 3E 00 3B FF C8 FF BC 00 3C 00 47
FF C9 FF FD 00 6A 00 4A FF B5 FF 9E 00 82 01 15
00 00 00 00 FC AA FB 19 F3 FF 04 59 FE 57 01 E8
FF 8F 00 53 FF 9D FF D2 00 6C 00 33 FF 59 00 6C
00 16 00 50 FF 7D FF DE 00 5E 00 25 FF E7 00 07
00 64 FF FA FF D5 00 28 00 2E 00 26 FF F8 FF EF
00 1F 00 1E 00 14 FF ED 00 29 FF DB 00 1C 00 24
00 05 00 01 00 03 00 25 00 04 FF EF FF E0 00 2F
FF EF 00 28 00 0E FF E8 00 0A 00 03 00 25 00 0F
00 1A 00 22 00 12 FF F4 00 22 00 2E 00 16 00 1D
FF E1 00 1C
iso.3.6.1.2.1.10.127.1.1.4.1.7.56 = Hex-STRING: 08 01 08 20 00 5D FF 72 FF 8C 00 CB 00 62 FE DD
FF AA 01 65 00 9C FE 0C FE DD 03 1E 01 F1 FA 3A
00 00 00 00 FC D9 FD BD 08 91 F2 DE 01 9A 05 6A
00 A6 FE D3 FE EA FF A8 FF DE FF A1 00 09 01 1B
FF E8 FF E2 00 1E 00 8A FF C3 FF A8 FF ED 00 1D
00 1F FF EB FF E3 FF F9 00 2F 00 0B 00 1C FF FC
00 0A FF F1 FF EF 00 06 00 0B FF F3 00 20 FF EE
00 1E FF E2 FF E1 FF F3 FF F1 FF F2 FF FA 00 06
00 0F 00 06 00 02 00 05 FF F9 00 16 FF F2 FF F2
00 09 FF F2 FF DB 00 03 FF F8 FF E9 00 20 00 1D
00 04 FF E6
iso.3.6.1.2.1.10.127.1.1.4.1.7.57 = Hex-STRING: 08 01 08 20 FF FB 00 5B FF 9D FF BC 00 54 00 5E
FF A2 FF AA 00 5A 00 9E FF 92 FF 10 00 A3 02 34
00 00 00 00 FB 4E FD A0 FB 44 06 F3 02 63 FD BF
FD D2 01 F8 FF AF FE 36 00 75 00 CA 00 73 FF 67
00 20 00 EA FF 9E FF 90 00 0E 00 0E 00 1B FF 86
00 13 00 1F 00 13 FF E5 00 1A 00 2B FF F6 FF E7
00 14 00 02 00 06 00 10 FF F1 FF FF FF E6 00 1E
00 1B 00 1E 00 0B FF E8 00 17 00 00 FF FE 00 01
FF F4 00 17 FF E6 00 20 00 0A FF DB FF E2 FF F8
FF D8 00 08 00 07 00 19 FF DE FF E8 FF DE FF ED
FF DD FF F9
iso.3.6.1.2.1.10.127.1.1.4.1.7.58 = Hex-STRING: 08 01 08 20 00 5D 00 60 FF A9 FF 7D 00 35 00 AA
FF A2 FF 2D 00 77 01 19 FF 74 FD F6 01 8F 04 07
00 00 00 00 FE E5 F8 1E F4 D4 FE F8 FC E8 FE 78
00 D3 03 3A FF 2B FE 65 00 38 01 9E FF F6 FF DB
00 4C FF AC FF D6 FF AB 00 2B FF F7 00 29 00 5D
00 1C FF F7 FF E8 00 23 00 23 FF F2 00 21 FF DE
FF E1 FF CF 00 2D FF EF 00 0F FF E7 00 4B FF F3
FF FE 00 0D FF FF 00 35 00 09 00 12 FF E7 00 08
00 16 FF FD FF ED 00 0E FF F2 00 15 00 0B FF E1
00 1A 00 13 FF D3 00 0D 00 25 FF FF 00 1B 00 1A
FF E3 00 26
iso.3.6.1.2.1.10.127.1.1.4.1.7.59 = Hex-STRING: 08 01 08 20 00 59 FF C1 FF C7 00 48 00 53 FF A2
FF 8E 00 66 00 DC FF 54 FE E9 00 FD 02 2B FE 79
00 00 00 00 FD 0A F8 5A 05 3E F5 75 FF EE 01 2A
00 CD FE AF FF 71 01 5F FF EF 00 66 00 5A 00 AF
FF D5 FF 7A 00 29 00 5B FF E5 00 22 FF FD 00 28
00 2A 00 00 FF D5 00 13 00 22 FF E9 00 1D 00 23
FF CB 00 0A 00 0C FF F4 FF EF FF E0 00 23 FF F5
00 09 FF EA FF CA 00 07 00 2A 00 17 00 00 FF EB
00 03 FF FB 00 03 FF E2 00 21 FF E1 FF EC FF F5
00 1A FF F5 FF EA FF EB 00 25 FF DE 00 0B FF D5
FF F3 FF DF
iso.3.6.1.2.1.10.127.1.1.4.1.7.60 = Hex-STRING: 08 01 08 20 00 61 FF A0 FF A8 00 66 00 64 FF A5
FF 97 00 9F 00 73 FF 18 FF 07 01 5B 02 37 FD 44
00 00 00 00 F5 86 08 EB 08 25 05 88 01 C1 03 27
FB 0C FD 68 00 24 00 28 FF B1 FF 74 FF 80 00 11
FF D7 FF CB FF E5 00 53 00 36 FF D4 FF FC 00 00
FF F6 FF D4 FF CD 00 10 FF D7 FF C5 00 07 FF FB
FF DB FF F5 00 13 FF EB 00 02 00 2E 00 04 00 2C
FF F2 00 11 FF F2 00 1F FF E7 00 18 00 06 00 09
00 01 00 0E FF C5 FF F7 00 0E FF D5 00 0B FF EB
FF EC 00 1F FF F0 00 0E FF E5 00 32 00 27 00 1F
00 06 00 04
iso.3.6.1.2.1.10.127.1.1.4.1.7.61 = Hex-STRING: 08 01 08 20 00 3E 00 4F FF C9 FF A2 00 43 00 61
FF AF FF 67 00 6B 00 D1 FF B3 FE D6 00 C7 02 3F
00 00 00 00 01 83 F7 AA F7 89 F8 FC FF AF FE 45
01 26 01 90 00 0B FF D2 FF EC 00 F5 FF E3 00 40
00 8B 00 31 FF CC FF CB FF D4 00 13 FF D9 FF D5
00 20 00 1A FF E5 FF D0 00 12 00 17 FF F0 00 2E
FF E3 00 0E 00 05 00 06 FF DD FF D1 00 11 FF F1
00 07 FF C9 00 0B FF E4 FF F7 00 13 FF FA FF F3
FF FD FF FB 00 28 00 05 FF F0 FF F3 FF C3 00 0E
00 0F FF DF 00 0E FF FD FF E5 FF E7 FF FD FF D9
FF FB 00 1B
iso.3.6.1.2.1.10.127.1.1.4.1.7.62 = Hex-STRING: 08 01 08 20 00 08 FF AD FF C8 00 5E 00 59 00 03
FF 91 00 3B 00 67 FF A4 FF 9B 00 62 01 C5 FF 9E
00 00 00 00 FE 25 FD DB 00 CF 00 E3 01 A9 02 CE
01 8C FC E8 00 5C 00 91 00 17 FF 9B FF E4 FF F7
00 1C FF A0 FF BC 00 38 00 0B FF EC FF ED 00 06
FF C5 FF DF 00 1E 00 22 00 2A 00 1C FF D7 FF F0
00 05 00 19 00 32 00 08 00 38 00 11 FF FF FF E5
FF D0 FF C3 FF F5 FF D8 00 09 00 08 00 0A FF FC
FF E3 FF ED FF CA FF E4 00 18 FF EA FF DA 00 23
00 34 FF D2 FF EE FF F9 FF D3 FF E7 00 0C FF FE
00 45 FF E6

Msarmento
New information

Hi,

new information on this one coming from the just released PNM document (available at http://www.cablelabs.com/wp-content/uploads/specdocs/CM-GL-PNMP-V03-1607...). I guess it brings some clarification on the issue.

5.6.1.2 Per Interface Equalization
For the original RFI MIB requirements there is a per interface pre-equalization data element that is common for DOCSIS 2.0 and 3.0, the docsIfSigQEqualizationData from the docsIfSignalQualityTable.
For the CM, this data provides equalization information of the downstream receiver at the CM. In the
downstream direction, the CM does not rely on the CMTS to generate equalization coefficients
, but it is solely responsible for this blind equalization process.

Regards,

MS

ByteMe
Thanks for the update

Thanks for letting me know the guidelines were updated! I hadn't noticed, I know what my reading material for the following week now!

caskings (not verified)
Site down?

Hi Msarmento,

Can I get a copy of your program, the website seems to be down currently.

Log in or register to post comments