summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2018-02-15 20:11:12 -0500
committerDonald Sharp <sharpd@cumulusnetworks.com>2018-03-09 11:07:41 -0500
commit1fbfe5a57249d907b44b31f9031b27eb59a606d4 (patch)
treea51b4f898711ed61424e65593408fcbb5c0f1901
parentfd71d73eb307096d9f14804fdac9123742d868b1 (diff)
zebra: Cleanup api
Allow the add/delete to go through a intermediary function in zebra_pbr.c instead of directly to the underlying os call. This will allow future refinements to track the data a bit better so that on shutdown we can delete the rules. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
-rw-r--r--zebra/zebra_pbr.c10
-rw-r--r--zebra/zebra_pbr.h2
-rw-r--r--zebra/zserv.c2
3 files changed, 13 insertions, 1 deletions
diff --git a/zebra/zebra_pbr.c b/zebra/zebra_pbr.c
index 827005b3a1..8a7e693bbf 100644
--- a/zebra/zebra_pbr.c
+++ b/zebra/zebra_pbr.c
@@ -31,6 +31,16 @@
/* Private functions */
/* Public functions */
+void zebra_pbr_add_rule(struct zebra_pbr_rule *rule, struct interface *ifp)
+{
+ kernel_add_pbr_rule(rule, ifp);
+}
+
+void zebra_pbr_del_rule(struct zebra_pbr_rule *rule, struct interface *ifp)
+{
+ kernel_del_pbr_rule(rule, ifp);
+}
+
/*
* Handle success or failure of rule (un)install in the kernel.
*/
diff --git a/zebra/zebra_pbr.h b/zebra/zebra_pbr.h
index b87388afc5..6a97ef55ed 100644
--- a/zebra/zebra_pbr.h
+++ b/zebra/zebra_pbr.h
@@ -90,6 +90,8 @@ struct zebra_pbr_rule {
struct zebra_pbr_action action;
};
+void zebra_pbr_add_rule(struct zebra_pbr_rule *rule, struct interface *ifp);
+void zebra_pbr_del_rule(struct zebra_pbr_rule *rule, struct interface *ifp);
/*
* Install specified rule for a specific interface.
diff --git a/zebra/zserv.c b/zebra/zserv.c
index 007a02cedf..7ec8525f49 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -2636,7 +2636,7 @@ static inline void zread_rule(uint16_t command, struct zserv *client,
if (zpr.filter.dst_port)
zpr.filter.filter_bm |= PBR_FILTER_DST_PORT;
- kernel_add_pbr_rule(&zpr, ifp);
+ zebra_pbr_add_rule(&zpr, ifp);
}
stream_failure: