diff options
author | Benoît Ganne <bganne@cisco.com> | 2019-09-06 13:43:16 +0200 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2019-09-23 15:30:29 +0000 |
commit | 44ca60ecdba866160bebbc6c1eb983674819d429 (patch) | |
tree | b0b647aa8eb80528cf5d6a78aa707f2afb3441e3 /src/plugins/gbp/gbp_policy.h | |
parent | 1df833e6deecaa1ca68d6e98af7fb109fc0ca18a (diff) |
gbp: fix contract rule handling
Fix a memory leak when removing old GBP contract rules and make sure a
GBP contract rule exists when matching the corresponding ACL rule.
Type: fix
Fixes: 13a08cc098
Change-Id: Iba67d573e69280ad998488a7a3d3462341c68ea4
Signed-off-by: Benoît Ganne <bganne@cisco.com>
Diffstat (limited to 'src/plugins/gbp/gbp_policy.h')
-rw-r--r-- | src/plugins/gbp/gbp_policy.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/plugins/gbp/gbp_policy.h b/src/plugins/gbp/gbp_policy.h index 36bb4933c11..6f87f2ec7c4 100644 --- a/src/plugins/gbp/gbp_policy.h +++ b/src/plugins/gbp/gbp_policy.h @@ -27,15 +27,17 @@ typedef struct gbp_policy_trace_t_ gbp_scope_t scope; sclass_t sclass; sclass_t dclass; - u32 allowed; + gbp_rule_action_t action; u32 flags; + u32 acl_match; + u32 rule_match; } gbp_policy_trace_t; /* packet trace format function */ u8 * format_gbp_policy_trace (u8 * s, va_list * args); static_always_inline void -gbp_policy_trace(vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t *b, const gbp_contract_key_t *key, u8 allowed) +gbp_policy_trace(vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t *b, const gbp_contract_key_t *key, gbp_rule_action_t action, u32 acl_match, u32 rule_match) { gbp_policy_trace_t *t; @@ -46,8 +48,10 @@ gbp_policy_trace(vlib_main_t * vm, vlib_node_runtime_t * node, vlib_buffer_t *b, t->sclass = key->gck_src; t->dclass = key->gck_dst; t->scope = key->gck_scope; - t->allowed = allowed; + t->action = action; t->flags = vnet_buffer2 (b)->gbp.flags; + t->acl_match = acl_match; + t->rule_match = rule_match; } #endif /* __GBP_POLICY_H__ */ |