From owner-dev-commits-src-all@freebsd.org Tue Aug 3 10:08:00 2021 Return-Path: Delivered-To: dev-commits-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 86DC0634FD5; Tue, 3 Aug 2021 10:08:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Gf9YD3F7Fz3Q2w; Tue, 3 Aug 2021 10:08:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 576EC11716; Tue, 3 Aug 2021 10:08:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 173A80OZ096590; Tue, 3 Aug 2021 10:08:00 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 173A80UG096589; Tue, 3 Aug 2021 10:08:00 GMT (envelope-from git) Date: Tue, 3 Aug 2021 10:08:00 GMT Message-Id: <202108031008.173A80UG096589@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Marcin Wojtas Subject: git: f5b29d0f3510 - main - etherswitch: Add a new striptagingress port flag MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: mw X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f5b29d0f35100238068c4b3145e15486f991e911 Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for all branches of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Aug 2021 10:08:00 -0000 The branch main has been updated by mw: URL: https://cgit.FreeBSD.org/src/commit/?id=f5b29d0f35100238068c4b3145e15486f991e911 commit f5b29d0f35100238068c4b3145e15486f991e911 Author: Kornel Duleba AuthorDate: 2021-06-23 11:13:05 +0000 Commit: Marcin Wojtas CommitDate: 2021-08-03 10:07:48 +0000 etherswitch: Add a new striptagingress port flag Felix switch found in LS1028A supports stripping VLAN tag on ingress, instead of egress. The striptag flag excepts the latter behaviour. Add a new flag to support the feature. Obtained from: Semihalf Sponsored by: Alstom Group Differential Revision: https://reviews.freebsd.org/D30922 --- sbin/etherswitchcfg/etherswitchcfg.8 | 6 +++++- sbin/etherswitchcfg/etherswitchcfg.c | 4 ++++ sys/dev/etherswitch/etherswitch.h | 19 ++++++++++--------- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/sbin/etherswitchcfg/etherswitchcfg.8 b/sbin/etherswitchcfg/etherswitchcfg.8 index 0695b0eddba4..9380c1f4f055 100644 --- a/sbin/etherswitchcfg/etherswitchcfg.8 +++ b/sbin/etherswitchcfg/etherswitchcfg.8 @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd June 28, 2019 +.Dd June 23, 2021 .Dt ETHERSWITCHCFG 8 .Os .Sh NAME @@ -139,6 +139,10 @@ Disable the add VLAN tag option. Strip the VLAN tags from the packets sent by the port. .It Fl striptag Disable the strip VLAN tag option. +.It Cm striptagingress +Strip the VLAN tags from the packets received by the port. +.It Fl striptagingress +Disable the strip VLAN tag on ingress option. .It Cm firstlock This options makes the switch port lock on the first MAC address it sees. After that, usually you need to reset the switch to learn different diff --git a/sbin/etherswitchcfg/etherswitchcfg.c b/sbin/etherswitchcfg/etherswitchcfg.c index f3af9f93825a..7f3403918fad 100644 --- a/sbin/etherswitchcfg/etherswitchcfg.c +++ b/sbin/etherswitchcfg/etherswitchcfg.c @@ -223,6 +223,8 @@ set_port_flag(struct cfg *cfg, int argc, char *argv[]) f = ETHERSWITCH_PORT_DOUBLE_TAG; else if (strcasecmp(flag, "ingress") == 0) f = ETHERSWITCH_PORT_INGRESS; + else if (strcasecmp(flag, "striptagingress") == 0) + f = ETHERSWITCH_PORT_STRIPTAGINGRESS; } bzero(&p, sizeof(p)); p.es_port = cfg->unit; @@ -869,6 +871,8 @@ static struct cmds cmds[] = { { MODE_PORT, "-ingress", 0, set_port_flag }, { MODE_PORT, "striptag", 0, set_port_flag }, { MODE_PORT, "-striptag", 0, set_port_flag }, + { MODE_PORT, "striptagingress", 0, set_port_flag }, + { MODE_PORT, "-striptagingress", 0, set_port_flag }, { MODE_PORT, "doubletag", 0, set_port_flag }, { MODE_PORT, "-doubletag", 0, set_port_flag }, { MODE_PORT, "firstlock", 0, set_port_flag }, diff --git a/sys/dev/etherswitch/etherswitch.h b/sys/dev/etherswitch/etherswitch.h index 02bf91cd613c..9d87be03e26d 100644 --- a/sys/dev/etherswitch/etherswitch.h +++ b/sys/dev/etherswitch/etherswitch.h @@ -57,17 +57,18 @@ struct etherswitch_conf { }; typedef struct etherswitch_conf etherswitch_conf_t; -#define ETHERSWITCH_PORT_CPU (1 << 0) -#define ETHERSWITCH_PORT_STRIPTAG (1 << 1) -#define ETHERSWITCH_PORT_ADDTAG (1 << 2) -#define ETHERSWITCH_PORT_FIRSTLOCK (1 << 3) -#define ETHERSWITCH_PORT_DROPUNTAGGED (1 << 4) -#define ETHERSWITCH_PORT_DOUBLE_TAG (1 << 5) -#define ETHERSWITCH_PORT_INGRESS (1 << 6) -#define ETHERSWITCH_PORT_DROPTAGGED (1 << 7) +#define ETHERSWITCH_PORT_CPU (1 << 0) +#define ETHERSWITCH_PORT_STRIPTAG (1 << 1) +#define ETHERSWITCH_PORT_ADDTAG (1 << 2) +#define ETHERSWITCH_PORT_FIRSTLOCK (1 << 3) +#define ETHERSWITCH_PORT_DROPUNTAGGED (1 << 4) +#define ETHERSWITCH_PORT_DOUBLE_TAG (1 << 5) +#define ETHERSWITCH_PORT_INGRESS (1 << 6) +#define ETHERSWITCH_PORT_DROPTAGGED (1 << 7) +#define ETHERSWITCH_PORT_STRIPTAGINGRESS (1 << 8) #define ETHERSWITCH_PORT_FLAGS_BITS \ "\020\1CPUPORT\2STRIPTAG\3ADDTAG\4FIRSTLOCK\5DROPUNTAGGED\6QinQ\7INGRESS" \ -"\10DROPTAGGED" +"\10DROPTAGGED\11STRIPTAGINGRESS" #define ETHERSWITCH_PORT_MAX_LEDS 3