From nobody Thu Oct 19 20:34:06 2023 X-Original-To: dev-commits-src-all@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 4SBKFD71zTz4xrPW; Thu, 19 Oct 2023 20:34:08 +0000 (UTC) (envelope-from glebius@freebsd.org) Received: from glebi.us (glebi.us [162.251.186.162]) by mx1.freebsd.org (Postfix) with ESMTP id 4SBKFD4zyRz4HDk; Thu, 19 Oct 2023 20:34:08 +0000 (UTC) (envelope-from glebius@freebsd.org) Authentication-Results: mx1.freebsd.org; none Received: by glebi.us (Postfix, from userid 1000) id EC3FB5B05E; Thu, 19 Oct 2023 13:34:06 -0700 (PDT) Date: Thu, 19 Oct 2023 13:34:06 -0700 From: Gleb Smirnoff To: Kristof Provost Cc: Igor Ostapenko , src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: fabf705f4b5a - main - pf: fix pf divert-to loop Message-ID: References: <202310191237.39JCbdXp094554@gitrepo.freebsd.org> <86D6E74C-3062-4718-816E-07CBA4F2903F@FreeBSD.org> List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <86D6E74C-3062-4718-816E-07CBA4F2903F@FreeBSD.org> X-Spamd-Bar: ---- X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:27348, ipnet:162.251.186.0/24, country:US] X-Rspamd-Queue-Id: 4SBKFD4zyRz4HDk On Thu, Oct 19, 2023 at 10:03:02PM +0200, Kristof Provost wrote: K> Something like this? ... K> --- a/sys/netinet/ip_var.h K> +++ b/sys/netinet/ip_var.h K> @@ -328,11 +328,17 @@ extern int (*ip_dn_ctl_ptr)(struct sockopt K> *); K> extern int (*ip_dn_io_ptr)(struct mbuf **, struct ip_fw_args *); K> K> /* pf specific mtag for divert(4) support */ K> -enum { PF_DIVERT_MTAG_DIR_IN=1, PF_DIVERT_MTAG_DIR_OUT=2 }; K> +__enum_uint8_decl(pf_mtag_dir) { K> + PF_DIVERT_MTAG_DIR_IN = 1, K> + PF_DIVERT_MTAG_DIR_OUT = 2 K> +}; K> struct pf_divert_mtag { K> uint16_t idir; // initial pkt direction K> - uint16_t ndir; // a) divert(4) port upon initial diversion K> - // b) new direction upon pkt re-enter K> + union { K> + __enum_uint8(pf_mtag_dir) ndir; // a) divert(4) port upon K> initial diversion K> + // b) new direction upon pkt re-enter K> + uint16_t port; /* Initial divert(4) port */ K> + }; K> }; idir should also be __enum_uint8(pf_mtag_dir) or a typedefed type for brevity. -- Gleb Smirnoff