X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fvnet%2Fsession%2Fstream_session.h;h=287a8927339aaf8b1a0660c7f6ebf3de8f2e5f3a;hb=eb97e5f548b009ffa92efa3f778b4a7f6f40b7eb;hp=567962a35db8c23963e8353cf27c35c2f3b1ba87;hpb=1553197f9a1a3258b6954adeb9536bbe0191683d;p=vpp.git diff --git a/src/vnet/session/stream_session.h b/src/vnet/session/stream_session.h index 567962a35db..287a8927339 100644 --- a/src/vnet/session/stream_session.h +++ b/src/vnet/session/stream_session.h @@ -31,6 +31,7 @@ typedef enum SESSION_STATE_ACCEPTING, SESSION_STATE_READY, SESSION_STATE_OPENED, + SESSION_STATE_TRANSPORT_CLOSING, SESSION_STATE_CLOSING, SESSION_STATE_CLOSED, SESSION_STATE_N_STATES, @@ -60,13 +61,13 @@ typedef struct _stream_session_t /** Session index in per_thread pool */ u32 session_index; - /** app worker pool index */ + /** App worker pool index */ u32 app_wrk_index; u8 thread_index; /** To avoid n**2 "one event per frame" check */ - u8 enqueue_epoch; + u64 enqueue_epoch; /** svm segment index where fifos were allocated */ u32 svm_segment_index; @@ -78,6 +79,19 @@ typedef struct _stream_session_t { /** Parent listener session if the result of an accept */ u32 listener_index; + + /** Application index if a listener */ + u32 app_index; + }; + + union + { + /** Transport app index for apps acting as transports */ + u32 t_app_index; + + /** Index in listener app's listener db */ + u32 listener_db_index; + /** Opaque, for general use */ u32 opaque; }; @@ -103,17 +117,28 @@ typedef struct local_session_ /** Server index */ u32 app_wrk_index; + /** Port for connection. Overlaps thread_index/enqueue_epoch */ + u16 port; + + /** Partly overlaps enqueue_epoch */ + u8 pad_epoch[7]; + /** Segment index where fifos were allocated */ u32 svm_segment_index; - u32 listener_index; + /** Transport listener index. Overlaps connection index */ + u32 transport_listener_index; - /** Port for connection */ - u16 port; + union + { + u32 listener_index; + u32 app_index; + }; + + u32 listener_db_index; /** Has transport embedded when listener not purely local */ session_type_t listener_session_type; - u32 transport_listener_index; /** * Client data