git: fbbcc07976b8 - stable/13 - pfsync: Expose PFSYNCF_OK flag to userspace

Kristof Provost kp at FreeBSD.org
Mon May 10 19:49:54 UTC 2021


The branch stable/13 has been updated by kp:

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

commit fbbcc07976b80907afad51399b09cce1e9ffac35
Author:     Kristof Provost <kp at FreeBSD.org>
AuthorDate: 2021-04-23 12:24:59 +0000
Commit:     Kristof Provost <kp at FreeBSD.org>
CommitDate: 2021-05-10 19:45:57 +0000

    pfsync: Expose PFSYNCF_OK flag to userspace
    
    Add 'syncok' field to ifconfig's pfsync interface output. This allows
    userspace to figure out when pfsync has completed the initial bulk
    import.
    
    Reviewed by:    donner
    MFC after:      2 weeks
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
    Differential Revision:  https://reviews.freebsd.org/D29948
    
    (cherry picked from commit 5f5bf88949df421ec3ccd7e14a999e8d8b9251bf)
---
 sbin/ifconfig/ifpfsync.c   | 5 ++++-
 sys/net/if_pfsync.h        | 2 ++
 sys/netpfil/pf/if_pfsync.c | 5 +----
 3 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/sbin/ifconfig/ifpfsync.c b/sbin/ifconfig/ifpfsync.c
index 6df38c1ac997..60e3d4360aa3 100644
--- a/sbin/ifconfig/ifpfsync.c
+++ b/sbin/ifconfig/ifpfsync.c
@@ -206,7 +206,10 @@ pfsync_status(int s)
 	if (preq.pfsyncr_syncdev[0] != '\0' ||
 	    preq.pfsyncr_syncpeer.s_addr != htonl(INADDR_PFSYNC_GROUP)) {
 		printf("maxupd: %d ", preq.pfsyncr_maxupdates);
-		printf("defer: %s\n", preq.pfsyncr_defer ? "on" : "off");
+		printf("defer: %s\n",
+		    (preq.pfsyncr_defer & PFSYNCF_DEFER) ? "on" : "off");
+		printf("\tsyncok: %d\n",
+		    (preq.pfsyncr_defer & PFSYNCF_OK) ? 1 : 0);
 	}
 }
 
diff --git a/sys/net/if_pfsync.h b/sys/net/if_pfsync.h
index f26a2ae34eed..e0b67ad95fcd 100644
--- a/sys/net/if_pfsync.h
+++ b/sys/net/if_pfsync.h
@@ -236,6 +236,8 @@ struct pfsyncreq {
 	char		 pfsyncr_syncdev[IFNAMSIZ];
 	struct in_addr	 pfsyncr_syncpeer;
 	int		 pfsyncr_maxupdates;
+#define	PFSYNCF_OK		0x00000001
+#define	PFSYNCF_DEFER		0x00000002
 	int		 pfsyncr_defer;
 };
 
diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c
index 06bad556e885..96813fd11dc3 100644
--- a/sys/netpfil/pf/if_pfsync.c
+++ b/sys/netpfil/pf/if_pfsync.c
@@ -215,8 +215,6 @@ struct pfsync_softc {
 	struct ip_moptions	sc_imo;
 	struct in_addr		sc_sync_peer;
 	uint32_t		sc_flags;
-#define	PFSYNCF_OK		0x00000001
-#define	PFSYNCF_DEFER		0x00000002
 	uint8_t			sc_maxupdates;
 	struct ip		sc_template;
 	struct mtx		sc_mtx;
@@ -1375,8 +1373,7 @@ pfsyncioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 		}
 		pfsyncr.pfsyncr_syncpeer = sc->sc_sync_peer;
 		pfsyncr.pfsyncr_maxupdates = sc->sc_maxupdates;
-		pfsyncr.pfsyncr_defer = (PFSYNCF_DEFER ==
-		    (sc->sc_flags & PFSYNCF_DEFER));
+		pfsyncr.pfsyncr_defer = sc->sc_flags;
 		PFSYNC_UNLOCK(sc);
 		return (copyout(&pfsyncr, ifr_data_get_ptr(ifr),
 		    sizeof(pfsyncr)));


More information about the dev-commits-src-all mailing list