FD.io VPP  v20.01-48-g3e0dafb74
Vector Packet Processing
transport_types.h File Reference
+ Include dependency graph for transport_types.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  transport_endpoint_
 
struct  transport_endpoint_pair_
 

Macros

#define TRANSPORT_MAX_HDRS_LEN   140 /* Max number of bytes for headers */
 
#define TRANSPORT_CONN_ID_LEN   44
 
#define c_lcl_ip   connection.lcl_ip
 Macros for 'derived classes' where base is named "connection". More...
 
#define c_rmt_ip   connection.rmt_ip
 
#define c_lcl_ip4   connection.lcl_ip.ip4
 
#define c_rmt_ip4   connection.rmt_ip.ip4
 
#define c_lcl_ip6   connection.lcl_ip.ip6
 
#define c_rmt_ip6   connection.rmt_ip.ip6
 
#define c_lcl_port   connection.lcl_port
 
#define c_rmt_port   connection.rmt_port
 
#define c_proto   connection.proto
 
#define c_fib_index   connection.fib_index
 
#define c_s_index   connection.s_index
 
#define c_c_index   connection.c_index
 
#define c_is_ip4   connection.is_ip4
 
#define c_thread_index   connection.thread_index
 
#define c_elog_track   connection.elog_track
 
#define c_cc_stat_tstamp   connection.cc_stat_tstamp
 
#define c_rmt_fei   connection.rmt_fei
 
#define c_rmt_dpo   connection.rmt_dpo
 
#define c_opaque_id   connection.opaque_conn_id
 
#define c_stats   connection.stats
 
#define c_pacer   connection.pacer
 
#define c_flags   connection.flags
 
#define foreach_transport_proto
 
#define foreach_transport_endpoint_fields
 fib table endpoint is associated with More...
 
#define foreach_transport_endpoint_cfg_fields
 
#define ENDPOINT_INVALID_INDEX   ((u32)~0)
 

Typedefs

typedef enum transport_dequeue_type_ transport_tx_fn_type_t
 
typedef enum transport_service_type_ transport_service_type_t
 
typedef enum transport_connection_flags_ transport_connection_flags_t
 
typedef struct _spacer spacer_t
 
typedef struct _transport_connection transport_connection_t
 
typedef enum _transport_proto transport_proto_t
 
typedef struct transport_endpoint_ transport_endpoint_t
 
typedef struct transport_endpoint_pair_ transport_endpoint_cfg_t
 
typedef clib_bihash_24_8_t transport_endpoint_table_t
 

Enumerations

enum  transport_dequeue_type_ {
  TRANSPORT_TX_PEEK, TRANSPORT_TX_DEQUEUE, TRANSPORT_TX_INTERNAL, TRANSPORT_TX_DGRAM,
  TRANSPORT_TX_N_FNS
}
 
enum  transport_service_type_ { TRANSPORT_SERVICE_VC, TRANSPORT_SERVICE_CL, TRANSPORT_SERVICE_APP, TRANSPORT_N_SERVICES }
 
enum  transport_connection_flags_ { TRANSPORT_CONNECTION_F_IS_TX_PACED = 1 << 0, TRANSPORT_CONNECTION_F_NO_LOOKUP = 1 << 1 }
 

Functions

 STATIC_ASSERT (sizeof(transport_connection_t)<=128, "moved into 3rd cache line")
 
u8format_transport_proto (u8 *s, va_list *args)
 
u8format_transport_proto_short (u8 *s, va_list *args)
 
u8format_transport_connection (u8 *s, va_list *args)
 
u8format_transport_listen_connection (u8 *s, va_list *args)
 
u8format_transport_half_open_connection (u8 *s, va_list *args)
 
uword unformat_transport_proto (unformat_input_t *input, va_list *args)
 
static u8 transport_connection_fib_proto (transport_connection_t *tc)
 
static u8 transport_endpoint_fib_proto (transport_endpoint_t *tep)
 
u8 transport_protocol_is_cl (transport_proto_t tp)
 
u8 transport_half_open_has_fifos (transport_proto_t tp)
 
transport_service_type_t transport_protocol_service_type (transport_proto_t)
 
transport_tx_fn_type_t transport_protocol_tx_fn_type (transport_proto_t tp)
 

Variables

