udp session: fix deq notification for dgrams 67/30267/3
authorFlorin Coras <fcoras@cisco.com>
Fri, 4 Dec 2020 02:19:39 +0000 (18:19 -0800)
committerDave Barach <openvpp@barachs.net>
Fri, 4 Dec 2020 18:30:56 +0000 (18:30 +0000)
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I1440c11fb9d962a05d877aebb4de364c86f9953e

src/vnet/session/session_node.c

index 1208012..2fde85b 100644 (file)
@@ -1128,7 +1128,10 @@ session_tx_fifo_read_and_snd_i (session_worker_t * wrk,
 
   if (!peek_data)
     {
-      if (svm_fifo_needs_deq_ntf (ctx->s->tx_fifo, ctx->max_len_to_snd))
+      u32 n_dequeued = ctx->max_len_to_snd;
+      if (ctx->transport_vft->transport_options.tx_type == TRANSPORT_TX_DGRAM)
+       n_dequeued += ctx->n_segs_per_evt * SESSION_CONN_HDR_LEN;
+      if (svm_fifo_needs_deq_ntf (ctx->s->tx_fifo, n_dequeued))
        session_dequeue_notify (ctx->s);
     }
   return SESSION_TX_OK;