zebra: add pbr objects fail_remove value into notification

After PBR or BGP sends back a request for sending a rule/ipset/ipset
entry/iptable delete, there may be issue in deleting it. A notification
is sent back with a new value indicating that the removal failed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
This commit is contained in:
Philippe Guibert 2018-05-18 16:22:23 +02:00
parent 77151b6f01
commit 34d9d5be98
2 changed files with 8 additions and 4 deletions

View File

@ -408,6 +408,7 @@ enum zapi_rule_notify_owner {
ZAPI_RULE_FAIL_INSTALL,
ZAPI_RULE_INSTALLED,
ZAPI_RULE_REMOVED,
ZAPI_RULE_FAIL_REMOVE,
};
enum ipset_type {
@ -421,18 +422,21 @@ enum zapi_ipset_notify_owner {
ZAPI_IPSET_FAIL_INSTALL,
ZAPI_IPSET_INSTALLED,
ZAPI_IPSET_REMOVED,
ZAPI_IPSET_FAIL_REMOVE,
};
enum zapi_ipset_entry_notify_owner {
ZAPI_IPSET_ENTRY_FAIL_INSTALL,
ZAPI_IPSET_ENTRY_INSTALLED,
ZAPI_IPSET_ENTRY_REMOVED,
ZAPI_IPSET_ENTRY_FAIL_REMOVE,
};
enum zapi_iptable_notify_owner {
ZAPI_IPTABLE_FAIL_INSTALL,
ZAPI_IPTABLE_INSTALLED,
ZAPI_IPTABLE_REMOVED,
ZAPI_IPTABLE_FAIL_REMOVE,
};
/* Zebra MAC types */

View File

@ -661,7 +661,7 @@ void kernel_pbr_rule_add_del_status(struct zebra_pbr_rule *rule,
zsend_rule_notify_owner(rule, ZAPI_RULE_REMOVED);
break;
case SOUTHBOUND_DELETE_FAILURE:
zsend_rule_notify_owner(rule, ZAPI_RULE_REMOVED);
zsend_rule_notify_owner(rule, ZAPI_RULE_FAIL_REMOVE);
break;
}
}
@ -683,7 +683,7 @@ void kernel_pbr_ipset_add_del_status(struct zebra_pbr_ipset *ipset,
zsend_ipset_notify_owner(ipset, ZAPI_IPSET_REMOVED);
break;
case SOUTHBOUND_DELETE_FAILURE:
zsend_ipset_notify_owner(ipset, ZAPI_IPSET_REMOVED);
zsend_ipset_notify_owner(ipset, ZAPI_IPSET_FAIL_REMOVE);
break;
}
}
@ -710,7 +710,7 @@ void kernel_pbr_ipset_entry_add_del_status(
break;
case SOUTHBOUND_DELETE_FAILURE:
zsend_ipset_entry_notify_owner(ipset,
ZAPI_IPSET_ENTRY_REMOVED);
ZAPI_IPSET_ENTRY_FAIL_REMOVE);
break;
}
}
@ -734,7 +734,7 @@ void kernel_pbr_iptable_add_del_status(struct zebra_pbr_iptable *iptable,
break;
case SOUTHBOUND_DELETE_FAILURE:
zsend_iptable_notify_owner(iptable,
ZAPI_IPTABLE_REMOVED);
ZAPI_IPTABLE_FAIL_REMOVE);
break;
}
}