update conn id len
 

Macro Definition Documentation

◆ c_c_index

#define c_c_index   connection.c_index

Definition at line 124 of file transport_types.h.

◆ c_cc_stat_tstamp

#define c_cc_stat_tstamp   connection.cc_stat_tstamp

Definition at line 128 of file transport_types.h.

◆ c_elog_track

#define c_elog_track   connection.elog_track

Definition at line 127 of file transport_types.h.

◆ c_fib_index

#define c_fib_index   connection.fib_index

Definition at line 122 of file transport_types.h.

◆ c_flags

#define c_flags   connection.flags

Definition at line 134 of file transport_types.h.

◆ c_is_ip4

#define c_is_ip4   connection.is_ip4

Definition at line 125 of file transport_types.h.

◆ c_lcl_ip

#define c_lcl_ip   connection.lcl_ip

Macros for 'derived classes' where base is named "connection".

Definition at line 113 of file transport_types.h.

◆ c_lcl_ip4

#define c_lcl_ip4   connection.lcl_ip.ip4

Definition at line 115 of file transport_types.h.

◆ c_lcl_ip6

#define c_lcl_ip6   connection.lcl_ip.ip6

Definition at line 117 of file transport_types.h.

◆ c_lcl_port

#define c_lcl_port   connection.lcl_port

Definition at line 119 of file transport_types.h.

◆ c_opaque_id

#define c_opaque_id   connection.opaque_conn_id

Definition at line 131 of file transport_types.h.

◆ c_pacer

#define c_pacer   connection.pacer

Definition at line 133 of file transport_types.h.

◆ c_proto

#define c_proto   connection.proto

Definition at line 121 of file transport_types.h.

◆ c_rmt_dpo

#define c_rmt_dpo   connection.rmt_dpo

Definition at line 130 of file transport_types.h.

◆ c_rmt_fei

#define c_rmt_fei   connection.rmt_fei

Definition at line 129 of file transport_types.h.

◆ c_rmt_ip

#define c_rmt_ip   connection.rmt_ip

Definition at line 114 of file transport_types.h.

◆ c_rmt_ip4

#define c_rmt_ip4   connection.rmt_ip.ip4

Definition at line 116 of file transport_types.h.

◆ c_rmt_ip6

#define c_rmt_ip6   connection.rmt_ip.ip6

Definition at line 118 of file transport_types.h.

◆ c_rmt_port

#define c_rmt_port   connection.rmt_port

Definition at line 120 of file transport_types.h.

◆ c_s_index

#define c_s_index   connection.s_index

Definition at line 123 of file transport_types.h.

◆ c_stats

#define c_stats   connection.stats

Definition at line 132 of file transport_types.h.

◆ c_thread_index

#define c_thread_index   connection.thread_index

Definition at line 126 of file transport_types.h.

◆ ENDPOINT_INVALID_INDEX

#define ENDPOINT_INVALID_INDEX   ((u32)~0)

Definition at line 198 of file transport_types.h.

◆ foreach_transport_endpoint_cfg_fields

#define foreach_transport_endpoint_cfg_fields
Value:
foreach_transport_endpoint_fields \
vl_api_address_t peer
Definition: nhrp.api:28

Definition at line 185 of file transport_types.h.

◆ foreach_transport_endpoint_fields

