From a005e7f0ef1564cab8db1a148091fd43d2d5af48 Mon Sep 17 00:00:00 2001 From: Steven Date: Thu, 22 Mar 2018 17:46:58 -0700 Subject: bond: performance enhancement We were only puting one packet per frame to the output node. Change to buffer multiple packets per frame. Performance is now on top of dpdk-based bonding. Put a spinlock in the tx thread in case the rug is pulled under us. Change-Id: Ifda5af086a984a7301972cd6c8e428217f676a95 Signed-off-by: Steven --- src/vnet/bonding/node.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/vnet/bonding/node.h') diff --git a/src/vnet/bonding/node.h b/src/vnet/bonding/node.h index 74f3b1a356a..ae811a12a64 100644 --- a/src/vnet/bonding/node.h +++ b/src/vnet/bonding/node.h @@ -129,6 +129,12 @@ typedef CLIB_PACKED (struct u8 state; }) lacp_port_info_t; +typedef struct +{ + vlib_frame_t **frame; + +} bond_if_per_thread_t; + typedef struct { u8 admin_up; @@ -159,6 +165,9 @@ typedef struct uword *port_number_bitmap; u8 use_custom_mac; u8 hw_address[6]; + + clib_spinlock_t lockp; + bond_if_per_thread_t *per_thread_info; } bond_if_t; typedef struct -- cgit 1.2.3-korg