X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fsession.h;fp=src%2Fvnet%2Fsession%2Fsession.h;h=10bae273d8534801cc4898a3988c8680d60b9dd9;hb=c8767c42aadb5bd63206e117673991ef799e2d18;hp=e92b1f079d600aed29f95c2438461306f3bd268b;hpb=31eaea9eef0594117e83733aa01f8bbda940e4da;p=vpp.git diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h index e92b1f079d6..10bae273d85 100644 --- a/src/vnet/session/session.h +++ b/src/vnet/session/session.h @@ -582,6 +582,19 @@ transport_rx_fifo_has_ooo_data (transport_connection_t * tc) return svm_fifo_has_ooo_data (s->rx_fifo); } +always_inline u32 +transport_tx_fifo_has_dgram (transport_connection_t *tc) +{ + session_t *s = session_get (tc->s_index, tc->thread_index); + u32 max_deq = svm_fifo_max_dequeue_cons (s->tx_fifo); + session_dgram_pre_hdr_t phdr; + + if (max_deq <= sizeof (session_dgram_hdr_t)) + return 0; + svm_fifo_peek (s->tx_fifo, 0, sizeof (phdr), (u8 *) &phdr); + return max_deq >= phdr.data_length + sizeof (session_dgram_hdr_t); +} + always_inline void transport_rx_fifo_req_deq_ntf (transport_connection_t *tc) {