16 #ifndef __GBP_INTERFACE_H__ 17 #define __GBP_INTERFACE_H__ 24 #define foreach_gdb_l3_feature \ 25 _(LEARN_IP4, "gbp-learn-ip4", "ip4-unicast") \ 26 _(LEARN_IP6, "gbp-learn-ip6", "ip6-unicast") 30 #define _(s,v,a) GBP_ITF_L3_FEAT_POS_##s, 38 #define _(s,v,a) GBP_ITF_L3_FEAT_##s = (1 << GBP_ITF_L3_FEAT_POS_##s), 43 #define GBP_ITF_L3_FEAT_LEARN (GBP_ITF_L3_FEAT_LEARN_IP4|GBP_ITF_L3_FEAT_LEARN_IP6) 57 #define GBP_ITF_HDL_INIT {.gh_which = ~0}
void(* gbp_itf_free_fn_t)(u32 sw_if_index)
gbp_itf_hdl_t gbp_itf_l3_add_and_lock_w_free(u32 sw_if_index, index_t gri, gbp_itf_free_fn_t ff)
struct gbp_itf_hdl_t_ gbp_itf_hdl_t
u32 index_t
A Data-Path Object is an object that represents actions that are applied to packets are they are swit...
enum gbp_itf_l3_feat_t_ gbp_itf_l3_feat_t
gbp_itf_hdl_t gbp_itf_clone_and_lock(gbp_itf_hdl_t hdl)
void gbp_itf_l3_set_input_feature(gbp_itf_hdl_t hdl, gbp_itf_l3_feat_t feats)
gbp_itf_hdl_t gbp_itf_l2_add_and_lock(u32 sw_if_index, u32 bd_index)
enum gbp_itf_l3_feat_pos_t_ gbp_itf_l3_feat_pos_t
void gbp_itf_lock(gbp_itf_hdl_t hdl)
void gbp_itf_l2_set_input_feature(gbp_itf_hdl_t hdl, l2input_feat_masks_t feats)
void gbp_itf_l2_set_output_feature(gbp_itf_hdl_t hdl, l2output_feat_masks_t feats)
gbp_itf_hdl_t gbp_itf_l2_add_and_lock_w_free(u32 sw_if_index, u32 bd_index, gbp_itf_free_fn_t ff)
#define foreach_gdb_l3_feature
void gbp_itf_unlock(gbp_itf_hdl_t *hdl)
void gbp_itf_hdl_reset(gbp_itf_hdl_t *gh)
u32 gbp_itf_get_sw_if_index(gbp_itf_hdl_t hdl)
gbp_itf_hdl_t gbp_itf_l3_add_and_lock(u32 sw_if_index, index_t gri)
u8 * format_gbp_itf_hdl(u8 *s, va_list *args)
bool gbp_itf_hdl_is_valid(gbp_itf_hdl_t gh)
vl_api_interface_index_t sw_if_index