Author: adrian.chadd
Date: Tue Apr 28 06:03:25 2009
New Revision: 14006

Modified:
    branches/LUSCA_HEAD/src/snmp_core.c

Log:
Merge  r13932:13939 from /branches/LUSCA_HEAD_module



Modified: branches/LUSCA_HEAD/src/snmp_core.c
==============================================================================
--- branches/LUSCA_HEAD/src/snmp_core.c (original)
+++ branches/LUSCA_HEAD/src/snmp_core.c Tue Apr 28 06:03:25 2009
@@ -54,6 +54,7 @@
  mib_tree_entry *mib_tree_head;
  mib_tree_entry *mib_tree_last;

+static mib_tree_entry * snmpAddNodeStr(const char *base_str, int o,  
oid_ParseFn * parsefunction, instance_Fn * instancefunction);
  #if STDC_HEADERS
  static mib_tree_entry *snmpAddNode(oid * name, int len, oid_ParseFn *  
parsefunction, instance_Fn * instancefunction, int children,...);
  static oid *snmpCreateOid(int length,...);
@@ -61,6 +62,8 @@
  static mib_tree_entry *snmpAddNode();
  static oid *snmpCreateOid();
  #endif
+mib_tree_entry * snmpLookupNodeStr(mib_tree_entry *entry, const char *str);
+int snmpCreateOidFromStr(const char *str, oid **name, int *nl);
  extern void (*snmplib_debug_hook) (int, char *);
  static oid *static_Inst(oid * name, snint * len, mib_tree_entry * current,  
oid_ParseFn ** Fn);
  static oid *time_Inst(oid * name, snint * len, mib_tree_entry * current,  
oid_ParseFn ** Fn);
@@ -91,297 +94,194 @@
  void
  snmpInit(void)
  {
+    mib_tree_entry * n, *m2;
+
      debug(49, 5) ("snmpInit: Called.\n");

      debug(49, 5) ("snmpInit: Building SNMP mib tree structure\n");

      snmplib_debug_hook = snmpSnmplibDebug;

-    mib_tree_head = snmpAddNode(snmpCreateOid(1, 1),
-       1, NULL, NULL, 1,
-       snmpAddNode(snmpCreateOid(2, 1, 3),
-           2, NULL, NULL, 1,
-           snmpAddNode(snmpCreateOid(3, 1, 3, 6),
-               3, NULL, NULL, 1,
-               snmpAddNode(snmpCreateOid(4, 1, 3, 6, 1),
-                   4, NULL, NULL, 1,
-                   snmpAddNode(snmpCreateOid(5, 1, 3, 6, 1, 4),
-                       5, NULL, NULL, 1,
-                       snmpAddNode(snmpCreateOid(6, 1, 3, 6, 1, 4, 1),
-                           6, NULL, NULL, 1,
-                           snmpAddNode(snmpCreateOid(7, 1, 3, 6, 1, 4, 1, 
3495),
-                               7, NULL, NULL, 1,
-                               snmpAddNode(snmpCreateOid(LEN_SQUIDMIB, 
SQUIDMIB),
-                                   8, NULL, NULL, 5,
-                                   snmpAddNode(snmpCreateOid(LEN_SQ_SYS, 
SQ_SYS),
-                                       LEN_SQ_SYS, NULL, NULL, 3,
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_SYS, SYSVMSIZ),
-                                           LEN_SYS, snmp_sysFn, static_Inst, 
0),
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_SYS, SYSSTOR),
-                                           LEN_SYS, snmp_sysFn, static_Inst, 
0),
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_SYS, SYS_UPTIME),
-                                           LEN_SYS, snmp_sysFn, static_Inst, 
0)),
-                                   snmpAddNode(snmpCreateOid(LEN_SQ_CONF, 
SQ_CONF),
-                                       LEN_SQ_CONF, NULL, NULL, 6,
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_CONF, CONF_ADMIN),
-                                           LEN_SYS, snmp_confFn, static_Inst, 
0),
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_CONF, CONF_VERSION),
-                                           LEN_SYS, snmp_confFn, static_Inst, 
0),
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_CONF, CONF_VERSION_ID),
-                                           LEN_SYS, snmp_confFn, static_Inst, 
0),
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_CONF, CONF_LOG_FAC),
-                                           LEN_SYS, snmp_confFn, static_Inst, 
0),
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_CONF, CONF_STORAGE),
-                                           LEN_SYS, NULL, NULL, 4,
-                                           
snmpAddNode(snmpCreateOid(LEN_CONF_ST, SQ_CONF, CONF_STORAGE,  
CONF_ST_MMAXSZ),
-                                               LEN_CONF_ST, snmp_confFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_CONF_ST, SQ_CONF, CONF_STORAGE,  
CONF_ST_SWMAXSZ),
-                                               LEN_CONF_ST, snmp_confFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_CONF_ST, SQ_CONF, CONF_STORAGE,  
CONF_ST_SWHIWM),
-                                               LEN_CONF_ST, snmp_confFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_CONF_ST, SQ_CONF, CONF_STORAGE,  
CONF_ST_SWLOWM),
-                                               LEN_CONF_ST, snmp_confFn, 
static_Inst, 0)),
-                                       snmpAddNode(snmpCreateOid(LEN_SYS, 
SQ_CONF, CONF_UNIQNAME),
-                                           LEN_SYS, snmp_confFn, static_Inst, 
0)),
-                                   snmpAddNode(snmpCreateOid(LEN_SQ_PRF, 
SQ_PRF),
-                                       LEN_SQ_PRF, NULL, NULL, 2,
-                                       snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 
1, SQ_PRF, PERF_SYS),
-                                           LEN_SQ_PRF + 1, NULL, NULL, 13,
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 1),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 2),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 3),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 4),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 5),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 6),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 7),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 8),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 9),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 10),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 11),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 12),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_SYS, 13),
-                                               LEN_SQ_PRF + 2, snmp_prfSysFn, 
static_Inst, 0)),
-                                       snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 
1, SQ_PRF, PERF_PROTO),
-                                           LEN_SQ_PRF + 1, NULL, NULL, 2,
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_PROTO, 1),
-                                               LEN_SQ_PRF + 2, NULL, NULL, 15,
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 1),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 2),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 3),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 4),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 5),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 6),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 7),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 8),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 9),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 10),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 11),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 12),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 13),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 14),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 1, 15),
-                                                   LEN_SQ_PRF + 3, 
snmp_prfProtoFn, static_Inst, 0)),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 2, SQ_PRF, PERF_PROTO, 2),
-                                               LEN_SQ_PRF + 2, NULL, NULL, 1,
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 3, SQ_PRF, PERF_PROTO, 2, 1),
-                                                   LEN_SQ_PRF + 3, NULL, NULL, 
11,
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 1),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 2),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 3),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 4),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 5),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 6),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 7),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 8),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 9),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 10),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0),
-                                                   
snmpAddNode(snmpCreateOid(LEN_SQ_PRF + 4, SQ_PRF, PERF_PROTO, 2,  
1, 11),
-                                                       LEN_SQ_PRF + 4, 
snmp_prfProtoFn, time_Inst, 0))))),
-                                   snmpAddNode(snmpCreateOid(LEN_SQ_NET, 
SQ_NET),
-                                       LEN_SQ_NET, NULL, NULL, 3,
-                                       snmpAddNode(snmpCreateOid(LEN_SQ_NET + 
1, SQ_NET, NET_IP_CACHE),
-                                           LEN_SQ_NET + 1, NULL, NULL, 8,
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE,  
IP_ENT),
-                                               LEN_SQ_NET + 2, snmp_netIpFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE,  
IP_REQ),
-                                               LEN_SQ_NET + 2, snmp_netIpFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE,  
IP_HITS),
-                                               LEN_SQ_NET + 2, snmp_netIpFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE,  
IP_PENDHIT),
-                                               LEN_SQ_NET + 2, snmp_netIpFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE,  
IP_NEGHIT),
-                                               LEN_SQ_NET + 2, snmp_netIpFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE,  
IP_MISS),
-                                               LEN_SQ_NET + 2, snmp_netIpFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE,  
IP_GHBN),
-                                               LEN_SQ_NET + 2, snmp_netIpFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_IP_CACHE,  
IP_LOC),
-                                               LEN_SQ_NET + 2, snmp_netIpFn, 
static_Inst, 0)),
-                                       snmpAddNode(snmpCreateOid(LEN_SQ_NET + 
1, SQ_NET, NET_FQDN_CACHE),
-                                           LEN_SQ_NET + 1, NULL, NULL, 7,
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE,  
FQDN_ENT),
-                                               LEN_SQ_NET + 2, snmp_netFqdnFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE,  
FQDN_REQ),
-                                               LEN_SQ_NET + 2, snmp_netFqdnFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE,  
FQDN_HITS),
-                                               LEN_SQ_NET + 2, snmp_netFqdnFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE,  
FQDN_PENDHIT),
-                                               LEN_SQ_NET + 2, snmp_netFqdnFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE,  
FQDN_NEGHIT),
-                                               LEN_SQ_NET + 2, snmp_netFqdnFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE,  
FQDN_MISS),
-                                               LEN_SQ_NET + 2, snmp_netFqdnFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_FQDN_CACHE,  
FQDN_GHBN),
-                                               LEN_SQ_NET + 2, snmp_netFqdnFn, 
static_Inst, 0)),
-                                       snmpAddNode(snmpCreateOid(LEN_SQ_NET + 
1, SQ_NET, NET_DNS_CACHE),
-                                           LEN_SQ_NET + 1, NULL, NULL, 3,
+       /*
+        * This following bit of evil is to get the final node in the "squid" 
mib
+        * without having a "search" function. A search function should be 
written
+        * to make this and the other code much less evil.
+        */
+       mib_tree_head = snmpAddNode(snmpCreateOid(1, 1), 1, NULL, NULL, 0);
+       assert(mib_tree_head);
+       debug(49, 5) ("snmpInit: root is %p\n", mib_tree_head);
+       snmpAddNodeStr("1", 3, NULL, NULL);
+
+       snmpAddNodeStr("1.3", 6, NULL, NULL);
+       snmpAddNodeStr("1.3.6", 1, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1", 4, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4", 1, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1", 3495, NULL, NULL);
+       m2 = snmpAddNodeStr("1.3.6.1.4.1.3495", 1, NULL, NULL);
+
+       n = snmpLookupNodeStr(NULL, "1.3.6.1.4.1.3495.1");
+       assert(m2 == n);
+
+       /* SQ_SYS - 1.3.6.1.4.1.3495.1.1 */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1", 1, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.1", 1, snmp_sysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.1", 2, snmp_sysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.1", 3, snmp_sysFn, static_Inst);
+
+       /* SQ_CONF - 1.3.6.1.4.1.3495.1.2 */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1", 2, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2", CONF_ADMIN, snmp_confFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2", CONF_VERSION, snmp_confFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2", CONF_VERSION_ID, snmp_confFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2", CONF_LOG_FAC, snmp_confFn,  
static_Inst);
+
+       /* SQ_CONF + CONF_STORAGE - 1.3.6.1.4.1.3495.1.5 */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2", CONF_STORAGE, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", 1, snmp_confFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", 2, snmp_confFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", 3, snmp_confFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2.5", 4, snmp_confFn, static_Inst);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.2", CONF_UNIQNAME, snmp_confFn,  
static_Inst);
+
+       /* SQ_PRF - 1.3.6.1.4.1.3495.1.3 */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1", 3, NULL, NULL);                    
/* SQ_PRF */
+
+       /* PERF_SYS - 1.3.6.1.4.1.3495.1.3.1 */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3", PERF_SYS, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_PF, snmp_prfSysFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_NUMR, snmp_prfSysFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_MEMUSAGE,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_CPUTIME, 
snmp_prfSysFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_CPUUSAGE,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_MAXRESSZ,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_NUMOBJCNT,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_CURLRUEXP,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_CURUNLREQ,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_CURUNUSED_FD,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_CURRESERVED_FD,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_CURUSED_FD,  
snmp_prfSysFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.1", PERF_SYS_CURMAX_FD,  
snmp_prfSysFn, static_Inst);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3", PERF_PROTO, NULL, NULL);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2", PERF_PROTOSTAT_AGGR, NULL, 
NULL);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", 
PERF_PROTOSTAT_AGGR_HTTP_REQ,  
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", 
PERF_PROTOSTAT_AGGR_HTTP_HITS,  
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1",  
PERF_PROTOSTAT_AGGR_HTTP_ERRORS, snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1",  
PERF_PROTOSTAT_AGGR_HTTP_KBYTES_IN, snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1",  
PERF_PROTOSTAT_AGGR_HTTP_KBYTES_OUT, snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", PERF_PROTOSTAT_AGGR_ICP_S,  
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", PERF_PROTOSTAT_AGGR_ICP_R,  
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", PERF_PROTOSTAT_AGGR_ICP_SKB, 
 
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", PERF_PROTOSTAT_AGGR_ICP_RKB, 
 
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", PERF_PROTOSTAT_AGGR_REQ,  
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", PERF_PROTOSTAT_AGGR_ERRORS,  
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", 
PERF_PROTOSTAT_AGGR_KBYTES_IN,  
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1",  
PERF_PROTOSTAT_AGGR_KBYTES_OUT, snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", PERF_PROTOSTAT_AGGR_CURSWAP, 
 
