16 #ifndef VNET_VNET_URI_TRANSPORT_H_ 17 #define VNET_VNET_URI_TRANSPORT_H_ 26 typedef struct _transport_connection
28 ip46_address_t rmt_ip;
29 ip46_address_t lcl_ip;
49 #define c_lcl_ip connection.lcl_ip 50 #define c_rmt_ip connection.rmt_ip 51 #define c_lcl_ip4 connection.lcl_ip.ip4 52 #define c_rmt_ip4 connection.rmt_ip.ip4 53 #define c_lcl_ip6 connection.lcl_ip.ip6 54 #define c_rmt_ip6 connection.rmt_ip.ip6 55 #define c_lcl_port connection.lcl_port 56 #define c_rmt_port connection.rmt_port 57 #define c_proto connection.proto 58 #define c_fib_index connection.fib_index 59 #define c_s_index connection.s_index 60 #define c_c_index connection.c_index 61 #define c_is_ip4 connection.is_ip4 62 #define c_thread_index connection.thread_index 63 #define c_elog_track connection.elog_track 64 #define c_cc_stat_tstamp connection.cc_stat_tstamp 65 #define c_rmt_fei connection.rmt_fei 66 #define c_rmt_dpo connection.rmt_dpo 69 typedef enum _transport_proto
80 #define foreach_transport_connection_fields \ 82 _(ip46_address_t, ip) \ 87 typedef struct _transport_endpoint
89 #define _(type, name) type name; 96 #define ENDPOINT_INVALID_INDEX ((u32)~0) 124 ip46_address_t * lcl_addr,
static u8 transport_is_dgram(u8 proto)
struct _transport_connection transport_connection_t
void transport_init(void)
static u8 transport_endpoint_fib_proto(transport_endpoint_t *tep)
u8 * format_transport_proto_short(u8 *s, va_list *args)
The identity of a DPO is a combination of its type and its instance number/index of objects of that t...
clib_bihash_24_8_t transport_endpoint_table_t
void transport_endpoint_cleanup(u8 proto, ip46_address_t *lcl_ip, u16 port)
static u8 transport_connection_fib_proto(transport_connection_t *tc)
u32 fib_node_index_t
A typedef of a node index.
static u8 transport_is_stream(u8 proto)
uword unformat_transport_proto(unformat_input_t *input, va_list *args)
u8 * format_transport_proto(u8 *s, va_list *args)
#define foreach_transport_connection_fields
port in net order
enum _transport_proto transport_proto_t
struct _transport_endpoint transport_endpoint_t
static void elog_track(elog_main_t *em, elog_event_type_t *type, elog_track_t *track, u32 data)
Log a single-datum event to a specific track, non-inline version.
int transport_alloc_local_endpoint(u8 proto, transport_endpoint_t *rmt, ip46_address_t *lcl_addr, u16 *lcl_port)
int transport_alloc_local_port(u8 proto, ip46_address_t *ip)
Allocate local port and add if successful add entry to local endpoint table to mark the pair as used...