How to add custom MIB in librenms

Hello,

I wan to add below MIB for our device, so can you please help how can i add the same.

find the mib file.


– MIB file for Bison Router


BISON-ROUTER-MIB DEFINITIONS ::= BEGIN

IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Counter64,
Integer32, TimeTicks, mib-2, enterprises,
NOTIFICATION-TYPE FROM SNMPv2-SMI
TEXTUAL-CONVENTION, DisplayString,
PhysAddress, TruthValue, RowStatus,
TimeStamp, AutonomousType, TestAndIncr FROM SNMPv2-TC
InterfaceIndex
FROM IF-MIB;

bisonrouter MODULE-IDENTITY
LAST-UPDATED “202109300001Z”
ORGANIZATION “Bison Router”
CONTACT-INFO “[email protected]
DESCRIPTION
“Bison Router”

REVISION "202109300000Z"
DESCRIPTION "Initial revision."

::= { bison 1 }

– We are hosted under FreeBSD
freebsd OBJECT IDENTIFIER ::= { enterprises 2238 }
bison OBJECT IDENTIFIER ::= { freebsd 240 }

pppoeNumber OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The number of PPPoE IPv4 subscriber interfaces (regardless of their
current state) present on this system.”
::= { bisonrouter 1 }

– the Interfaces table

– The Interfaces table contains information on the entity’s

– interfaces. Each sub-layer below the internetwork-layer
– of a network interface is considered to be an interface.

pppoeIpv4Table OBJECT-TYPE
SYNTAX SEQUENCE OF pppoeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
“A list of PPPoE IPv4 interface entries. The number of entries is
given by the value of pppoeNumber.”
::= { bisonrouter 2 }

pppoeEntry OBJECT-TYPE
SYNTAX pppoeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
“An entry containing management information applicable to a
particular PPPoE IPv4 interface.”
INDEX { pppoeIndex }
::= { pppoeIpv4Table 1 }

pppoeEntry ::=
SEQUENCE {
pppoeIndex InterfaceIndex,
pppoeUsername DisplayString,
pppoeMac PhysAddress,
pppoeSvid INTEGER,
pppoeCvid INTEGER,
pppoeSessionId DisplayString,
pppoeIpv4 IpAddress,
pppoeMtu Integer32,
pppoeIngressCir DisplayString,
pppoeEgressCir DisplayString,
pppoeRxPkts Counter64,
pppoeTxPkts Counter64,
pppoeRxOctets Counter64,
pppoeTxOctets Counter64,
pppoePort INTEGER,
}

pppoeIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“PPPoE VIF id. A unique value, greater than zero, for each interface.”
::= { pppoeEntry 1 }

pppoeUsername OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“A textual string containing information about the
PPPoE subscriber’s username.”
::= { pppoeEntry 2 }

pppoeMac OBJECT-TYPE
SYNTAX PhysAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The Link-layer address of the PPPoE subscriber.”
::= { pppoeEntry 3 }

pppoeSvid OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Service VID (outer VLAN id).”
::= { pppoeEntry 4 }

pppoeCvid OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Customer VID (inner VLAN id).”
::= { pppoeEntry 5 }

pppoeSessionId OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“A unique string value identifying subscriber’s sesssion”
::= { pppoeEntry 6 }

pppoeIpv4 OBJECT-TYPE
SYNTAX IpAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The IPv4 address of the subscriber.”
::= { pppoeEntry 7 }

pppoeMtu OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The size of the largest packet which can be sent/received
on the interface, specified in octets. For interfaces that
are used for transmitting network datagrams, this is the
size of the largest network datagram that can be sent on the
interface.”
::= { pppoeEntry 8 }

pppoeIngressCir OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“A textual string containing information about the
Ingress CIR.”
::= { pppoeEntry 9 }

pppoeEgressCir OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“A textual string containing information about the
Egress CIR.”
::= { pppoeEntry 10 }

pppoeRxPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The number of packets received on the interface.”
::= { pppoeEntry 11 }

pppoeTxPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The total number of packets transmitted out of the interface.”
::= { pppoeEntry 12 }

pppoeRxOctets OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The total number of octets received on the interface.”
::= { pppoeEntry 13 }

pppoeTxOctets OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The total number of octets transmitted out of the
interface.”
::= { pppoeEntry 14 }

