From 8a40bccffe9e28e211fe996845658f87f5cc60e9 Mon Sep 17 00:00:00 2001 From: Alexander Zubkov Date: Wed, 26 Jun 2024 16:29:57 +0200 Subject: [PATCH] BFD: Add option to accept zero checksum for IPv6 UDP packets Some vendors do not fill the checksum for IPv6 UDP packets. For interoperability with such implementations one can set UDP_NO_CHECK6_RX socket option on Linux. Thanks to Ville O for the suggestion. Minor changes by committer. --- doc/bird.sgml | 9 +++++++++ lib/socket.h | 2 ++ proto/bfd/bfd.c | 3 ++- proto/bfd/bfd.h | 1 + proto/bfd/config.Y | 3 ++- proto/bfd/packets.c | 10 ++++++++++ sysdep/bsd/sysio.h | 6 ++++++ sysdep/linux/sysio.h | 9 +++++++++ sysdep/unix/io.c | 4 ++++ 9 files changed, 45 insertions(+), 2 deletions(-) diff --git a/doc/bird.sgml b/doc/bird.sgml index 8035ec18..096e3148 100644 --- a/doc/bird.sgml +++ b/doc/bird.sgml @@ -2499,6 +2499,7 @@ milliseconds. protocol bfd [<name>] { accept [ipv4|ipv6] [direct|multihop]; + zero udp6 checksum rx <switch>; interface <interface pattern> { interval <time>; min rx interval <time>; @@ -2548,6 +2549,14 @@ protocol bfd [<name>] { in cases like running multiple BIRD instances on a machine, each handling a different set of interfaces. Default: disabled. +