]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: add pbr objects fail_remove value into notification
authorPhilippe Guibert <philippe.guibert@6wind.com>
Fri, 18 May 2018 14:22:23 +0000 (16:22 +0200)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Thu, 31 May 2018 15:44:40 +0000 (17:44 +0200)
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>
lib/zclient.h
zebra/zebra_pbr.c

index 8d26b7fe598b7919f1313f3dabca44047461c583..581acf4652f84aebbd5b98bf587532730b8e21bc 100644 (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 */
index 82a652826977ee96ce6d161d4e8e557d60e942fb..303ea44d080c4705d87343b4b72b00242f243b5d 100644 (file)
@@ -659,7 +659,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;
        }
 }
@@ -681,7 +681,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;
        }
 }
@@ -708,7 +708,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;
        }
 }
@@ -732,7 +732,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;
        }
 }