diff options
author | Florin Coras <fcoras@cisco.com> | 2020-04-07 03:46:07 +0000 |
---|---|---|
committer | Dave Barach <openvpp@barachs.net> | 2020-04-07 14:46:47 +0000 |
commit | ab57edb8d27ddf0fb30cd0f4ae5290c06f301599 (patch) | |
tree | 1dcfb91dac9c9bebdf36707f183d3f12b0982b42 /src/vnet/session/session_node.c | |
parent | ba78e2380e86926c7e29bc3538eb7ac4e78699b1 (diff) |
udp session: allow dgram ip fragmentation
Type: improvement
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: Ida8f9e759b4990ea6e34e71dc45bdb3b5eabc27f
Diffstat (limited to 'src/vnet/session/session_node.c')
-rw-r--r-- | src/vnet/session/session_node.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c index 573fbe91b09..464e6a105f5 100644 --- a/src/vnet/session/session_node.c +++ b/src/vnet/session/session_node.c @@ -1030,18 +1030,13 @@ session_tx_fifo_read_and_snd_i (session_worker_t * wrk, else session_tx_maybe_reschedule (wrk, ctx, elt); - if (!peek_data - && ctx->transport_vft->transport_options.tx_type == TRANSPORT_TX_DGRAM) + if (!peek_data) { /* Fix dgram pre header */ - if (ctx->max_len_to_snd < ctx->max_dequeue) + if (ctx->transport_vft->transport_options.tx_type == TRANSPORT_TX_DGRAM + && ctx->max_len_to_snd < ctx->max_dequeue) svm_fifo_overwrite_head (ctx->s->tx_fifo, (u8 *) & ctx->hdr, sizeof (session_dgram_pre_hdr_t)); - /* More data needs to be read */ - else if (svm_fifo_max_dequeue_cons (ctx->s->tx_fifo) > 0) - if (svm_fifo_set_event (ctx->s->tx_fifo)) - session_evt_add_old (wrk, elt); - if (svm_fifo_needs_deq_ntf (ctx->s->tx_fifo, ctx->max_len_to_snd)) session_dequeue_notify (ctx->s); } |