Bandwidth utilization monitoring via SNMP | docsis.org

You are here

Bandwidth utilization monitoring via SNMP

7 posts / 0 new
Last post
wdarins
Bandwidth utilization monitoring via SNMP

Hi, I have a problem to get current downstream and upstream cable modem(D-Link DCM-740) bandwidth usage via snmp. According to cisco tutorial http://www.cisco.com/c/en/us/support/docs/ip/simple-network-management-p...
is not working because CM's speed is 300Mbps and the measure interval is 5 minutes. In that time counter 32 wraps 2 or more times. So I decided to use Counter 64 OID to get the speed, the only thing I don't understand wich port should I snmpget because I have alot of ports:
ifDescr.1 - Ethernet CPE Interface
ifDescr.2 - RF MAC Interface
ifDescr.3 - RF Downstream Interface 1
ifDescr.4 - RF Upstream Interface 1
ifDescr.5 - Software Loopback
ifDescr.16 - PacketCable Embedded Interface
ifDescr.32 - WiFi CPE Interface BCM43228 P403
ifDescr.48 - RF Downstream Interface 2
ifDescr.49 - RF Downstream Interface 3
ifDescr.50 - RF Downstream Interface 4
ifDescr.51 - RF Downstream Interface 5
ifDescr.52 - RF Downstream Interface 6
ifDescr.53 - RF Downstream Interface 7
ifDescr.54 - RF Downstream Interface 8
ifDescr.80 - RF Upstream Interface 2
ifDescr.81 - RF Upstream Interface 3
ifDescr.10000 - Radio Interface(0)

The OID's used to calculate:
1.3.6.1.2.1.31.1.1.1.6.3 - downstream
1.3.6.1.2.1.31.1.1.1.10.4 - upstream

if I snmpget those oids with an interval for 1 second I get the following datas:
First measure: 821984876791
Second measure: 823215319954
With this formula: ( 823215319954 - 821984876791 ) * 8 / 1024 = 9612837,21 kbps???
So, any help would be appreciated! Thanks!

oss-iris
Broadcom fault

normally you should add all downstreams and upstreams to retrieve upload and download traffic of your modem.
Problem with broadcom is that these snmp objects for downstreams in DOCSIS 3 mode seem to count other traffic? not addressed to the modem.
I hope one day they will consider that they are wrong.
From modem side I didn't find other method.
But I understand that you use CISCO CMTS and I know that they have private MIBs that count (64) download of each connected modem.

good luck

wdarins
Oh thanks, I understand that

Oh thanks, I understand that I should use CMTS based monitoring, I use Arris C3 and C4 and Cisco too, so my question is how can I get those counters maybe you have some OID's that will return me that? Thank you for your answer!

oss-iris
OID download per CMTS

for Arris C3 no OID for download
for Arris C4 I don't know
for Cisco UBR10k it exists for sure in Cisco private MIBs but you have to retrieve it because I don't remember which one (load MIBs, snmpwalk, look for download)
for Cisco UBR7200 I am not sure about 64counters (32 OK)

AFN
I would recommend dumping the

I would recommend dumping the data into an RRD file. This will allow you to manipulate it a lot easier. You can create graphs and calculate total bandwidth and 95%.
These are the OIDs that I walk for bandwidth:
$cmIfInOctets = '1.3.6.1.2.1.2.2.1.10';
$cmIfOutOctets = '1.3.6.1.2.1.2.2.1.16';

I grab the interface description from here:
$cmIfDesc = '1.3.6.1.2.1.2.2.1.3';

Here's a sample of the output:
.1.3.6.1.2.1.2.2.1.10.1 = Counter32: 951653611
.1.3.6.1.2.1.2.2.1.10.2 = Counter32: 1022337497
.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 2919314387
.1.3.6.1.2.1.2.2.1.10.4 = Counter32: 0
.1.3.6.1.2.1.2.2.1.10.48 = Counter32: 865044235
.1.3.6.1.2.1.2.2.1.10.49 = Counter32: 752701789
.1.3.6.1.2.1.2.2.1.10.50 = Counter32: 776438166
.1.3.6.1.2.1.2.2.1.10.51 = Counter32: 860433083
.1.3.6.1.2.1.2.2.1.10.52 = Counter32: 614143295

