FD.io VPP  v19.01.3-6-g70449b9b9
Vector Packet Processing
transport.h File Reference
+ Include dependency graph for transport.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 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 TRANSPORT_CONNECTION_F_IS_TX_PACED   1 << 0
 
#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 struct _transport_stats transport_stats_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
 

Functions

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)
 
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. More...
 
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)
 
u8 transport_protocol_is_cl (transport_proto_t tp)
 
void transport_init (void)
 

Macro Definition Documentation

◆ c_c_index

#define c_c_index   connection.c_index

Definition at line 91 of file transport.h.

◆ c_cc_stat_tstamp

#define c_cc_stat_tstamp   connection.cc_stat_tstamp

Definition at line 95 of file transport.h.

◆ c_elog_track

#define c_elog_track   connection.elog_track

Definition at line 94 of file transport.h.

◆ c_fib_index

#define c_fib_index   connection.fib_index

Definition at line 89 of file transport.h.

◆ c_flags

#define c_flags   connection.flags

Definition at line 101 of file transport.h.

◆ c_is_ip4

#define c_is_ip4   connection.is_ip4

Definition at line 92 of file transport.h.

◆ c_lcl_ip

#define c_lcl_ip   connection.lcl_ip

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

Definition at line 80 of file transport.h.

◆ c_lcl_ip4

#define c_lcl_ip4   connection.lcl_ip.ip4

Definition at line 82 of file transport.h.

◆ c_lcl_ip6

#define c_lcl_ip6   connection.lcl_ip.ip6

Definition at line 84 of file transport.h.

◆ c_lcl_port

#define c_lcl_port   connection.lcl_port

Definition at line 86 of file transport.h.

◆ c_opaque_id

#define c_opaque_id   connection.opaque_conn_id

Definition at line 98 of file transport.h.

◆ c_pacer

#define c_pacer   connection.pacer

Definition at line 100 of file transport.h.

◆ c_proto

#define c_proto   connection.proto

Definition at line 88 of file transport.h.

◆ c_rmt_dpo

#define c_rmt_dpo   connection.rmt_dpo

Definition at line 97 of file transport.h.

◆ c_rmt_fei

#define c_rmt_fei   connection.rmt_fei

Definition at line 96 of file transport.h.

◆ c_rmt_ip

#define c_rmt_ip   connection.rmt_ip

Definition at line 81 of file transport.h.

◆ c_rmt_ip4

#define c_rmt_ip4   connection.rmt_ip.ip4

Definition at line 83 of file transport.h.

◆ c_rmt_ip6

#define c_rmt_ip6   connection.rmt_ip.ip6

Definition at line 85 of file transport.h.

◆ c_rmt_port

#define c_rmt_port   connection.rmt_port

Definition at line 87 of file transport.h.

◆ c_s_index

#define c_s_index   connection.s_index

Definition at line 90 of file transport.h.

◆ c_stats

#define c_stats   connection.stats

Definition at line 99 of file transport.h.

◆ c_thread_index

#define c_thread_index   connection.thread_index

Definition at line 93 of file transport.h.

◆ ENDPOINT_INVALID_INDEX

#define ENDPOINT_INVALID_INDEX   ((u32)~0)

Definition at line 153 of file transport.h.

◆ foreach_transport_endpoint_cfg_fields

#define foreach_transport_endpoint_cfg_fields
Value:
foreach_transport_endpoint_fields \

Definition at line 140 of file transport.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
u32 sw_if_index
Definition: vxlan_gbp.api:37
unsigned int u32
Definition: types.h:88
unsigned short u16
Definition: types.h:57

fib table endpoint is associated with

Definition at line 125 of file transport.h.

◆ TRANSPORT_CONNECTION_F_IS_TX_PACED

#define TRANSPORT_CONNECTION_F_IS_TX_PACED   1 << 0

Definition at line 104 of file transport.h.

Typedef Documentation

◆ spacer_t

typedef struct _spacer spacer_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 151 of file transport.h.

◆ transport_proto_t

typedef enum _transport_proto transport_proto_t

◆ transport_stats_t

typedef struct _transport_stats transport_stats_t

Function Documentation

◆ format_transport_connection()

u8* format_transport_connection ( u8 s,
va_list *  args 
)

Definition at line 98 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 140 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 125 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 54 of file transport.c.

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

◆ format_transport_proto_short()

u8* format_transport_proto_short ( u8 s,
va_list *  args 
)

Definition at line 76 of file transport.c.

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

◆ transport_alloc_local_endpoint()

int transport_alloc_local_endpoint ( u8  proto,
transport_endpoint_cfg_t rmt,
ip46_address_t *  lcl_addr,
u16 lcl_port 
)

Definition at line 431 of file transport.c.

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

◆ transport_alloc_local_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.

Definition at line 334 of file transport.c.

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

◆ transport_connection_fib_proto()

static u8 transport_connection_fib_proto ( transport_connection_t tc)
inlinestatic

Definition at line 156 of file transport.h.

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

◆ transport_endpoint_cleanup()

void transport_endpoint_cleanup ( u8  proto,
ip46_address_t *  lcl_ip,
u16  port 
)

Definition at line 300 of file transport.c.

+ 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 162 of file transport.h.

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

◆ transport_init()

void transport_init ( void  )

Definition at line 647 of file transport.c.

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

◆ transport_protocol_is_cl()

u8 transport_protocol_is_cl ( transport_proto_t  tp)

Definition at line 276 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 155 of file transport.c.

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