FD.io VPP  v18.07.1-19-g511ce25
Vector Packet Processing
transport_interface.h File Reference
+ Include dependency graph for transport_interface.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define transport_proto_foreach(VAR, BODY)
 

Typedefs

typedef enum transport_dequeue_type_ transport_tx_fn_type_t
 
typedef enum transport_service_type_ transport_service_type_t
 
typedef struct _transport_proto_vft transport_proto_vft_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 }
 

Functions

void transport_register_protocol (transport_proto_t transport_proto, const transport_proto_vft_t *vft, fib_protocol_t fib_proto, u32 output_node)
 Register transport virtual function table. More...
 
transport_proto_vft_ttransport_protocol_get_vft (transport_proto_t tp)
 Get transport virtual function table. More...
 
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)
 
void transport_update_time (f64 time_now, u8 thread_index)
 
void transport_enable_disable (vlib_main_t *vm, u8 is_en)
 

Variables

transport_proto_vft_ttp_vfts
 Per-type vector of transport protocol virtual function tables. More...
 

Macro Definition Documentation

#define transport_proto_foreach (   VAR,
  BODY 
)
Value:
do { \
for (VAR = 0; VAR < vec_len (tp_vfts); VAR++) \
if (tp_vfts[VAR].push_header != 0) \
do { BODY; } while (0); \
} while (0)
for(i=1;i<=collision_buckets;i++)
transport_proto_vft_t * tp_vfts
Per-type vector of transport protocol virtual function tables.
Definition: transport.c:23
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)

Definition at line 89 of file transport_interface.h.

Typedef Documentation

typedef struct _transport_proto_vft transport_proto_vft_t

Enumeration Type Documentation

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 22 of file transport_interface.h.

Enumerator
TRANSPORT_SERVICE_VC 

virtual circuit service

TRANSPORT_SERVICE_CL 

connectionless service

TRANSPORT_SERVICE_APP 

app transport service

TRANSPORT_N_SERVICES 

Definition at line 31 of file transport_interface.h.

Function Documentation

void transport_enable_disable ( vlib_main_t vm,
u8  is_en 
)

Definition at line 391 of file transport.c.

+ Here is the caller graph for this function:

transport_proto_vft_t* transport_protocol_get_vft ( transport_proto_t  transport_proto)

Get transport virtual function table.

Parameters
type- session type (not protocol type)

Definition at line 191 of file transport.c.

+ Here is the caller graph for this function:

transport_service_type_t transport_protocol_service_type ( transport_proto_t  )

Definition at line 199 of file transport.c.

+ Here is the caller graph for this function:

transport_tx_fn_type_t transport_protocol_tx_fn_type ( transport_proto_t  tp)

Definition at line 205 of file transport.c.

+ Here is the caller graph for this function:

void transport_register_protocol ( transport_proto_t  transport_proto,
const transport_proto_vft_t vft,
fib_protocol_t  fib_proto,
u32  output_node 
)

Register transport virtual function table.

Parameters
transport_proto- transport protocol type (i.e., TCP, UDP ..)
vft- virtual function table for transport proto
fib_proto- network layer protocol
output_node- output node index that session layer will hand off buffers to, for requested fib proto

Definition at line 173 of file transport.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void transport_update_time ( f64  time_now,
u8  thread_index 
)

Definition at line 380 of file transport.c.

+ Here is the caller graph for this function:

Variable Documentation

Per-type vector of transport protocol virtual function tables.

Generate typed init functions for multiple hash table styles...

Definition at line 23 of file transport.c.