php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #81415 Missing some SNMP::walk() values
Submitted: 2021-09-03 15:18 UTC Modified: -
From: miloslav dot hula at gmail dot com Assigned:
Status: Open Package: SNMP related
PHP Version: 8.0.10 OS: Linux
Private report: No CVE-ID: None
 [2021-09-03 15:18 UTC] miloslav dot hula at gmail dot com
Description:
------------
When walking through access points table on Cisco WLC 5508 wifi controller, not all records are in resulting array when met following conditions:

1) corresponding MIBs has to be loaded - so OID-to-name translation is working

If not, returning keys are always in numeric OID format and result is comlete.

2) oid_output_format has to be set to one of: SNMP_OID_OUTPUT_FULL, SNMP_OID_OUTPUT_MODULE, SNMP_OID_OUTPUT_SUFFIX, SNMP_OID_OUTPUT_UCD

With SNMP_OID_OUTPUT_NUMERIC everything works.

3) SNMP::walk() parameter 'suffixAsKey' has to be false (default)

If not, returning array keys are numeric OIDs and result is complete.


This bug is probably related to https://bugs.php.net/bug.php?id=76356


It seems that "named" OIDs with "binary suffix" are translated to duplicit array keys. For examle from list below:

16.189.24.198.140.96    <-- missing
220.165.244.156.215.96  <-- missing
236.225.169.240.152.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'.....`'

Every OID part outside the <32; 126> interval (readble ASCII) is translated to '.' (dot char) so resulting suffix is '.....`' which is duplicit in result.


Following list shows which access points are missing:

OID suffix               Translated OID
---------------------------------------
     12.39.36.147.113.0  AIRESPACE-WIRELESS-MIB::bsnAPName.'.'$.q.'
     12.104.3.57.182.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'.h.9.0'
   12.133.37.158.48.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'..%.0p'
    16.189.24.95.15.128  <-- missing
     16.189.24.95.21.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'..._.0'
    16.189.24.95.140.64  <-- missing
    16.189.24.95.143.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'..._.`'
    16.189.24.95.146.64  <-- missing
   16.189.24.95.147.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'..._..'
    16.189.24.95.153.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'..._.@'
   16.189.24.95.155.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'..._.p'
   16.189.24.198.78.192  AIRESPACE-WIRELESS-MIB::bsnAPName.'....N.'
   16.189.24.198.108.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'....l '
   16.189.24.198.127.16  <-- missing
  16.189.24.198.138.192  <-- missing
   16.189.24.198.140.96  <-- missing
   16.189.24.198.146.48  <-- missing
   16.189.24.198.147.96  <-- missing
  16.189.24.198.149.144  <-- missing
   16.189.24.199.97.160  AIRESPACE-WIRELESS-MIB::bsnAPName.'....a.'
  16.189.24.199.123.144  AIRESPACE-WIRELESS-MIB::bsnAPName.'....{.'
   16.189.24.240.30.176  <-- missing
   16.189.24.240.158.32  <-- missing
   16.189.24.240.159.16  <-- missing
  16.189.24.240.163.128  <-- missing
   16.189.24.241.29.240  <-- missing
    16.189.24.241.37.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'....% '
     24.51.157.198.6.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'.3...@'
   24.51.157.198.19.176  AIRESPACE-WIRELESS-MIB::bsnAPName.'.3....'
    24.51.157.198.63.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'.3..?`'
  24.128.144.213.98.128  AIRESPACE-WIRELESS-MIB::bsnAPName.'....b.'
  28.29.134.233.145.128  <-- missing
    28.232.93.202.209.0  AIRESPACE-WIRELESS-MIB::bsnAPName.'..]...'
   28.232.93.203.54.176  AIRESPACE-WIRELESS-MIB::bsnAPName.'..].6.'
    28.232.93.203.55.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'..].7`'
   28.232.93.203.56.208  AIRESPACE-WIRELESS-MIB::bsnAPName.'..].8.'
   28.232.93.203.59.128  AIRESPACE-WIRELESS-MIB::bsnAPName.'..].;.'
   28.232.93.203.63.144  AIRESPACE-WIRELESS-MIB::bsnAPName.'..].?.'
    32.76.158.15.42.144  AIRESPACE-WIRELESS-MIB::bsnAPName.' L..*.'
     32.76.158.15.43.32  AIRESPACE-WIRELESS-MIB::bsnAPName.' L..+ '
     32.76.158.15.44.48  AIRESPACE-WIRELESS-MIB::bsnAPName.' L..,0'
    32.76.158.15.142.96  AIRESPACE-WIRELESS-MIB::bsnAPName.' L...`'
   32.76.158.15.142.112  AIRESPACE-WIRELESS-MIB::bsnAPName.' L...p'
    44.62.207.161.31.32  AIRESPACE-WIRELESS-MIB::bsnAPName.',>... '
   52.98.136.209.143.80  AIRESPACE-WIRELESS-MIB::bsnAPName.'4b...P'
   52.189.200.145.27.16  <-- missing
  52.189.200.145.37.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'4...%p'
  52.189.200.145.45.160  AIRESPACE-WIRELESS-MIB::bsnAPName.'4...-.'
  52.189.200.145.50.160  <-- missing
  52.189.200.145.50.176  AIRESPACE-WIRELESS-MIB::bsnAPName.'4...2.'
  52.189.200.145.54.144  <-- missing
  52.189.200.145.54.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'4...6.'
   52.189.200.145.55.16  AIRESPACE-WIRELESS-MIB::bsnAPName.'4...7.'
   52.189.200.145.55.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'4...70'
   52.189.200.190.37.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'4...%0'
  52.189.200.190.132.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'4.... '
 52.189.200.190.163.224  <-- missing
 52.189.200.190.165.176  <-- missing
 52.189.200.190.179.160  <-- missing
 52.189.200.190.179.224  <-- missing
  52.189.200.190.181.16  <-- missing
   52.189.200.190.182.0  <-- missing
  52.189.200.190.183.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'4....0'
 52.189.200.190.183.128  <-- missing
 52.189.200.190.183.144  <-- missing
 52.189.200.190.183.160  <-- missing
 52.189.200.190.184.224  <-- missing
   52.189.200.190.186.0  <-- missing
 52.189.200.190.186.160  <-- missing
 52.189.200.190.187.176  <-- missing
 52.189.200.190.187.224  <-- missing
  52.189.200.190.189.80  AIRESPACE-WIRELESS-MIB::bsnAPName.'4....P'
  52.189.200.190.190.16  AIRESPACE-WIRELESS-MIB::bsnAPName.'4.....'
   52.219.253.36.96.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'4..$`.'
  52.219.253.36.103.176  AIRESPACE-WIRELESS-MIB::bsnAPName.'4..$g.'
   52.219.253.37.18.224  AIRESPACE-WIRELESS-MIB::bsnAPName.'4..%..'
    52.219.253.54.81.16  AIRESPACE-WIRELESS-MIB::bsnAPName.'4..6Q.'
    52.219.253.54.86.80  AIRESPACE-WIRELESS-MIB::bsnAPName.'4..6VP'
     52.219.253.55.3.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'4..7.@'
  52.219.253.66.233.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'4..B.p'
  52.219.253.212.36.192  AIRESPACE-WIRELESS-MIB::bsnAPName.'4...$.'
    60.14.35.181.209.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'<.#.. '
   60.14.35.181.212.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'<.#...'
    76.119.109.68.11.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'LwmD. '
   76.119.109.69.52.160  AIRESPACE-WIRELESS-MIB::bsnAPName.'LwmE4.'
      80.6.4.110.54.128  AIRESPACE-WIRELESS-MIB::bsnAPName.'P..n6.'
   84.120.26.50.170.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'Tx.2..'
   84.120.26.100.71.192  AIRESPACE-WIRELESS-MIB::bsnAPName.'Tx.dG.'
    84.120.26.100.93.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'Tx.d]`'
    84.120.26.190.86.80  AIRESPACE-WIRELESS-MIB::bsnAPName.'Tx..VP'
   92.252.102.91.32.208  AIRESPACE-WIRELESS-MIB::bsnAPName.'\.f[ .'
    92.252.102.91.33.16  AIRESPACE-WIRELESS-MIB::bsnAPName.'\.f[!.'
  92.252.102.91.162.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'\.f[..'
   100.216.20.114.79.80  AIRESPACE-WIRELESS-MIB::bsnAPName.'d..rOP'
  100.216.20.114.84.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'d..rTp'
  100.216.20.114.91.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'d..r[.'
 100.216.20.114.145.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'d..r.p'
  100.216.20.114.168.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'d..r.0'
  100.216.20.114.192.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'d..r. '
 100.216.20.114.196.224  AIRESPACE-WIRELESS-MIB::bsnAPName.'d..r..'
  104.153.205.185.51.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'h...30'
 104.153.205.185.76.208  AIRESPACE-WIRELESS-MIB::bsnAPName.'h...L.'
 104.153.205.185.81.144  AIRESPACE-WIRELESS-MIB::bsnAPName.'h...Q.'
   104.153.205.185.85.0  AIRESPACE-WIRELESS-MIB::bsnAPName.'h...U.'
   124.149.243.6.60.176  <-- missing
   124.149.243.6.60.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'|...<.'
    124.149.243.6.62.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'|...> '
   124.149.243.6.62.208  AIRESPACE-WIRELESS-MIB::bsnAPName.'|...>.'
    124.149.243.6.64.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'|...@`'
  124.149.243.6.148.160  <-- missing
  124.149.243.6.148.192  <-- missing
  124.149.243.6.150.160  <-- missing
   124.149.243.6.153.48  <-- missing
  124.149.243.6.170.224  <-- missing
  124.149.243.6.236.144  <-- missing
  124.149.243.6.243.240  <-- missing
   124.149.243.6.250.80  AIRESPACE-WIRELESS-MIB::bsnAPName.'|....P'
  124.149.243.6.253.176  <-- missing
    124.149.243.6.255.0  <-- missing
   124.149.243.6.255.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'|....@'
    124.149.243.7.2.208  <-- missing
     124.149.243.7.3.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'|....0'
     124.149.243.7.4.16  <-- missing
      124.149.243.7.7.0  AIRESPACE-WIRELESS-MIB::bsnAPName.'|.....'
   124.149.243.7.39.192  AIRESPACE-WIRELESS-MIB::bsnAPName.'|...'.'
   136.117.86.30.99.208  AIRESPACE-WIRELESS-MIB::bsnAPName.'.uV.c.'
   136.117.86.30.104.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'.uV.h '
  136.117.86.30.125.176  AIRESPACE-WIRELESS-MIB::bsnAPName.'.uV.}.'
  136.117.86.30.126.224  AIRESPACE-WIRELESS-MIB::bsnAPName.'.uV.~.'
  136.117.86.30.129.176  <-- missing
   136.117.86.30.130.32  <-- missing
  136.117.86.30.130.160  <-- missing
   136.117.86.30.133.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'.uV.. '
  136.117.86.30.133.144  <-- missing
  136.117.86.30.135.192  <-- missing
   136.117.86.30.136.16  AIRESPACE-WIRELESS-MIB::bsnAPName.'.uV...'
   136.117.86.30.136.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'.uV..`'
   164.24.117.88.14.208  AIRESPACE-WIRELESS-MIB::bsnAPName.'..uX..'
    164.24.117.88.17.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'..uX.0'