snmp_prfProtoFn, static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.1", PERF_PROTOSTAT_AGGR_CLIENTS, 
 
snmp_prfProtoFn, static_Inst);
+
+       /* Note this is time-series rather than 'static' */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2", PERF_PROTOSTAT_MEDIAN, NULL,  
NULL);
+       /* Not sure what this is.. cacheMedianSvcEntry ? */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2", 1, NULL, NULL);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_TIME,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_HTTP_ALL,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_HTTP_MISS,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_HTTP_NM,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_HTTP_HIT,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_ICP_QUERY,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_ICP_REPLY,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_DNS,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_RHR,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_BHR,  
snmp_prfProtoFn, time_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.3.2.2.1", PERF_MEDIAN_HTTP_NH,  
snmp_prfProtoFn, time_Inst);
+
+       /* SQ_NET - 1.3.6.1.4.1.3495.1.4 */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.", 4, NULL, NULL);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4", NET_IP_CACHE, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.1", IP_ENT, snmp_netIpFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.1", IP_REQ, snmp_netIpFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.1", IP_HITS, snmp_netIpFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.1", IP_PENDHIT, snmp_netIpFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.1", IP_NEGHIT, snmp_netIpFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.1", IP_MISS, snmp_netIpFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.1", IP_GHBN, snmp_netIpFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.1", IP_LOC, snmp_netIpFn,  
static_Inst);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4", NET_FQDN_CACHE, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.2", FQDN_ENT, snmp_netFqdnFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.2", FQDN_REQ, snmp_netFqdnFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.2", FQDN_HITS, snmp_netFqdnFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.2", FQDN_PENDHIT, snmp_netFqdnFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.2", FQDN_NEGHIT, snmp_netFqdnFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.2", FQDN_MISS, snmp_netFqdnFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.2", FQDN_GHBN, snmp_netFqdnFn,  
static_Inst);
+
  #if USE_DNSSERVERS
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE,  
DNS_REQ),
-                                               LEN_SQ_NET + 2, snmp_netDnsFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE,  
DNS_REP),
-                                               LEN_SQ_NET + 2, snmp_netDnsFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE,  
DNS_SERVERS),
-                                               LEN_SQ_NET + 2, snmp_netDnsFn, 
static_Inst, 0))),
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4", NET_DNS_CACHE, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.3", DNS_REQ, snmp_netDnsFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.3", DNS_REP, snmp_netDnsFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.3", DNS_SERVERS, snmp_netDnsFn,  
static_Inst);
  #else
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE,  
DNS_REQ),
-                                               LEN_SQ_NET + 2, snmp_netIdnsFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE,  
DNS_REP),
-                                               LEN_SQ_NET + 2, snmp_netIdnsFn, 
static_Inst, 0),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_NET + 2, SQ_NET, NET_DNS_CACHE,  
DNS_SERVERS),
-                                               LEN_SQ_NET + 2, snmp_netIdnsFn, 
static_Inst, 0))),
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.3", DNS_REQ, snmp_netIdnsFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.3", DNS_REP, snmp_netIdnsFn,  
static_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.4.3", DNS_SERVERS, snmp_netIdnsFn,  
static_Inst);
  #endif
