}
static bool pim_bsm_send_intf(uint8_t *buf, int len, struct interface *ifp,
- struct in_addr dst_addr)
+ pim_addr dst_addr)
{
struct pim_interface *pim_ifp;
}
static bool pim_bsm_frag_send(uint8_t *buf, uint32_t len, struct interface *ifp,
- uint32_t pim_mtu, struct in_addr dst_addr,
- bool no_fwd)
+ uint32_t pim_mtu, pim_addr dst_addr, bool no_fwd)
{
struct bsmmsg_grpinfo *grpinfo, *curgrp;
uint8_t *firstgrp_ptr;
{
struct interface *ifp;
struct pim_interface *pim_ifp;
- struct in_addr dst_addr;
+ pim_addr dst_addr;
uint32_t pim_mtu;
bool no_fwd = false;
bool ret = false;
bool pim_bsm_new_nbr_fwd(struct pim_neighbor *neigh, struct interface *ifp)
{
- struct in_addr dst_addr;
+ pim_addr dst_addr;
struct pim_interface *pim_ifp;
struct bsm_scope *scope;
struct bsm_frag *bsfrag;
return 0;
}
-int pim_msg_send(int fd, pim_addr src, struct in_addr dst, uint8_t *pim_msg,
+int pim_msg_send(int fd, pim_addr src, pim_addr dst, uint8_t *pim_msg,
int pim_msg_size, const char *ifname)
{
struct sockaddr_in to;
int pim_pim_packet(struct interface *ifp, uint8_t *buf, size_t len);
-int pim_msg_send(int fd, struct in_addr src, struct in_addr dst,
- uint8_t *pim_msg, int pim_msg_size, const char *ifname);
+int pim_msg_send(int fd, pim_addr src, pim_addr dst, uint8_t *pim_msg,
+ int pim_msg_size, const char *ifname);
int pim_hello_send(struct interface *ifp, uint16_t holdtime);
#endif /* PIM_PIM_H */
CPP_NOTICE("Work needs to be done to make this work properly via the pim mroute socket\n");
#endif /* MAXVIFS > 256 */
+#if PIM_IPV == 4
const char *const PIM_ALL_SYSTEMS = MCAST_ALL_SYSTEMS;
const char *const PIM_ALL_ROUTERS = MCAST_ALL_ROUTERS;
const char *const PIM_ALL_PIM_ROUTERS = MCAST_ALL_PIM_ROUTERS;
const char *const PIM_ALL_IGMP_ROUTERS = MCAST_ALL_IGMP_ROUTERS;
+#else
+const char *const PIM_ALL_SYSTEMS = "ff02::1";
+const char *const PIM_ALL_ROUTERS = "ff02::2";
+const char *const PIM_ALL_PIM_ROUTERS = "ff02::d";
+const char *const PIM_ALL_IGMP_ROUTERS = "ff02::16";
+#endif
DEFINE_MTYPE_STATIC(PIMD, ROUTER, "PIM Router information");
struct pim_router *router = NULL;
-struct in_addr qpim_all_pim_routers_addr;
+pim_addr qpim_all_pim_routers_addr;
void pim_prefix_list_update(struct prefix_list *plist)
{
void pim_init(void)
{
- if (!inet_aton(PIM_ALL_PIM_ROUTERS, &qpim_all_pim_routers_addr)) {
+ if (!inet_pton(PIM_AF, PIM_ALL_PIM_ROUTERS,
+ &qpim_all_pim_routers_addr)) {
flog_err(
EC_LIB_SOCKET,
"%s %s: could not solve %s to group address: errno=%d: %s",
extern const char *const PIM_ALL_IGMP_ROUTERS;
extern struct zebra_privs_t pimd_privs;
-extern struct in_addr qpim_all_pim_routers_addr;
+extern pim_addr qpim_all_pim_routers_addr;
extern uint8_t qpim_ecmp_enable;
extern uint8_t qpim_ecmp_rebalance_enable;