188.241.242.206.162.144  <-- missing
188.241.242.206.162.192  <-- missing
188.241.242.206.169.224  <-- missing
  188.241.242.207.16.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'.....@'
   192.37.92.78.244.224  AIRESPACE-WIRELESS-MIB::bsnAPName.'.%\N..'
   192.37.92.78.244.224  AIRESPACE-WIRELESS-MIB::bsnAPName.'.%\N..'
   192.37.92.84.245.192  AIRESPACE-WIRELESS-MIB::bsnAPName.'.%\T..'
   196.10.203.136.24.48  <-- missing
  196.10.203.136.86.208  AIRESPACE-WIRELESS-MIB::bsnAPName.'....V.'
  196.10.203.136.99.128  AIRESPACE-WIRELESS-MIB::bsnAPName.'....c.'
  196.10.203.136.106.80  AIRESPACE-WIRELESS-MIB::bsnAPName.'....jP'
 196.10.203.160.131.160  <-- missing
     196.20.60.40.71.16  AIRESPACE-WIRELESS-MIB::bsnAPName.'..<(G.'
    196.20.60.40.82.128  AIRESPACE-WIRELESS-MIB::bsnAPName.'..<(R.'
   196.20.60.40.113.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'..<(qp'
     196.20.60.40.115.0  AIRESPACE-WIRELESS-MIB::bsnAPName.'..<(s.'
   196.20.60.40.131.160  AIRESPACE-WIRELESS-MIB::bsnAPName.'..<(..'
    196.20.60.41.95.208  AIRESPACE-WIRELESS-MIB::bsnAPName.'..<)_.'
    196.20.60.74.55.144  AIRESPACE-WIRELESS-MIB::bsnAPName.'..<J7.'
204.216.193.225.100.128  AIRESPACE-WIRELESS-MIB::bsnAPName.'....d.'
   220.140.55.181.133.0  <-- missing
 220.140.55.188.227.128  <-- missing
 220.140.55.192.158.128  AIRESPACE-WIRELESS-MIB::bsnAPName.'..7...'
  220.140.55.193.110.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'..7.n`'
 220.140.55.211.107.160  AIRESPACE-WIRELESS-MIB::bsnAPName.'..7.k.'
  220.140.55.211.116.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'..7.t '
  220.140.55.212.98.224  AIRESPACE-WIRELESS-MIB::bsnAPName.'..7.b.'
  220.165.244.101.64.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'...e@@'
220.165.244.101.173.144  <-- missing
220.165.244.101.177.240  <-- missing
 220.165.244.101.194.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'...e.@'
