diff options
| author | Marton Kun-Szabo <martonk@amazon.com> | 2019-08-09 10:53:01 -0700 | 
|---|---|---|
| committer | Marton Kun-Szabo <martonk@amazon.com> | 2019-08-13 11:59:27 -0700 | 
| commit | 7d8d0eabb4772ac773d60180fb88272a7825ca4a (patch) | |
| tree | e94c3b1256a223b63aaac18f90464e05285ad5fe /bgpd/bgp_snmp.c | |
| parent | ce935bc2843cb35c5450e1ea9beb1c58474d6e2c (diff) | |
bgpd: hook for bgp peer status change events
Generally available hook for plugging application-specific
code in for bgp peer change events.
This hook (peer_status_changed) replaces the previous, more
specific 'peer_established' hook with a more general-purpose one.
Also, 'bgp_dump_state' is now registered under this hook.
Signed-off-by: Marton Kun-Szabo <martonk@amazon.com>
Diffstat (limited to 'bgpd/bgp_snmp.c')
| -rw-r--r-- | bgpd/bgp_snmp.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/bgpd/bgp_snmp.c b/bgpd/bgp_snmp.c index 44cbeabd69..c266440899 100644 --- a/bgpd/bgp_snmp.c +++ b/bgpd/bgp_snmp.c @@ -894,6 +894,10 @@ static int bgpTrapEstablished(struct peer *peer)  	struct in_addr addr;  	oid index[sizeof(oid) * IN_ADDR_SIZE]; +	/* Check if this peer just went to Established */ +	if ((peer->last_major_event != OpenConfirm) || !(peer_established(peer))) +		return 0; +  	ret = inet_aton(peer->host, &addr);  	if (ret == 0)  		return 0; @@ -935,7 +939,7 @@ static int bgp_snmp_init(struct thread_master *tm)  static int bgp_snmp_module_init(void)  { -	hook_register(peer_established, bgpTrapEstablished); +	hook_register(peer_status_changed, bgpTrapEstablished);  	hook_register(peer_backward_transition, bgpTrapBackwardTransition);  	hook_register(frr_late_init, bgp_snmp_init);  	return 0;  | 
