The branch main has been updated by kp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=005e24b7a546b1c3c37e7cb7df95a3f9679e2d9a

commit 005e24b7a546b1c3c37e7cb7df95a3f9679e2d9a
Author:     Kristof Provost <k...@freebsd.org>
AuthorDate: 2025-08-05 12:46:32 +0000
Commit:     Kristof Provost <k...@freebsd.org>
CommitDate: 2025-08-20 08:08:46 +0000

    pf: remove duplicate struct definition
    
    pfsync_state_peer and pf_state_peer_export are identical struct defintions. 
Make
    all users of pfsync_state_peer use pf_state_peer_export instead, and remove 
the
    pfsync_state_peer definition.
    
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
---
 contrib/tcpdump/print-pfsync.c | 12 ++++++------
 sys/net/if_pfsync.h            |  4 ++--
 sys/net/pfvar.h                | 36 ++++++++----------------------------
 sys/netpfil/pf/if_pfsync.c     | 12 ++++++------
 sys/netpfil/pf/pf_nl.c         |  2 +-
 5 files changed, 23 insertions(+), 43 deletions(-)

diff --git a/contrib/tcpdump/print-pfsync.c b/contrib/tcpdump/print-pfsync.c
index 6bf9abaf3903..e4f11930816c 100644
--- a/contrib/tcpdump/print-pfsync.c
+++ b/contrib/tcpdump/print-pfsync.c
@@ -53,8 +53,8 @@
 static void    pfsync_print(netdissect_options *, struct pfsync_header *,
                    const u_char *, u_int);
 static void    print_src_dst(netdissect_options *,
-                   const struct pfsync_state_peer *,
-                   const struct pfsync_state_peer *, uint8_t);
+                   const struct pf_state_peer_export *,
+                   const struct pf_state_peer_export *, uint8_t);
 static void    print_state(netdissect_options *, union pfsync_state_union *, 
int);
 
 void
@@ -330,7 +330,7 @@ print_host(netdissect_options *ndo, struct pf_addr *addr, 
uint16_t port,
 }
 
 static void
