Thanks for the reply. So, what I observe when I look at the trap internals in wireshark is that the enterprise OID is 1 ID less than what I send in the notification OID which is more than what the actual enterprise ID should be.
Also, should the instance OID for a trap packet instance be prefixed by the notification OID? Could the instance suffix be anything, eg a timestamp converted into a string of IDs? Could you please point out the places in the code below that are incorrect. thanks, Pradip On Fri, Jan 8, 2010 at 1:52 PM, Frank Fock <[email protected]> wrote: > > Hi Pradip, > > The notification OID is the OID of the NOTIFICATION-TYPE. > A notification type has never an instance. Thus, no > instance suffix is appended to its OID. > For TRAP-TYPEs the coexistence RFCs provide a mapping > to a notification OID. > > The timstamp VB must be included in the payload, > the NotificationOriginator does that for you. > > The sample code below is incorrect, in several > aspects. > > Regards, > Frank > > On 07.01.2010 02:50, pradip de wrote: > > Hi, > > I am using NotificationOriginator.notify(...) to send traps to different > > targets over both SNMPv1 and SNMPv2c. I had a few questions regarding the > > OID passed to this method and how the fields in the Trap packet get > > populated from it. > > 1. Should this OID be the OID of this particular instance of the trap > > packet? ie., including the instance ID after the specific ID of the trap? > > 2. How do the enterprise ID and the specific ID of the traps get picked > from > > the OID I pass for each of the snmp versions? I am actually using a > > timestamp of the event as the instance ID to append after the specifc ID > of > > the trap type to form the OID of the variable binding. However, I am > > noticing in wireshark that the trap to the second target(I have 2 > targets, > > first for version 1 and second for version v2c) is also picking up the > > instanceID from the first one. > > 3. Is it better to use the notificationOriginator.notify(..) method to > send > > traps to a set of preconfigured targets or do I lose some control on how > the > > trap packet is formed? Should I instead formulate the packets from > scratch > > using the snmp4j APIs for a trap PDU? > > Below is my sendTrap method that calls the > notificationOriginator.notify() > > function using a oid upto the specific ID for this trap type. > > thanks, > > Pradip > > > > public void sendTrap(OID oid, String payload) throws Exception { > > > > /* Create variable bindings for Trap packet */ > > VariableBinding[] vbs = new VariableBinding[1]; > > > > OID instanceOid = oid; > > instanceOid.append(Long.toString(event.getCreationTimeLong())); > > > > VariableBinding vb = new VariableBinding(); > > vb.setOid(instanceOid); > > OctetString oStr = new OctetString(payload); > > vb.setVariable((Variable) oStr); > > vbs[0] = vb; > > > > notificationOriginator.notify(new OctetString(), oid, vbs); > > } > > _______________________________________________ > > SNMP4J mailing list > > [email protected] > > http://lists.agentpp.org/mailman/listinfo/snmp4j > > -- > AGENT++ > http://www.agentpp.com > http://www.snmp4j.com > http://www.mibexplorer.com > http://www.mibdesigner.com > > _______________________________________________ > SNMP4J mailing list > [email protected] > http://lists.agentpp.org/mailman/listinfo/snmp4j > _______________________________________________ SNMP4J mailing list [email protected] http://lists.agentpp.org/mailman/listinfo/snmp4j
