HomeFreeBSD

Support struct ip_mreqn as argument for IP_ADD_MEMBERSHIP. Legacy support

Description

Support struct ip_mreqn as argument for IP_ADD_MEMBERSHIP. Legacy support
for struct ip_mreq remains in place.

The struct ip_mreqn is Linux extension to classic BSD multicast API. It
has extra field allowing to specify the interface index explicitly. In
Linux it used as argument for IP_MULTICAST_IF and IP_ADD_MEMBERSHIP.
FreeBSD kernel also declares this structure and supports it as argument
to IP_MULTICAST_IF since r170613. So, we have structure declared but
not fully supported, this confused third party application configure
scripts.

Code handling IP_ADD_MEMBERSHIP was mixed together with code for
IP_ADD_SOURCE_MEMBERSHIP. Bringing legacy and new structure support
into the mess would made the "argument switcharoo" intolerable, so
code was separated into its own switch case clause.

MFC after: 3 months
Differential Revision: https://reviews.freebsd.org/D19276

Details

Provenance
glebiusAuthored on
Differential Revision
D19276: Support struct ip_mreqn in IP_ADD_MEMBERSHIP.
Parents
rS344480: Remove disabled CTL_LEGACY_STATS support.
Branches
Unknown
Tags
Unknown