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_FAIL_INSTALL,
ZAPI_RULE_INSTALLED, ZAPI_RULE_INSTALLED,
ZAPI_RULE_REMOVED, ZAPI_RULE_REMOVED,
ZAPI_RULE_FAIL_REMOVE,
}; };
enum ipset_type { enum ipset_type {
@ -421,18 +422,21 @@ enum zapi_ipset_notify_owner {
ZAPI_IPSET_FAIL_INSTALL, ZAPI_IPSET_FAIL_INSTALL,
ZAPI_IPSET_INSTALLED, ZAPI_IPSET_INSTALLED,
ZAPI_IPSET_REMOVED, ZAPI_IPSET_REMOVED,
ZAPI_IPSET_FAIL_REMOVE,
}; };
enum zapi_ipset_entry_notify_owner { enum zapi_ipset_entry_notify_owner {
ZAPI_IPSET_ENTRY_FAIL_INSTALL, ZAPI_IPSET_ENTRY_FAIL_INSTALL,
ZAPI_IPSET_ENTRY_INSTALLED, ZAPI_IPSET_ENTRY_INSTALLED,
ZAPI_IPSET_ENTRY_REMOVED, ZAPI_IPSET_ENTRY_REMOVED,
ZAPI_IPSET_ENTRY_FAIL_REMOVE,
}; };
enum zapi_iptable_notify_owner { enum zapi_iptable_notify_owner {
ZAPI_IPTABLE_FAIL_INSTALL, ZAPI_IPTABLE_FAIL_INSTALL,
ZAPI_IPTABLE_INSTALLED, ZAPI_IPTABLE_INSTALLED,
ZAPI_IPTABLE_REMOVED, ZAPI_IPTABLE_REMOVED,
ZAPI_IPTABLE_FAIL_REMOVE,
}; };
/* Zebra MAC types */ /* 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); zsend_rule_notify_owner(rule, ZAPI_RULE_REMOVED);
break; break;
case SOUTHBOUND_DELETE_FAILURE: case SOUTHBOUND_DELETE_FAILURE:
zsend_rule_notify_owner(rule, ZAPI_RULE_REMOVED); zsend_rule_notify_owner(rule, ZAPI_RULE_FAIL_REMOVE);
break; 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); zsend_ipset_notify_owner(ipset, ZAPI_IPSET_REMOVED);
break; break;
case SOUTHBOUND_DELETE_FAILURE: case SOUTHBOUND_DELETE_FAILURE:
zsend_ipset_notify_owner(ipset, ZAPI_IPSET_REMOVED); zsend_ipset_notify_owner(ipset, ZAPI_IPSET_FAIL_REMOVE);
break; break;
} }
} }
@ -710,7 +710,7 @@ void kernel_pbr_ipset_entry_add_del_status(
break; break;
case SOUTHBOUND_DELETE_FAILURE: case SOUTHBOUND_DELETE_FAILURE:
zsend_ipset_entry_notify_owner(ipset, zsend_ipset_entry_notify_owner(ipset,
ZAPI_IPSET_ENTRY_REMOVED); ZAPI_IPSET_ENTRY_FAIL_REMOVE);
break; break;
} }
} }
@ -734,7 +734,7 @@ void kernel_pbr_iptable_add_del_status(struct zebra_pbr_iptable *iptable,
break; break;
case SOUTHBOUND_DELETE_FAILURE: case SOUTHBOUND_DELETE_FAILURE:
zsend_iptable_notify_owner(iptable, zsend_iptable_notify_owner(iptable,
ZAPI_IPTABLE_REMOVED); ZAPI_IPTABLE_FAIL_REMOVE);
break; break;
} }
} }