From 5665cedf57165c05d00f28de06b627047902ffce Mon Sep 17 00:00:00 2001 From: Florin Coras Date: Thu, 25 Oct 2018 18:03:45 -0700 Subject: session: extend connect api for internal apps Change-Id: Ie4c5cfc4c97acb321a46b4df589dc44de1b616ba Signed-off-by: Florin Coras --- src/vnet/session/transport.h | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/vnet/session/transport.h') diff --git a/src/vnet/session/transport.h b/src/vnet/session/transport.h index a4f26a45a6a..952f97d9ac3 100644 --- a/src/vnet/session/transport.h +++ b/src/vnet/session/transport.h @@ -122,20 +122,31 @@ u8 *format_transport_half_open_connection (u8 * s, va_list * args); uword unformat_transport_proto (unformat_input_t * input, va_list * args); -#define foreach_transport_connection_fields \ +#define foreach_transport_endpoint_fields \ + _(ip46_address_t, ip) /**< ip address in net order */ \ + _(u16, port) /**< port in net order */ \ + _(u8, is_ip4) /**< set if ip4 */ \ _(u32, sw_if_index) /**< interface endpoint is associated with */ \ - _(ip46_address_t, ip) /**< ip address */ \ _(u32, fib_index) /**< fib table endpoint is associated with */ \ - _(u8, is_ip4) /**< set if ip4 */ \ - _(u16, port) /**< port in net order */ \ -typedef struct _transport_endpoint +typedef struct transport_endpoint_ { #define _(type, name) type name; - foreach_transport_connection_fields + foreach_transport_endpoint_fields #undef _ } transport_endpoint_t; +#define foreach_transport_endpoint_cfg_fields \ + foreach_transport_endpoint_fields \ + _(transport_endpoint_t, peer) \ + +typedef struct transport_endpoint_pair_ +{ +#define _(type, name) type name; + foreach_transport_endpoint_cfg_fields +#undef _ +} transport_endpoint_cfg_t; + typedef clib_bihash_24_8_t transport_endpoint_table_t; #define ENDPOINT_INVALID_INDEX ((u32)~0) @@ -153,7 +164,7 @@ transport_endpoint_fib_proto (transport_endpoint_t * tep) } int transport_alloc_local_port (u8 proto, ip46_address_t * ip); -int transport_alloc_local_endpoint (u8 proto, transport_endpoint_t * rmt, +int transport_alloc_local_endpoint (u8 proto, transport_endpoint_cfg_t * rmt, ip46_address_t * lcl_addr, u16 * lcl_port); void transport_endpoint_cleanup (u8 proto, ip46_address_t * lcl_ip, u16 port); -- cgit 1.2.3-korg