FD.io VPP  v18.04-17-g3a0d853
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.

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 foreach_transport_connection_fields
 port in net order More...
 
#define ENDPOINT_INVALID_INDEX   ((u32)~0)
 

Typedefs

typedef struct _transport_connection transport_connection_t
 
typedef enum _transport_proto transport_proto_t
 
typedef struct _transport_endpoint transport_endpoint_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)
 
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)
 
static u8 transport_is_stream (u8 proto)
 
static u8 transport_is_dgram (u8 proto)
 
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_t *rmt, ip46_address_t *lcl_addr, u16 *lcl_port)
 
void transport_endpoint_cleanup (u8 proto, ip46_address_t *lcl_ip, u16 port)
 
void transport_init (void)
 

Macro Definition Documentation

#define c_c_index   connection.c_index

Definition at line 74 of file transport.h.

#define c_cc_stat_tstamp   connection.cc_stat_tstamp

Definition at line 78 of file transport.h.

#define c_elog_track   connection.elog_track

Definition at line 77 of file transport.h.

#define c_fib_index   connection.fib_index

Definition at line 72 of file transport.h.

#define c_is_ip4   connection.is_ip4

Definition at line 75 of file transport.h.

#define c_lcl_ip   connection.lcl_ip

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

Definition at line 63 of file transport.h.

#define c_lcl_ip4   connection.lcl_ip.ip4

Definition at line 65 of file transport.h.

#define c_lcl_ip6   connection.lcl_ip.ip6

Definition at line 67 of file transport.h.

#define c_lcl_port   connection.lcl_port

Definition at line 69 of file transport.h.

#define c_opaque_id   connection.opaque_conn_id

Definition at line 81 of file transport.h.

#define c_proto   connection.proto

Definition at line 71 of file transport.h.

#define c_rmt_dpo   connection.rmt_dpo

Definition at line 80 of file transport.h.

#define c_rmt_fei   connection.rmt_fei

Definition at line 79 of file transport.h.

#define c_rmt_ip   connection.rmt_ip

Definition at line 64 of file transport.h.

#define c_rmt_ip4   connection.rmt_ip.ip4

Definition at line 66 of file transport.h.

#define c_rmt_ip6   connection.rmt_ip.ip6

Definition at line 68 of file transport.h.

#define c_rmt_port   connection.rmt_port

Definition at line 70 of file transport.h.

#define c_s_index   connection.s_index

Definition at line 73 of file transport.h.

#define c_thread_index   connection.thread_index

Definition at line 76 of file transport.h.

#define ENDPOINT_INVALID_INDEX   ((u32)~0)

Definition at line 115 of file transport.h.

#define foreach_transport_connection_fields
Value:
_(u32, sw_if_index) /**< interface endpoint is associated with */ \
_(ip46_address_t, ip) /**< ip address */ \
_(u32, fib_index) /**< fib table endpoint is associated with */ \
_(u8, is_ip4) /**< 1 if ip4 */ \
_(u16, port)
unsigned int u32
Definition: types.h:88
unsigned short u16
Definition: types.h:57
unsigned char u8
Definition: types.h:56

port in net order

Definition at line 98 of file transport.h.

Typedef Documentation

typedef struct _transport_connection transport_connection_t
typedef struct _transport_endpoint transport_endpoint_t
typedef clib_bihash_24_8_t transport_endpoint_table_t

Definition at line 113 of file transport.h.

typedef enum _transport_proto transport_proto_t

Function Documentation

u8* format_transport_proto ( u8 s,
va_list *  args 
)

Definition at line 46 of file transport.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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:

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

Definition at line 273 of file transport.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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 228 of file transport.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8 transport_connection_fib_proto ( transport_connection_t tc)
inlinestatic

Definition at line 118 of file transport.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Definition at line 207 of file transport.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8 transport_endpoint_fib_proto ( transport_endpoint_t tep)
inlinestatic

Definition at line 124 of file transport.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void transport_init ( void  )

Definition at line 374 of file transport.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8 transport_is_dgram ( u8  proto)
inlinestatic

Definition at line 136 of file transport.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static u8 transport_is_stream ( u8  proto)
inlinestatic

Definition at line 130 of file transport.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uword unformat_transport_proto ( unformat_input_t input,
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: