diff options
author | Florin Coras <fcoras@cisco.com> | 2018-08-31 14:31:41 -0700 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2018-09-06 08:35:51 +0000 |
commit | ab2f6dbf9f7b7164a9810f4c80c8abf8463e42ad (patch) | |
tree | 7fb4dd4c70bef17f09a88130eeadeeca86b6d09c /src/vnet/session/stream_session.h | |
parent | ed234e7f151b05a5b8375dbd9f0add24fe8ebf2f (diff) |
session: support multiple worker binds
Allows app workers to listen on the same session endpoint. Incoming
connects are spread across the workers in a round-robin fashion
Change-Id: Ib5f5817230d9abc6127a85cdbdcad70d980c0f7f
Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session/stream_session.h')
-rw-r--r-- | src/vnet/session/stream_session.h | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/vnet/session/stream_session.h b/src/vnet/session/stream_session.h index 567962a35db..b08f9592510 100644 --- a/src/vnet/session/stream_session.h +++ b/src/vnet/session/stream_session.h @@ -60,7 +60,7 @@ 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; @@ -78,6 +78,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 +116,25 @@ typedef struct local_session_ /** Server index */ u32 app_wrk_index; + /** Port for connection. Overlaps thread_index/enqueue_epoch */ + u16 port; + /** 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 |