summaryrefslogtreecommitdiffstats
path: root/src/vnet/session/transport.h
diff options
context:
space:
mode:
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);