FD.io VPP
v19.01.3-6-g70449b9b9
Vector Packet Processing
|
Go to the source code of this file.
Data Structures | |
struct | gbp_contract_key_t_ |
The key for an Contract. More... | |
struct | gbp_next_hop_t_ |
struct | gbp_rule_t_ |
struct | gbp_contract_t_ |
A Group Based Policy Contract. More... | |
struct | gbp_contract_db_t_ |
EPG src,dst pair to ACL mapping table, aka contract DB. More... | |
Macros | |
#define | foreach_gbp_hash_mode |
#define | foreach_gbp_rule_action |
#define | foreach_gbp_policy_node |
#define | GBP_POLICY_N_NODES (GBP_POLICY_NODE_IP6+1) |
#define | FOR_EACH_GBP_POLICY_NODE(pnode) for (pnode = GBP_POLICY_NODE_L2; pnode < GBP_POLICY_N_NODES; pnode++) |
Typedefs | |
typedef struct gbp_contract_key_t_ | gbp_contract_key_t |
The key for an Contract. More... | |
typedef struct gbp_next_hop_t_ | gbp_next_hop_t |
typedef enum gbp_hash_mode_t_ | gbp_hash_mode_t |
typedef enum gbp_rule_action_t_ | gbp_rule_action_t |
typedef enum gbp_policy_node_t_ | gbp_policy_node_t |
typedef struct gbp_rule_t_ | gbp_rule_t |
typedef struct gbp_contract_t_ | gbp_contract_t |
A Group Based Policy Contract. More... | |
typedef struct gbp_contract_db_t_ | gbp_contract_db_t |
EPG src,dst pair to ACL mapping table, aka contract DB. More... | |
typedef int(* | gbp_contract_cb_t) (gbp_contract_t *gbpe, void *ctx) |
Enumerations | |
enum | gbp_hash_mode_t_ { foreach_gbp_hash_mode } |
enum | gbp_rule_action_t_ { foreach_gbp_rule_action } |
enum | gbp_policy_node_t_ { foreach_gbp_policy_node } |
Functions | |
int | gbp_contract_update (epg_id_t src_epg, epg_id_t dst_epg, u32 acl_index, index_t *rules, u16 *allowed_ethertypes) |
int | gbp_contract_delete (epg_id_t src_epg, epg_id_t dst_epg) |
index_t | gbp_rule_alloc (gbp_rule_action_t action, gbp_hash_mode_t hash_mode, index_t *nhs) |
index_t | gbp_next_hop_alloc (const ip46_address_t *ip, index_t grd, const mac_address_t *mac, index_t gbd) |
void | gbp_contract_walk (gbp_contract_cb_t bgpe, void *ctx) |
u8 * | format_gbp_contract (u8 *s, va_list *args) |
static index_t | gbp_contract_find (gbp_contract_key_t *key) |
static gbp_contract_t * | gbp_contract_get (index_t gci) |
static gbp_rule_t * | gbp_rule_get (index_t gui) |
Variables | |
gbp_contract_db_t | gbp_contract_db |
DP functions and databases. More... | |
gbp_contract_t * | gbp_contract_pool |
gbp_rule_t * | gbp_rule_pool |
#define FOR_EACH_GBP_POLICY_NODE | ( | pnode | ) | for (pnode = GBP_POLICY_NODE_L2; pnode < GBP_POLICY_N_NODES; pnode++) |
Definition at line 90 of file gbp_contract.h.
#define foreach_gbp_hash_mode |
Definition at line 53 of file gbp_contract.h.
#define foreach_gbp_policy_node |
Definition at line 77 of file gbp_contract.h.
#define foreach_gbp_rule_action |
Definition at line 65 of file gbp_contract.h.
#define GBP_POLICY_N_NODES (GBP_POLICY_NODE_IP6+1) |
Definition at line 88 of file gbp_contract.h.
typedef int(* gbp_contract_cb_t) (gbp_contract_t *gbpe, void *ctx) |
Definition at line 153 of file gbp_contract.h.
typedef struct gbp_contract_db_t_ gbp_contract_db_t |
EPG src,dst pair to ACL mapping table, aka contract DB.
typedef struct gbp_contract_key_t_ gbp_contract_key_t |
The key for an Contract.
typedef struct gbp_contract_t_ gbp_contract_t |
A Group Based Policy Contract.
Determines the ACL that applies to traffic pass between two endpoint groups
typedef enum gbp_hash_mode_t_ gbp_hash_mode_t |
typedef struct gbp_next_hop_t_ gbp_next_hop_t |
typedef enum gbp_policy_node_t_ gbp_policy_node_t |
typedef enum gbp_rule_action_t_ gbp_rule_action_t |
typedef struct gbp_rule_t_ gbp_rule_t |
enum gbp_hash_mode_t_ |
Enumerator | |
---|---|
foreach_gbp_hash_mode |
Definition at line 58 of file gbp_contract.h.
enum gbp_policy_node_t_ |
Enumerator | |
---|---|
foreach_gbp_policy_node |
Definition at line 82 of file gbp_contract.h.
enum gbp_rule_action_t_ |
Enumerator | |
---|---|
foreach_gbp_rule_action |
Definition at line 70 of file gbp_contract.h.
Definition at line 606 of file gbp_contract.c.
Definition at line 496 of file gbp_contract.c.
|
inlinestatic |
|
inlinestatic |
int gbp_contract_update | ( | epg_id_t | src_epg, |
epg_id_t | dst_epg, | ||
u32 | acl_index, | ||
index_t * | rules, | ||
u16 * | allowed_ethertypes | ||
) |
Definition at line 436 of file gbp_contract.c.
void gbp_contract_walk | ( | gbp_contract_cb_t | bgpe, |
void * | ctx | ||
) |
index_t gbp_next_hop_alloc | ( | const ip46_address_t * | ip, |
index_t | grd, | ||
const mac_address_t * | mac, | ||
index_t | gbd | ||
) |
Definition at line 59 of file gbp_contract.c.
index_t gbp_rule_alloc | ( | gbp_rule_action_t | action, |
gbp_hash_mode_t | hash_mode, | ||
index_t * | nhs | ||
) |
|
inlinestatic |
gbp_contract_db_t gbp_contract_db |
DP functions and databases.
DP functions and databases.
Definition at line 29 of file gbp_contract.c.
gbp_contract_t* gbp_contract_pool |
Definition at line 31 of file gbp_contract.c.
gbp_rule_t* gbp_rule_pool |
Definition at line 37 of file gbp_contract.c.