FD.io VPP  v18.10-32-g1161dda
Vector Packet Processing
gbp_endpoint.h File Reference
+ Include dependency graph for gbp_endpoint.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  gbp_endpoint_t_
 A Group Based Policy Endpoint. More...
 
struct  gbp_ep_by_itf_db_t_
 Interface to source EPG DB - a per-interface vector. More...
 
struct  gbp_ep_by_ip_itf_db_t_
 
struct  gbp_ep_by_mac_itf_db_t_
 

Typedefs

typedef enum gbp_endpoint_flags_t_ gbp_endpoint_flags_t
 Flags for each endpoint. More...
 
typedef struct gbp_endpoint_t_ gbp_endpoint_t
 A Group Based Policy Endpoint. More...
 
typedef struct gbp_ep_by_itf_db_t_ gbp_ep_by_itf_db_t
 Interface to source EPG DB - a per-interface vector. More...
 
typedef struct gbp_ep_by_ip_itf_db_t_ gbp_ep_by_ip_itf_db_t
 
typedef struct gbp_ep_by_mac_itf_db_t_ gbp_ep_by_mac_itf_db_t
 
typedef walk_rc_t(* gbp_endpoint_cb_t) (gbp_endpoint_t *gbpe, void *ctx)
 

Enumerations

enum  gbp_endpoint_flags_t_ { GBP_ENDPOINT_FLAG_NONE = 0, GBP_ENDPOINT_FLAG_BOUNCE = (1 << 0), GBP_ENDPOINT_FLAG_DYNAMIC = (1 << 1) }
 Flags for each endpoint. More...
 

Functions

u8format_gbp_endpoint (u8 *s, va_list *args)
 
int gbp_endpoint_update (u32 sw_if_index, const ip46_address_t *ip, const mac_address_t *mac, epg_id_t epg_id, u32 *handle)
 
void gbp_endpoint_delete (u32 handle)
 
void gbp_endpoint_walk (gbp_endpoint_cb_t cb, void *ctx)
 
static gbp_endpoint_tgbp_endpoint_get (index_t gbpei)
 Get the endpoint from a port/interface. More...
 
static gbp_endpoint_tgbp_endpoint_get_itf (u32 sw_if_index)
 

Variables

gbp_ep_by_itf_db_t gbp_ep_by_itf_db
 DP functions and databases. More...
 
gbp_ep_by_mac_itf_db_t gbp_ep_by_mac_itf_db
 
gbp_ep_by_ip_itf_db_t gbp_ep_by_ip_itf_db
 
gbp_endpoint_tgbp_endpoint_pool
 Pool of GBP endpoints. More...
 

Typedef Documentation

typedef walk_rc_t(* gbp_endpoint_cb_t) (gbp_endpoint_t *gbpe, void *ctx)

Definition at line 100 of file gbp_endpoint.h.

Flags for each endpoint.

A Group Based Policy Endpoint.

This is typically a VM or container. If the endpoint is local (i.e. on the same compute node as VPP) then there is one interface per-endpoint. If the EP is remote,e.g. reachable over a [vxlan] tunnel, then there will be multiple EPs reachable over the tunnel and they can be distinguished via either their MAC or IP Address[es].

Interface to source EPG DB - a per-interface vector.

Enumeration Type Documentation

Flags for each endpoint.

Enumerator
GBP_ENDPOINT_FLAG_NONE 
GBP_ENDPOINT_FLAG_BOUNCE 
GBP_ENDPOINT_FLAG_DYNAMIC 

Definition at line 31 of file gbp_endpoint.h.

Function Documentation

u8* format_gbp_endpoint ( u8 s,
va_list *  args 
)

Definition at line 458 of file gbp_endpoint.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gbp_endpoint_delete ( u32  handle)

Definition at line 334 of file gbp_endpoint.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

static gbp_endpoint_t* gbp_endpoint_get ( index_t  gbpei)
inlinestatic

Get the endpoint from a port/interface.

Definition at line 116 of file gbp_endpoint.h.

+ Here is the caller graph for this function:

static gbp_endpoint_t* gbp_endpoint_get_itf ( u32  sw_if_index)
inlinestatic

Definition at line 122 of file gbp_endpoint.h.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int gbp_endpoint_update ( u32  sw_if_index,
const ip46_address_t *  ip,
const mac_address_t mac,
epg_id_t  epg_id,
u32 handle 
)

Definition at line 236 of file gbp_endpoint.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gbp_endpoint_walk ( gbp_endpoint_cb_t  cb,
void *  ctx 
)

Definition at line 363 of file gbp_endpoint.c.

+ Here is the caller graph for this function:

Variable Documentation

gbp_endpoint_t* gbp_endpoint_pool

Pool of GBP endpoints.

Definition at line 33 of file gbp_endpoint.c.

gbp_ep_by_ip_itf_db_t gbp_ep_by_ip_itf_db

Definition at line 28 of file gbp_endpoint.c.

gbp_ep_by_itf_db_t gbp_ep_by_itf_db

DP functions and databases.

Definition at line 26 of file gbp_endpoint.c.

gbp_ep_by_mac_itf_db_t gbp_ep_by_mac_itf_db

Definition at line 27 of file gbp_endpoint.c.