summaryrefslogtreecommitdiffstats
path: root/src/vnet/session
diff options
context:
space:
mode:
Diffstat (limited to 'src/vnet/session')
-rw-r--r--src/vnet/session/session.c15
-rw-r--r--src/vnet/session/session.h7
2 files changed, 19 insertions, 3 deletions
diff --git a/src/vnet/session/session.c b/src/vnet/session/session.c
index d17c93f8f69..e92bb440601 100644
--- a/src/vnet/session/session.c
+++ b/src/vnet/session/session.c
@@ -609,6 +609,21 @@ session_manager_flush_enqueue_events (u32 thread_index)
return errors;
}
+/**
+ * Init fifo tail and head pointers
+ *
+ * Useful if transport uses absolute offsets for tracking ooo segments.
+ */
+void
+stream_session_init_fifos_pointers (transport_connection_t * tc,
+ u32 rx_pointer, u32 tx_pointer)
+{
+ stream_session_t *s;
+ s = stream_session_get (tc->s_index, tc->thread_index);
+ svm_fifo_init_pointers (s->server_rx_fifo, rx_pointer);
+ svm_fifo_init_pointers (s->server_tx_fifo, tx_pointer);
+}
+
void
stream_session_connect_notify (transport_connection_t * tc, u8 sst,
u8 is_fail)
diff --git a/src/vnet/session/session.h b/src/vnet/session/session.h
index 8cd72f3577a..f41a8a96eb5 100644
--- a/src/vnet/session/session.h
+++ b/src/vnet/session/session.h
@@ -352,9 +352,10 @@ stream_session_peek_bytes (transport_connection_t * tc, u8 * buffer,
u32 offset, u32 max_bytes);
u32 stream_session_dequeue_drop (transport_connection_t * tc, u32 max_bytes);
-void
-stream_session_connect_notify (transport_connection_t * tc, u8 sst,
- u8 is_fail);
+void stream_session_connect_notify (transport_connection_t * tc, u8 sst,
+ u8 is_fail);
+void stream_session_init_fifos_pointers (transport_connection_t * tc,
+ u32 rx_pointer, u32 tx_pointer);
void stream_session_accept_notify (transport_connection_t * tc);
void stream_session_disconnect_notify (transport_connection_t * tc);