]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_ns.h
Merge pull request #3502 from donaldsharp/socket_to_me_baby
[mirror_frr.git] / zebra / zebra_ns.h
index 037c7322b789c9e8cc813630b7e628d4d8695fcd..d3592f8f305d9b942dfab015a72e80f7b48eeb1c 100644 (file)
@@ -38,19 +38,6 @@ struct nlsock {
 };
 #endif
 
-struct zebra_ns_table {
-       RB_ENTRY(zebra_ns_table) zebra_ns_table_entry;
-
-       uint32_t tableid;
-       afi_t afi;
-       ns_id_t ns_id;
-
-       struct route_table *table;
-};
-RB_HEAD(zebra_ns_table_head, zebra_ns_table);
-RB_PROTOTYPE(zebra_ns_table_head, zebra_ns_table, zebra_ns_table_entry,
-            zebra_ns_table_entry_compare)
-
 struct zebra_ns {
        /* net-ns name.  */
        char name[VRF_NAMSIZ];
@@ -59,82 +46,26 @@ struct zebra_ns {
        ns_id_t ns_id;
 
 #ifdef HAVE_NETLINK
-       struct nlsock netlink;     /* kernel messages */
-       struct nlsock netlink_cmd; /* command channel */
+       struct nlsock netlink;        /* kernel messages */
+       struct nlsock netlink_cmd;    /* command channel */
+       struct nlsock netlink_dplane; /* dataplane channel */
        struct thread *t_netlink;
 #endif
 
        struct route_table *if_table;
 
-       /* L3-VNI hash table (for EVPN). Only in default instance */
-       struct hash *l3vni_table;
-
-#if defined(HAVE_RTADV)
-       struct rtadv rtadv;
-#endif /* HAVE_RTADV */
-
-       struct zebra_ns_table_head ns_tables;
-
-       struct hash *rules_hash;
-
-       struct hash *ipset_hash;
-
-       struct hash *ipset_entry_hash;
-
-       struct hash *iptable_hash;
-
        /* Back pointer */
        struct ns *ns;
 };
 
-/* Key netlink info from zebra ns, passed from the zebra main context
- * to the dataplane/kernel context (which might be in a different pthread).
- */
-struct zebra_ns_info {
-       ns_id_t ns_id;
-
-#if defined(HAVE_NETLINK)
-       struct nlsock nls;
-       uint32_t nl_cmd_pid;
-       bool is_cmd;
-#endif
-};
-
-/* Utility to fill in zns info from main zns struct */
-static inline void zebra_ns_info_from_ns(struct zebra_ns_info *zns_info,
-                                        const struct zebra_ns *zns,
-                                        bool is_cmd)
-{
-       zns_info->ns_id = zns->ns_id;
-
-#if defined(HAVE_NETLINK)
-       /* Need to know whether we're using the 'command' netlink socket,
-        * and need to know its port-id to handle some test/filtering
-        * cases.
-        */
-       zns_info->is_cmd = is_cmd;
-       zns_info->nl_cmd_pid = zns->netlink_cmd.snl.nl_pid;
-       if (is_cmd)
-               zns_info->nls = zns->netlink_cmd;
-       else
-               zns_info->nls = zns->netlink;
-#endif /* NETLINK */
-}
-
 struct zebra_ns *zebra_ns_lookup(ns_id_t ns_id);
 
 int zebra_ns_init(void);
 int zebra_ns_enable(ns_id_t ns_id, void **info);
 int zebra_ns_disabled(struct ns *ns);
-int zebra_ns_disable(ns_id_t ns_id, void **info);
+int zebra_ns_early_shutdown(struct ns *ns);
+int zebra_ns_final_shutdown(struct ns *ns);
 
-extern struct route_table *zebra_ns_find_table(struct zebra_ns *zns,
-                                              uint32_t tableid, afi_t afi);
-extern struct route_table *zebra_ns_get_table(struct zebra_ns *zns,
-                                             struct zebra_vrf *zvrf,
-                                             uint32_t tableid, afi_t afi);
 int zebra_ns_config_write(struct vty *vty, struct ns *ns);
 
-unsigned long zebra_ns_score_proto(uint8_t proto, unsigned short instance);
-void zebra_ns_sweep_route(void);
 #endif