diff options
author | Steven Luong <sluong@cisco.com> | 2019-03-05 09:38:33 -0800 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2019-04-03 16:32:37 +0000 |
commit | 82c5dda455ce56ffaf8813b7fbee661e6dbb7cea (patch) | |
tree | 0a4b607e46396ac28fe7f573b6b237de4ed8c16d /src/vnet | |
parent | 5ae793ac4e5b3fa288ed5838d8d92ce15eb950bd (diff) |
lacp: passive mode support [VPP-1551]
By definition, passive mode means the node does not start sending lacp pdu until
it first hears from the partner or remote.
- Rename ptx machine's BEGIN state to NO_PERIODIC state.
- Put periodic machine in NO_PERIDOIC state when the interface is enabled for
lacp. ptx machine will transition out of NO_PERIODIC state when the local node
hears from the remote or when the local node is configured for active mode.
- Also add send and receive statistics for debugging.
Change-Id: I747953b9595ed31328b2f4f3e7a8d15d01e04d7f
Signed-off-by: Steven Luong <sluong@cisco.com>
Diffstat (limited to 'src/vnet')
-rw-r--r-- | src/vnet/bonding/node.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/vnet/bonding/node.h b/src/vnet/bonding/node.h index 9a194b8db0b..41e945a05f8 100644 --- a/src/vnet/bonding/node.h +++ b/src/vnet/bonding/node.h @@ -266,7 +266,16 @@ typedef struct f64 actor_churn_timer; /* time last lacpdu was sent */ - f64 last_lacpdu_time; + f64 last_lacpdu_sent_time; + + /* time last lacpdu was received */ + f64 last_lacpdu_recd_time; + + /* time last marker pdu was sent */ + f64 last_marker_pdu_sent_time; + + /* time last marker pdu was received */ + f64 last_marker_pdu_recd_time; /* timer used to generate periodic transmission */ f64 periodic_timer; @@ -294,6 +303,24 @@ typedef struct /* bond mode */ u8 mode; + + /* good lacp pdu received */ + u64 pdu_received; + + /* bad lacp pdu received */ + u64 bad_pdu_received; + + /* pdu sent */ + u64 pdu_sent; + + /* good marker pdu received */ + u64 marker_pdu_received; + + /* bad marker pdu received */ + u64 marker_bad_pdu_received; + + /* pdu sent */ + u64 marker_pdu_sent; } slave_if_t; typedef void (*lacp_enable_disable_func) (vlib_main_t * vm, bond_if_t * bif, |