Hi Jerome,

I will try to implement a configurable "workaround" which will be 
disabled by default.

Best regards,
Frank


Am 28.11.2012 15:19, schrieb Jerome Callaghan:
> Thank you for the response.  I understand your position and, of course, the 
> final decision is yours.  I'll just make a little argument to see what you 
> think.
>
> 1) This happens in the real world.  We've had a few devices which exhibit 
> this behavior.  But making the decision not to support it in the low level 
> code, it's impossible to accommodate these real world conditions without 
> maintaining source code change.
>
> 2) Other packages seem to handle it.  I don't have the specifics right now.  
> MRTG handles it, for instance.  And I'm pretty sure Net-SNMP.  I can go back 
> and check these if you like.
>
> I guess a counter argument could be that you don't have a lot of demand so it 
> must not happen all that much.
>
> I can't think of a hook that would make maintenance any easier.  The source 
> code change is quite simple.  In v1 message processing, MPv1, 
> prepareDataElements, look ahead in the message to get the PDU type and pass 
> it to createPDU.  In createPDU, if the PDU type is the v2 Trap, create a v2 
> PDU instead of a v1 PDU.
>
>
> MPv1.java
>
>    public int prepareDataElements(MessageDispatcher messageDispatcher,
> ...
>
>      // Look ahead to the PDU type
>      wholeMsg.mark(64);
>      MutableByte pduType = new MutableByte();
>      int length2 = BER.decodeHeader(wholeMsg, pduType);
>
>      // vxPDU to allow a v2 trap PDU in a v1 message
>      PDU vxPDU = createPDU(pduType.getValue());
>      pdu.setPdu(vxPDU);
>      // Move back to the beginning of the PDU
>      wholeMsg.reset();
>      vxPDU.decodeBER(wholeMsg);
> ...
>
>
>    public PDU createPDU(byte pduType) {
>      if(pduType == PDU.TRAP) {   // Allow for V2 Trap PDU in V1 message
>        logger.debug("Create v2 PDU");
>        return new PDU();
>      }
>      else {
>        logger.debug("Create v1 PDU");
>        return new PDUv1();
>      }
>    }
>
>
>
> If you are willing to consider it, perhaps a configuration item could be 
> used.  The default would be full conformance.  Enabling the configuration 
> item would allow this non-conforming condition, using if statements on the 
> configuration item in the code above for looking ahead.
>
> Thank you,
> Jerome
>
>
> ________________________________________
> From: snmp4j-boun...@agentpp.org [snmp4j-boun...@agentpp.org] on behalf of 
> Frank Fock [f...@agentpp.com]
> Sent: Monday, November 26, 2012 5:12 PM
> To: snmp4j@agentpp.org
> Subject: Re: [SNMP4J] v2 PDU in v1 message
>
> Hello Jerome,
>
> I will not add code to SNMP4J that violates the SNMP standards.
> If you need such code, you are free to change it in your version.
> Nevertheless, if some hook methods would help you to
> clarly separate your code from the SNMP4J code, I am willing
> to add such hook methods.
>
> Best regards,
> Frank
>
>
> Am 26.11.2012 18:20, schrieb Jerome Callaghan:
>> Hello,
>>
>> We have some devices which send traps in a v2 PDU but in a v1 message.  
>> snmp4j discards these.  I've come up with a source code change which looks 
>> ahead in v1 message processing to see if it's a v2 PDU and creates a v2 PDU 
>> instead of a v1 PDU if so.  I've tested and it's working well.  Is there 
>> someone to talk to about getting this into the source baseline for snmp4j?
>>
>> Thank you,
>> Jerome
>>
>> _______________________________________________
>> SNMP4J mailing list
>> SNMP4J@agentpp.org
>> http://lists.agentpp.org/mailman/listinfo/snmp4j
> --
> ---
> AGENT++
> Maximilian-Kolbe-Str. 10
> 73257 Koengen, Germany
> https://agentpp.com
> Phone: +49 7024 8688230
> Fax:   +49 7024 8688231
>
> _______________________________________________
> SNMP4J mailing list
> SNMP4J@agentpp.org
> http://lists.agentpp.org/mailman/listinfo/snmp4j

-- 
---
AGENT++
Maximilian-Kolbe-Str. 10
73257 Koengen, Germany
https://agentpp.com
Phone: +49 7024 8688230
Fax:   +49 7024 8688231

_______________________________________________
SNMP4J mailing list
SNMP4J@agentpp.org
http://lists.agentpp.org/mailman/listinfo/snmp4j

Reply via email to