pppoePort OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Physical port number.”
::= { pppoeEntry 15 }


– VIF table

vifTable OBJECT-TYPE
SYNTAX SEQUENCE OF vifEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
“A list of virtual interface (VIF) entries.”
::= { bisonrouter 3 }

vifEntry OBJECT-TYPE
SYNTAX vifEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
“An entry containing information applicable to a
particular VIF.”
INDEX { vifIndex }
::= { vifTable 1 }

vifEntry ::=
SEQUENCE {
vifIndex InterfaceIndex,
vifName DisplayString,
vifPort INTEGER,
vifSvid INTEGER,
vifCvid INTEGER,
vifRxPkts Counter64,
vifTxPkts Counter64,
vifRxOctets Counter64,
vifTxOctets Counter64,
}

vifIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“VIF ID. A unique value, greater than zero, for each interface.”
::= { vifEntry 1 }

vifName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“A textual string containing VIF name.”
::= { vifEntry 2 }

vifPort OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Physical port number.”
::= { vifEntry 3 }

vifSvid OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Service VID (outer VLAN id).”
::= { vifEntry 4 }

vifCvid OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Customer VID (inner VLAN id).”
::= { vifEntry 5 }

vifRxPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The number of packets received on the interface.”
::= { vifEntry 6 }

vifTxPkts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The total number of packets transmitted out of the interface.”
::= { vifEntry 7 }

vifRxOctets OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The total number of octets received on the interface.”
::= { vifEntry 8 }

vifTxOctets OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“The total number of octets transmitted out of the
interface.”
::= { vifEntry 9 }


– Deterministic NAT statistic.

detSnatStat OBJECT-TYPE
SYNTAX detSnatStat
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
“Deterministic SNAT statistic.”
::= { bisonrouter 4 }

detSnatStat ::=
SEQUENCE {
detSSTotalMaps INTEGER,
detSSTotalSessions Counter64,
detSSPortmapFailures Counter64,
detSSPortmapFailures2 Counter64,
detSSSessionOverflow Counter64,
detSSNoFreePortmapPorts Counter64,
}

detSSTotalMaps OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Number of Deterministic SNAT maps.”
::= { detSnatStat 1 }

detSSTotalSessions OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Total number of sessions in all maps.”
::= { detSnatStat 2 }

detSSPortmapFailures OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Number of interal failures.”
::= { detSnatStat 3 }

detSSPortmapFailures2 OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Number of interal failures of type 2.”
::= { detSnatStat 4 }

detSSSessionOverflow OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Number of session overflow events.”
::= { detSnatStat 5 }

detSSNoFreePortmapPorts OBJECT-TYPE
SYNTAX Counter64
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Number of no free portmap ports events.”
::= { detSnatStat 6 }


– Port RX queue utilization.

portRxQueueUtilization OBJECT-TYPE
SYNTAX SEQUENCE OF portRxQueueUtilizationEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
“Ports RX queues utilization statistic”
::= { bisonrouter 5 }

portRxQueueUtilizationEntry OBJECT-TYPE
SYNTAX portRxQueueUtilizationEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
“An entry containing port RX queue utilization statistic”
INDEX { prquIndex }
::= { portRxQueueUtilization 1 }

portRxQueueUtilizationEntry ::=
SEQUENCE {
prquIndex INTEGER,
prquLcore INTEGER,
prquPort INTEGER,
prquRxQueue INTEGER,
prquEmptyPolls INTEGER,
prquPktsPerPoll INTEGER,
}

prquIndex OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“entry index”
::= { portRxQueueUtilizationEntry 1 }

prquLcore OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Lcore ID”
::= { portRxQueueUtilizationEntry 2 }

prquPort OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“port number”
::= { portRxQueueUtilizationEntry 3 }

prquRxQueue OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“RX queue number”
::= { portRxQueueUtilizationEntry 4 }

prquEmptyPolls OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“number of empty queue polls, percentage”
::= { portRxQueueUtilizationEntry 5 }

prquPktsPerPoll OBJECT-TYPE
SYNTAX INTEGER
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“average number of dequeued packets per queue poll”
::= { portRxQueueUtilizationEntry 6 }

END

So adding MIBs doesn’t do anything. You also need someone to create a map for the MIB. Mostly created in yaml.

Hello,

Thanks for the update we will check the same.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.