From nobody Thu Oct 19 16:19:27 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 4SBCbf1VgQz4xccD for ; Thu, 19 Oct 2023 16:19:42 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Received: from mail-lj1-f169.google.com (mail-lj1-f169.google.com [209.85.208.169]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4SBCbd5BK0z3Fqt for ; Thu, 19 Oct 2023 16:19:41 +0000 (UTC) (envelope-from jrtc27@jrtc27.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lj1-f169.google.com with SMTP id 38308e7fff4ca-2c5039d4e88so105423351fa.3 for ; Thu, 19 Oct 2023 09:19:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697732379; x=1698337179; h=to:references:message-id:content-transfer-encoding:cc:date :in-reply-to:from:subject:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xgdtjIni3YroBbwgFhLV2Ql8IZk3AaaGa5qlATtt2tE=; b=qHdqVqnmPFpgP2CS4QG5x83HZk9IBHZEM3MYAhAhTKrUUVB+mP8tRHB69H7exlrGSX JYQxbUwA2yXg+8AN/LTI9HwaW9aK9wP8hK1j/92zGXveyGFyErBcOmOSeL5BpTLC96Ws rB9nKhgQq1/8ooT9S4wXAgyK5M6Ur9fxeYMn01ypNYtttx8fKsRy9qkLSiiMkBVaHNZu nWPPawgMidnO+JCwt8ugUeanTAB7kbW4yYXikdZQV4UPSTxUcrhtrsL+hxGo6LC4yfdi nmB8C9nq5oLrYCV1sRwn6sJhcihnADbiZoowJs1GL4FoAkeLoBgW6UFJEFj65AnuJ5pz s7sA== X-Gm-Message-State: AOJu0Yx63bqSflH3UY7CnvJvAOp3bLL9O5dSP03OGKp+c7AMHpROD43k QW86J5PH9PMNpzak1YdGuwH6MA== X-Google-Smtp-Source: AGHT+IHkUJNNsBJpLF2imfYWUNQK9WlTms4YADWd/oOLkQvQrLhk3elx039QGCltETAIrIA39Aqt0Q== X-Received: by 2002:a05:6512:314a:b0:503:8fa:da21 with SMTP id s10-20020a056512314a00b0050308fada21mr1876753lfi.43.1697732378874; Thu, 19 Oct 2023 09:19:38 -0700 (PDT) Received: from smtpclient.apple ([131.111.5.246]) by smtp.gmail.com with ESMTPSA id q12-20020a05600c2e4c00b0040648217f4fsm4716517wmf.39.2023.10.19.09.19.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 19 Oct 2023 09:19:38 -0700 (PDT) Content-Type: text/plain; charset=utf-8 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 (Mac OS X Mail 16.0 \(3774.100.2.1.4\)) Subject: Re: git: fabf705f4b5a - main - pf: fix pf divert-to loop From: Jessica Clarke In-Reply-To: Date: Thu, 19 Oct 2023 17:19:27 +0100 Cc: Kristof Provost , Igor Ostapenko , src-committers , dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: <6BB48213-2480-40B5-8698-058B4ED71304@freebsd.org> References: <202310191237.39JCbdXp094554@gitrepo.freebsd.org> To: Gleb Smirnoff X-Mailer: Apple Mail (2.3774.100.2.1.4) 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:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Queue-Id: 4SBCbd5BK0z3Fqt On 19 Oct 2023, at 17:14, Gleb Smirnoff wrote: >=20 > On Thu, Oct 19, 2023 at 12:37:39PM +0000, Kristof Provost wrote: > K> +++ b/sys/netinet/ip_var.h > ... > K> +/* pf specific mtag for divert(4) support */ > K> +enum { PF_DIVERT_MTAG_DIR_IN=3D1, PF_DIVERT_MTAG_DIR_OUT=3D2 }; > 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> +}; >=20 > This can be written as: >=20 > typedef enum { > PF_DIVERT_MTAG_DIR_IN =3D 1, > PF_DIVERT_MTAG_DIR_OUT =3D 2, > } pf_mtag_dir; You don=E2=80=99t need the typedef, whether you use it or not is a = matter of taste. > struct pf_divert_mtag { > pf_mtag_dir idir; /* Initial packet direction. */ > union { > pf_mtag_dir ndir; /* New direction after re-enter. = */ > uint16_t port; /* Initial divert(4) port. */ > }; > }; >=20 > The benefit is that in the debugger you will see PF_DIVERT_MTAG_DIR_IN = instead > of 1 when looking at a structure. And compilation time failure if = anybody sets > it to a wrong value. Using "port" instead of "ndir" when assigning a = port > improves readability of code. >=20 > This will grow structure from 4 bytes to 8, as enum is always an int. = However, > uma allocator backing m_tag_alloc() will allocate same amount of = memory. We have __enum_uint8(_decl) these days, one could easily add a 16-bit = variant. Jess