From nobody Mon May 19 02:45:12 2025 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4b12942k7Fz5wKYj; Mon, 19 May 2025 02:45:12 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4b129429F8z47fC; Mon, 19 May 2025 02:45:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747622712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2dgZuJrS8S1ROIpQ44CekEv1MzBhERjTkJFRthafdo4=; b=VkZKbwHlaoeQeJPEnomrTtVfbzGqHmrg/wdG6/gC4vAazWnab9xLDgM741RaJGU3Hnpi2l pF88BjdFj0wfijckHAhn4SVAyapXipUJwMto4c//Nn+ZUzIm1qlCR+TWP50J8WItis3wNx 5CBAPnPEXcX0f3sPbuY9/AJGgBAW+rSLRCq3oWgShpYeeAVINEgDzvBNxt39941Ca1b+Xi HHdMoS683U5SjGXNv6JB5TZjby7w6kOomgCjS20dOhPuNyo5XNMkWlentBusg0E7Flv/1/ 6NmaisC9/dQLsdByOHw85SWEdIXHbQDR3ZYuD/d/EIxrc+LHxvvc2QbxlfGNhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1747622712; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2dgZuJrS8S1ROIpQ44CekEv1MzBhERjTkJFRthafdo4=; b=l5zW0YcfKdOEwNAY6Tx+yp8qJreM3GwaQTERonYMBNPU6cz+h7S3zCuQeoH8/Djcv1FGR4 s0NtSEQXToyTsoHG92ZMefSmfSnUzJ1BPwUF0RRru3lwUwHqhEsbc+UcSLmCypWuLqsUoN hzUZO/0ygoo9ySCt7xVVO7NgqqtXDjEmJPs4KAMWlML6P4TKEOj4+cR0Gq1TgvhF4phRNC unaW2sBqjI2gxILYRGmqpTEzbSwqiPjycHv0TD47N7ALsXrstACJBIT/d4rafG9K6awLXX pFIGq9qmB2HkJbiUeeAZKrOGcK1+VL5E9DtD55qNTib2GRZMbHA85L8ZrNWBIA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1747622712; a=rsa-sha256; cv=none; b=hYZrZ31jJGuS6yXMddiKRYkvFLdy3H+J/CN28b/PKI2Kf2gtZ2jfMx9BbEtBh/+JWYtDEY VEU7w1a8iD4owTE0SHwjhb6HO8XpnZ3qR/EL/Jsk1CRmw15IRdJeIdjzG8jqDRtOMIFlAz RmCi4AWMF5eY1BhS1HRPsgWOlEpYqbwKaxdz7VPNCJWZOOXpjFdE5kr8mA1oKqluB+hNgN A4GT9/ChYsWaJB/rtlHFyNSgiINdB2sOiK1H0cX+uHikmhBWgROklXnc6VskeryGsWDtNg dHdbZW50qdHOrp4s+wehRQki1ka3DdmD84XXQQJd3jmvQJoW/ll+h+rtAY80Ng== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4b12941DzrzmCF; Mon, 19 May 2025 02:45:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 54J2jC8Y059550; Mon, 19 May 2025 02:45:12 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 54J2jCJh059547; Mon, 19 May 2025 02:45:12 GMT (envelope-from git) Date: Mon, 19 May 2025 02:45:12 GMT Message-Id: <202505190245.54J2jCJh059547@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Lexi Winter Subject: git: 33597164cd8b - stable/14 - sys/net: add a new ether_vlanid_t type List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ivy X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 33597164cd8b9c28afa44be725e164c660489c03 Auto-Submitted: auto-generated The branch stable/14 has been updated by ivy: URL: https://cgit.FreeBSD.org/src/commit/?id=33597164cd8b9c28afa44be725e164c660489c03 commit 33597164cd8b9c28afa44be725e164c660489c03 Author: Lexi Winter AuthorDate: 2025-04-15 16:13:23 +0000 Commit: Lexi Winter CommitDate: 2025-05-19 02:38:13 +0000 sys/net: add a new ether_vlanid_t type ether_vlanid_t is a type to represent a VLAN ID, for example inside a .1q tag. since this is specific to Ethernet, put it in net/ethernet.h. change bridge to use the new type instead of uint{16,32}_t. Reviewed by: adrian, kp Differential Revision: https://reviews.freebsd.org/D49836 (cherry picked from commit 96f830456fd449c4cb5a7df8a2f6c3c96993b43e) --- sys/net/ethernet.h | 5 +++++ sys/net/if_bridge.c | 28 ++++++++++++++++------------ sys/net/if_bridgevar.h | 2 +- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/sys/net/ethernet.h b/sys/net/ethernet.h index e7313e78c5bb..bb4c241db95a 100644 --- a/sys/net/ethernet.h +++ b/sys/net/ethernet.h @@ -81,6 +81,11 @@ struct ether_addr { (((addr)[0] | (addr)[1] | (addr)[2] | \ (addr)[3] | (addr)[4] | (addr)[5]) == 0x00) +/* + * This is the type of the VLAN ID inside the tag, not the tag itself. + */ +typedef uint16_t ether_vlanid_t; + /* * 802.1q Virtual LAN header. */ diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 79561bc4c9cd..3e562aae9056 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -263,7 +263,7 @@ struct bridge_rtnode { unsigned long brt_expire; /* expiration time */ uint8_t brt_flags; /* address flags */ uint8_t brt_addr[ETHER_ADDR_LEN]; - uint16_t brt_vlan; /* vlan id */ + ether_vlanid_t brt_vlan; /* vlan id */ struct vnet *brt_vnet; struct epoch_context brt_epoch_ctx; }; @@ -339,21 +339,21 @@ static void bridge_broadcast(struct bridge_softc *, struct ifnet *, static void bridge_span(struct bridge_softc *, struct mbuf *); static int bridge_rtupdate(struct bridge_softc *, const uint8_t *, - uint16_t, struct bridge_iflist *, int, uint8_t); + ether_vlanid_t, struct bridge_iflist *, int, uint8_t); static struct ifnet *bridge_rtlookup(struct bridge_softc *, const uint8_t *, - uint16_t); + ether_vlanid_t); static void bridge_rttrim(struct bridge_softc *); static void bridge_rtage(struct bridge_softc *); static void bridge_rtflush(struct bridge_softc *, int); static int bridge_rtdaddr(struct bridge_softc *, const uint8_t *, - uint16_t); + ether_vlanid_t); static void bridge_rtable_init(struct bridge_softc *); static void bridge_rtable_fini(struct bridge_softc *); static int bridge_rtnode_addr_cmp(const uint8_t *, const uint8_t *); static struct bridge_rtnode *bridge_rtnode_lookup(struct bridge_softc *, - const uint8_t *, uint16_t); + const uint8_t *, ether_vlanid_t); static int bridge_rtnode_insert(struct bridge_softc *, struct bridge_rtnode *); static void bridge_rtnode_destroy(struct bridge_softc *, @@ -2177,7 +2177,7 @@ bridge_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *sa, struct ether_header *eh; struct ifnet *bifp, *dst_if; struct bridge_softc *sc; - uint16_t vlan; + ether_vlanid_t vlan; NET_EPOCH_ASSERT(); @@ -2508,7 +2508,7 @@ bridge_input(struct ifnet *ifp, struct mbuf *m) struct ifnet *bifp; struct ether_header *eh; struct mbuf *mc, *mc2; - uint16_t vlan; + ether_vlanid_t vlan; int error; NET_EPOCH_ASSERT(); @@ -2873,8 +2873,9 @@ bridge_span(struct bridge_softc *sc, struct mbuf *m) * Add a bridge routing entry. */ static int -bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, uint16_t vlan, - struct bridge_iflist *bif, int setflags, uint8_t flags) +bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, + ether_vlanid_t vlan, struct bridge_iflist *bif, + int setflags, uint8_t flags) { struct bridge_rtnode *brt; struct bridge_iflist *obif; @@ -2981,7 +2982,8 @@ bridge_rtupdate(struct bridge_softc *sc, const uint8_t *dst, uint16_t vlan, * Lookup the destination interface for an address. */ static struct ifnet * -bridge_rtlookup(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtlookup(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; @@ -3092,7 +3094,8 @@ bridge_rtflush(struct bridge_softc *sc, int full) * Remove an address from the table. */ static int -bridge_rtdaddr(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtdaddr(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; int found = 0; @@ -3221,7 +3224,8 @@ bridge_rtnode_addr_cmp(const uint8_t *a, const uint8_t *b) * vlan id or if zero then just return the first match. */ static struct bridge_rtnode * -bridge_rtnode_lookup(struct bridge_softc *sc, const uint8_t *addr, uint16_t vlan) +bridge_rtnode_lookup(struct bridge_softc *sc, const uint8_t *addr, + ether_vlanid_t vlan) { struct bridge_rtnode *brt; uint32_t hash; diff --git a/sys/net/if_bridgevar.h b/sys/net/if_bridgevar.h index 01ac96e8d5b0..27815cd37c83 100644 --- a/sys/net/if_bridgevar.h +++ b/sys/net/if_bridgevar.h @@ -185,7 +185,7 @@ struct ifbareq { unsigned long ifba_expire; /* address expire time */ uint8_t ifba_flags; /* address flags */ uint8_t ifba_dst[ETHER_ADDR_LEN];/* destination address */ - uint16_t ifba_vlan; /* vlan id */ + ether_vlanid_t ifba_vlan; /* vlan id */ }; #define IFBAF_TYPEMASK 0x03 /* address type mask */