]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: rework pbr ipset entry
authorPhilippe Guibert <philippe.guibert@6wind.com>
Tue, 27 Mar 2018 09:27:10 +0000 (11:27 +0200)
committerPhilippe Guibert <philippe.guibert@6wind.com>
Wed, 30 May 2018 17:30:05 +0000 (19:30 +0200)
Add ns_id into zebra_pbr ipset
This is important so that each ipset entry knows on which NETNS the
ipset entry must be inkected

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
zebra/zapi_msg.c
zebra/zebra_ns.c
zebra/zebra_pbr.h

index e03caa61b71732bc1ef0b023f78a07915c2bec0c..41cd1438d3e2f43d12480bd9411f5eff8e76f8ed 100644 (file)
@@ -2848,6 +2848,7 @@ static inline void zread_ipset(ZAPI_HANDLER_ARGS)
                memset(&zpi, 0, sizeof(zpi));
 
                zpi.sock = client->sock;
+               zpi.vrf_id = zvrf->vrf->vrf_id;
                STREAM_GETL(s, zpi.unique);
                STREAM_GETL(s, zpi.type);
                STREAM_GET(&zpi.ipset_name, s, ZEBRA_IPSET_NAME_SIZE);
@@ -2915,6 +2916,7 @@ static inline void zread_iptable(ZAPI_HANDLER_ARGS)
        memset(&zpi, 0, sizeof(zpi));
 
        zpi.sock = client->sock;
+       zpi.vrf_id = zvrf->vrf->vrf_id;
        STREAM_GETL(s, zpi.unique);
        STREAM_GETL(s, zpi.type);
        STREAM_GETL(s, zpi.filter_bm);
index 5c62e366a63293ab96c961c6d3f01f79ebbb4993..4526a14870f00ed457ccc6d0ef45f29c31de6695 100644 (file)
@@ -262,10 +262,10 @@ int zebra_ns_disable(ns_id_t ns_id, void **info)
 
        hash_clean(zns->rules_hash, zebra_pbr_rules_free);
        hash_free(zns->rules_hash);
-       hash_clean(zns->ipset_hash, zebra_pbr_ipset_free);
-       hash_free(zns->ipset_hash);
        hash_clean(zns->ipset_entry_hash,
                   zebra_pbr_ipset_entry_free),
+       hash_clean(zns->ipset_hash, zebra_pbr_ipset_free);
+       hash_free(zns->ipset_hash);
        hash_free(zns->ipset_entry_hash);
        hash_clean(zns->iptable_hash,
                   zebra_pbr_iptable_free);
index 0ac629cc659d7d254d55551196283e372a34414d..616bb8a444553e021ec14727c750614396954a07 100644 (file)
@@ -61,6 +61,8 @@ struct zebra_pbr_ipset {
         */
        int sock;
 
+       vrf_id_t vrf_id;
+
        uint32_t unique;
 
        /* type is encoded as uint32_t
@@ -104,6 +106,8 @@ struct zebra_pbr_iptable {
         */
        int sock;
 
+       vrf_id_t vrf_id;
+
        uint32_t unique;
 
        /* include ipset type