Module Name: src
Committed By: ozaki-r
Date: Tue Sep 3 08:00:30 UTC 2024
Modified Files:
src/sbin/brconfig: brconfig.8 brconfig.c
Log Message:
brconfig: add protect/-protect commands
It marks/clears a specified interface "protected".
To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/sbin/brconfig/brconfig.8
cvs rdiff -u -r1.17 -r1.18 src/sbin/brconfig/brconfig.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sbin/brconfig/brconfig.8
diff -u src/sbin/brconfig/brconfig.8:1.20 src/sbin/brconfig/brconfig.8:1.21
--- src/sbin/brconfig/brconfig.8:1.20 Sun Jul 19 14:43:35 2020
+++ src/sbin/brconfig/brconfig.8 Tue Sep 3 08:00:30 2024
@@ -1,4 +1,4 @@
-.\" $NetBSD: brconfig.8,v 1.20 2020/07/19 14:43:35 wiz Exp $
+.\" $NetBSD: brconfig.8,v 1.21 2024/09/03 08:00:30 ozaki-r Exp $
.\"
.\" Copyright 2001 Wasabi Systems, Inc.
.\" All rights reserved.
@@ -33,7 +33,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.Dd July 19, 2020
+.Dd August 29, 2024
.Dt BRCONFIG 8
.Os
.Sh NAME
@@ -165,6 +165,19 @@ This is the default for all interfaces a
Clear the
.Dq learning
attribute on a member interface.
+.It Cm protect Ar interface
+Mark an interface as a
+.Dq protected
+interface.
+When a packet arrives on a
+.Dq protected
+interface and is being forwarded to another
+.Dq protected
+interface, the packet will be discarded.
+.It Cm -protect Ar interface
+Clear the
+.Dq protected
+attribute on a member interface.
.It Cm static Ar interface address
Add a static entry into the address cache pointing to
.Ar interface .
Index: src/sbin/brconfig/brconfig.c
diff -u src/sbin/brconfig/brconfig.c:1.17 src/sbin/brconfig/brconfig.c:1.18
--- src/sbin/brconfig/brconfig.c:1.17 Mon Jun 1 06:15:18 2015
+++ src/sbin/brconfig/brconfig.c Tue Sep 3 08:00:30 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: brconfig.c,v 1.17 2015/06/01 06:15:18 matt Exp $ */
+/* $NetBSD: brconfig.c,v 1.18 2024/09/03 08:00:30 ozaki-r Exp $ */
/*
* Copyright 2001 Wasabi Systems, Inc.
@@ -43,7 +43,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: brconfig.c,v 1.17 2015/06/01 06:15:18 matt Exp $");
+__RCSID("$NetBSD: brconfig.c,v 1.18 2024/09/03 08:00:30 ozaki-r Exp $");
#endif
@@ -95,6 +95,7 @@ static void cmd_ifpathcost(const struct
static void cmd_timeout(const struct command *, int, const char *, char **);
static void cmd_stp(const struct command *, int, const char *, char **);
static void cmd_ipf(const struct command *, int, const char *, char **);
+static void cmd_protect(const struct command *, int, const char *, char **);
static const struct command command_table[] = {
{ "add", 1, 0, cmd_add },
@@ -131,6 +132,9 @@ static const struct command command_tabl
{ "ipf", 0, 0, cmd_ipf },
{ "-ipf", 0, CMD_INVERT, cmd_ipf },
+ { "protect", 1, 0, cmd_protect },
+ { "-protect", 1, CMD_INVERT, cmd_protect },
+
{ NULL, 0, 0, NULL },
};
@@ -625,6 +629,15 @@ cmd_stp(const struct command *cmd, int s
}
static void
+cmd_protect(const struct command *cmd, int sock, const char *bridge,
+ char **argv)
+{
+
+ do_bridgeflag(sock, bridge, argv[0], IFBIF_PROTECTED,
+ (cmd->cmd_flags & CMD_INVERT) ? 0 : 1);
+}
+
+static void
cmd_flush(const struct command *cmd, int sock, const char *bridge,
char **argv)
{