123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- /* eslint-disable no-unused-vars */
-
- var snmp = require ("../");
- var getopts = require ("getopts");
-
- var options = getopts(process.argv.slice(2));
- var providers;
- var mibDir = '/var/tmp/mibs/';
-
- var counter64 = function (num) {
- var buf = Buffer.alloc (4);
- buf.writeUInt32BE (num);
- return buf;
- };
-
- var snmpOptions = {
- disableAuthorization: options.n,
- port: options.p,
- engineID: options.e,
- debug: options.d
- };
-
- var callback = function (error, data) {
- if ( error ) {
- console.error (error);
- } else {
- console.log (data.pdu.varbinds[0].oid);
- }
- };
-
- var store = snmp.createModuleStore ();
- var agent = snmp.createAgent (snmpOptions, callback);
- var mib = agent.getMib ();
-
- var authorizer = agent.getAuthorizer ();
- authorizer.addCommunity ("public");
-
- // IF-MIB load and providers registration
- store.loadFromFile (mibDir + "IANAifType-MIB.mib");
- store.loadFromFile (mibDir + "IF-MIB.mib");
- providers = store.getProvidersForModule ("IF-MIB");
- mib.registerProviders (providers);
-
- // ifNumber
- // Scalar type - setScalarValue() and getScalarValue() are the entire API for these
- mib.setScalarValue ("ifNumber", 5);
- var ifNumberValue = mib.getScalarValue ("ifNumber", 5);
- // console.log (ifNumberValue);
-
- // ifEntry
- // Simplest table index - a single-column local index
- mib.addTableRow ("ifEntry", [1, "eth0", 6, 1500, 1000, "", 1, 1, 10, 1000, 100, 10, 0, 0, 0, 2000, 200, 20, 0, 0, 5, "0.0"]);
- mib.addTableRow ("ifEntry", [2, "eth1", 6, 1500, 1000, "", 1, 1, 10, 1000, 100, 10, 0, 0, 0, 2000, 200, 20, 0, 0, 5, "0.0"]);
- mib.setTableSingleCell ("ifEntry", 2, [1], "eth2");
- var ifEntryRow1 = mib.getTableRowCells ("ifEntry", [2]);
- // console.log (ifEntryRow1);
-
- // ifXEntry
- // AUGMENTS ifEntry - meaning a single integer foreign key
- mib.addTableRow ("ifXEntry", [1, "eth0", 10, 2, 20, 4, counter64(1000), counter64(100), counter64(50), counter64(20),
- counter64(2000), counter64(200), counter64(100), counter64(40), 1, 1000, 0, 1, "myeth0", 10]);
- var ifXEntryRow1 = mib.getTableRowCells ("ifXEntry", [1]);
- // console.log (ifXEntryRow1);
- var ifXEntryData1 = mib.getTableCells ("ifXEntry", false, false);
- var ifXEntryData2 = mib.getTableCells ("ifXEntry", true, false);
- var ifXEntryData3 = mib.getTableCells ("ifXEntry", false, true);
- var ifXEntryData4 = mib.getTableCells ("ifXEntry", true, true);
- mib.setTableSingleCell ("ifXEntry", 1, [1], "another0");
-
- // ifStackEntry
- // Composite index - two local columns
- mib.addTableRow ("ifStackEntry", [1, 2, 1]);
- mib.addTableRow ("ifStackEntry", [3, 4, 2]);
- //mib.deleteTableRow ("ifStackEntry", [2, 3]);
- // var data = mib.getTableCells ("ifStackEntry");
- var ifStackEntryColumn1 = mib.getTableColumnCells ("ifStackEntry", 3, true);
- var ifStackEntryData1 = mib.getTableCells ("ifStackEntry", false, false);
- var ifStackEntryData2 = mib.getTableCells ("ifStackEntry", true, false);
- var ifStackEntryData3 = mib.getTableCells ("ifStackEntry", false, true);
- var ifStackEntryData4 = mib.getTableCells ("ifStackEntry", true, true);
- var ifStackEntryRow1 = mib.getTableRowCells ("ifStackEntry", [3, 4]);
- var ifStackEntryCell1 = mib.getTableSingleCell ("ifStackEntry", 3, [1, 2]);
-
- // ifRcvAddressEntry
- // Composite index - one foreign integer column, one local string column
- mib.addTableRow ("ifRcvAddressEntry", [1, "24:41:8c:08:87:5c", 1, 6]);
- var ifRcvAddressEntryRow1 = mib.getTableRowCells ("ifRcvAddressEntry", [1, "24:41:8c:08:87:5c"]);
- var ifRcvAddressEntryCell1 = mib.getTableSingleCell ("ifRcvAddressEntry", 3, [1, "24:41:8c:08:87:5c"]);
- var ifRcvAddressEntryData1 = mib.getTableCells ("ifRcvAddressEntry", false, false);
- var ifRcvAddressEntryData2 = mib.getTableCells ("ifRcvAddressEntry", true, false);
- var ifRcvAddressEntryData3 = mib.getTableCells ("ifRcvAddressEntry", false, true);
- var ifRcvAddressEntryData4 = mib.getTableCells ("ifRcvAddressEntry", true, true);
-
- // SNMP-COMMUNITY-MIB
- store.loadFromFile (mibDir + "SNMP-FRAMEWORK-MIB.mib");
- store.loadFromFile (mibDir + "SNMP-TARGET-MIB.mib");
- store.loadFromFile (mibDir + "SNMP-COMMUNITY-MIB.mib");
- providers = store.getProvidersForModule ("SNMP-TARGET-MIB");
- mib.registerProviders (providers);
- providers = store.getProvidersForModule ("SNMP-COMMUNITY-MIB");
- mib.registerProviders (providers);
- mib.addTableRow ("snmpCommunityEntry", ["mark", "public", "publicsec", "80001234", "", "", 1, 1]);
-
- // SNMPv2-MIB - loaded as part of base module load
- // store.loadFromFile (mibDir + "SNMPv2-MIB.mib");
- providers = store.getProvidersForModule ("SNMPv2-MIB");
- mib.registerProviders (providers);
- mib.setScalarValue ("sysDescr", "The most powerful system you can think of");
- mib.setScalarValue ("sysName", "multiplied-by-six");
- mib.addTableRow ("sysOREntry", [1, "1.3.6.1.4.1.47491.42.43.44.45", "I've dreamed up this MIB", 20]);
-
- // agent.getMib ().dumpProviders ();
-
- // mib.dump ();
-
- var modules = store.getModules (true);
- var one = store.getModule ("SNMPv2-MIB");
- var names = store.getModuleNames (true);
-
- // console.log("All modules: ", JSON.stringify(modules, '', 2));
- console.log("Modules: ", names);
- console.log("Single module definition: ", JSON.stringify(one, '', 2));
|