GBP: add allowed ethertypes to contracts
[vpp.git] / src / plugins / gbp / gbp_contract.h
index 21e7265..876c10f 100644 (file)
@@ -50,8 +50,8 @@ 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")           \
+#define foreach_gbp_hash_mode  \
+  _(SRC_IP, "src-ip")          \
   _(DST_IP, "dst-ip")          \
   _(SYMMETRIC, "symmetric")
 
@@ -120,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;
 
 /**
@@ -135,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,