And:
.1.3.6.1.2.1.2.2.1.3.1 = INTEGER: ethernetCsmacd(6)
.1.3.6.1.2.1.2.2.1.3.2 = INTEGER: docsCableMaclayer(127)
.1.3.6.1.2.1.2.2.1.3.3 = INTEGER: docsCableDownstream(128)
.1.3.6.1.2.1.2.2.1.3.4 = INTEGER: docsCableUpstream(129)
.1.3.6.1.2.1.2.2.1.3.48 = INTEGER: docsCableDownstream(128)
.1.3.6.1.2.1.2.2.1.3.49 = INTEGER: docsCableDownstream(128)
.1.3.6.1.2.1.2.2.1.3.50 = INTEGER: docsCableDownstream(128)
.1.3.6.1.2.1.2.2.1.3.51 = INTEGER: docsCableDownstream(128)
.1.3.6.1.2.1.2.2.1.3.52 = INTEGER: docsCableDownstream(128)

To make my programs easier, I calculate using ethernetCsmacd, which means you would use:
.1.3.6.1.2.1.2.2.1.10.1
.1.3.6.1.2.1.2.2.1.16.1

The number of downstream channels will vary modem to modem based upon how many channels it bonds to.

wdarins
Interfaces:

Interfaces:
ifDescr ifIndex
"eRouter Embedded Interface" 1
"RF MAC Interface" 2
"RF Downstream Interface 1" 3
"RF Upstream Interface 1" 4
"Software Loopback" 5
"Ethernet CPE Interface" 6
"Ethernet CPE Interface" 7
"Ethernet CPE Interface" 8
"Ethernet CPE Interface" 9
"PacketCable Embedded Interface" 16
"WiFi CPE Interface BCM43227 P402" 32
"WiFi CPE Interface BCM43227 P402" 33
"WiFi CPE Interface BCM43227 P402" 34
"WiFi CPE Interface BCM43227 P402" 35
"WiFi CPE Interface BCM43227 P402" 36
"WiFi CPE Interface BCM43227 P402" 37
"WiFi CPE Interface BCM43227 P402" 38
"WiFi CPE Interface BCM43227 P402" 39
"RF Downstream Interface 2" 48
"RF Downstream Interface 3" 49
"RF Downstream Interface 4" 50
"RF Downstream Interface 5" 51
"RF Downstream Interface 6" 52
"RF Downstream Interface 7" 53
"RF Downstream Interface 8" 54
"RF Upstream Interface 2" 80
"RF Upstream Interface 3" 81
"RF Upstream Interface 4" 82

ifInOctets ifIndex
65825413 1
4135403685 2
1556580048 3
0 4
0 5
65926922 6
0 7
0 8
0 9
430208 16
78 32
0 33
0 34
0 35
0 36
0 37
0 38
0 39
1790967286 48
2116616470 49
1027380491 50
3530113334 51
3120797196 52
2433635864 53
997201511 54
0 80
0 81
0 82

The problem is that for ifInOctets the value is not rising up.

tlsarles
Formula

I am questioning your formula. Since I am working on something similar, I would like to see if anyone sees a problem with the way I am doing this. Since the OID measures octets/bytes, and we want bits, I would start with :
totalBits = (2ndSample - 1stSample) * 8
Since we want to measure in seconds, we would do something like :
seconds = 5 *60 // 5 Minutes * 60 seconds = 300 sec
So bits per second would then be:
totalBits/seconds.

So....
( 823215319954 - 821984876791 ) * 8 / 300 = 32811817.68 or 32,812kbps

Or.... am I missing something? Why are you dividing by 1024?

Log in or register to post comments