- max_dequeue = svm_fifo_max_dequeue (s->server_rx_fifo);
- max_enqueue = svm_fifo_max_enqueue (s->server_tx_fifo);
+ max_enqueue = svm_fifo_max_enqueue (tx_fifo);
+ if (!esm->is_dgram)
+ {
+ max_dequeue = svm_fifo_max_dequeue (rx_fifo);
+ }
+ else
+ {
+ session_dgram_pre_hdr_t ph;
+ svm_fifo_peek (rx_fifo, 0, sizeof (ph), (u8 *) & ph);
+ max_dequeue = ph.data_length - ph.data_offset;
+ if (!esm->vpp_queue[s->thread_index])
+ {
+ q = session_manager_get_vpp_event_queue (s->thread_index);
+ esm->vpp_queue[s->thread_index] = q;
+ }
+ max_enqueue -= sizeof (session_dgram_hdr_t);
+ }