aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/bonding/node.h
diff options
context:
space:
mode:
authorSteven <sluong@cisco.com>2018-03-22 17:46:58 -0700
committerSteven <sluong@cisco.com>2018-03-22 17:46:58 -0700
commita005e7f0ef1564cab8db1a148091fd43d2d5af48 (patch)
tree68092708aaee4ade0f5d84b0916e857a2938f659 /src/vnet/bonding/node.h
parentc6a716b7c2768f5d1edcb2fd4d45856054ef33bb (diff)
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 <sluong@cisco.com>
Diffstat (limited to 'src/vnet/bonding/node.h')
-rw-r--r--src/vnet/bonding/node.h9
1 files changed, 9 insertions, 0 deletions
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
@@ -131,6 +131,12 @@ typedef CLIB_PACKED (struct
typedef struct
{
+ vlib_frame_t **frame;
+
+} bond_if_per_thread_t;
+
+typedef struct
+{
u8 admin_up;
u8 mode;
u8 lb;
@@ -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