]> git.puffer.fish Git - mirror/frr.git/commitdiff
pim6d: IPv6-adjust pim_msg_send() and related 10356/head
authorDavid Lamparter <equinox@opensourcerouting.org>
Fri, 14 Jan 2022 19:17:46 +0000 (20:17 +0100)
committerDavid Lamparter <equinox@opensourcerouting.org>
Mon, 14 Feb 2022 05:45:03 +0000 (06:45 +0100)
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
pimd/pim_bsm.c
pimd/pim_pim.c
pimd/pim_pim.h
pimd/pimd.c
pimd/pimd.h

index add9b7fe690cb3341a6553f16dd0371a5a30a212..0b993ec05ea0432abd6560571ef90f723de5bd4c 100644 (file)
@@ -687,7 +687,7 @@ void pim_bsm_clear(struct pim_instance *pim)
 }
 
 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;
 
@@ -720,8 +720,7 @@ static bool pim_bsm_send_intf(uint8_t *buf, int len, struct interface *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;
@@ -892,7 +891,7 @@ static void pim_bsm_fwd_whole_sz(struct pim_instance *pim, uint8_t *buf,
 {
        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;
@@ -939,7 +938,7 @@ static void pim_bsm_fwd_whole_sz(struct pim_instance *pim, uint8_t *buf,
 
 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;
index 2142d9010bc4ac29963128ac238bdaf0616185b4..93ccfd78df46270e8a61d77a32451820a7429eb6 100644 (file)
@@ -570,7 +570,7 @@ static int pim_msg_send_frame(int fd, char *buf, size_t len,
        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;
index b9fdb14dc0ea5d19aa062736caa1d7d37a701bff..1931e8cee83a5a78c2c1497ef37dd4bf4ec8a60d 100644 (file)
@@ -56,8 +56,8 @@ void pim_hello_restart_triggered(struct interface *ifp);
 
 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 */
index 16a0c7251c350a9814e0e705a9bfcc3dc40ffaf5..9621f9794d3b206292920f55f7131def61f56a4f 100644 (file)
 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)
 {
@@ -120,7 +127,8 @@ void pim_router_terminate(void)
 
 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",
index 7732dc5b74cba07c8dff09077e5c3b928c692ee9..d4eac58a29c36c480c90e7c1c17b456cb0f0ccdd 100644 (file)
@@ -134,7 +134,7 @@ extern const char *const PIM_ALL_PIM_ROUTERS;
 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;