FD.io VPP
v21.06-3-gbb25fbf28
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_contract_error |
#define | GBP_CONTRACT_N_ERROR GBP_CONTRACT_N_ERROR |
#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_contract_error_t { GBP_CONTRACT_N_ERROR, GBP_CONTRACT_N_ERROR } |
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 } |
enum | gbp_contract_apply_type_t { GBP_CONTRACT_APPLY_L2, GBP_CONTRACT_APPLY_IP4, GBP_CONTRACT_APPLY_IP6 } |
Variables | |
char * | gbp_contract_error_strings [GBP_CONTRACT_N_ERROR] |
gbp_contract_db_t | gbp_contract_db |
DP functions and databases. More... | |
gbp_contract_t * | gbp_contract_pool |
gbp_rule_t * | gbp_rule_pool |
vlib_combined_counter_main_t | gbp_contract_permit_counters |
vlib_combined_counter_main_t | gbp_contract_drop_counters |
#define FOR_EACH_GBP_POLICY_NODE | ( | pnode | ) | for (pnode = GBP_POLICY_NODE_L2; pnode < GBP_POLICY_N_NODES; pnode++) |
Definition at line 115 of file gbp_contract.h.
#define foreach_gbp_contract_error |
Definition at line 22 of file gbp_contract.h.
#define foreach_gbp_hash_mode |
Definition at line 78 of file gbp_contract.h.
#define foreach_gbp_policy_node |
Definition at line 102 of file gbp_contract.h.
#define foreach_gbp_rule_action |
Definition at line 90 of file gbp_contract.h.
#define GBP_CONTRACT_N_ERROR GBP_CONTRACT_N_ERROR |
Definition at line 40 of file gbp_contract.h.
#define GBP_POLICY_N_NODES (GBP_POLICY_NODE_IP6+1) |
Definition at line 113 of file gbp_contract.h.
typedef int(* gbp_contract_cb_t) (gbp_contract_t *gbpe, void *ctx) |
Definition at line 182 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 |
Enumerator | |
---|---|
GBP_CONTRACT_APPLY_L2 | |
GBP_CONTRACT_APPLY_IP4 | |
GBP_CONTRACT_APPLY_IP6 |
Definition at line 225 of file gbp_contract.h.
enum gbp_contract_error_t |
Enumerator | |
---|---|
GBP_CONTRACT_N_ERROR | |
GBP_CONTRACT_N_ERROR |
Definition at line 34 of file gbp_contract.h.
enum gbp_hash_mode_t_ |
Enumerator | |
---|---|
foreach_gbp_hash_mode |
Definition at line 83 of file gbp_contract.h.
enum gbp_policy_node_t_ |
Enumerator | |
---|---|
foreach_gbp_policy_node |
Definition at line 107 of file gbp_contract.h.
enum gbp_rule_action_t_ |
Enumerator | |
---|---|
foreach_gbp_rule_action |
Definition at line 95 of file gbp_contract.h.
Definition at line 650 of file gbp_contract.c.
static_always_inline gbp_rule_action_t gbp_contract_apply | ( | vlib_main_t * | vm, |
gbp_main_t * | gm, | ||
gbp_contract_key_t * | key, | ||
vlib_buffer_t * | b, | ||
gbp_rule_t ** | rule, | ||
u32 * | intra, | ||
u32 * | sclass1, | ||
u32 * | acl_match, | ||
u32 * | rule_match, | ||
gbp_contract_error_t * | err, | ||
gbp_contract_apply_type_t | type | ||
) |
Definition at line 233 of file gbp_contract.h.
int gbp_contract_delete | ( | gbp_scope_t | scope, |
sclass_t | sclass, | ||
sclass_t | dclass | ||
) |
Definition at line 536 of file gbp_contract.c.
|
inlinestatic |
|
inlinestatic |
int gbp_contract_update | ( | gbp_scope_t | scope, |
sclass_t | sclass, | ||
sclass_t | dclass, | ||
u32 | acl_index, | ||
index_t * | rules, | ||
u16 * | allowed_ethertypes, | ||
u32 * | stats_index | ||
) |
Definition at line 465 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 83 of file gbp_contract.c.
index_t gbp_rule_alloc | ( | gbp_rule_action_t | action, |
gbp_hash_mode_t | hash_mode, | ||
index_t * | nhs | ||
) |
void gbp_rule_free | ( | index_t | gui | ) |
|
inlinestatic |
gbp_contract_db_t gbp_contract_db |
DP functions and databases.
DP functions and databases.
Definition at line 36 of file gbp_contract.c.
vlib_combined_counter_main_t gbp_contract_drop_counters |
Definition at line 56 of file gbp_contract.c.
char* gbp_contract_error_strings[GBP_CONTRACT_N_ERROR] |
Definition at line 27 of file gbp_contract.c.
vlib_combined_counter_main_t gbp_contract_permit_counters |
Definition at line 51 of file gbp_contract.c.
gbp_contract_t* gbp_contract_pool |
Definition at line 38 of file gbp_contract.c.
gbp_rule_t* gbp_rule_pool |
Definition at line 44 of file gbp_contract.c.