-                                   snmpAddNode(snmpCreateOid(LEN_SQ_MESH, 
SQ_MESH),
-                                       LEN_SQ_MESH, NULL, NULL, 2,
-                                       snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 
1, SQ_MESH, 1),
-                                           LEN_SQ_MESH + 1, NULL, NULL, 2,
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 2, SQ_MESH, 1, 1),
-                                               LEN_SQ_MESH + 2, NULL, NULL, 14,
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 1),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 2),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 3),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 4),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 5),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 6),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 7),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 8),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 9),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 10),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 11),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 12),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 13),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 1, 15),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_Inst, 0)),
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 2, SQ_MESH, 1, 2),
-                                               LEN_SQ_MESH + 2, NULL, NULL, 15,
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 1),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 2),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 3),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 4),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 5),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 6),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 7),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 8),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 9),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 10),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 11),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 12),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 13),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 14),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 1, 2, 15),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshPtblFn, peer_InstIndex, 0))),
-                                       snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 
1, SQ_MESH, 2),
-                                           LEN_SQ_MESH + 1, NULL, NULL, 1,
-                                           
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 2, SQ_MESH, 2, 1),
-                                               LEN_SQ_MESH + 2, NULL, NULL, 9,
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 1),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 2),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 3),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 4),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 5),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 6),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 7),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0),
-                                               
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH, 2, 1, 8),
-                                                   LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0),
-                                               (mib_tree_last = 
snmpAddNode(snmpCreateOid(LEN_SQ_MESH + 3, SQ_MESH,  
2, 1, 9),
-                                                       LEN_SQ_MESH + 3, 
snmp_meshCtblFn, client_Inst, 0)))))
-                               )
-                           )
-                       )
-                   )
-               )
-           )
-       )
-       );
+
+       /* SQ_MESH - 1.3.6.1.4.1.3495.1.5 */
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1", 5, NULL, NULL);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5", 1, NULL, NULL);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1", 1, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 1, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 2, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 3, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 4, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 5, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 6, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 7, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 8, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 9, snmp_meshPtblFn, 
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 10, snmp_meshPtblFn,  
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 11, snmp_meshPtblFn,  
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 12, snmp_meshPtblFn,  
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 13, snmp_meshPtblFn,  
peer_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.1", 15, snmp_meshPtblFn,  
peer_Inst);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1", 2, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 1, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 2, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 3, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 4, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 5, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 6, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 7, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 8, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 9, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 10, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 11, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 12, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 13, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 14, snmp_meshPtblFn,  
peer_InstIndex);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.1.2", 15, snmp_meshPtblFn,  
peer_InstIndex);
+
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5", 2, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2", 1, NULL, NULL);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 1, snmp_meshCtblFn,  
client_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 2, snmp_meshCtblFn,  
client_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 3, snmp_meshCtblFn,  
client_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 4, snmp_meshCtblFn,  
client_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 5, snmp_meshCtblFn,  
client_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 6, snmp_meshCtblFn,  
client_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 7, snmp_meshCtblFn,  
client_Inst);
+       snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 8, snmp_meshCtblFn,  
client_Inst);
+       mib_tree_last = snmpAddNodeStr("1.3.6.1.4.1.3495.1.5.2.1", 9,  
snmp_meshCtblFn, client_Inst);

      debug(49, 9) ("snmpInit: Completed SNMP mib tree structure\n");
  }
