Hi, I am using net-snmp version 5.5. I am trying to send traps using the net-snmp library api's, but I am unsuccessful. But sending the trap using snmptrap command is successful with the same credentials. Below are the steps I have followed.
1. service snmptrapd stop 2. service snmpd stop 3. added the following lines to /etc/snmp/snmpd.conf # VACM configuration entries rwuser wes # USM configuration entries createUser wes MD5 setup_passphrase DES 4. service snmpd start An entry for user wes was created in the /var/-net-snmp/snmpd.conf of the following form : usmUser 1 3 0x80001f8880654ceb30a484dc4c 0x77657300 0x77657300 NULL .1.3.6.1.6.3.10.1.1.2 0x12317a58c0ccd9e67374456e228cdb3c .1.3.6.1.6.3.10.1.2.2 0x12317a58c0ccd9e67374456e228cdb3c "" 5. I added the following entry to /var/net-snmp/snmptrapd.conf createuser -e 0x80001f8880654ceb30a484dc4c wes MD5 setup_passphrase DES 6. /usr/sbin/snmptrapd -f -Lf /tmp/trapLogFile -d 7. snmptrap -v 3 -n "" -a MD5 -A setup_passphrase -l authNoPriv -u wes -e 0x80001f8880654ceb30a484dc4c localhost 0 coldStart.0 Trap is received. 8. I wrote the following code to send the trap using net-snmp api's : netsnmp_session session, *ss; netsnmp_pdu *pdu; oid anOID[MAX_OID_LEN]; size_t anOID_len; init_snmp("snmpdemoapp"); snmp_sess_init( &session ); /* set up defaults */ session.peername = strdup("mella.ind.hp.com:162"); session.version=SNMP_VERSION_3; /* set the SNMPv3 user name */ session.securityName = strdup("wes"); session.securityNameLen = strlen(session.securityName); session.securityEngineIDLen = strlen("0x80001f8880654ceb30a484dc4c"); session.securityEngineID = (u_char*)malloc(session.securityEngineIDLen); memcpy(session.securityEngineID,"0x80001f8880654ceb30a484dc4c",session.securityEngineIDLen); session.securityLevel = SNMP_SEC_LEVEL_AUTHNOPRIV; /* set the authentication method to MD5 */ session.securityAuthProto = usmHMACMD5AuthProtocol; session.securityAuthProtoLen = sizeof(usmHMACMD5AuthProtocol)/sizeof(oid); session.securityAuthKeyLen = USM_AUTH_KU_LEN; /* set the authentication key to a MD5 hashed version of our passphrase "The Net-SNMP Demo Password" (which must be at least 8 characters long) */ if (generate_Ku(session.securityAuthProto, session.securityAuthProtoLen, (u_char *) our_v3_passphrase, strlen(our_v3_passphrase), session.securityAuthKey, &session.securityAuthKeyLen) != SNMPERR_SUCCESS) { snmp_perror(argv[0]); snmp_log(LOG_ERR, "Error generating Ku from authentication pass phrase. \n"); exit(1); } ss = snmp_open(&session); /* establish the session */ if (!ss) { snmp_sess_perror("ack", &session); SOCK_CLEANUP; /* * Create the PDU for the data for our request. * 1) We're going to TRAP the system.sysDescr.0 node. */ pdu = snmp_pdu_create(SNMP_MSG_TRAP2); anOID_len = MAX_OID_LEN; if (!snmp_parse_oid(".1.3.6.1.2.1.1.1.0", anOID, &anOID_len)) { snmp_perror(".1.3.6.1.2.1.1.1.0"); SOCK_CLEANUP; exit(1); } status = snmp_send(ss, pdu); 9. I get the following error in the logfile : snmp_parse: snmp_parse: Parsed SNMPv3 message (secName:wes, secLevel:authNoPriv): USM unknown security name (no such user exists) Parsed SNMPv3 message (secName:wes, secLevel:authNoPriv): USM unknown security name (no such user exists) 10. I debugged net-snmp I saw that the engine id stored in snmpusm.c does not match with the request engineid.The comparison of the engine id at line snmpusm.c:3011 fails. Dump from gdb as below : (gdb) p engineID $11 = (u_char *) 0x9f765b8 "0x80001f8880654ceb30a484dc4c" (gdb) p engineIDLen $12 = 28 (gdb) p ptr->engineIDLen $13 = 13 (gdb) p ptr->engineID $14 = (u_char *) 0x9f8b698 "\200" Am I missing something. Can somebody help me. Rgds, Sahana ------------------------------------------------------------------------------ Centralized Desktop Delivery: Dell and VMware Reference Architecture Simplifying enterprise desktop deployment and management using Dell EqualLogic storage and VMware View: A highly scalable, end-to-end client virtualization framework. Read more! http://p.sf.net/sfu/dell-eql-dev2dev _______________________________________________ Net-snmp-users mailing list Net-snmp-users@lists.sourceforge.net Please see the following page to unsubscribe or change other options: https://lists.sourceforge.net/lists/listinfo/net-snmp-users