<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><meta http-equiv="content-type" content="text/html; charset=utf-8"><div style="overflow-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><br><div><br><blockquote type="cite"><div>On 17 Dec 2022, at 16:06, Ondrej Zajicek <santiago@crfreenet.org> wrote:</div><br class="Apple-interchange-newline"><div><div>On Sat, Dec 17, 2022 at 01:27:23PM +0000, Alexander Chernikov wrote:<br><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">* 0002-FreeBSD-use-interface-index-instead-of-IP-address-wh.patch switches multicast interface specification from ip address to interface index. That allows to avoid iface->sysdep value, which is not filled by netlink.<br></blockquote><br>Nice. Is this supported since long ago, or does it require some recent BSD version?<br>Do you know whether it is supported also in other BSD flavors?<br></blockquote><br>It’s a bit complicated :-)<br><br>FreeBSD:<br>IP_MULTICAST_IF - ip_mreqn support was added in [1] @ 2007.<br>IP_<ADD|DEL>_MEMBERSHIP - ip_mreqn support was added in [2] @ 2019 / FreeBSD 12.1. All currently supported FreeBSD versions have this functionality in place<br><br>OpenBSD:<br>IP_MULTICAST_IF - ip_mreqn support was added in [3] @ 2021<br>IP_<ADD|DEL>_MEMBERSHIP - ip_mreqn support was added in [4] @ 2021<br><br>NetBSD:<br>IP_MULTICAST_IF,  IP_<ADD|DEL>_MEMBERSHIP uses old API hack, treating 0/8 IPv4 addresses as ifindex. It was added in [5] @ 2001<br></blockquote><br>Thanks for the overview!<br><br>So we can assume that the ip_mreqn API is available since FreeBSD 12.1<br>and OpenBSD 6.9 and enable CONFIG_USE_IP_MREQN based on __FreeBSD_version<br></div></div></blockquote>It’s certainly correct for FreeBSD (_FreeBSD_version >= <span style="caret-color: rgb(5, 80, 174); color: rgb(5, 80, 174); font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace; white-space: pre; background-color: rgb(255, 255, 255);">1201000)</span><br><blockquote type="cite"><div><div>and OpenBSD version macros?<br></div></div></blockquote><div>Probably.</div><br><blockquote type="cite"><div><div><br>I generally prefer to keep old system compatibility code for ~ 5 years,<br>although it makes more sense on Linux, where are some LTS distributions<br>with similar long-term commitments, than on BSD.<br></div></div></blockquote>Yep, that makes great sense.<br><blockquote type="cite"><div><div><br>-- <br>Elen sila lumenn' omentielvo<br><br>Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org)<br>OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)<br>"To err is human -- to blame it on a computer is even more so."<br></div></div></blockquote></div><br></div></body></html>