X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fstream_session.h;h=b08f95925104b2557bd26492c64609b2a5d14de7;hb=ab2f6dbf;hp=34f122f24c34e863a3ddc683e6f80d5f7d51a846;hpb=697faeace706337eddf0407e4e28e0bb8d39c20e;p=vpp.git diff --git a/src/vnet/session/stream_session.h b/src/vnet/session/stream_session.h index 34f122f24c3..b08f9592510 100644 --- a/src/vnet/session/stream_session.h +++ b/src/vnet/session/stream_session.h @@ -60,8 +60,8 @@ typedef struct _stream_session_t /** Session index in per_thread pool */ u32 session_index; - /** stream server pool index */ - u32 app_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; }; @@ -101,24 +114,32 @@ typedef struct local_session_ u32 session_index; /** Server index */ - u32 app_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 */ - u32 client_index; + u32 client_wrk_index; u32 client_opaque; u64 server_evt_q; @@ -143,36 +164,36 @@ typedef struct _session_endpoint_extended #define _(type, name) type name; foreach_session_endpoint_fields #undef _ - u32 app_index; + u32 app_wrk_index; u32 opaque; u8 *hostname; } session_endpoint_extended_t; -#define SESSION_IP46_ZERO \ -{ \ - .ip6 = { \ - { 0, 0, }, \ - }, \ +#define SESSION_IP46_ZERO \ +{ \ + .ip6 = { \ + { 0, 0, }, \ + }, \ } -#define SESSION_ENDPOINT_NULL \ -{ \ +#define SESSION_ENDPOINT_NULL \ +{ \ .sw_if_index = ENDPOINT_INVALID_INDEX, \ - .ip = SESSION_IP46_ZERO, \ - .fib_index = ENDPOINT_INVALID_INDEX, \ - .is_ip4 = 0, \ - .port = 0, \ - .transport_proto = 0, \ + .ip = SESSION_IP46_ZERO, \ + .fib_index = ENDPOINT_INVALID_INDEX, \ + .is_ip4 = 0, \ + .port = 0, \ + .transport_proto = 0, \ } -#define SESSION_ENDPOINT_EXT_NULL \ -{ \ +#define SESSION_ENDPOINT_EXT_NULL \ +{ \ .sw_if_index = ENDPOINT_INVALID_INDEX, \ - .ip = SESSION_IP46_ZERO, \ - .fib_index = ENDPOINT_INVALID_INDEX, \ - .is_ip4 = 0, \ - .port = 0, \ - .transport_proto = 0, \ - .app_index = ENDPOINT_INVALID_INDEX, \ - .opaque = ENDPOINT_INVALID_INDEX, \ + .ip = SESSION_IP46_ZERO, \ + .fib_index = ENDPOINT_INVALID_INDEX, \ + .is_ip4 = 0, \ + .port = 0, \ + .transport_proto = 0, \ + .app_wrk_index = ENDPOINT_INVALID_INDEX, \ + .opaque = ENDPOINT_INVALID_INDEX, \ .hostname = 0, \ }