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

Reply via email to