NETAVO-BNG-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, enterprises, Integer32, Counter64, Gauge32, TimeTicks FROM SNMPv2-SMI OBJECT-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF DisplayString FROM SNMPv2-TC; netavoBng MODULE-IDENTITY LAST-UPDATED "202609141200Z" ORGANIZATION "Netavo Global Data Services Ltd" CONTACT-INFO "https://netavo.com" DESCRIPTION "Enterprise MIB for the Netavo BNG broadband network gateway. Generated from MibCatalog -- see BngMibProvider.cs for the object provider. Do not hand-edit; regenerate with 'bng-controlplane --emit-mib'." REVISION "202609141200Z" DESCRIPTION "Initial version." ::= { enterprises 66418 } bngDropsGroup OBJECT IDENTIFIER ::= { netavoBng 10 } bngCgnGroup OBJECT IDENTIFIER ::= { netavoBng 11 } bngSourceVrfGroup OBJECT IDENTIFIER ::= { netavoBng 12 } bngSessionRefusedGroup OBJECT IDENTIFIER ::= { netavoBng 14 } bngFibSyncGroup OBJECT IDENTIFIER ::= { netavoBng 15 } bngActiveSessionCount OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of subscriber sessions currently active on this appliance." ::= { netavoBng 1 } bngControlPlaneUptime OBJECT-TYPE SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "Time since the control-plane process started, in hundredths of a second." ::= { netavoBng 2 } bngDataPlaneHealthy OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "Whether the data plane is responding to health checks: 1 = healthy, 0 = stale/unresponsive." ::= { netavoBng 3 } bngVrfCount OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of VRFs currently registered on this appliance." ::= { netavoBng 4 } bngSessionTableUtilPct OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Active sessions as a percentage of the configured maximum session-table capacity." ::= { netavoBng 6 } bngMaxPollOccupancyPct OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Worst-case per-core poll occupancy across the data plane's worker threads -- the single headline number for forwarding saturation." ::= { netavoBng 7 } bngDropsTotal OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Total packets dropped by the data plane since start, all reasons combined." ::= { bngDropsGroup 1 } bngDropsUrpf OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets dropped by unicast reverse-path-forwarding (source-address spoofing) checks." ::= { bngDropsGroup 2 } bngDropsRateLimit OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets dropped by a configured rate limiter." ::= { bngDropsGroup 3 } bngCgnActiveBindings OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of currently-active CGNAT (NAT44) bindings." ::= { bngCgnGroup 1 } bngCgnAutoLearnedBindings OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of active CGNAT bindings that were auto-learned (no pre-provisioned session) rather than created for a known subscriber session." ::= { bngCgnGroup 2 } bngCgnUsedChunks OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT public-port chunks currently allocated to a binding, summed across all IP groups." ::= { bngCgnGroup 3 } bngCgnFreeChunks OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT public-port chunks available for allocation, summed across all IP groups." ::= { bngCgnGroup 4 } bngCgnQuarantinedChunks OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT public-port chunks in their post-release quarantine hold-down, summed across all IP groups." ::= { bngCgnGroup 5 } bngCgnSessionLogEventsLost OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT session-log events dropped because the logging driver could not keep up." ::= { bngCgnGroup 6 } bngCgnAutolearnMisses OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Inbound packets that failed to match any auto-learn source prefix and so could not establish a CGNAT binding." ::= { bngCgnGroup 7 } bngCgnNoMapping OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Inbound-to-outside packets with no matching CGNAT binding to translate against." ::= { bngCgnGroup 8 } bngCgnExtensionWanted OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT bindings that needed a port-chunk extension (traffic exceeded the initial chunk allocation)." ::= { bngCgnGroup 9 } bngCgnEventRingDrops OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT session-log events dropped because the data-plane-to-control-plane event ring was full." ::= { bngCgnGroup 10 } bngCgnFlowCapDrops OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT flow creates refused by the dynamic per-binding flow cap." ::= { bngCgnGroup 11 } bngCgnMappingCapDrops OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT flow creates refused because the mapping table was full." ::= { bngCgnGroup 12 } bngCgnPortCapDrops OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets dropped because the subscriber's CGNAT binding was at its per-subscriber port cap, all bindings combined, since the control plane started." ::= { bngCgnGroup 13 } bngCgnBindingsAtPortCap OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "CGNAT bindings currently using every port their per-subscriber port cap allows." ::= { bngCgnGroup 14 } bngSourceVrfRuleCount OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Number of source-VRF classification rules currently programmed in the data plane." ::= { bngSourceVrfGroup 1 } bngSourceVrfClassifiedPackets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets classified by source-VRF rules since the data plane started." ::= { bngSourceVrfGroup 2 } bngSessionRefusedTotal OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Subscriber bring-ups refused since the control plane started, all reasons combined (licence cap, drain, quota, CGN or session-table exhaustion, data-plane insert failure, ...). The SESSION_REFUSED syslog event names the reason for each." ::= { bngSessionRefusedGroup 1 } bngSessionRefusedLicence OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Subscriber bring-ups refused by the licence since the control plane started: an unlicensed appliance, or a dev-mode appliance at its session cap." ::= { bngSessionRefusedGroup 2 } bngFibSyncNetlinkOverflows OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Times the NETLINK_ROUTE transport lost kernel route notifications (ENOBUFS or a truncated datagram) since the control plane started. Each one reopens the transport and replays the kernel dump; a FIB_SYNC_OVERFLOW syslog event names the cause." ::= { bngFibSyncGroup 1 } bngFibSyncTransportReopens OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Times the netlink transport was reopened (after an overflow or a socket failure) since the control plane started. The route mirror is kept across a reopen." ::= { bngFibSyncGroup 2 } bngFibSyncPassesCompleted OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Resync passes (a full kernel dump applied over the retained mirror) that finished, trustworthy or not, since the control plane started." ::= { bngFibSyncGroup 3 } bngFibSyncPassesUntrustworthy OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Resync passes whose sweep was skipped because the pass could not be trusted (interrupted or rejected dump, overflow or transport failure during the pass, superseded). Three in a row raise the fib.sync.degraded alarm." ::= { bngFibSyncGroup 4 } bngFibSyncRoutesMirrored OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Kernel/FRR routes the data plane has confirmed as installed (IPv4, IPv6 and MPLS combined; subscriber host routes are delivered by the session table, not counted here)." ::= { bngFibSyncGroup 5 } bngFibSyncRoutesDirty OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Routes and next-hop groups whose desired state the data plane has not confirmed (a failed or unanswered command); retried every 30 seconds." ::= { bngFibSyncGroup 6 } bngFibSyncLastPassSwept OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Routes deleted by the most recent trustworthy resync pass because the kernel no longer reported them: withdrawals missed while notifications were being lost." ::= { bngFibSyncGroup 7 } bngFibSyncResyncPending OBJECT-TYPE SYNTAX Integer32 MAX-ACCESS read-only STATUS current DESCRIPTION "1 while the mirror may not match the kernel (an overflow, a skipped message or an untrustworthy pass) and a resync pass is owed; 0 once a trustworthy pass has completed." ::= { bngFibSyncGroup 8 } bngFibSyncReceiveBufferBytes OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Effective SO_RCVBUF of the netlink transport in bytes (BNG_NETLINK_RCVBUF_BYTES overrides the default). The kernel drops notifications once it fills." ::= { bngFibSyncGroup 9 } bngVrfSessionTable OBJECT-TYPE SYNTAX SEQUENCE OF BngVrfSessionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Conceptual table, one row per index value. Index: The VRF's numeric id, as assigned internally by VrfManager." ::= { netavoBng 5 } bngVrfSessionEntry OBJECT-TYPE SYNTAX BngVrfSessionEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "One row of bngVrfSessionTable." INDEX { bngVrfIndex } ::= { bngVrfSessionTable 1 } BngVrfSessionEntry ::= SEQUENCE { bngVrfSessionCount Gauge32, bngVrfIndex Integer32 } bngVrfIndex OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The VRF's numeric id, as assigned internally by VrfManager." ::= { bngVrfSessionEntry 2 } bngVrfSessionCount OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Active sessions in this VRF." ::= { bngVrfSessionEntry 1 } bngWorkerTable OBJECT-TYPE SYNTAX SEQUENCE OF BngWorkerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Conceptual table, one row per index value. Index: The data-plane worker (core) id." ::= { netavoBng 8 } bngWorkerEntry OBJECT-TYPE SYNTAX BngWorkerEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "One row of bngWorkerTable." INDEX { bngWorkerIndex } ::= { bngWorkerTable 1 } BngWorkerEntry ::= SEQUENCE { bngWorkerOccupancyPct Gauge32, bngWorkerRxPps Gauge32, bngWorkerAvgBurstFill Gauge32, bngWorkerIndex Integer32 } bngWorkerIndex OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The data-plane worker (core) id." ::= { bngWorkerEntry 4 } bngWorkerOccupancyPct OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "This worker's poll-loop occupancy, as a percentage." ::= { bngWorkerEntry 1 } bngWorkerRxPps OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets per second received by this worker." ::= { bngWorkerEntry 2 } bngWorkerAvgBurstFill OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Average number of packets this worker received per poll burst." ::= { bngWorkerEntry 3 } bngPortTable OBJECT-TYPE SYNTAX SEQUENCE OF BngPortEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Conceptual table, one row per index value. Index: The data-plane port id." ::= { netavoBng 9 } bngPortEntry OBJECT-TYPE SYNTAX BngPortEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "One row of bngPortTable." INDEX { bngPortIndex } ::= { bngPortTable 1 } BngPortEntry ::= SEQUENCE { bngPortRxPps Gauge32, bngPortTxPps Gauge32, bngPortRxOctets Counter64, bngPortTxOctets Counter64, bngPortImissed Counter64, bngPortRxNoMbuf Counter64, bngPortIErrors Counter64, bngPortOErrors Counter64, bngPortIndex Integer32 } bngPortIndex OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The data-plane port id." ::= { bngPortEntry 9 } bngPortRxPps OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets per second received on this port." ::= { bngPortEntry 1 } bngPortTxPps OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets per second transmitted on this port." ::= { bngPortEntry 2 } bngPortRxOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Total octets received on this port." ::= { bngPortEntry 3 } bngPortTxOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Total octets transmitted on this port." ::= { bngPortEntry 4 } bngPortImissed OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets dropped by the NIC because the receive ring was full (never reached software)." ::= { bngPortEntry 5 } bngPortRxNoMbuf OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Packets dropped because no receive buffer was available." ::= { bngPortEntry 6 } bngPortIErrors OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Receive errors on this port." ::= { bngPortEntry 7 } bngPortOErrors OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Transmit errors on this port." ::= { bngPortEntry 8 } bngAddressPoolTable OBJECT-TYPE SYNTAX SEQUENCE OF BngAddressPoolEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Conceptual table, one row per index value. Index: The pool's 1-based position among the configured dynamic address pools, ordered by name." ::= { netavoBng 13 } bngAddressPoolEntry OBJECT-TYPE SYNTAX BngAddressPoolEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "One row of bngAddressPoolTable." INDEX { bngAddressPoolIndex } ::= { bngAddressPoolTable 1 } BngAddressPoolEntry ::= SEQUENCE { bngAddressPoolName DisplayString, bngAddressPoolFamily DisplayString, bngAddressPoolSize Gauge32, bngAddressPoolUsed Gauge32, bngAddressPoolFree Gauge32, bngAddressPoolUtilPct Gauge32, bngAddressPoolAllocFailures Counter64, bngAddressPoolIndex Integer32 } bngAddressPoolIndex OBJECT-TYPE SYNTAX Integer32 (0..2147483647) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The pool's 1-based position among the configured dynamic address pools, ordered by name." ::= { bngAddressPoolEntry 8 } bngAddressPoolName OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "The address pool's name, as referenced by AAA." ::= { bngAddressPoolEntry 1 } bngAddressPoolFamily OBJECT-TYPE SYNTAX DisplayString MAX-ACCESS read-only STATUS current DESCRIPTION "What the pool hands out: ipv4, ipv6-wan or ipv6-pd." ::= { bngAddressPoolEntry 2 } bngAddressPoolSize OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Allocatable blocks on this appliance (saturates at 4294967295)." ::= { bngAddressPoolEntry 3 } bngAddressPoolUsed OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Blocks held on this appliance: committed, offered or quarantined." ::= { bngAddressPoolEntry 4 } bngAddressPoolFree OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Blocks available on this appliance (saturates at 4294967295)." ::= { bngAddressPoolEntry 5 } bngAddressPoolUtilPct OBJECT-TYPE SYNTAX Gauge32 MAX-ACCESS read-only STATUS current DESCRIPTION "Blocks used as a percentage of the pool's size on this appliance." ::= { bngAddressPoolEntry 6 } bngAddressPoolAllocFailures OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "Allocations refused because the pool had no free block, since the control plane started." ::= { bngAddressPoolEntry 7 } netavoBngConformance OBJECT IDENTIFIER ::= { netavoBng 100 } netavoBngGroups OBJECT IDENTIFIER ::= { netavoBngConformance 1 } netavoBngCompliances OBJECT IDENTIFIER ::= { netavoBngConformance 2 } netavoBngObjectsGroup OBJECT-GROUP OBJECTS { bngActiveSessionCount, bngControlPlaneUptime, bngDataPlaneHealthy, bngVrfCount, bngSessionTableUtilPct, bngMaxPollOccupancyPct, bngDropsTotal, bngDropsUrpf, bngDropsRateLimit, bngCgnActiveBindings, bngCgnAutoLearnedBindings, bngCgnUsedChunks, bngCgnFreeChunks, bngCgnQuarantinedChunks, bngCgnSessionLogEventsLost, bngCgnAutolearnMisses, bngCgnNoMapping, bngCgnExtensionWanted, bngCgnEventRingDrops, bngCgnFlowCapDrops, bngCgnMappingCapDrops, bngCgnPortCapDrops, bngCgnBindingsAtPortCap, bngSourceVrfRuleCount, bngSourceVrfClassifiedPackets, bngSessionRefusedTotal, bngSessionRefusedLicence, bngFibSyncNetlinkOverflows, bngFibSyncTransportReopens, bngFibSyncPassesCompleted, bngFibSyncPassesUntrustworthy, bngFibSyncRoutesMirrored, bngFibSyncRoutesDirty, bngFibSyncLastPassSwept, bngFibSyncResyncPending, bngFibSyncReceiveBufferBytes, bngVrfSessionCount, bngWorkerOccupancyPct, bngWorkerRxPps, bngWorkerAvgBurstFill, bngPortRxPps, bngPortTxPps, bngPortRxOctets, bngPortTxOctets, bngPortImissed, bngPortRxNoMbuf, bngPortIErrors, bngPortOErrors, bngAddressPoolName, bngAddressPoolFamily, bngAddressPoolSize, bngAddressPoolUsed, bngAddressPoolFree, bngAddressPoolUtilPct, bngAddressPoolAllocFailures } STATUS current DESCRIPTION "Every object this MIB defines." ::= { netavoBngGroups 1 } netavoBngCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "Compliance statement for the Netavo BNG enterprise MIB." MODULE MANDATORY-GROUPS { netavoBngObjectsGroup } ::= { netavoBngCompliances 1 } END