FD.io VPP  v18.04-17-g3a0d853
Vector Packet Processing
gbp.h File Reference
+ Include dependency graph for gbp.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_key_t_
 The key for an Endpoint. More...
 
struct  gbp_endpoint_t_
 A Group Based Policy Endpoint. More...
 
struct  gbp_contract_key_t_
 The key for an Contract. More...
 
struct  gbp_contract_t_
 A Group Based Policy Contract. More...
 

Macros

#define EPG_INVALID   (~0)
 

Typedefs

typedef u32 epg_id_t
 Group Base Policy (GBP) defines: More...
 
typedef struct gbp_endpoint_key_t_ gbp_endpoint_key_t
 The key for an Endpoint. More...
 
typedef struct gbp_endpoint_t_ gbp_endpoint_t
 A Group Based Policy Endpoint. More...
 
typedef int(* gbp_endpoint_cb_t) (gbp_endpoint_t *gbpe, void *ctx)
 
typedef struct gbp_contract_key_t_ gbp_contract_key_t
 The key for an Contract. More...
 
typedef struct gbp_contract_t_ gbp_contract_t
 A Group Based Policy Contract. More...
 
typedef int(* gbp_contract_cb_t) (gbp_contract_t *gbpe, void *ctx)
 

Functions

void gbp_endpoint_update (u32 sw_if_index, const ip46_address_t *ip, epg_id_t epg_id)
 
void gbp_endpoint_delete (u32 sw_if_index, const ip46_address_t *ip)
 
void gbp_endpoint_walk (gbp_endpoint_cb_t bgpe, void *ctx)
 
void gbp_contract_update (epg_id_t src_epg, epg_id_t dst_epg, u32 acl_index)
 
void gbp_contract_delete (epg_id_t src_epg, epg_id_t dst_epg)
 
void gbp_contract_walk (gbp_contract_cb_t bgpe, void *ctx)
 

Macro Definition Documentation

#define EPG_INVALID   (~0)

Definition at line 39 of file gbp.h.

Typedef Documentation

typedef u32 epg_id_t

Group Base Policy (GBP) defines:

  • endpoints: typically a VM or container that is connected to the virtual switch/router (i.e. to VPP)
  • endpoint-group: (EPG) a collection of endpoints
  • policy: rules determining which traffic can pass between EPGs a.k.a a 'contract'

Here, policy is implemented via an ACL. EPG classification for transit packets is determined by:

  • source EPG: from the packet's input interface
  • destination EPG: from the packet's destination IP address.

Definition at line 38 of file gbp.h.

typedef int(* gbp_contract_cb_t) (gbp_contract_t *gbpe, void *ctx)

Definition at line 124 of file gbp.h.

The key for an Contract.

A Group Based Policy Contract.

Determines the ACL that applies to traffic pass between two endpoint groups

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

Definition at line 79 of file gbp.h.

The key for an Endpoint.

A Group Based Policy Endpoint.

This is typcially a VM on the local compute node for which policy must be locally applied

Function Documentation

void gbp_contract_delete ( epg_id_t  src_epg,
epg_id_t  dst_epg 
)

Definition at line 249 of file gbp.c.

+ Here is the caller graph for this function:

void gbp_contract_update ( epg_id_t  src_epg,
epg_id_t  dst_epg,
u32  acl_index 
)

Definition at line 238 of file gbp.c.

+ Here is the caller graph for this function:

void gbp_contract_walk ( gbp_contract_cb_t  bgpe,
void *  ctx 
)

Definition at line 260 of file gbp.c.

+ Here is the caller graph for this function:

void gbp_endpoint_delete ( u32  sw_if_index,
const ip46_address_t *  ip 
)

Definition at line 197 of file gbp.c.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gbp_endpoint_update ( u32  sw_if_index,
const ip46_address_t *  ip,
epg_id_t  epg_id 
)

Definition at line 164 of file gbp.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  bgpe,
void *  ctx 
)

Definition at line 224 of file gbp.c.

+ Here is the caller graph for this function: