summaryrefslogtreecommitdiffstats
path: root/src/vnet/bonding
diff options
context:
space:
mode:
authorSteven Luong <sluong@cisco.com>2019-03-05 09:38:33 -0800
committerDamjan Marion <dmarion@me.com>2019-04-03 16:32:37 +0000
commit82c5dda455ce56ffaf8813b7fbee661e6dbb7cea (patch)
tree0a4b607e46396ac28fe7f573b6b237de4ed8c16d /src/vnet/bonding
parent5ae793ac4e5b3fa288ed5838d8d92ce15eb950bd (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/bonding')
-rw-r--r--src/vnet/bonding/node.h29
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,