3 Replies Latest reply on Mar 27, 2017 6:13 PM by bakerrod

    MOXA EDS-P510 igmp Group joined ports UnDP

    bakerrod

      Hi all. We have a number of Moxa EDS-P510 switches that we monitor with SolarWinds. I've set up a number of UnDP's to monitor specific parameters; one of them is the igmpSnoopingMulticastGroup table.

       

      [Note: I've redacted all IP addresses and authentication strings in the following.]

       

      The snmp table looks like this:

       

      SNMP table: MOXA-EDSP510-MIB::igmpSnoopingMulticastGroupTable

       

      igmpSnoopingIpGroup igmpSnoopingMacGroup igmpSnoopingJoinedPorts

         239.xx.y.a         1:0:5e:16:5:4            "C0 00 "

         239.xx.y.b         1:0:5e:16:5:5            "C0 00 "

         239.xx.y.c         1:0:5e:16:5:6            "90 00 "

         239.xx.y.d         1:0:5e:16:5:7            "A0 00 "

         239.xx.y.e         1:0:5e:16:5:8            "A0 00 "

         239.xx.y.f         1:0:5e:16:5:9            "A0 00 "

         239.xx.y.g         1:0:5e:16:5:a            "A0 00 "

      which corresponds to what is displayed here:

      IGMPGroups1.PNG.

      If I use snmpbulkget to look at just the igmpSnoopingJoinedPorts column (shown as "Members Port" in the screenshot), I get:

       

      snmpbulkget -v 3 -u admin -a SHA -A <redacted> -l authpriv -x DES -X <redacted> -m +MOXA-EDSP510-MIB -OeT 10.22.5.117 igmpSnoopingJoinedPorts

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.a = Hex-STRING: C0 00   [..]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.b = Hex-STRING: C0 00   [..]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.c = Hex-STRING: 90 00   [..]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.d = Hex-STRING: A0 00   [..]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.e = Hex-STRING: A0 00   [..]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.f = Hex-STRING: A0 00   [..]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.g = Hex-STRING: A0 00   [..]

       

      I'm guessing that the Hex String is actually understood by the Moxa web interface as a bitmap field with each bit corresponding to a port (but that is just a guess). Here's another example with corresponding screenshot...

       

      IGMPGroups2.PNG

       

      snmpbulkget -v 2c -c public -m +MOXA-EDSP510-MIB -OeT 10.22.2.92 igmpSnoopingJoinedPorts

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.a = Hex-STRING: 09 00   [ .]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.b = Hex-STRING: 41 00   [A.]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.c = Hex-STRING: 41 00   [A.]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.d = Hex-STRING: 01 80   [..]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.e = Hex-STRING: 01 80   [..]

      MOXA-EDSP510-MIB::igmpSnoopingJoinedPorts.1.239.xx.y.f = Hex-STRING: 01 80   [..]

       

      Is there any way to transform these results to show the actual port ID's as displayed on the Moxa web ui? I've tried enum but that doesn't seem to like the HEX values (and the corresponding ascii chars are largely unprintable).

       

      Here's how it displays in SolarWinds at the moment (this corresponds to the example immediately above):

       

      IGMPGroups3.PNG

       

      The corresponding MIB section:

       

      -- -------------------------------------------------------------

      -- multicast filtering

      -- -------------------------------------------------------------       

       

       

          multicastFiltering OBJECT IDENTIFIER ::= { swMgmt 20 }

          igmpSnooping OBJECT IDENTIFIER ::= { multicastFiltering 1 }

         

          querierQueryInterval OBJECT-TYPE

              SYNTAX INTEGER (20..600)

              MAX-ACCESS read-write              

              STATUS current

              DESCRIPTION

                  "This query interval of the querier function for this VLAN."

              ::= { igmpSnooping 1 }     

         

          igmpSnoopingSettingTable OBJECT-TYPE

              SYNTAX SEQUENCE OF IgmpSnoopingSettingEntry

              MAX-ACCESS not-accessible              

              STATUS current

              DESCRIPTION

                  "The IGMP snooping setting table."

              ::= { igmpSnooping 2 }

         

          igmpSnoopingSettingEntry OBJECT-TYPE

              SYNTAX IgmpSnoopingSettingEntry

              MAX-ACCESS not-accessible              

              STATUS current

              DESCRIPTION

                  "The IGMP snooping setting Entry."

              INDEX { vlanId }

              ::= { igmpSnoopingSettingTable 1 }

             

          IgmpSnoopingSettingEntry ::=

              SEQUENCE {

                  enableIgmpSnooping

                      INTEGER,          

                  enableQuerier

                      INTEGER,

                  fixedMulticastQuerierPorts

                      PortList,

                  learnedMulticastQuerierPorts

                      PortList

                  }

         

          enableIgmpSnooping OBJECT-TYPE

              SYNTAX INTEGER {disable(0),enable(1)}

              MAX-ACCESS read-write              

              STATUS current

              DESCRIPTION

                  "This enable the IGMP snooping functon in this VLAN."

              ::= { igmpSnoopingSettingEntry 1 } 

             

          enableQuerier OBJECT-TYPE

              SYNTAX INTEGER {disable(0),enable(1)}

              MAX-ACCESS read-write              

              STATUS current

              DESCRIPTION

                  "This enable the querier function for this VLAN."

              ::= { igmpSnoopingSettingEntry 2 } 

         

          fixedMulticastQuerierPorts OBJECT-TYPE

              SYNTAX PortList

              MAX-ACCESS read-write              

              STATUS current

              DESCRIPTION

                  "The ports that multicast-Querier exist."

              ::= { igmpSnoopingSettingEntry 3 } 

             

          learnedMulticastQuerierPorts OBJECT-TYPE

              SYNTAX PortList

              MAX-ACCESS read-only

              STATUS current

              DESCRIPTION

                  "The ports that multicast-Querier exist."

              ::= { igmpSnoopingSettingEntry 4 }     

             

          igmpSnoopingMulticastGroupTable OBJECT-TYPE

              SYNTAX SEQUENCE OF IgmpSnoopingMulticastGroupEntry

              MAX-ACCESS not-accessible              

              STATUS current

              DESCRIPTION

                  "The multicast group table by IGMP snooping function."

              ::= { igmpSnooping 3 }

         

          igmpSnoopingMulticastGroupEntry OBJECT-TYPE

              SYNTAX IgmpSnoopingMulticastGroupEntry

              MAX-ACCESS not-accessible              

              STATUS current

              DESCRIPTION

                  "The multicast group entry by IGMP snooping function."

              -- INDEX { vlanId,multicastIpGroup }

              INDEX { vlanId, igmpSnoopingIpGroup }

              ::= { igmpSnoopingMulticastGroupTable 1 }

             

          IgmpSnoopingMulticastGroupEntry ::=

              SEQUENCE {

                  igmpSnoopingIpGroup

                      IpAddress,          

                  igmpSnoopingMacGroup

                      MacAddress,

                  igmpSnoopingJoinedPorts

                      PortList

                  }

         

          igmpSnoopingIpGroup OBJECT-TYPE

              SYNTAX IpAddress

              MAX-ACCESS read-only               

              STATUS current

              DESCRIPTION

                  "The multicast IP group by IGMP snooping function."

              ::= { igmpSnoopingMulticastGroupEntry 1 } 

             

          igmpSnoopingMacGroup OBJECT-TYPE

              SYNTAX MacAddress

              MAX-ACCESS read-only               

              STATUS current

              DESCRIPTION

                  "The multicast MAC group by IGMP snooping function."

              ::= { igmpSnoopingMulticastGroupEntry 2 } 

             

          igmpSnoopingJoinedPorts OBJECT-TYPE

              SYNTAX PortList

              MAX-ACCESS read-only               

              STATUS current

              DESCRIPTION

                  "The ports that joined this multicast group."

              ::= { igmpSnoopingMulticastGroupEntry 3 } 

         

          enableGlobalIgmpSnooping OBJECT-TYPE

              SYNTAX INTEGER {disable(0),enable(1)}

              MAX-ACCESS read-write              

              STATUS current

              DESCRIPTION

                  "This enable the IGMP snooping functon ."

              ::= { igmpSnooping 4 } 

         

          enhancedMode OBJECT-TYPE

              SYNTAX INTEGER {disable(0),enable(1)}

              MAX-ACCESS read-write              

              STATUS current

              DESCRIPTION

                  "This enable the IGMP enhancedMode ."

              ::= { igmpSnooping 5 }

             

          multicastFastForwarding OBJECT-TYPE

              SYNTAX INTEGER {disable(0),enable(1)}

              MAX-ACCESS read-write              

              STATUS current

              DESCRIPTION

                  "This Enable Multicast Fast Forwarding Mode functon ."

              ::= { igmpSnooping 7 }

             

          staticMulticast OBJECT IDENTIFIER ::= { multicastFiltering 2 }

          staticMulticastTable OBJECT-TYPE

              SYNTAX SEQUENCE OF StaticMulticastEntry

              MAX-ACCESS not-accessible              

              STATUS current

              DESCRIPTION

                  "The static multicast table."

              ::= { staticMulticast 1 }

         

          staticMulticastEntry OBJECT-TYPE

              SYNTAX StaticMulticastEntry

              MAX-ACCESS not-accessible              

              STATUS current

              DESCRIPTION

                  "Static multicast Entry."

              INDEX { staticMulticastAddress }

              ::= { staticMulticastTable 1 }

             

          StaticMulticastEntry ::=

              SEQUENCE {

                  staticMulticastAddress

                      MacAddress,               

                  staticMulticastPorts

                      PortList,

                  staticMulticastStatus

                      INTEGER

                  }

         

          staticMulticastAddress OBJECT-TYPE

              SYNTAX MacAddress

              MAX-ACCESS read-create             

              STATUS current

              DESCRIPTION

                  "The static multicast address."

              ::= { staticMulticastEntry 1 } 

             

          staticMulticastPorts OBJECT-TYPE

              SYNTAX PortList

              MAX-ACCESS read-create             

              STATUS current

              DESCRIPTION

                  "The port map of the static multicast address."

              ::= { staticMulticastEntry 2 }     

         

          staticMulticastStatus OBJECT-TYPE

              SYNTAX INTEGER {

                  active(1),

                  createAndGo(4),

                  createAndWait(5),

                  destroy(6)

              }

              MAX-ACCESS read-create             

              STATUS current

              DESCRIPTION

                  "The status is active to indicate normal.

                  Use createAndGo to create new on multiple SET.

                  Use createAndWait to create new on one SET all then actvie.

                  Use destroy to delete this row."

              ::= { staticMulticastEntry 3 }

       

      I'd be grateful for any ideas.