From 993e3d8e131ab729f86bfd01f031093dc4827d87 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Fri, 6 May 2022 12:36:51 +0200 Subject: [PATCH] pimd: un-dependency-hell `pim_instance.h` This is causing build issues on BSD by including (transitively) `linux/mroute6.h` - try to address by disentangling the headers a bunch. Signed-off-by: David Lamparter --- pimd/pim6_cmd.c | 1 + pimd/pim6_mroute_msg.c | 1 + pimd/pim6_stubs.c | 1 + pimd/pim_assert.c | 1 + pimd/pim_cmd_common.c | 1 + pimd/pim_cmd_common.h | 6 ++++++ pimd/pim_hello.c | 1 + pimd/pim_iface.h | 1 - pimd/pim_ifchannel.c | 1 + pimd/pim_igmp.c | 1 + pimd/pim_igmp_mtrace.c | 1 + pimd/pim_igmpv2.c | 1 + pimd/pim_igmpv3.c | 1 + pimd/pim_instance.c | 1 + pimd/pim_join.c | 1 + pimd/pim_jp_agg.c | 1 + pimd/pim_jp_agg.h | 2 ++ pimd/pim_macro.c | 1 + pimd/pim_mroute.h | 1 + pimd/pim_mroute_msg.c | 1 + pimd/pim_msdp.c | 1 + pimd/pim_msdp_packet.c | 1 + pimd/pim_msdp_socket.c | 1 + pimd/pim_msg.c | 1 + pimd/pim_neighbor.c | 1 + pimd/pim_nht.c | 1 + pimd/pim_pim.c | 1 + pimd/pim_rp.c | 1 + pimd/pim_rpf.c | 1 + pimd/pim_rpf.h | 2 ++ pimd/pim_sock.c | 1 + pimd/pim_sock.h | 2 ++ pimd/pim_ssm.c | 1 + pimd/pim_ssm.h | 2 ++ pimd/pim_ssmpingd.c | 1 + pimd/pim_static.c | 1 + pimd/pim_static.h | 1 + pimd/pim_tib.c | 1 + pimd/pim_tlv.c | 1 + pimd/pim_vty.h | 2 ++ pimd/pim_vxlan.h | 2 ++ pimd/pim_zlookup.c | 1 + pimd/pim_zlookup.h | 2 ++ pimd/pim_zpthread.c | 1 + pimd/pimd.h | 1 - 45 files changed, 55 insertions(+), 2 deletions(-) diff --git a/pimd/pim6_cmd.c b/pimd/pim6_cmd.c index 289772260c..6eeb778da9 100644 --- a/pimd/pim6_cmd.c +++ b/pimd/pim6_cmd.c @@ -40,6 +40,7 @@ #include "pim_nb.h" #include "pim_addr.h" #include "pim_nht.h" +#include "pim_bsm.h" #ifndef VTYSH_EXTRACT_PL diff --git a/pimd/pim6_mroute_msg.c b/pimd/pim6_mroute_msg.c index c5547eef5d..0b4b31fefa 100644 --- a/pimd/pim6_mroute_msg.c +++ b/pimd/pim6_mroute_msg.c @@ -29,6 +29,7 @@ #include "lib/network.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_mroute.h" #include "pim_oil.h" #include "pim_str.h" diff --git a/pimd/pim6_stubs.c b/pimd/pim6_stubs.c index f799f04f33..8213b9e97f 100644 --- a/pimd/pim6_stubs.c +++ b/pimd/pim6_stubs.c @@ -25,6 +25,7 @@ #include "pim_pim.h" #include "pim_register.h" #include "pim_cmd.h" +#include "pim_bsm.h" /* * NH lookup / NHT diff --git a/pimd/pim_assert.c b/pimd/pim_assert.c index 7d924d6505..6191f96468 100644 --- a/pimd/pim_assert.c +++ b/pimd/pim_assert.c @@ -24,6 +24,7 @@ #include "if.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_str.h" #include "pim_tlv.h" #include "pim_msg.h" diff --git a/pimd/pim_cmd_common.c b/pimd/pim_cmd_common.c index d69b94ab12..cb98638107 100644 --- a/pimd/pim_cmd_common.c +++ b/pimd/pim_cmd_common.c @@ -34,6 +34,7 @@ #include "lib/linklist.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_vty.h" #include "lib/northbound_cli.h" #include "pim_errors.h" diff --git a/pimd/pim_cmd_common.h b/pimd/pim_cmd_common.h index 8753d1444e..206a2248f8 100644 --- a/pimd/pim_cmd_common.h +++ b/pimd/pim_cmd_common.h @@ -20,6 +20,12 @@ #ifndef PIM_CMD_COMMON_H #define PIM_CMD_COMMON_H +struct pim_upstream; +struct pim_instance; + +/* duplicated from pim_instance.h - needed to avoid dependency mess */ +struct pim_instance *pim_get_pim_instance(vrf_id_t vrf_id); + const char *pim_cli_get_vrf_name(struct vty *vty); int pim_process_join_prune_cmd(struct vty *vty, const char *jpi_str); int pim_process_no_join_prune_cmd(struct vty *vty); diff --git a/pimd/pim_hello.c b/pimd/pim_hello.c index fe4f10aa6a..a2f68acc78 100644 --- a/pimd/pim_hello.c +++ b/pimd/pim_hello.c @@ -23,6 +23,7 @@ #include "if.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_pim.h" #include "pim_str.h" #include "pim_tlv.h" diff --git a/pimd/pim_iface.h b/pimd/pim_iface.h index 3535db70a8..45aecdd349 100644 --- a/pimd/pim_iface.h +++ b/pimd/pim_iface.h @@ -30,7 +30,6 @@ #include "pim_igmp.h" #include "pim_upstream.h" -#include "pim_instance.h" #include "bfd.h" #include "pim_str.h" diff --git a/pimd/pim_ifchannel.c b/pimd/pim_ifchannel.c index 40aaf1877c..e2d2ab97c9 100644 --- a/pimd/pim_ifchannel.c +++ b/pimd/pim_ifchannel.c @@ -29,6 +29,7 @@ #include "prefix.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_str.h" #include "pim_iface.h" #include "pim_ifchannel.h" diff --git a/pimd/pim_igmp.c b/pimd/pim_igmp.c index 0dce8faa90..749e259a7e 100644 --- a/pimd/pim_igmp.c +++ b/pimd/pim_igmp.c @@ -27,6 +27,7 @@ #include "lib_errors.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_igmp.h" #include "pim_igmpv2.h" #include "pim_igmpv3.h" diff --git a/pimd/pim_igmp_mtrace.c b/pimd/pim_igmp_mtrace.c index 9148d1050a..f6c23c8e89 100644 --- a/pimd/pim_igmp_mtrace.c +++ b/pimd/pim_igmp_mtrace.c @@ -22,6 +22,7 @@ #include #include "pimd.h" +#include "pim_instance.h" #include "pim_util.h" #include "pim_sock.h" #include "pim_rp.h" diff --git a/pimd/pim_igmpv2.c b/pimd/pim_igmpv2.c index a949d2b126..8d0925cb56 100644 --- a/pimd/pim_igmpv2.c +++ b/pimd/pim_igmpv2.c @@ -21,6 +21,7 @@ #include "zebra.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_igmp.h" #include "pim_igmpv2.h" #include "pim_igmpv3.h" diff --git a/pimd/pim_igmpv3.c b/pimd/pim_igmpv3.c index 5d46383a8e..6ba48d6488 100644 --- a/pimd/pim_igmpv3.c +++ b/pimd/pim_igmpv3.c @@ -24,6 +24,7 @@ #include "lib_errors.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_iface.h" #include "pim_igmp.h" #include "pim_igmpv3.h" diff --git a/pimd/pim_instance.c b/pimd/pim_instance.c index 14f984508d..66e640e3b5 100644 --- a/pimd/pim_instance.c +++ b/pimd/pim_instance.c @@ -25,6 +25,7 @@ #include "lib_errors.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_ssm.h" #include "pim_rpf.h" #include "pim_rp.h" diff --git a/pimd/pim_join.c b/pimd/pim_join.c index 88078dd366..58de2c4a86 100644 --- a/pimd/pim_join.c +++ b/pimd/pim_join.c @@ -28,6 +28,7 @@ #include "plist.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_str.h" #include "pim_tlv.h" #include "pim_msg.h" diff --git a/pimd/pim_jp_agg.c b/pimd/pim_jp_agg.c index 7cbd0304ae..16774a03f5 100644 --- a/pimd/pim_jp_agg.c +++ b/pimd/pim_jp_agg.c @@ -25,6 +25,7 @@ #include "if.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_msg.h" #include "pim_jp_agg.h" #include "pim_join.h" diff --git a/pimd/pim_jp_agg.h b/pimd/pim_jp_agg.h index 506bf2d5ac..ee1ca6ac70 100644 --- a/pimd/pim_jp_agg.h +++ b/pimd/pim_jp_agg.h @@ -20,6 +20,8 @@ #ifndef __PIM_JP_AGG_H__ #define __PIM_JP_AGG_H__ +#include "pim_rpf.h" + struct pim_jp_sources { struct pim_upstream *up; int is_join; diff --git a/pimd/pim_macro.c b/pimd/pim_macro.c index 0896c52a75..e4d463b70a 100644 --- a/pimd/pim_macro.c +++ b/pimd/pim_macro.c @@ -25,6 +25,7 @@ #include "plist.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_macro.h" #include "pim_iface.h" #include "pim_ifchannel.h" diff --git a/pimd/pim_mroute.h b/pimd/pim_mroute.h index c56da7fae0..712c916994 100644 --- a/pimd/pim_mroute.h +++ b/pimd/pim_mroute.h @@ -136,6 +136,7 @@ typedef struct sioc_sg_req6 pim_sioc_sg_req; */ struct channel_oil; +struct pim_instance; int pim_mroute_socket_enable(struct pim_instance *pim); int pim_mroute_socket_disable(struct pim_instance *pim); diff --git a/pimd/pim_mroute_msg.c b/pimd/pim_mroute_msg.c index ad5d46e970..ef12ec7a49 100644 --- a/pimd/pim_mroute_msg.c +++ b/pimd/pim_mroute_msg.c @@ -29,6 +29,7 @@ #include "lib/network.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_mroute.h" #include "pim_oil.h" #include "pim_str.h" diff --git a/pimd/pim_msdp.c b/pimd/pim_msdp.c index 10e515cb56..0711a63f63 100644 --- a/pimd/pim_msdp.c +++ b/pimd/pim_msdp.c @@ -32,6 +32,7 @@ #include "pimd.h" #include "pim_memory.h" +#include "pim_instance.h" #include "pim_iface.h" #include "pim_rp.h" #include "pim_str.h" diff --git a/pimd/pim_msdp_packet.c b/pimd/pim_msdp_packet.c index 4adaca4e78..1152dd6f67 100644 --- a/pimd/pim_msdp_packet.c +++ b/pimd/pim_msdp_packet.c @@ -26,6 +26,7 @@ #include #include "pimd.h" +#include "pim_instance.h" #include "pim_str.h" #include "pim_errors.h" diff --git a/pimd/pim_msdp_socket.c b/pimd/pim_msdp_socket.c index facb771c25..819a747122 100644 --- a/pimd/pim_msdp_socket.c +++ b/pimd/pim_msdp_socket.c @@ -29,6 +29,7 @@ #include #include "pimd.h" +#include "pim_instance.h" #include "pim_sock.h" #include "pim_errors.h" diff --git a/pimd/pim_msg.c b/pimd/pim_msg.c index 1eda51417f..b67849fd8f 100644 --- a/pimd/pim_msg.c +++ b/pimd/pim_msg.c @@ -26,6 +26,7 @@ #include "plist.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_vty.h" #include "pim_pim.h" #include "pim_msg.h" diff --git a/pimd/pim_neighbor.c b/pimd/pim_neighbor.c index 84b532d345..cf28052de4 100644 --- a/pimd/pim_neighbor.c +++ b/pimd/pim_neighbor.c @@ -28,6 +28,7 @@ #include "lib_errors.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_neighbor.h" #include "pim_time.h" #include "pim_str.h" diff --git a/pimd/pim_nht.c b/pimd/pim_nht.c index c1242e1509..ac46605dbd 100644 --- a/pimd/pim_nht.c +++ b/pimd/pim_nht.c @@ -30,6 +30,7 @@ #include "pimd.h" #include "pimd/pim_nht.h" +#include "pim_instance.h" #include "log.h" #include "pim_time.h" #include "pim_oil.h" diff --git a/pimd/pim_pim.c b/pimd/pim_pim.c index 1baa5c38ca..352f95c473 100644 --- a/pimd/pim_pim.c +++ b/pimd/pim_pim.c @@ -26,6 +26,7 @@ #include "network.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_pim.h" #include "pim_time.h" #include "pim_iface.h" diff --git a/pimd/pim_rp.c b/pimd/pim_rp.c index 730870fb33..fdf4b99c32 100644 --- a/pimd/pim_rp.c +++ b/pimd/pim_rp.c @@ -34,6 +34,7 @@ #include "lib_errors.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_vty.h" #include "pim_str.h" #include "pim_iface.h" diff --git a/pimd/pim_rpf.c b/pimd/pim_rpf.c index 4e812ae3f0..c470bcd4d7 100644 --- a/pimd/pim_rpf.c +++ b/pimd/pim_rpf.c @@ -27,6 +27,7 @@ #include "jhash.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_rpf.h" #include "pim_pim.h" #include "pim_str.h" diff --git a/pimd/pim_rpf.h b/pimd/pim_rpf.h index 40cd066bd1..a2289b4cc5 100644 --- a/pimd/pim_rpf.h +++ b/pimd/pim_rpf.h @@ -23,6 +23,8 @@ #include #include "pim_str.h" +struct pim_instance; + /* RFC 4601: diff --git a/pimd/pim_sock.c b/pimd/pim_sock.c index 8619cc3f83..d41bc3f436 100644 --- a/pimd/pim_sock.c +++ b/pimd/pim_sock.c @@ -37,6 +37,7 @@ #include "network.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_mroute.h" #include "pim_iface.h" #include "pim_sock.h" diff --git a/pimd/pim_sock.h b/pimd/pim_sock.h index 2e9c043e84..ea9f7009bc 100644 --- a/pimd/pim_sock.h +++ b/pimd/pim_sock.h @@ -35,6 +35,8 @@ #define PIM_SOCK_ERR_NAME (-10) /* Socket name (getsockname) */ #define PIM_SOCK_ERR_BIND (-11) /* Can't bind to interface */ +struct pim_instance; + int pim_socket_bind(int fd, struct interface *ifp); void pim_socket_ip_hdr(int fd); int pim_socket_raw(int protocol); diff --git a/pimd/pim_ssm.c b/pimd/pim_ssm.c index 62d6eb8308..1ff60f9b64 100644 --- a/pimd/pim_ssm.c +++ b/pimd/pim_ssm.c @@ -27,6 +27,7 @@ #include #include "pimd.h" +#include "pim_instance.h" #include "pim_ssm.h" #include "pim_igmp.h" diff --git a/pimd/pim_ssm.h b/pimd/pim_ssm.h index c6b6978218..adc0cfdea0 100644 --- a/pimd/pim_ssm.h +++ b/pimd/pim_ssm.h @@ -21,6 +21,8 @@ #define PIM_SSM_STANDARD_RANGE "232.0.0.0/8" +struct pim_instance; + /* SSM error codes */ enum pim_ssm_err { PIM_SSM_ERR_NONE = 0, diff --git a/pimd/pim_ssmpingd.c b/pimd/pim_ssmpingd.c index d86be85bd8..c8d40371e7 100644 --- a/pimd/pim_ssmpingd.c +++ b/pimd/pim_ssmpingd.c @@ -27,6 +27,7 @@ #include "lib_errors.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_ssmpingd.h" #include "pim_time.h" #include "pim_sock.h" diff --git a/pimd/pim_static.c b/pimd/pim_static.c index d3b31771a0..581b855f92 100644 --- a/pimd/pim_static.c +++ b/pimd/pim_static.c @@ -26,6 +26,7 @@ #include "linklist.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_oil.h" #include "pim_static.h" #include "pim_time.h" diff --git a/pimd/pim_static.h b/pimd/pim_static.h index 56bfbd4e4f..dcbc790d7a 100644 --- a/pimd/pim_static.h +++ b/pimd/pim_static.h @@ -22,6 +22,7 @@ #include #include "pim_mroute.h" +#include "pim_oil.h" #include "if.h" struct static_route { diff --git a/pimd/pim_tib.c b/pimd/pim_tib.c index 80e75f1b09..a69177a6e5 100644 --- a/pimd/pim_tib.c +++ b/pimd/pim_tib.c @@ -22,6 +22,7 @@ #include "pim_tib.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_iface.h" #include "pim_upstream.h" #include "pim_oil.h" diff --git a/pimd/pim_tlv.c b/pimd/pim_tlv.c index 028514659b..90bf799093 100644 --- a/pimd/pim_tlv.c +++ b/pimd/pim_tlv.c @@ -24,6 +24,7 @@ #include "if.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_int.h" #include "pim_tlv.h" #include "pim_str.h" diff --git a/pimd/pim_vty.h b/pimd/pim_vty.h index c192ba3bbd..0f11d6ec4a 100644 --- a/pimd/pim_vty.h +++ b/pimd/pim_vty.h @@ -22,6 +22,8 @@ #include "vty.h" +struct pim_instance; + int pim_debug_config_write(struct vty *vty); int pim_global_config_write_worker(struct pim_instance *pim, struct vty *vty); int pim_interface_config_write(struct vty *vty); diff --git a/pimd/pim_vxlan.h b/pimd/pim_vxlan.h index 96882918ac..1a7e9dcf1b 100644 --- a/pimd/pim_vxlan.h +++ b/pimd/pim_vxlan.h @@ -22,6 +22,8 @@ #ifndef PIM_VXLAN_H #define PIM_VXLAN_H +#include "pim_instance.h" + /* global timer used for miscellaneous staggered processing */ #define PIM_VXLAN_WORK_TIME 1 /* number of SG entries processed at one shot */ diff --git a/pimd/pim_zlookup.c b/pimd/pim_zlookup.c index a9553089c9..a3978bd0d2 100644 --- a/pimd/pim_zlookup.c +++ b/pimd/pim_zlookup.c @@ -30,6 +30,7 @@ #include "lib_errors.h" #include "pimd.h" +#include "pim_instance.h" #include "pim_iface.h" #include "pim_neighbor.h" #include "pim_pim.h" diff --git a/pimd/pim_zlookup.h b/pimd/pim_zlookup.h index 4ea865a7e7..85d18d1d68 100644 --- a/pimd/pim_zlookup.h +++ b/pimd/pim_zlookup.h @@ -26,6 +26,8 @@ #define PIM_NEXTHOP_LOOKUP_MAX (3) /* max. recursive route lookup */ +struct channel_oil; + struct pim_zlookup_nexthop { vrf_id_t vrf_id; pim_addr nexthop_addr; diff --git a/pimd/pim_zpthread.c b/pimd/pim_zpthread.c index a342931085..e6fb3b3a17 100644 --- a/pimd/pim_zpthread.c +++ b/pimd/pim_zpthread.c @@ -22,6 +22,7 @@ #include #include "pimd.h" +#include "pim_instance.h" #include "pim_mlag.h" #include "pim_zebra.h" diff --git a/pimd/pimd.h b/pimd/pimd.h index aeb4859952..9ffa075d2a 100644 --- a/pimd/pimd.h +++ b/pimd/pimd.h @@ -28,7 +28,6 @@ #include "plist.h" #include "pim_addr.h" -#include "pim_instance.h" #include "pim_str.h" #include "pim_memory.h" #include "pim_assert.h" -- 2.39.5