aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2024-09-06 16:56:58 +0000
committerMark Johnston <markj@FreeBSD.org>2024-09-06 16:58:44 +0000
commit00c9a6806c9cf3357b62f6708e5acd1ffd166613 (patch)
tree26491e8550a50ce012dfb235b81e083d717e4f2a
parent58f194223ab8578269772a6874a8444e5e03afaf (diff)
ifconfig: Add an allmulti verb
Similar to "promisc", this allows the IFF_ALLMULTI flag to be toggled from userspace if it happens to be useful to disable multicast packet filtering. One use-case is when implementing IPv6 neighbour discovery over netmap. Reviewed by: zlei, glebius MFC after: 2 weeks Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D46525
-rw-r--r--sbin/ifconfig/ifconfig.84
-rw-r--r--sbin/ifconfig/ifconfig.c2
-rw-r--r--sbin/ifconfig/ifconfig_netlink.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8
index c9861ccc6481..dfea59dfd229 100644
--- a/sbin/ifconfig/ifconfig.8
+++ b/sbin/ifconfig/ifconfig.8
@@ -502,6 +502,10 @@ Enable driver dependent debugging code; usually, this turns on
extra console error logging.
.It Fl debug
Disable driver dependent debugging code.
+.It Cm allmulti
+Enable promiscuous mode for multicast packets.
+.It Fl allmulti
+Disable promiscuous mode for multicast packets.
.It Cm promisc
Put interface into permanently promiscuous mode.
.It Fl promisc
diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c
index e6ed9015b34b..a0680d09e54c 100644
--- a/sbin/ifconfig/ifconfig.c
+++ b/sbin/ifconfig/ifconfig.c
@@ -2078,6 +2078,8 @@ static struct cmd basic_cmds[] = {
DEF_CMD_ARG("descr", setifdescr),
DEF_CMD("-description", 0, unsetifdescr),
DEF_CMD("-descr", 0, unsetifdescr),
+ DEF_CMD("allmulti", IFF_PALLMULTI, setifflags),
+ DEF_CMD("-allmulti", IFF_PALLMULTI, clearifflags),
DEF_CMD("promisc", IFF_PPROMISC, setifflags),
DEF_CMD("-promisc", IFF_PPROMISC, clearifflags),
DEF_CMD("add", IFF_UP, notealias),
diff --git a/sbin/ifconfig/ifconfig_netlink.c b/sbin/ifconfig/ifconfig_netlink.c
index 729d4ca56545..5a986e840d7f 100644
--- a/sbin/ifconfig/ifconfig_netlink.c
+++ b/sbin/ifconfig/ifconfig_netlink.c
@@ -77,7 +77,7 @@ static const char *IFFBITS[] = {
"STICKYARP", /* 20:0x100000 IFF_STICKYARP*/
"DYING", /* 21:0x200000 IFF_DYING*/
"RENAMING", /* 22:0x400000 IFF_RENAMING*/
- "NOGROUP", /* 23:0x800000 IFF_NOGROUP*/
+ "PALLMULTI", /* 23:0x800000 IFF_PALLMULTI*/
"LOWER_UP", /* 24:0x1000000 IFF_NETLINK_1*/
};