-print_seq(netdissect_options *ndo, const struct pfsync_state_peer *p)
+print_seq(netdissect_options *ndo, const struct pf_state_peer_export *p)
 {
        if (p->seqdiff)
                ND_PRINT("[%u + %u](+%u)", ntohl(p->seqlo),
@@ -341,8 +341,8 @@ print_seq(netdissect_options *ndo, const struct 
pfsync_state_peer *p)
 }
 
 static void
-print_src_dst(netdissect_options *ndo, const struct pfsync_state_peer *src,
-    const struct pfsync_state_peer *dst, uint8_t proto)
+print_src_dst(netdissect_options *ndo, const struct pf_state_peer_export *src,
+    const struct pf_state_peer_export *dst, uint8_t proto)
 {
 
        if (proto == IPPROTO_TCP) {
@@ -390,7 +390,7 @@ print_src_dst(netdissect_options *ndo, const struct 
pfsync_state_peer *src,
 static void
 print_state(netdissect_options *ndo, union pfsync_state_union *s, int version)
 {
-       struct pfsync_state_peer *src, *dst;
+       struct pf_state_peer_export *src, *dst;
        struct pfsync_state_key *sk, *nk;
        int min, sec;
 
diff --git a/sys/net/if_pfsync.h b/sys/net/if_pfsync.h
index 1efc220aa8e1..e99df0b85ccf 100644
--- a/sys/net/if_pfsync.h
+++ b/sys/net/if_pfsync.h
@@ -160,8 +160,8 @@ struct pfsync_ins_ack {
 
 struct pfsync_upd_c {
        u_int64_t                       id;
-       struct pfsync_state_peer        src;
-       struct pfsync_state_peer        dst;
+       struct pf_state_peer_export     src;
+       struct pf_state_peer_export     dst;
        u_int32_t                       creatorid;
        u_int32_t                       expire;
        u_int8_t                        timeout;
diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h
index c397f0b67896..fe12df0f7dc8 100644
--- a/sys/net/pfvar.h
+++ b/sys/net/pfvar.h
@@ -1020,7 +1020,7 @@ struct pf_state_scrub_export {
 #define PF_SCRUB_FLAG_VALID            0x01
        uint8_t         scrub_flag;
        uint32_t        pfss_ts_mod;    /* timestamp modulation */
-};
+} __packed;
 
 struct pf_state_key_export {
        struct pf_addr   addr[2];
@@ -1037,7 +1037,7 @@ struct pf_state_peer_export {
        uint8_t         state;          /* active state level           */
        uint8_t         wscale;         /* window scaling factor        */
        uint8_t         dummy[6];
-};
+} __packed;
 _Static_assert(sizeof(struct pf_state_peer_export) == 32, "size incorrect");
 
 struct pf_state_export {
@@ -1179,26 +1179,6 @@ struct pf_test_ctx {
  * Unified state structures for pulling states out of the kernel
  * used by pfsync(4) and the pf(4) ioctl.
  */
-struct pfsync_state_scrub {
-       u_int16_t       pfss_flags;
-       u_int8_t        pfss_ttl;       /* stashed TTL          */
-#define PFSYNC_SCRUB_FLAG_VALID                0x01
-       u_int8_t        scrub_flag;
-       u_int32_t       pfss_ts_mod;    /* timestamp modulation */
-} __packed;
-
-struct pfsync_state_peer {
-       struct pfsync_state_scrub scrub;        /* state is scrubbed    */
-       u_int32_t       seqlo;          /* Max sequence number sent     */
-       u_int32_t       seqhi;          /* Max the other end ACKd + win */
-       u_int32_t       seqdiff;        /* Sequence number modulator    */
-       u_int16_t       max_win;        /* largest window (pre scaling) */
-       u_int16_t       mss;            /* Maximum segment size option  */
-       u_int8_t        state;          /* active state level           */
-       u_int8_t        wscale;         /* window scaling factor        */
-       u_int8_t        pad[6];
-} __packed;
-
 struct pfsync_state_key {
        struct pf_addr   addr[2];
        u_int16_t        port[2];
@@ -1208,8 +1188,8 @@ struct pfsync_state_1301 {
        u_int64_t        id;
        char             ifname[IFNAMSIZ];
        struct pfsync_state_key key[2];
-       struct pfsync_state_peer src;
-       struct pfsync_state_peer dst;
+       struct pf_state_peer_export src;
+       struct pf_state_peer_export dst;
        struct pf_addr   rt_addr;
        u_int32_t        rule;
        u_int32_t        anchor;
@@ -1235,8 +1215,8 @@ struct pfsync_state_1400 {
        u_int64_t        id;
        char             ifname[IFNAMSIZ];
        struct pfsync_state_key key[2];
-       struct pfsync_state_peer src;
-       struct pfsync_state_peer dst;
+       struct pf_state_peer_export src;
+       struct pf_state_peer_export dst;
        struct pf_addr   rt_addr;
        u_int32_t        rule;
        u_int32_t        anchor;
@@ -1336,7 +1316,7 @@ extern pflog_packet_t             *pflog_packet_ptr;
                    htons((s)->scrub->pfss_flags & PFSS_TIMESTAMP);     \
                (d)->scrub.pfss_ttl = (s)->scrub->pfss_ttl;             \
                (d)->scrub.pfss_ts_mod = htonl((s)->scrub->pfss_ts_mod);\
-               (d)->scrub.scrub_flag = PFSYNC_SCRUB_FLAG_VALID;        \
+               (d)->scrub.scrub_flag = PF_SCRUB_FLAG_VALID;            \
        }                                                               \
 } while (0)
 
@@ -1348,7 +1328,7 @@ extern pflog_packet_t             *pflog_packet_ptr;
        (d)->mss = ntohs((s)->mss);             \
        (d)->state = (s)->state;                \
        (d)->wscale = (s)->wscale;              \
-       if ((s)->scrub.scrub_flag == PFSYNC_SCRUB_FLAG_VALID &&         \
+       if ((s)->scrub.scrub_flag == PF_SCRUB_FLAG_VALID &&             \
            (d)->scrub != NULL) {                                       \
                (d)->scrub->pfss_flags =                                \
                    ntohs((s)->scrub.pfss_flags) & PFSS_TIMESTAMP;      \
diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c
index e34c08c8c4db..585c196391c0 100644
--- a/sys/netpfil/pf/if_pfsync.c
+++ b/sys/netpfil/pf/if_pfsync.c
@@ -123,8 +123,8 @@ union inet_template {
        sizeof(struct pfsync_header) + \
        sizeof(struct pfsync_subheader) )
 
-static int     pfsync_upd_tcp(struct pf_kstate *, struct pfsync_state_peer *,
-                   struct pfsync_state_peer *);
+static int     pfsync_upd_tcp(struct pf_kstate *, struct pf_state_peer_export 
*,
+                   struct pf_state_peer_export *);
 static int     pfsync_in_clr(struct mbuf *, int, int, int, int);
 static int     pfsync_in_ins(struct mbuf *, int, int, int, int);
 static int     pfsync_in_iack(struct mbuf *, int, int, int, int);
@@ -330,7 +330,7 @@ SYSCTL_UINT(_net_pfsync, OID_AUTO, defer_delay, 
CTLFLAG_VNET | CTLFLAG_RW,
 
 static int     pfsync_clone_create(struct if_clone *, int, caddr_t);
 static void    pfsync_clone_destroy(struct ifnet *);
-static int     pfsync_alloc_scrub_memory(struct pfsync_state_peer *,
+static int     pfsync_alloc_scrub_memory(struct pf_state_peer_export *,
                    struct pf_state_peer *);
 static int     pfsyncoutput(struct ifnet *, struct mbuf *,
                    const struct sockaddr *, struct route *);
@@ -502,7 +502,7 @@ pfsync_clone_destroy(struct ifnet *ifp)
 }
 
 static int
-pfsync_alloc_scrub_memory(struct pfsync_state_peer *s,
+pfsync_alloc_scrub_memory(struct pf_state_peer_export *s,
     struct pf_state_peer *d)
 {
        if (s->scrub.scrub_flag && d->scrub == NULL) {
@@ -1172,8 +1172,8 @@ pfsync_in_iack(struct mbuf *m, int offset, int count, int 
flags, int action)
 }
 
 static int
-pfsync_upd_tcp(struct pf_kstate *st, struct pfsync_state_peer *src,
-    struct pfsync_state_peer *dst)
+pfsync_upd_tcp(struct pf_kstate *st, struct pf_state_peer_export *src,
+    struct pf_state_peer_export *dst)
 {
        int sync = 0;
 
diff --git a/sys/netpfil/pf/pf_nl.c b/sys/netpfil/pf/pf_nl.c
index 09754359ec2d..45b5b8dd5fef 100644
--- a/sys/netpfil/pf/pf_nl.c
+++ b/sys/netpfil/pf/pf_nl.c
@@ -118,7 +118,7 @@ dump_state_peer(struct nl_writer *nw, int attr, const 
struct pf_state_peer *peer
                nlattr_add_u16(nw, PF_STP_PFSS_FLAGS, pfss_flags);
                nlattr_add_u32(nw, PF_STP_PFSS_TS_MOD, sc->pfss_ts_mod);
                nlattr_add_u8(nw, PF_STP_PFSS_TTL, sc->pfss_ttl);
-               nlattr_add_u8(nw, PF_STP_SCRUB_FLAG, PFSYNC_SCRUB_FLAG_VALID);
+               nlattr_add_u8(nw, PF_STP_SCRUB_FLAG, PF_SCRUB_FLAG_VALID);
        }
        nlattr_set_len(nw, off);
 

Reply via email to