Hello all,

I'm sure this is not a bug in net-snmp per se, but perhaps it's a bug
in an application with an SMUX add-in. My only goal here is to find out
if this is actually a bug or not (I think it is). If so, I'll dig inside
the application to address it.

The BGP4 MIB provides for, among other things, access to a router's BGP
routing table, and this is useful for network management purposes.

This is a snippet of a table, in order, and thne parts after the leading
bgp4PathAttrASPathSegment are a network number, the CIDR /## nbits,
and the IP address of a router. I've added a bit of spacing to make it
easier to read. We never care about the router part, but the Network
and /## both are:

                           Network      /##  Router
.......................... ------------ --- ---------
bgp4PathAttrASPathSegment. 64.158.223.0 .24. 10.1.1.5 = (data)
bgp4PathAttrASPathSegment. 64.159.64.0  .19. 10.1.1.5 = (data)
bgp4PathAttrASPathSegment. 64.160.0.0   .12. 10.1.1.4 = (data) ****
bgp4PathAttrASPathSegment. 64.160.71.0  .24. 10.1.1.4 = (data)
bgp4PathAttrASPathSegment. 64.160.100.0 .23. 10.1.1.4 = (data)
bgp4PathAttrASPathSegment. 64.160.143.0 .24. 10.1.1.4 = (data)
bgp4PathAttrASPathSegment. 64.160.151.0 .24. 10.1.1.4 = (data)
bgp4PathAttrASPathSegment. 64.160.254.0 .24. 10.1.1.4 = (data)
bgp4PathAttrASPathSegment. 64.161.79.0  .24. 10.1.1.4 = (data)
bgp4PathAttrASPathSegment. 64.161.99.0  .24. 10.1.1.4 = (data)
bgp4PathAttrASPathSegment. 64.161.255.0 .24. 10.1.1.5 = (data)

This part is all in order. The line marked **** is the interesting one,
and the entry I seem to have a hard time locating.

I have always believed that when doing a table walk, providing an OID
gets you the first OID *after* the one provided, but I don't know that
this is doing the right thing.

Let's start by walking the leading part:

        $ snmpbulkwalk localhost bgp4PathAttrASPathSegment.64.160
        ?? where is 64.160.0.0 ?
        bgp4PathAttrASPathSegment. 64.160.71.0  .24. 10.1.1.4 = (data)
        bgp4PathAttrASPathSegment. 64.160.100.0 .23. 10.1.1.4 = (data)
        bgp4PathAttrASPathSegment. 64.160.143.0 .24. 10.1.1.4 = (data)
        bgp4PathAttrASPathSegment. 64.160.151.0 .24. 10.1.1.4 = (data)
        bgp4PathAttrASPathSegment. 64.160.254.0 .24. 10.1.1.4 = (data)

It looks like it entirely skips the first entry even though it appears to be
the next one purportedly in line. It seems that I have to fill out zeros of
the IP address *and* fill in the /nbits to get it:

$ snmpbulkwalk localhost bgp4PathAttrASPathSegment.64.160.0
bgp4PathAttrASPathSegment.64.160.0 = No Such Instance currently exists at this 
OID

$ snmpbulkwalk localhost bgp4PathAttrASPathSegment.64.160.0.0
bgp4PathAttrASPathSegment.64.160.0.0 = No Such Instance currently exists at 
this OID

$ snmpbulkwalk localhost bgp4PathAttrASPathSegment.64.160.0.0.0
bgp4PathAttrASPathSegment.64.160.0.0.0 = No Such Instance currently exists at 
this OID

$ snmpbulkwalk localhost bgp4PathAttrASPathSegment.64.160.0.0.12
bgp4PathAttrASPathSegment.64.160.0.0 .12. 10.1.1.4 = (data)

I think that all of these should return at least the first line, maybe more.

I am seeing this behavior in the Quagga BGP daemon, which plugs in as an SMUX
extension to net-snmp. When I make the same queries against the real Juniper
routers, I get the behavior I expect.

Is this a bug? Or is an implementation allowed to do things like this if it
makes internal implementation easier (as this almost certainly does).

Thanks,
Steve

-- 
Stephen J Friedl | Security Consultant |  UNIX Wizard  |   +1 714 544-6561
www.unixwiz.net  | Tustin, Calif. USA  | Microsoft MVP | [EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to