I'm new to snmp, so maybe my problem is trivial, but I couldn't find
answer to my problem.
For my MIB I created a C code using mib2c, I added a few lines to add a row
to my table to see if everything is OK.
And there is my problem, when i do snmpwalk:
$snmpwalk localhost .1.3.6.1.4.1.7777
I get:
SNMPv2-SMI::enterprises.7777.1.2.1.1.1.25.10.168.192 = IpAddress: 192.168.10.25
SNMPv2-SMI::enterprises.7777.1.2.1.1.2.25.10.168.192 = INTEGER: 12345
SNMPv2-SMI::enterprises.7777.1.2.1.1.3.25.10.168.192 = STRING: "test"
As you can see IpAddress and OID are in different order.
Maybe there is something wrong with my code from witch the row is added.
Please look at my code and table definition:
mgTestTable OBJECT-TYPE
SYNTAX SEQUENCE OF MgTableEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This example table is implemented in the
agent/mibgroup/examples/data_set.c file."
::= { mgTestTables 1 }
mgTableEntry OBJECT-TYPE
SYNTAX MgTableEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A row describing a given working group"
INDEX { rowIp }
::= {mgTestTable 1 }
MgTableEntry ::= SEQUENCE {
rowIp IpAddress,
rowInteger INTEGER,
rowString OCTET STRING,
rowRowStatus RowStatus
}
rowIp OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-create
STATUS current
DESCRIPTION
""
::= { mgTableEntry 1 }
rowInteger OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-create
STATUS current
DESCRIPTION
""
::= { mgTableEntry 2 }
rowString OBJECT-TYPE
SYNTAX OCTET STRING
MAX-ACCESS read-create
STATUS current
DESCRIPTION
""
::= { mgTableEntry 3 }
rowRowStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION "The status of this conceptual row."
::= { mgTableEntry 4 }
And my code:
/*
* Note: this file originally auto-generated by mib2c using
* : mib2c.create-dataset.conf,v 5.4 2004/02/02 19:06:53 rstory Exp $
*/
#include <net-snmp/net-snmp-config.h>
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include "mgTestTable.h"
void init_mgTestTable(void)
{
static oid mgTestTable_oid[] = {1,3,6,1,4,1,7777,1,2,1};
size_t mgTestTable_oid_len = OID_LENGTH(mgTestTable_oid);
netsnmp_table_data_set *table_set;
table_set = netsnmp_create_table_data_set("mgTestTable");
table_set->allow_creation = 1;
netsnmp_table_set_add_indexes(table_set, ASN_IPADDRESS, 0);
netsnmp_table_set_multi_add_default_row(table_set,
COLUMN_ROWIP, ASN_IPADDRESS,
1, NULL, 0,
COLUMN_ROWINTEGER, ASN_INTEGER,
1, NULL, 0,
COLUMN_ROWSTRING, ASN_OCTET_STR,
1, NULL, 0,
COLUMN_ROWROWSTATUS, ASN_INTEGER,
1, NULL, 0,
0);
netsnmp_register_table_data_set(netsnmp_create_handler_registration("mgTestTable",
NULL,
mgTestTable_oid,
mgTestTable_oid_len,
HANDLER_CAN_RWRITE),
table_set, NULL);
char ip_val[4] = { 192, 168, 10, 25 };
int int_val = 12345;
netsnmp_table_row *row = netsnmp_create_table_data_row();
netsnmp_table_row_add_index(row, ASN_IPADDRESS, (char *) ip_val, 4);
netsnmp_set_row_column(row, COLUMN_ROWIP, ASN_IPADDRESS, (char *) ip_val, 4);
netsnmp_set_row_column(row, COLUMN_ROWINTEGER, ASN_INTEGER, (char *)
&int_val, sizeof(int));
netsnmp_set_row_column(row, COLUMN_ROWSTRING, ASN_OCTET_STR, "test",
strlen("test"));
netsnmp_table_dataset_add_row(table_set, row);
}
Could you help me with my problem.
By the way: could you please tell me how to add a row to my table using snmpset
command?
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Net-snmp-users mailing list
[email protected]
Please see the following page to unsubscribe or change other options:
https://lists.sourceforge.net/lists/listinfo/net-snmp-users