aboutsummaryrefslogtreecommitdiffstats
path: root/src/vnet/session/transport.h
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2018-10-25 18:03:45 -0700
committerDamjan Marion <dmarion@me.com>2018-10-28 14:57:26 +0000
commit5665cedf57165c05d00f28de06b627047902ffce (patch)
treeb9a07ed14844302ac512459df7e851ccf370ef4d /src/vnet/session/transport.h
parent75b39f87119c1df67723798e16f7c18265da4e15 (diff)
session: extend connect api for internal apps
Change-Id: Ie4c5cfc4c97acb321a46b4df589dc44de1b616ba Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet/session/transport.h')
-rw-r--r--src/vnet/session/transport.h25
1 files changed, 18 insertions, 7 deletions
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);