@@ -988,6 +888,114 @@
        count++;
      }
      return (next);
+}
+
+void
+snmpAddNodeChild(mib_tree_entry *entry, mib_tree_entry *child)
+{
+       debug (49, 5) ("snmpAddNodeChild: assigning %p to parent %p\n", child,  
entry);
+        entry->leaves = xrealloc(entry->leaves, sizeof(mib_tree_entry *) *  
(entry->children + 1));
+       entry->leaves[entry->children] = child;
+       entry->leaves[entry->children]->parent = entry;
+       entry->children++;
+}
+
+mib_tree_entry *
+snmpLookupNodeStr(mib_tree_entry *root, const char *str)
+{
+       oid *name;
+       int namelen;
+       int r, i;
+       mib_tree_entry *e;
+
+       if (root)
+               e = root;
+       else
+               e = mib_tree_head;
+
+       if (! snmpCreateOidFromStr(str, &name, &namelen))
+               return NULL;
+
+       /* I wish there were some kind of sensible existing tree traversal
+        * routine to use. I'll worry about that later */
+       if (namelen <= 1) {
+               xfree(name);
+               return e;       /* XXX it should only be this? */
+       }
+
+       r = 1;
+       while(r <= namelen) {
+               /* Find the child node which matches this */
+               for (i = 0; i < e->children && e->leaves[i]->name[r] != 
name[r]; i++)
+                       ;
+               /* Are we pointing to that node? */
+               if (i >= e->children)
+                       break;
+               assert(e->leaves[i]->name[r] == name[r]);
+
+               /* Skip to that node! */
+               e = e->leaves[i];
+               r++;
+       }
+
+       xfree(name);
+       return e;
+}
+
+
+int
+snmpCreateOidFromStr(const char *str, oid **name, int *nl)
+{
+       char *delim = ".";
+       char *s;
+       char *p;
+
+       *name = NULL;
+       *nl = 0;
+       s = xstrdup(str);
+
+       /* Parse the OID string into oid bits */
+       while ( (p = strsep(&s, delim)) != NULL) {
+               *name = xrealloc(*name, sizeof(oid) * ((*nl) + 1));
+               (*name)[*nl] = atoi(p);
+               (*nl)++;
+       }
+
+       xfree(s);
+       return 1;
+}
+
+/*
+ * Create an entry. Return a pointer to the newly created node, or NULL
+ * on failure.
+ */
+static mib_tree_entry *
+snmpAddNodeStr(const char *base_str, int o, oid_ParseFn * parsefunction,  
instance_Fn * instancefunction)
+{
+       mib_tree_entry *m, *b;
+       oid *n;
+       int nl;
+       char s[1024];
+
+       /* Find base node */
+       b = snmpLookupNodeStr(mib_tree_head, base_str);
+       if (! b)
+               return NULL;
+       debug(49, 5) ("snmpAddNodeStr: %s: -> %p\n", base_str, b);
+
+       /* Create OID string for new entry */
+       snprintf(s, 1024, "%s.%d", base_str, o);
+       if (! snmpCreateOidFromStr(s, &n, &nl))
+               return NULL;
+
+       /* Create a node */
+       m = snmpAddNode(n, nl, parsefunction, instancefunction, 0);
+
+       /* Link it into the existing tree */
+       snmpAddNodeChild(b, m);
+
+       /* Return the node */
+       return m;
  }

  /*

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"lusca-commit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/lusca-commit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to