26 ip46_address_t * ip,
u16 port)
31 kv.
key[0] = ip->as_u64[0];
32 kv.
key[1] = ip->as_u64[1];
35 rv = clib_bihash_search_inline_24_8 (ht, &kv);
48 kv.
key[0] = te->ip.as_u64[0];
49 kv.
key[1] = te->ip.as_u64[1];
53 clib_bihash_add_del_24_8 (ht, &kv, 1);
62 kv.
key[0] = te->ip.as_u64[0];
63 kv.
key[1] = te->ip.as_u64[1];
66 clib_bihash_add_del_24_8 (ht, &kv, 0);
87 vft->tx_fifo_offset != 0);
#define vec_validate(V, I)
Make sure vector is long enough for given index (no header, unspecified alignment) ...
void session_register_transport(transport_proto_t transport_proto, u8 is_ip4, const transport_proto_vft_t *vft)
Register transport virtual function table.
struct _transport_proto_vft transport_proto_vft_t
u32 transport_endpoint_lookup(transport_endpoint_table_t *ht, ip46_address_t *ip, u16 port)
clib_bihash_24_8_t transport_endpoint_table_t
void transport_endpoint_table_add(transport_endpoint_table_t *ht, transport_endpoint_t *te, u32 value)
#define TRANSPORT_ENDPOINT_INVALID_INDEX
void transport_endpoint_table_del(transport_endpoint_table_t *ht, transport_endpoint_t *te)
static void session_manager_set_transport_rx_fn(u8 type, u8 is_peek)
session_type_t session_type_from_proto_and_ip(transport_proto_t proto, u8 is_ip4)
enum _transport_proto transport_proto_t
transport_proto_vft_t * session_get_transport_vft(u8 session_type)
Get transport virtual function table.
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
transport_proto_vft_t * tp_vfts
Per-type vector of transport protocol virtual function tables.
struct _transport_endpoint transport_endpoint_t