---
name: "mtest"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/mtest/8"
---

# mtest(8)

test multicast socket operations

## NAME

**mtest** – test multicast socket operations

## SYNOPSIS

**mtest**

## DESCRIPTION

The **mtest** utility is a small program for testing multicast socket operations.

It accepts the following commands, interactively, or as part of a scripted input file (useful for automated testing):

- **a** *ifname* *mac-addr*

  Join the link-layer group address *mac-addr* on interface *ifname*. The group address should be in IEEE 802 MAC format, delimited by colon (':') characters.

- **d** *ifname* *mac-addr*

  Leave the link-layer group address *mac-addr* on interface *ifname*.

- **m** *ifname* *1/0*

  Set or reset ALLMULTI mode on interface *ifname*. This option is deprecated and is now a no-op.

- **p** *ifname* *1/0*

  Set or reset promiscuous mode on interface *ifname*.

- **j** *mcast-addr* *ifname* \[*source-addr*\]

  Join the multicast address *mcast-addr* on the interface with name *ifname*.

  If an optional source *source-addr* is specified, a source-specific join will be performed; if **mtest** is already joined to the multicast address, the source will be added to its filter list.

- **l** *mcast-addr* *ifname* \[*source-addr*\]

  Leave the multicast address *mcast-addr* on the interface with address *ifname*. If a source *source-addr* is specified, only that source will be left.

- **i** *mcast-addr* *ifname* *n* *source-addr* *...*

  Set the socket with membership of *mcast-addr* on interface *ifname* to include filter mode, and add *n* sources beginning with *source-addr* to the inclusion filter list.

- **e** *mcast-addr* *ifname* *n* *source-addr* *...*

  Set the socket with membership of *mcast-addr* on interface *ifname* to exclude filter mode, and add *n* sources beginning with *source-addr* to the exclusion filter list.

- **t** *mcast-addr* *ifname* *source-addr*

  Set the socket with membership of *mcast-addr* on interface *ifname* to block traffic from source *source-addr*.

- **b** *mcast-addr* *ifname* *source-addr*

  Set the socket with membership of *mcast-addr* on interface *ifname* to allow traffic from source *source-addr*.

- **g** *mcast-addr* *ifname* *n*

  Print *n* source filter entries for *mcast-addr* on interface *ifname*.

- **f** *filename*

  Read commands from the file *filename*.

- **s** *n*

  Sleep for *n* seconds.

- **?**

  List legal commands.

- **q**

  Quit the program.

## IMPLEMENTATION NOTES

For each command implemented by **mtest**, the address family of each argument must be identical; it is not possible to mix IPv4 multicast memberships with IPv6, for example.

To support IPv6, all commands have now changed to accept an interface name rather than an interface address. For IPv4, the program will perform a lookup of the primary IP address based on the interface name. This may fail if no primary IP address is assigned.

## SEE ALSO

D. Thaler, B. Fenner, and B. Quinn, *Socket Interface Extensions for Multicast Filters*, RFC 3678.

## AUTHORS

Bruce Simpson\
 Steve Deering\
 Wilbert De Graaf
