16 #ifndef VNET_VNET_URI_TRANSPORT_TYPES_H_ 17 #define VNET_VNET_URI_TRANSPORT_TYPES_H_ 25 #define TRANSPORT_MAX_HDRS_LEN 140 65 typedef struct _spacer
70 f32 tokens_per_period;
74 #define TRANSPORT_CONN_ID_LEN 44 79 typedef struct _transport_connection
89 ip46_address_t rmt_ip;
90 ip46_address_t lcl_ip;
127 #define c_lcl_ip connection.lcl_ip 128 #define c_rmt_ip connection.rmt_ip 129 #define c_lcl_ip4 connection.lcl_ip.ip4 130 #define c_rmt_ip4 connection.rmt_ip.ip4 131 #define c_lcl_ip6 connection.lcl_ip.ip6 132 #define c_rmt_ip6 connection.rmt_ip.ip6 133 #define c_lcl_port connection.lcl_port 134 #define c_rmt_port connection.rmt_port 135 #define c_proto connection.proto 136 #define c_fib_index connection.fib_index 137 #define c_s_index connection.s_index 138 #define c_c_index connection.c_index 139 #define c_is_ip4 connection.is_ip4 140 #define c_thread_index connection.thread_index 141 #define c_elog_track connection.elog_track 142 #define c_cc_stat_tstamp connection.cc_stat_tstamp 143 #define c_rmt_fei connection.rmt_fei 144 #define c_rmt_dpo connection.rmt_dpo 145 #define c_opaque_id connection.opaque_conn_id 146 #define c_stats connection.stats 147 #define c_pacer connection.pacer 148 #define c_flags connection.flags 149 #define s_ho_handle pacer.bytes_per_sec 150 #define c_s_ho_handle connection.pacer.bytes_per_sec 159 "moved into 3rd cache line");
161 #define foreach_transport_proto \ 166 _(QUIC, "quic", "Q") \ 168 typedef enum _transport_proto
170 #define _(sym, str, sstr) TRANSPORT_PROTO_ ## sym, 184 #define foreach_transport_endpoint_fields \ 185 _(ip46_address_t, ip) \ 188 _(u32, sw_if_index) \ 193 #define _(type, name) type name; 204 #define foreach_transport_endpoint_cfg_fields \ 205 foreach_transport_endpoint_fields \ 206 _(transport_endpoint_t, peer) \ 208 _(u8, transport_flags) \ 212 #define _(type, name) type name; 219 #define ENDPOINT_INVALID_INDEX ((u32)~0) #define CLIB_CACHE_LINE_ALIGN_MARK(mark)
uword unformat_transport_proto(unformat_input_t *input, va_list *args)
vl_api_wireguard_peer_flags_t flags
static u8 transport_connection_fib_proto(transport_connection_t *tc)
transport_connection_flags_
struct transport_endpoint_ transport_endpoint_t
#define STRUCT_OFFSET_OF(t, f)
#define foreach_transport_proto
Connection is "connection less".
enum transport_connection_flags_ transport_connection_flags_t
transport_service_type_t transport_protocol_service_type(transport_proto_t)
u8 * format_transport_proto(u8 *s, va_list *args)
#define foreach_transport_endpoint_cfg_fields
enum transport_service_type_ transport_service_type_t
u8 * format_transport_connection(u8 *s, va_list *args)
struct transport_endpoint_pair_ transport_endpoint_cfg_t
Don't register connection in lookup.
u8 * format_transport_protos(u8 *s, va_list *args)
struct _transport_connection transport_connection_t
STATIC_ASSERT(sizeof(transport_connection_t)<=128, "moved into 3rd cache line")
#define foreach_transport_endpoint_fields
fib table endpoint is associated with
#define TRANSPORT_CONN_ID_LEN
transport_tx_fn_type_t transport_protocol_tx_fn_type(transport_proto_t tp)
u8 * format_transport_listen_connection(u8 *s, va_list *args)
apps acting as transports
enum _transport_proto transport_proto_t
reliable transport protos
transport_endpt_cfg_flags_
static u8 transport_endpoint_fib_proto(transport_endpoint_t *tep)
unreliable transport protos
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.
u8 transport_protocol_is_cl(transport_proto_t tp)
Connection descheduled by the session layer.
f64 end
end of the time range
u8 * format_transport_proto_short(u8 *s, va_list *args)
clib_bihash_24_8_t transport_endpoint_table_t
enum transport_endpt_cfg_flags_ transport_endpt_cfg_flags_t
u8 * format_transport_half_open_connection(u8 *s, va_list *args)
enum transport_dequeue_type_ transport_tx_fn_type_t