[SNMP4J] Unable to send V3 Trap with authoritative engine ID

N, Ravikiran ravikiran.n at hpe.com
Sun Sep 6 18:50:10 CEST 2015


HI All,

I am using the below snippet code for sending the SNMPv3 trap with Authoritative Engine ID. I am getting the exception  as " Message processing model 3 returned error: Unknown security name".
While debugging snmp4j jar I have identified mismatch between Engine ID inserted into the UsmUserTable and EngineId used for retrieval of UsmUser from the UsmUserTable. Please help me through this problem.

My Code for sending V3 trap is as below:

byte[] localEngineIdInBytes = MPv3.createLocalEngineID();
USM usm = new USM(SecurityProtocols.getInstance(),
                    new OctetString(localEngineIdInBytes), 0);  //Local Engine Id


ScopedPDU pdu = new ScopedPDU();
                                                                pdu.setContextName(new OctetString("ContextName"));
                                                                pdu.setContextEngineID(new OctetString(localEngineIdInBytes)); // Context Engine ID
                                                                pdu.setType(ScopedPDU.TRAP);

                                                      long sysUpTime = (System.currentTimeMillis() - start) / 10;

                                                      pdu.add(new VariableBinding(new OID(trapOid + ".7"), new TimeTicks(sysUpTime)));
                                                      pdu.add(new VariableBinding(new OID(trapOid + ".8"), new OID(trapOid)));
                                                                pdu.add(new VariableBinding(new OID(trapOid + ".1"), new OctetString("ssid")));
                                                                pdu.add(new VariableBinding(new OID(trapOid + ".2"), new OctetString("1234")));
                                                                pdu.add(new VariableBinding(new OID(trapOid + ".3"), new OctetString("CRI")));
                                                                pdu.add(new VariableBinding(new OID(trapOid + ".4"), new OctetString("PROCESS")));
                                                                pdu.add(new VariableBinding(new OID(trapOid + ".5"), new OctetString(new Date().toString())));
                                                                pdu.add(new VariableBinding(new OID(trapOid + ".6"), new OctetString("message")));


TransportMapping transport = new DefaultUdpTransportMapping();
Address targetAddress = GenericAddress.parse("udp:127.0.0.1/" + port);

UserTarget comtarget = new UserTarget();
                                                        comtarget.setVersion(SnmpConstants.version3);
                                                        comtarget.setAddress(targetAddress);
                                                        comtarget.setRetries(2);
                                                        comtarget.setTimeout(5000);
                                                        comtarget.setSecurityName(new OctetString("abhi"));
                                                        comtarget.setSecurityModel(3);
                                                        comtarget.setSecurityLevel(SecurityLevel.AUTH_PRIV);




SecurityModels.getInstance().addSecurityModel(usm);

                                                                  SNMP snmp = new Snmp(transport);

                                                        snmp.getUSM().addUser(new OctetString("abhi"), new OctetString(localEngineIdInBytes),),   // Authoratative Engine ID
                                                                                new UsmUser(new OctetString("abhi"), AuthSHA.ID,
                                                                                                                        new OctetString("12345678"), PrivDES.ID,
                                                                                                                        new OctetString("12345678")));

snmp.send(pdu, comtarget);
snmp.close();

Regards,
Ravikiran N




More information about the SNMP4J mailing list