IP_MSFILTER(2const) IP_MSFILTER(2const)

IP_MSFILTER - multicast source filtering

Standard C library (libc-lc)

#include <netinet/in.h>  /* Definition of IP* constants */
#include <sys/socket.h>
int setsockopt(int sockfd, IPPROTO_IP, IP_MSFILTER,
               const struct ip_msfilter *val,
               sizeof(struct ip_msfilter));
struct ip_msfilter {
    struct in_addr  imsf_multiaddr;  // IP multicast group address
    struct in_addr  imsf_interface;  // IP address of local interface
    uint32_t        imsf_fmode;      // Filter-mode
    uint32_t        imsf_numsrc;     // Number of elements in .imsf_slist
    struct in_addr  imsf_slist[1];   // Array of source addresses
};

This option provides access to the advanced full-state filtering API.

There are two macros, MCAST_INCLUDE and MCAST_EXCLUDE, which can be used to specify the filtering mode.

Additionally, the IP_MSFILTER_SIZE(n) macro exists to determine how much memory is needed to store ip_msfilter structure with n sources in the source list.

For the full description of multicast source filtering refer to RFC 3376.

See IPRROTO_IP(2const). See setsockopt(2). See ip(7).

Linux.

Linux 2.4.22, Linux 2.5.68.

IPPROTO_IP(2const), setsockopt(2), ip(7)

2025-11-25 Linux man-pages 6.17