Francois Dumontet
d78854f438
bgpd: add snmp traps for bgp4-mibv2
...
This commit add the support of traps for bgp4-mibv2.
It is conformant to draft-ietf-idr-bgp4-mibv2-11.
The following traps are supported:
- bgp4V2EstablishedNotification
- bgp4V2BackwardTransitionNotification
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-10-24 17:16:47 +02:00
Francois Dumontet
b8fe1c16de
bgpd: snmp MIB bgp4v2 fix indexes in OID
...
currently snmpwalk give results such :
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6z.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6z.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.2.dns.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03
the expected result is the following
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv4.10.125.0.2 = INTEGER: ipv4(1)
BGP4V2-MIB::bgp4V2PeerRemoteAddrType.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 =
INTEGER: ipv6(2)
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv4.10.125.0.2 = Hex-STRING: 0A 7D 00 02
BGP4V2-MIB::bgp4V2PeerRemoteAddr.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Hex
-STRING: FD 00 01 25 00 00 00 00 00 00 00 00 00 00 00 03
in draft-ietf-idr-bgp4-mibv2-11
INDEX for Bgp4V2PeerEntry is define as follows
INDEX {
bgp4V2PeerInstance,
bgp4V2PeerRemoteAddrType,
bgp4V2PeerRemoteAddr
}
the peer instance is defined as follows
OBJECT bgp4V2PeerInstance
SYNTAX Unsigned32 (1..4294967295)
more this interpretation is conformant with the snmpwalk implementation
for instance we obtain the following result
swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemotePort.1.ipv6.253.0.1.37.0.0.0.0.0.0.0.0.0.0.0.3 = Gauge32: 179
swBgp.bgp4V2.bgp4V2Objects.bgp4V2PeerTable.bgp4V2PeerEntry.bgp4V2PeerRemoteAs.1.ipv4.10.125.0.2 = Gauge32: 65200
since currently we are not supporting multi instance for bgp peer in
SNMP the bgp4V2PeerInstance value is set to 1 coforming to:
"Implementations that do not support multiple routing instances should return 1 for this object."
test is updated accordingly to fix.
currently index for bgp4V2NlriEntry is not coformant to MIB definition
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
2023-09-19 14:26:41 +02:00
Donald Sharp
cd9d053741
*: Convert struct event_master
to struct event_loop
...
Let's find a better name for it.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-24 08:32:17 -04:00
Donald Sharp
2453d15dbf
*: Convert struct thread_master to struct event_master and it's ilk
...
Convert the `struct thread_master` to `struct event_master`
across the code base.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2023-03-24 08:32:17 -04:00
David Lamparter
acddc0ed3c
*: auto-convert to SPDX License IDs
...
Done with a combination of regex'ing and banging my head against a wall.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-02-09 14:09:11 +01:00
Donatas Abraitis
c681e937d7
bgpd: Implement SNMP BGP4V2-MIB (bgp4V2NlriTable), part 1
...
```
iso.3.6.1.3.5.1.1.9.1.1.1.4.10.0.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.100.100.100.100.32.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.172.17.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.192.168.0.0.24.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.1.4.192.168.10.0.23.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.1.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.9.1.2.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.2.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.9.1.3.1.4.10.0.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.100.100.100.100.32.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.172.17.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.192.168.0.0.24.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.1.4.192.168.10.0.23.192.168.10.65 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.2.71.128.0.0.0.0.0.0.0.0.0.0.17.17.128.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.0.64.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.3.6.128.0.0.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.9.1.3.2.16.42.3.6.128.0.1.0.0.0.0.0.0.0.0.0.0.48.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-12-12 21:37:39 +02:00
Donatas Abraitis
ff18b7b078
bgpd: Implement SNMP BGP4V2-MIB (bgp4V2PeerEntry)
...
http://www.circitor.fr/Mibs/Mib/B/BGP4V2-MIB.mib
Compared with Arista BGP4V2-MIB implementation, almost identical (despite that
Arista has slightly some additional MIBs).
Example:
```
iso.3.6.1.3.5.1.1.2.1.1.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.1.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.1.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.1.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.1.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.2.1.4.192.168.10.64 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.2.1.4.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.2.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.2.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.2.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.3.1.4.192.168.10.64 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.3.1.4.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.3.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 2A 02 47 80 01 23 00 00 00 00 00 00 00 00 00 01
iso.3.6.1.3.5.1.1.2.1.3.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.3.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.4.1.4.192.168.10.64 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.4.1.4.192.168.10.65 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.4.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.4.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.4.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = INTEGER: 0
iso.3.6.1.3.5.1.1.2.1.5.1.4.192.168.10.64 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.5.1.4.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.5.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 2A 02 47 80 01 23 00 00 00 00 00 00 00 00 00 02
iso.3.6.1.3.5.1.1.2.1.5.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.5.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.6.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.6.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.6.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 179
iso.3.6.1.3.5.1.1.2.1.6.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.6.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.7.1.4.192.168.10.64 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.7.1.4.192.168.10.65 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.7.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.7.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.7.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 65000
iso.3.6.1.3.5.1.1.2.1.8.1.4.192.168.10.64 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.8.1.4.192.168.10.65 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.8.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.8.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.8.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: C0 00 02 FC
iso.3.6.1.3.5.1.1.2.1.9.1.4.192.168.10.64 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.9.1.4.192.168.10.65 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.9.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 54814
iso.3.6.1.3.5.1.1.2.1.9.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.9.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 0
iso.3.6.1.3.5.1.1.2.1.10.1.4.192.168.10.64 = Gauge32: 65002
iso.3.6.1.3.5.1.1.2.1.10.1.4.192.168.10.65 = Gauge32: 65002
iso.3.6.1.3.5.1.1.2.1.10.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Gauge32: 65002
iso.3.6.1.3.5.1.1.2.1.10.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Gauge32: 65001
iso.3.6.1.3.5.1.1.2.1.10.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Gauge32: 65001
iso.3.6.1.3.5.1.1.2.1.11.1.4.192.168.10.64 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.11.1.4.192.168.10.65 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.11.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = STRING: "dddd"
iso.3.6.1.3.5.1.1.2.1.11.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.11.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = Hex-STRING: 00 00 00 00
iso.3.6.1.3.5.1.1.2.1.12.1.4.192.168.10.64 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.12.1.4.192.168.10.65 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.12.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.12.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.12.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = INTEGER: 2
iso.3.6.1.3.5.1.1.2.1.13.1.4.192.168.10.64 = INTEGER: 1
iso.3.6.1.3.5.1.1.2.1.13.1.4.192.168.10.65 = INTEGER: 3
iso.3.6.1.3.5.1.1.2.1.13.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = INTEGER: 1
iso.3.6.1.3.5.1.1.2.1.13.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.121 = INTEGER: 3
iso.3.6.1.3.5.1.1.2.1.13.2.16.42.12.47.7.72.150.6.102.0.0.0.0.0.0.177.128 = INTEGER: 1
iso.3.6.1.3.5.1.1.2.1.14.1.4.192.168.10.64 = Hex-STRING: 4F 4B 00
iso.3.6.1.3.5.1.1.2.1.14.1.4.192.168.10.65 = Hex-STRING: 4F 4B 32 00
iso.3.6.1.3.5.1.1.2.1.14.2.16.42.2.71.128.1.35.0.0.0.0.0.0.0.0.0.2 = Hex-STRING: 69 70 76 36 00
```
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2022-11-14 10:43:03 +02:00