diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-01-09 15:38:17 -0500 |
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-01-09 15:40:48 -0500 |
| commit | 0112e9e0b9f422b0df4e3b1304297569274c9eab (patch) | |
| tree | c7d8d30fdb0492a428f7862cb4c9f9918058a677 /bgpd/bgp_snmp.c | |
| parent | 4060fcc47b537d49e7801371ddedf9828c94366a (diff) | |
bgpd: use atomic_* ops on _Atomic variables
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'bgpd/bgp_snmp.c')
| -rw-r--r-- | bgpd/bgp_snmp.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/bgpd/bgp_snmp.c b/bgpd/bgp_snmp.c index 484ea7c433..8317a252e1 100644 --- a/bgpd/bgp_snmp.c +++ b/bgpd/bgp_snmp.c @@ -512,6 +512,7 @@ static u_char *bgpPeerTable(struct variable *v, oid name[], size_t *length, { static struct in_addr addr; struct peer *peer; + uint32_t ui, uo; if (smux_header_table(v, name, length, exact, var_len, write_method) == MATCH_FAILED) @@ -571,21 +572,20 @@ static u_char *bgpPeerTable(struct variable *v, oid name[], size_t *length, return SNMP_INTEGER(peer->as); break; case BGPPEERINUPDATES: - return SNMP_INTEGER(peer->update_in); + ui = atomic_load_explicit(&peer->update_in, + memory_order_relaxed); + return SNMP_INTEGER(ui); break; case BGPPEEROUTUPDATES: - return SNMP_INTEGER(peer->update_out); + uo = atomic_load_explicit(&peer->update_out, + memory_order_relaxed); + return SNMP_INTEGER(uo); break; case BGPPEERINTOTALMESSAGES: - return SNMP_INTEGER(peer->open_in + peer->update_in - + peer->keepalive_in + peer->notify_in - + peer->refresh_in + peer->dynamic_cap_in); + return SNMP_INTEGER(PEER_TOTAL_RX(peer)); break; case BGPPEEROUTTOTALMESSAGES: - return SNMP_INTEGER(peer->open_out + peer->update_out - + peer->keepalive_out + peer->notify_out - + peer->refresh_out - + peer->dynamic_cap_out); + return SNMP_INTEGER(PEER_TOTAL_TX(peer)); break; case BGPPEERLASTERROR: { static u_char lasterror[2]; |
