mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-15 16:54:30 +00:00
Merge pull request #6243 from pguibert6WIND/flowspec_some_regression_seen
Flowspec some regression seen
This commit is contained in:
commit
bd6cec43c3
@ -376,11 +376,10 @@ void route_vty_out_flowspec(struct vty *vty, const struct prefix *p,
|
|||||||
bpr->priority,
|
bpr->priority,
|
||||||
bpr->action->table_id);
|
bpr->action->table_id);
|
||||||
}
|
}
|
||||||
if (list_began)
|
|
||||||
vty_out(vty, ")");
|
|
||||||
vty_out(vty, "\n");
|
|
||||||
}
|
}
|
||||||
if (!list_began)
|
if (list_began)
|
||||||
|
vty_out(vty, ")\n");
|
||||||
|
else
|
||||||
vty_out(vty, "\tnot installed in PBR\n");
|
vty_out(vty, "\tnot installed in PBR\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -336,14 +336,20 @@ bool zebra_pbr_ipset_entry_hash_equal(const void *arg1, const void *arg2)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void zebra_pbr_iptable_free(void *arg)
|
/* this function gives option to flush plugin memory contexts
|
||||||
|
* with all parameter. set it to true to flush all
|
||||||
|
* set it to false to flush only passed arg argument
|
||||||
|
*/
|
||||||
|
static void _zebra_pbr_iptable_free_all(void *arg, bool all)
|
||||||
{
|
{
|
||||||
struct zebra_pbr_iptable *iptable;
|
struct zebra_pbr_iptable *iptable;
|
||||||
struct listnode *node, *nnode;
|
struct listnode *node, *nnode;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
iptable = (struct zebra_pbr_iptable *)arg;
|
iptable = (struct zebra_pbr_iptable *)arg;
|
||||||
hook_call(zebra_pbr_iptable_update, 0, iptable);
|
|
||||||
|
if (all)
|
||||||
|
hook_call(zebra_pbr_iptable_update, 0, iptable);
|
||||||
|
|
||||||
if (iptable->interface_name_list) {
|
if (iptable->interface_name_list) {
|
||||||
for (ALL_LIST_ELEMENTS(iptable->interface_name_list, node,
|
for (ALL_LIST_ELEMENTS(iptable->interface_name_list, node,
|
||||||
@ -356,6 +362,11 @@ void zebra_pbr_iptable_free(void *arg)
|
|||||||
XFREE(MTYPE_TMP, iptable);
|
XFREE(MTYPE_TMP, iptable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void zebra_pbr_iptable_free(void *arg)
|
||||||
|
{
|
||||||
|
_zebra_pbr_iptable_free_all(arg, false);
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t zebra_pbr_iptable_hash_key(const void *arg)
|
uint32_t zebra_pbr_iptable_hash_key(const void *arg)
|
||||||
{
|
{
|
||||||
const struct zebra_pbr_iptable *iptable = arg;
|
const struct zebra_pbr_iptable *iptable = arg;
|
||||||
@ -529,7 +540,7 @@ static void zebra_pbr_cleanup_iptable(struct hash_bucket *b, void *data)
|
|||||||
|
|
||||||
if (iptable->sock == *sock) {
|
if (iptable->sock == *sock) {
|
||||||
if (hash_release(zrouter.iptable_hash, iptable))
|
if (hash_release(zrouter.iptable_hash, iptable))
|
||||||
zebra_pbr_iptable_free(iptable);
|
_zebra_pbr_iptable_free_all(iptable, true);
|
||||||
else
|
else
|
||||||
hook_call(zebra_pbr_iptable_update, 0, iptable);
|
hook_call(zebra_pbr_iptable_update, 0, iptable);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user