#define foreach_transport_endpoint_fields
Value:
_(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 */ \
_(u32, fib_index)
unsigned char u8
Definition: types.h:56
vl_api_interface_index_t sw_if_index
Definition: gre.api:59
unsigned int u32
Definition: types.h:88
unsigned short u16
Definition: types.h:57
u8 is_ip4
Definition: lisp_gpe.api:232
vl_api_address_t ip
Definition: l2.api:490
u16 port
Definition: lb_types.api:72

fib table endpoint is associated with

Definition at line 170 of file transport_types.h.

◆ foreach_transport_proto

#define foreach_transport_proto
Value:
_(TCP, "tcp", "T") \
_(UDP, "udp", "U") \
_(SCTP, "sctp", "S") \
_(NONE, "ct", "C") \
_(TLS, "tls", "J") \
_(UDPC, "udpc", "U") \
_(QUIC, "quic", "Q") \

Definition at line 145 of file transport_types.h.

◆ TRANSPORT_CONN_ID_LEN

#define TRANSPORT_CONN_ID_LEN   44

Definition at line 60 of file transport_types.h.

◆ TRANSPORT_MAX_HDRS_LEN

#define TRANSPORT_MAX_HDRS_LEN   140 /* Max number of bytes for headers */

Definition at line 23 of file transport_types.h.

Typedef Documentation

◆ spacer_t

typedef struct _spacer spacer_t

◆ transport_connection_flags_t

◆ transport_connection_t

typedef struct _transport_connection transport_connection_t

◆ transport_endpoint_cfg_t

◆ transport_endpoint_t

◆ transport_endpoint_table_t

typedef clib_bihash_24_8_t transport_endpoint_table_t

Definition at line 196 of file transport_types.h.

◆ transport_proto_t

typedef enum _transport_proto transport_proto_t

◆ transport_service_type_t

◆ transport_tx_fn_type_t

Enumeration Type Documentation

◆ transport_connection_flags_

Enumerator
TRANSPORT_CONNECTION_F_IS_TX_PACED 
TRANSPORT_CONNECTION_F_NO_LOOKUP 

Don't register connection in lookup Does not apply to local apps and transports using the network layer (udp/tcp)

Definition at line 43 of file transport_types.h.

◆ transport_dequeue_type_

Enumerator
TRANSPORT_TX_PEEK 

reliable transport protos

TRANSPORT_TX_DEQUEUE 

unreliable transport protos

TRANSPORT_TX_INTERNAL 

apps acting as transports

TRANSPORT_TX_DGRAM 

datagram mode

TRANSPORT_TX_N_FNS 

Definition at line 26 of file transport_types.h.

◆ transport_service_type_

Enumerator
TRANSPORT_SERVICE_VC 

virtual circuit service

TRANSPORT_SERVICE_CL 

connectionless service

TRANSPORT_SERVICE_APP 

app transport service

TRANSPORT_N_SERVICES 

Definition at line 35 of file transport_types.h.

Function Documentation

◆ format_transport_connection()

u8* format_transport_connection ( u8 s,
va_list *  args 
)

Definition at line 84 of file transport.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_transport_half_open_connection()

u8* format_transport_half_open_connection ( u8 s,
va_list *  args 
)

Definition at line 125 of file transport.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_transport_listen_connection()

u8* format_transport_listen_connection ( u8 s,
va_list *  args 
)

Definition at line 111 of file transport.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ format_transport_proto()

u8* format_transport_proto ( u8 s,
va_list *  args 
)

Definition at line 46 of file transport.c.

◆ format_transport_proto_short()

u8* format_transport_proto_short ( u8 s,
va_list *  args 
)

Definition at line 65 of file transport.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ STATIC_ASSERT()

STATIC_ASSERT ( sizeof(transport_connection_t)<=  128,
"moved into 3rd cache line"   
)

◆ transport_connection_fib_proto()

static u8 transport_connection_fib_proto ( transport_connection_t tc)
inlinestatic

Definition at line 201 of file transport_types.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ transport_endpoint_fib_proto()

static u8 transport_endpoint_fib_proto ( transport_endpoint_t tep)
inlinestatic

Definition at line 207 of file transport_types.h.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ transport_half_open_has_fifos()

u8 transport_half_open_has_fifos ( transport_proto_t  tp)

Definition at line 265 of file transport.c.

+ Here is the caller graph for this function:

◆ transport_protocol_is_cl()

u8 transport_protocol_is_cl ( transport_proto_t  tp)

Definition at line 323 of file transport.c.

+ Here is the caller graph for this function:

◆ transport_protocol_service_type()

transport_service_type_t transport_protocol_service_type ( transport_proto_t  )

Definition at line 271 of file transport.c.

+ Here is the caller graph for this function:

◆ transport_protocol_tx_fn_type()

transport_tx_fn_type_t transport_protocol_tx_fn_type ( transport_proto_t  tp)

Definition at line 277 of file transport.c.

+ Here is the caller graph for this function:

◆ unformat_transport_proto()

uword unformat_transport_proto ( unformat_input_t input,
va_list *  args 
)

Definition at line 156 of file transport.c.

Variable Documentation

◆ len

update conn id len

Definition at line 138 of file transport_types.h.