X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Fsession%2Fstream_session.h;h=b7a5eee4b120e5394e9eb687400c480587ddf913;hb=8f89dd0;hp=5c4601daa3106ebcfb610125a82964ae1edf56a4;hpb=5fda7a3925be145f0c326d0aecc36d883cbcb2ee;p=vpp.git diff --git a/src/vnet/session/stream_session.h b/src/vnet/session/stream_session.h index 5c4601daa31..b7a5eee4b12 100644 --- a/src/vnet/session/stream_session.h +++ b/src/vnet/session/stream_session.h @@ -85,8 +85,13 @@ typedef struct _stream_session_t /** Transport specific */ u32 connection_index; - /** Parent listener session if the result of an accept */ - u32 listener_index; + union + { + /** Parent listener session if the result of an accept */ + u32 listener_index; + /** Opaque, for general use */ + u32 opaque; + }; CLIB_CACHE_LINE_ALIGN_MARK (pad); } stream_session_t; @@ -133,20 +138,27 @@ typedef struct local_session_ CLIB_CACHE_LINE_ALIGN_MARK (pad); } local_session_t; +#define foreach_session_endpoint_fields \ + foreach_transport_connection_fields \ + _(u8, transport_proto) \ + typedef struct _session_endpoint { - /* - * Network specific - */ #define _(type, name) type name; - foreach_transport_connection_fields + foreach_session_endpoint_fields #undef _ - /* - * Session specific - */ - u8 transport_proto; /**< transport protocol for session */ } session_endpoint_t; +typedef struct _session_endpoint_extended +{ +#define _(type, name) type name; + foreach_session_endpoint_fields +#undef _ + u32 app_index; + u32 opaque; + u8 *hostname; +} session_endpoint_extended_t; + #define SESSION_IP46_ZERO \ { \ .ip6 = { \ @@ -162,6 +174,18 @@ typedef struct _session_endpoint .port = 0, \ .transport_proto = 0, \ } +#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, \ + .hostname = 0, \ +} #define session_endpoint_to_transport(_sep) ((transport_endpoint_t *)_sep)