From aa72578637e2a346ee845545b2e26aad83e12192 Mon Sep 17 00:00:00 2001 From: Steven Luong Date: Tue, 12 Nov 2019 19:45:49 -0800 Subject: bonding: Add /if/lacp///partner-state We already had /if/lacp///state in the stats segment. Add also the partner-state to be complete. Change to populate stats segment with the states at startup, after processing an lacp pdu, and after timer expiration. Unit test --------- sudo vpp_get_stats dump | grep /if/lacp 63.00 /if/lacp/3/1/state 61.00 /if/lacp/3/1/partner-state 63.00 /if/lacp/3/2/state 61.00 /if/lacp/3/2/partner-state Type: feature Signed-off-by: Steven Luong Change-Id: Ib7b8e1183d572bb6e422a846aaa2b7b3559a0dc7 --- src/plugins/lacp/input.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/plugins/lacp/input.c') diff --git a/src/plugins/lacp/input.c b/src/plugins/lacp/input.c index befb2ed408b..ccefc20e7b2 100644 --- a/src/plugins/lacp/input.c +++ b/src/plugins/lacp/input.c @@ -16,6 +16,7 @@ #define _GNU_SOURCE #include #include +#include static int lacp_packet_scan (vlib_main_t * vm, slave_if_t * sif) @@ -136,12 +137,14 @@ handle_marker_protocol (vlib_main_t * vm, slave_if_t * sif) lacp_error_t lacp_input (vlib_main_t * vm, vlib_buffer_t * b0, u32 bi0) { + bond_main_t *bm = &bond_main; lacp_main_t *lm = &lacp_main; slave_if_t *sif; uword nbytes; lacp_error_t e; marker_pdu_t *marker; uword last_packet_signature; + bond_if_t *bif; sif = bond_get_slave_by_sw_if_index (vnet_buffer (b0)->sw_if_index[VLIB_RX]); @@ -214,6 +217,13 @@ lacp_input (vlib_main_t * vm, vlib_buffer_t * b0, u32 bi0) { /* Actually scan the packet */ e = lacp_packet_scan (vm, sif); + bif = bond_get_master_by_dev_instance (sif->bif_dev_instance); + stat_segment_set_state_counter (bm->stats[bif->sw_if_index] + [sif->sw_if_index].actor_state, + sif->actor.state); + stat_segment_set_state_counter (bm->stats[bif->sw_if_index] + [sif->sw_if_index].partner_state, + sif->partner.state); sif->last_packet_signature_valid = 1; sif->last_packet_signature = last_packet_signature; } -- cgit 1.2.3-korg