]> 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>
Fri, 25 May 2018 13:49:38 +0000 (15:49 +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 c5eaf9c0fde99ac7bcd87b692e0e92c0008a811b..2ec03acc448aab27624284d08dd78f476cef91e2 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 0355f3c042634825590f31e8d2eeebe8c8a1d4d9..6a42aaecb464db307dc2bc65e31b374a5f56965d 100644 (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;
        }
 }