diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-02-15 20:11:12 -0500 |
|---|---|---|
| committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-03-09 11:07:41 -0500 |
| commit | 1fbfe5a57249d907b44b31f9031b27eb59a606d4 (patch) | |
| tree | a51b4f898711ed61424e65593408fcbb5c0f1901 | |
| parent | fd71d73eb307096d9f14804fdac9123742d868b1 (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.c | 10 | ||||
| -rw-r--r-- | zebra/zebra_pbr.h | 2 | ||||
| -rw-r--r-- | zebra/zserv.c | 2 |
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: |
