X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=blobdiff_plain;f=src%2Fplugins%2Fgbp%2Fgbp_contract.h;h=876c10f37020c29cbbe42b4b68188eb5b3c2672d;hp=c1073510413500e428f8909b068bf2bf8c252a6d;hb=1c17e2e;hpb=13a08cc0984496d50722ffb75e2f48c5d84fb9a7 diff --git a/src/plugins/gbp/gbp_contract.h b/src/plugins/gbp/gbp_contract.h index c1073510413..876c10f3702 100644 --- a/src/plugins/gbp/gbp_contract.h +++ b/src/plugins/gbp/gbp_contract.h @@ -50,9 +50,10 @@ typedef struct gbp_next_hop_t_ index_t gnh_ai[FIB_PROTOCOL_IP_MAX]; } gbp_next_hop_t; -#define foreach_gbp_hash_mode \ - _(SRC_IP, "src-ip") \ - _(DST_IP, "dst-ip") +#define foreach_gbp_hash_mode \ + _(SRC_IP, "src-ip") \ + _(DST_IP, "dst-ip") \ + _(SYMMETRIC, "symmetric") typedef enum gbp_hash_mode_t_ { @@ -119,6 +120,11 @@ typedef struct gbp_contract_t_ * The ACL to apply for packets from the source to the destination EPG */ index_t *gc_rules; + + /** + * An ethertype whitelist + */ + u16 *gc_allowed_ethertypes; } gbp_contract_t; /** @@ -134,7 +140,8 @@ typedef struct gbp_contract_db_t_ extern int gbp_contract_update (epg_id_t src_epg, epg_id_t dst_epg, - u32 acl_index, index_t * rules); + u32 acl_index, + index_t * rules, u16 * allowed_ethertypes); extern int gbp_contract_delete (epg_id_t src_epg, epg_id_t dst_epg); extern index_t gbp_rule_alloc (gbp_rule_action_t action,