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?
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
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 :-)
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
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
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
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
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
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
Ok, nice work! Your preview version now works with the 3g60's and the cbr8!
Thank you!
ODG
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.
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
I've searched for an ios to run with MC28U and none works
:-( ubr7200-ik9su2-mz.123-23.BC7.bin
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...
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
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.
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.
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
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
Thanks for letting me know the guidelines were updated! I hadn't noticed, I know what my reading material for the following week now!
Hi Msarmento,
Can I get a copy of your program, the website seems to be down currently.