diff options
author | Steven Luong <sluong@cisco.com> | 2020-02-13 09:27:38 -0800 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2020-02-25 22:37:44 +0000 |
commit | f7ab7b2d9bc0f42c1e766d22d49dd0dc4f28abb6 (patch) | |
tree | 4bbea14cfb291fb5754a87c1575e65edd68d704c /src/plugins/avf/avf.h | |
parent | 2da39718f560478678caacccd198ee4c0c9673c3 (diff) |
avf: Handle chain buffer in TX properly
For chain buffer, need to traverse b->next_buffer to transmit all buffers
in the chain. Only set EOP at the last descriptor in the chain to signal
this is a chain descriptor.
Introduce slow path to handle ring wrap. This is needed because chain
buffer may consist of multiple pieces and it may span from near the end of
the ring to the beginning of the ring.
Type: fix
Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: Id7c872f3e39e09f3566aa63f3cdba8f40736d508
Diffstat (limited to 'src/plugins/avf/avf.h')
-rw-r--r-- | src/plugins/avf/avf.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/avf/avf.h b/src/plugins/avf/avf.h index a8e8b96e18b..744b58370e4 100644 --- a/src/plugins/avf/avf.h +++ b/src/plugins/avf/avf.h @@ -333,7 +333,8 @@ typedef struct } avf_input_trace_t; #define foreach_avf_tx_func_error \ -_(NO_FREE_SLOTS, "no free tx slots") + _(SEGMENT_SIZE_EXCEEDED, "segment size exceeded") \ + _(NO_FREE_SLOTS, "no free tx slots") typedef enum { |