summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2022-05-06 12:36:51 +0200
committerDavid Lamparter <equinox@opensourcerouting.org>2022-05-06 15:10:57 +0200
commit993e3d8e131ab729f86bfd01f031093dc4827d87 (patch)
treeed2851d0ffc8a5d0bf80f0134b60bf13ff44cf2a
parent1b00ed5f6510a227e1b1da92f1802ca565823083 (diff)
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 <equinox@opensourcerouting.org>
-rw-r--r--pimd/pim6_cmd.c1
-rw-r--r--pimd/pim6_mroute_msg.c1
-rw-r--r--pimd/pim6_stubs.c1
-rw-r--r--pimd/pim_assert.c1
-rw-r--r--pimd/pim_cmd_common.c1
-rw-r--r--pimd/pim_cmd_common.h6
-rw-r--r--pimd/pim_hello.c1
-rw-r--r--pimd/pim_iface.h1
-rw-r--r--pimd/pim_ifchannel.c1
-rw-r--r--pimd/pim_igmp.c1
-rw-r--r--pimd/pim_igmp_mtrace.c1
-rw-r--r--pimd/pim_igmpv2.c1
-rw-r--r--pimd/pim_igmpv3.c1
-rw-r--r--pimd/pim_instance.c1
-rw-r--r--pimd/pim_join.c1
-rw-r--r--pimd/pim_jp_agg.c1
-rw-r--r--pimd/pim_jp_agg.h2
-rw-r--r--pimd/pim_macro.c1
-rw-r--r--pimd/pim_mroute.h1
-rw-r--r--pimd/pim_mroute_msg.c1
-rw-r--r--pimd/pim_msdp.c1
-rw-r--r--pimd/pim_msdp_packet.c1
-rw-r--r--pimd/pim_msdp_socket.c1
-rw-r--r--pimd/pim_msg.c1
-rw-r--r--pimd/pim_neighbor.c1
-rw-r--r--pimd/pim_nht.c1
-rw-r--r--pimd/pim_pim.c1
-rw-r--r--pimd/pim_rp.c1
-rw-r--r--pimd/pim_rpf.c1
-rw-r--r--pimd/pim_rpf.h2
-rw-r--r--pimd/pim_sock.c1
-rw-r--r--pimd/pim_sock.h2
-rw-r--r--pimd/pim_ssm.c1
-rw-r--r--pimd/pim_ssm.h2
-rw-r--r--pimd/pim_ssmpingd.c1
-rw-r--r--pimd/pim_static.c1
-rw-r--r--pimd/pim_static.h1
-rw-r--r--pimd/pim_tib.c1
-rw-r--r--pimd/pim_tlv.c1
-rw-r--r--pimd/pim_vty.h2
-rw-r--r--pimd/pim_vxlan.h2
-rw-r--r--pimd/pim_zlookup.c1
-rw-r--r--pimd/pim_zlookup.h2
-rw-r--r--pimd/pim_zpthread.c1
-rw-r--r--pimd/pimd.h1
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 <zebra.h>
#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 <lib/lib_errors.h>
#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 <lib/lib_errors.h>
#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 <zebra.h>
#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 <lib/lib_errors.h>
#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 <zebra.h>
#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 <lib/lib_errors.h>
#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"