summaryrefslogtreecommitdiff
path: root/pimd/pim_join.c
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2022-03-27 11:50:40 +0200
committerDavid Lamparter <equinox@opensourcerouting.org>2022-03-28 14:13:23 +0200
commit145e4c38b9d4b02f40a233cf6d83df0ef90b3902 (patch)
tree0e85c0d3c5f4dd2b0211535a32fd84f02963777d /pimd/pim_join.c
parentb6d9ad298d625c9ac18f45dd0591b7d51473f12d (diff)
pim6d: include IPv6 pseudoheader in TX checksums
Lots of passing src/dst around, but it is what it is. Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'pimd/pim_join.c')
-rw-r--r--pimd/pim_join.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/pimd/pim_join.c b/pimd/pim_join.c
index 2c11d5d13f..88078dd366 100644
--- a/pimd/pim_join.c
+++ b/pimd/pim_join.c
@@ -488,7 +488,9 @@ int pim_joinprune_send(struct pim_rpf *rpf, struct list *groups)
group_size = pim_msg_get_jp_group_size(group->sources);
if (group_size > packet_left) {
- pim_msg_build_header(pim_msg, packet_size,
+ pim_msg_build_header(pim_ifp->primary_address,
+ qpim_all_pim_routers_addr, pim_msg,
+ packet_size,
PIM_MSG_TYPE_JOIN_PRUNE, false);
if (pim_msg_send(pim_ifp->pim_sock_fd,
pim_ifp->primary_address,
@@ -544,7 +546,9 @@ int pim_joinprune_send(struct pim_rpf *rpf, struct list *groups)
grp = (struct pim_jp_groups *)curr_ptr;
if (packet_left < sizeof(struct pim_jp_groups)
|| msg->num_groups == 255) {
- pim_msg_build_header(pim_msg, packet_size,
+ pim_msg_build_header(pim_ifp->primary_address,
+ qpim_all_pim_routers_addr, pim_msg,
+ packet_size,
PIM_MSG_TYPE_JOIN_PRUNE, false);
if (pim_msg_send(pim_ifp->pim_sock_fd,
pim_ifp->primary_address,
@@ -564,8 +568,9 @@ int pim_joinprune_send(struct pim_rpf *rpf, struct list *groups)
if (!new_packet) {
// msg->num_groups = htons (msg->num_groups);
- pim_msg_build_header(pim_msg, packet_size,
- PIM_MSG_TYPE_JOIN_PRUNE, false);
+ pim_msg_build_header(
+ pim_ifp->primary_address, qpim_all_pim_routers_addr,
+ pim_msg, packet_size, PIM_MSG_TYPE_JOIN_PRUNE, false);
if (pim_msg_send(pim_ifp->pim_sock_fd, pim_ifp->primary_address,
qpim_all_pim_routers_addr, pim_msg,
packet_size,