220.165.244.101.194.144  <-- missing
 220.165.244.101.195.48  <-- missing
220.165.244.101.195.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'...e.p'
 220.165.244.101.196.16  <-- missing
 220.165.244.101.211.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'...e.`'
 220.165.244.101.219.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'...e. '
220.165.244.101.220.208  <-- missing
 220.165.244.101.221.16  AIRESPACE-WIRELESS-MIB::bsnAPName.'...e..'
 220.165.244.101.221.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'...e.0'
 220.165.244.156.101.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'....e`'
220.165.244.156.109.128  AIRESPACE-WIRELESS-MIB::bsnAPName.'....m.'
 220.165.244.156.113.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'....q0'
220.165.244.156.154.240  <-- missing
 220.165.244.156.210.96  <-- missing
220.165.244.156.213.240  <-- missing
 220.165.244.156.214.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'..... '
220.165.244.156.214.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'.....p'
 220.165.244.156.215.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'.....0'
 220.165.244.156.215.96  <-- missing
 220.165.244.156.216.16  <-- missing
  220.165.244.236.6.224  <-- missing
  220.165.244.236.8.128  <-- missing
 220.165.244.236.29.160  <-- missing
 220.165.244.236.29.192  <-- missing
  220.165.244.236.30.16  <-- missing
 220.165.244.236.30.144  <-- missing
 220.165.244.236.30.176  <-- missing
 220.165.244.236.30.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'......'
 220.165.244.236.32.240  AIRESPACE-WIRELESS-MIB::bsnAPName.'.... .'
   220.165.244.236.33.0  <-- missing
  220.165.244.236.33.16  <-- missing
 220.165.244.236.33.160  AIRESPACE-WIRELESS-MIB::bsnAPName.'....!.'
 220.165.244.236.50.144  <-- missing
 220.165.244.236.50.224  AIRESPACE-WIRELESS-MIB::bsnAPName.'....2.'
  220.165.244.236.56.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'....8@'
  220.235.148.79.47.160  AIRESPACE-WIRELESS-MIB::bsnAPName.'...O/.'
 236.225.169.240.152.96  AIRESPACE-WIRELESS-MIB::bsnAPName.'.....`'
 244.127.53.227.231.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'..5..p'
 244.127.53.227.238.176  AIRESPACE-WIRELESS-MIB::bsnAPName.'..5...'
   248.79.87.227.43.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'.OW.+p'
  248.79.87.227.168.112  AIRESPACE-WIRELESS-MIB::bsnAPName.'.OW..p'
   248.79.87.227.170.48  AIRESPACE-WIRELESS-MIB::bsnAPName.'.OW..0'
   248.79.87.227.174.32  AIRESPACE-WIRELESS-MIB::bsnAPName.'.OW.. '
  248.79.87.227.176.176  AIRESPACE-WIRELESS-MIB::bsnAPName.'.OW...'
   248.79.87.227.210.64  AIRESPACE-WIRELESS-MIB::bsnAPName.'.OW..@'


Test script:
---------------
<?php

foreach (glob('/home/milo/MIB/Cisco-WLC-5508/*.*') as $file) {
    if (is_file($file)) {
        snmp_read_mib((string) $file);
    }
}

$snmp = new SNMP(SNMP::VERSION_2c, 'wlc.hostname', 'public');

# without MIB
$snmp->oid_output_format = SNMP_OID_OUTPUT_FULL;    # OK
$snmp->oid_output_format = SNMP_OID_OUTPUT_NUMERIC; # OK
$snmp->oid_output_format = SNMP_OID_OUTPUT_MODULE;  # OK
$snmp->oid_output_format = SNMP_OID_OUTPUT_SUFFIX;  # OK
$snmp->oid_output_format = SNMP_OID_OUTPUT_UCD;     # OK

# with OID
#$snmp->oid_output_format = SNMP_OID_OUTPUT_FULL;    # FAILED
#$snmp->oid_output_format = SNMP_OID_OUTPUT_NUMERIC; # OK
$snmp->oid_output_format = SNMP_OID_OUTPUT_MODULE;  # FAILED
#$snmp->oid_output_format = SNMP_OID_OUTPUT_SUFFIX;  # FAILED
#$snmp->oid_output_format = SNMP_OID_OUTPUT_UCD;     # FAILED

$t = $snmp->walk('1.3.6.1.4.1.14179.2.2.1.1.3', true);
$f = $snmp->walk('1.3.6.1.4.1.14179.2.2.1.1.3', false);

echo count($t) . " - " . count($f) . "\n";



Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2023-06-21 11:21 UTC] devinro dot dgersr94316 at gmail dot com
That was so amazing. (https://www.myfedloan.us/)github.com
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Nov 21 12:01:29 2024 UTC