#include "if.h"
-#include "pim_neighbor.h"
-#include "pim_ifchannel.h"
+struct pim_ifchannel;
+struct pim_neighbor;
+
+enum pim_ifassert_state {
+ PIM_IFASSERT_NOINFO,
+ PIM_IFASSERT_I_AM_WINNER,
+ PIM_IFASSERT_I_AM_LOSER
+};
+
+struct pim_assert_metric {
+ uint32_t rpt_bit_flag;
+ uint32_t metric_preference;
+ uint32_t route_metric;
+ struct in_addr ip_address; /* neighbor router that sourced the Assert
+ message */
+};
/*
RFC 4601: 4.11. Timer Values
#include "zclient.h"
#include "pim_instance.h"
+#include "pim_neighbor.h"
#include "pim_cmd.h"
#include "pim_vty.h"
#include "pim_iface.h"
#include "pimd.h"
#include "pim_iface.h"
#include "pim_instance.h"
+#include "pim_neighbor.h"
#include "pim_rpf.h"
#include "pim_hello.h"
#include "pim_pim.h"
#include "pim_igmp.h"
#include "pim_upstream.h"
+#include "pim_instance.h"
#include "bfd.h"
#define PIM_IF_MASK_PIM (1 << 0)
#include "if.h"
#include "prefix.h"
+#include "pim_assert.h"
+
struct pim_ifchannel;
#include "pim_upstream.h"
PIM_IFJOIN_PRUNE_PENDING_TMP,
};
-enum pim_ifassert_state {
- PIM_IFASSERT_NOINFO,
- PIM_IFASSERT_I_AM_WINNER,
- PIM_IFASSERT_I_AM_LOSER
-};
-
-struct pim_assert_metric {
- uint32_t rpt_bit_flag;
- uint32_t metric_preference;
- uint32_t route_metric;
- struct in_addr ip_address; /* neighbor router that sourced the Assert
- message */
-};
-
/*
Flag to detect change in CouldAssert(S,G,I)
*/
#include <zebra.h>
#include "if.h"
+#include "pim_igmp.h"
+
#define IGMP_V3_CHECKSUM_OFFSET (2)
#define IGMP_V3_REPORT_NUMGROUPS_OFFSET (6)
#define IGMP_V3_REPORT_GROUPPRECORD_OFFSET (8)
void pim_vrf_init(void);
void pim_vrf_terminate(void);
+extern struct pim_router *router;
+
struct pim_instance *pim_get_pim_instance(vrf_id_t vrf_id);
#endif
Above: from <linux/mroute.h>
*/
+struct channel_oil;
+
int pim_mroute_socket_enable(struct pim_instance *pim);
int pim_mroute_socket_disable(struct pim_instance *pim);
#include "pim_nb.h"
#include "lib/northbound_cli.h"
#include "pim_igmpv3.h"
+#include "pim_neighbor.h"
#include "pim_pim.h"
#include "pim_mlag.h"
#include "pim_bfd.h"
#include "prefix.h"
#include "pim_tlv.h"
+#include "pim_iface.h"
struct pim_neighbor {
int64_t creation; /* timestamp of creation */
#ifndef PIM_OIL_H
#define PIM_OIL_H
+struct pim_interface;
+
#include "pim_mroute.h"
-#include "pim_iface.h"
/*
* Where did we get this (S,G) from?
#include "pim_rpf.h"
#include "pim_sock.h"
#include "pim_memory.h"
-#include "pim_iface.h"
+#include "pim_neighbor.h"
#include "pim_msdp.h"
#include "pim_nht.h"
#include "pim_mroute.h"
#include "prefix.h"
#include "vty.h"
#include "plist.h"
-#include "pim_iface.h"
#include "pim_rpf.h"
+struct pim_interface;
+
enum rp_source {
RP_SRC_NONE = 0,
RP_SRC_STATIC,
#include "pim_pim.h"
#include "pim_str.h"
#include "pim_iface.h"
+#include "pim_neighbor.h"
#include "pim_zlookup.h"
#include "pim_ifchannel.h"
#include "pim_time.h"
#include <zebra.h>
-#include "pim_upstream.h"
-#include "pim_neighbor.h"
-
/*
RFC 4601:
#include <prefix.h>
#include "plist.h"
-#include <pimd/pim_rpf.h>
+#include "pim_rpf.h"
#include "pim_str.h"
#include "pim_ifchannel.h"
#include "pimd.h"
#include "pim_iface.h"
+#include "pim_neighbor.h"
#include "pim_pim.h"
#include "pim_str.h"
#include "pim_oil.h"
extern const char *const PIM_ALL_PIM_ROUTERS;
extern const char *const PIM_ALL_IGMP_ROUTERS;
-extern struct pim_router *router;
extern struct zebra_privs_t pimd_privs;
extern struct in_addr qpim_all_pim_routers_addr;
extern uint8_t qpim_ecmp_enable;