Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-5251

camel-snmp component does correctly read SNMPv1 type PDUs from snmp4j

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Duplicate
    • 2.9.2
    • 2.10.0
    • camel-snmp
    • None
    • Patch Available
    • Novice

    Description

      SnmpConverters.java of the camel-snmp component inspects the PDU using getVariableBindings(). This method does not contain any information for PDUs representing SNMPv1 messages. The javadoc for org.snmp4j.PDUv1 indicates that unique accessors are provided for PDU instances of this type. Because of this SnmpConverters.java needs to check if the PDU provided by snmp4j represents an SNMPv1 message and if so use the special accessors to construct the message.

      Here is a test case as posted from the user forum. Note that for SNMPv1 type messages the body is empty (Body:<snmp></snmp>).

      I'm starting to create some simple use cases with Camel and SNMP
      traps, and I'm running into some issues (this might just be because I
      don't understand properly what's going on). My current problem is that
      when I create a route for SNMP traps and send SNMP v1 traps to it,
      Camel seems to lose information from the trap such as the originating
      IP address of the trap.

      Here's what I'm doing: I first generate my camel project with the maven command:
      mvn archetype:generate -DarchetypeGroupId=org.apache.camel.archetypes
      -DarchetypeArtifactId=camel-archetype-spring -DarchetypeVersion=2.9.2
      -DgroupId=camel-snmp-test -DartifactId=camel-snmp-test

      And modify the camel-context.xml file to contain the route:
      <camel:route>
      <camel:from uri="snmp://0.0.0.0:1162?type=TRAP"/>
      <camel:to uri="log://foo?showAll=true"/>
      </camel:route>

      then run the project with:
      mvn camel:run

      I then generate a trap with the net-snmp command snmptrap and the syntax:
      snmptrap -v 1 -c public 127.0.0.1:1162
      SNMPv2-MIB::authenticationFailure 1.2.3.4 0 coldStart.0 10

      This gives me a log message of:
      [PTransportMapping_0.0.0.0/1162] foo INFO
      Exchange[Id:ID-addict-33083-1335950429878-0-18,
      ExchangePattern:InOnly,
      Properties:

      {CamelToEndpoint=log://foo?showAll=true, CamelCreatedTimestamp=Wed May 02 10:28:25 WEST 2012}

      ,
      Headers:

      {breadcrumbId=ID-addict--33083-1335950429878-0-17}

      ,
      BodyType:String, Body:<snmp></snmp>, Out: null]

      I'd expect to see the enterprise-oid
      (SNMPv2-MIB::authenticationFailure), agent (1.2.3.4), trap-type (0),
      specific-type (coldStart.0), and uptime (10 seconds), it would be nice
      to see the IP that the PDU came from as well because not all traps
      include a useful agent address.

      Interestingly, with SNMP v2 traps I get some of this information in
      the body (although no sender IP address):
      snmptrap -v 2c -c public localhost:1162 ''
      SNMPv2-MIB::authenticationFailure SNMPv2-MIB::sysLocation.0 s "just
      here"

      [PTransportMapping_0.0.0.0/1162] foo INFO
      Exchange[Id:ID-addict-33083-1335950429878-0-20,
      ExchangePattern:InOnly,
      Properties:

      {CamelToEndpoint=log://foo?showAll=true, CamelCreatedTimestamp=Wed May 02 11:33:49 WEST 2012}

      ,
      Headers:

      {breadcrumbId=ID-addict-33083-1335950429878-0-19}

      ,
      BodyType:String,
      Body:<snmp><entry><oid>1.3.6.1.2.1.1.3.0</oid><value>11 days,
      23:15:58.58</value></entry><entry><oid>1.3.6.1.6.3.1.1.4.1.0</oid><value>1.3.6.1.6.3.1.1.5.5</value></entry><entry><oid>1.3.6.1.2.1.1.6.0</oid><value>just
      here</value></entry></snmp>, Out: null]

      Attachments

        1. SnmpConverters.java
          5 kB
          Ed Manero

        Issue Links

          Activity

            People

              davsclaus Claus Ibsen
              emanero Ed Manero
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: