]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Merge commit '8a40bccf' into thread-merge-2.16
authorMaria Matejka <mq@ucw.cz>
Thu, 28 Nov 2024 08:36:33 +0000 (09:36 +0100)
committerMaria Matejka <mq@ucw.cz>
Thu, 28 Nov 2024 08:36:33 +0000 (09:36 +0100)
1  2 
doc/bird.sgml
lib/socket.h
proto/bfd/bfd.c
proto/bfd/bfd.h
proto/bfd/config.Y
proto/bfd/packets.c
sysdep/unix/io.c

diff --cc doc/bird.sgml
Simple merge
diff --cc lib/socket.h
Simple merge
diff --cc proto/bfd/bfd.c
index ec8c2f13bec4a5ef4d816465f38c2f06ba2a1406,d08c413d4ddf6ec8973e20ed0a9a49246f5c42ca..2cb72c5405492a40a37e6b31073fb813dd5be512
@@@ -1189,10 -1149,11 +1189,11 @@@ bfd_reconfigure(struct proto *P, struc
        (new->accept_ipv6 != old->accept_ipv6) ||
        (new->accept_direct != old->accept_direct) ||
        (new->accept_multihop != old->accept_multihop) ||
-       (new->strict_bind != old->strict_bind))
+       (new->strict_bind != old->strict_bind) ||
+       (new->zero_udp6_checksum_rx != old->zero_udp6_checksum_rx))
      return 0;
  
 -  birdloop_mask_wakeups(p->loop);
 +  birdloop_mask_wakeups(p->p.loop);
  
    WALK_LIST(ifa, p->iface_list)
      bfd_reconfigure_iface(p, ifa, new);
diff --cc proto/bfd/bfd.h
Simple merge
Simple merge
index ba1c8bc4d4a26f26fa06a127562130f468ebbdbd,6097bcae593f88557970f7100d5a758de0994668..1ceb470c1b62e355b08bbcb6745ddaadcd9b3719
@@@ -416,7 -416,9 +416,9 @@@ bfd_err_hook(sock *sk, int err
  sock *
  bfd_open_rx_sk(struct bfd_proto *p, int multihop, int af)
  {
 -  sock *sk = sk_new(p->tpool);
+   struct bfd_config *cf = (struct bfd_config *) (p->p.cf);
 +  sock *sk = sk_new(p->p.pool);
    sk->type = SK_UDP;
    sk->subtype = af;
    sk->sport = !multihop ? BFD_CONTROL_PORT : BFD_MULTI_CTL_PORT;
    /* TODO: configurable ToS and priority */
    sk->tos = IP_PREC_INTERNET_CONTROL;
    sk->priority = sk_priority_control;
 -  sk->flags = SKF_THREAD | SKF_LADDR_RX | (!multihop ? SKF_TTL_RX : 0);
 +  sk->flags = SKF_LADDR_RX | (!multihop ? SKF_TTL_RX : 0);
  
 -  if (sk_open(sk) < 0)
+   if (cf->zero_udp6_checksum_rx)
+     sk->flags |= SKF_UDP6_NO_CSUM_RX;
 +  if (sk_open(sk, p->p.loop) < 0)
      goto err;
  
 -  sk_start(sk);
    return sk;
  
  err:
@@@ -461,11 -469,15 +468,14 @@@ bfd_open_rx_sk_bound(struct bfd_proto *
    /* TODO: configurable ToS and priority */
    sk->tos = IP_PREC_INTERNET_CONTROL;
    sk->priority = sk_priority_control;
 -  sk->flags = SKF_THREAD | SKF_BIND | (ifa ? SKF_TTL_RX : 0);
 +  sk->flags = SKF_BIND | (ifa ? SKF_TTL_RX : 0);
  
 -  if (sk_open(sk) < 0)
+   if (cf->zero_udp6_checksum_rx)
+     sk->flags |= SKF_UDP6_NO_CSUM_RX;
 +  if (sk_open(sk, p->p.loop) < 0)
      goto err;
  
 -  sk_start(sk);
    return sk;
  
  err:
Simple merge