Skip to content

SNMP Bridge MIB support #496

Open
Open

Description

@troglobit

Of all things SNMP, the BRIDGE-MIB is one of the most useful features. With #1651 merged, the BRIDGE-MIB is closer than ever. Checking what statd already publishes, most of it is there:

  • dot1dStp* — state, role, port-id, designated bridge, topology changes: all present
  • dot1qVlanCurrentTable / VlanStaticTable and dot1qPortVlanTable — VLAN membership and PVID: present
  • dot1dBasePortTable — falls out of every port being a netdev with an if-index

What's genuinely missing is the FDB (dot1dTpFdbTable, dot1qTpFdbTable) and dot1dTpAgingTime. Neither infix-if-bridge.yang nor statd has any notion of a forwarding database.

Additional Information

Some research on this topic:

Activity

  1. added
    triagePending investigation & classification (CCB)
    on Jul 2, 2024
  2. removed
    triagePending investigation & classification (CCB)
    on Oct 1, 2024
  3. troglobit commented on Sep 22, 2026

    @troglobit
    ContributorAuthor

    Read-only SNMP support is in flight: an agent configured from ietf-snmp
    (RFC 7407), serving SNMPv2-MIB, IF-MIB, HOST-RESOURCES-MIB, UCD-SNMP-MIB and
    LLDP-MIB. Notes on what BRIDGE-MIB needs on top of that, so this can be
    scheduled.

    The agent is no longer the hard part

    confd starts snmpd with master agentx and lldpd already attaches to it to
    serve LLDP-MIB, so a subagent registering the bridge subtrees has somewhere to
    plug in. net-snmp ships neither BRIDGE-MIB nor Q-BRIDGE-MIB in any build
    configuration, and the three implementations linked above are unmaintained, so
    this is ours to write regardless.

    Most of the data is already in the operational datastore

    MIB object Status
    dot1dBasePortTable derivable, every port is a netdev with an if-index
    dot1dStp* have it: state, role, port-id, designated bridge, topology changes
    dot1qVlanCurrentTable, dot1qVlanStaticTable have it, per-port VLAN membership
    dot1qPortVlanTable (PVID) have it
    dot1dTpFdbTable, dot1qTpFdbTable missing
    dot1dTpAgingTime missing

    So the prerequisite is the forwarding database

    There is no FDB in infix-if-bridge or in the operational datastore today.
    bridge -j fdb show gives it directly and nothing reads it yet, so the
    plumbing is small. The open question is modelling: we import
    ieee802-dot1q-types but not ieee802-dot1q-bridge, which carries
    filtering-database/filtering-entry. Worth deciding whether to adopt that
    subtree or put the FDB in infix-if-bridge.

    That is worth having on its own merits, independent of SNMP. A MAC table over
    NETCONF/RESTCONF and a show bridge fdb in the CLI get asked for regularly.
    Suggest splitting it into its own issue and making this one depend on it.

    Suggested order

    1. FDB in the operational datastore, plus bridge ageing time, as its own issue
    2. AgentX subagent serving BRIDGE-MIB and Q-BRIDGE-MIB from operational data
    3. ENTITY-MIB and ENTITY-SENSOR-MIB through the same subagent, from
      ietf-hardware, which overlaps Add system resource monitoring RESTCONF/NETCONF notifications (CPU, memory, disk, ...) #1102
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions