git: cdc231bd4949 - main - pfsync: Remove deletion of states using the full pfsync_state struct
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 17 May 2023 02:40:49 UTC
The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=cdc231bd49498481801686913872c361dbc01f95 commit cdc231bd49498481801686913872c361dbc01f95 Author: Kajetan Staszkiewicz <vegeta@tuxpowered.net> AuthorDate: 2023-05-15 19:43:06 +0000 Commit: Kristof Provost <kp@FreeBSD.org> CommitDate: 2023-05-17 00:39:58 +0000 pfsync: Remove deletion of states using the full pfsync_state struct State deletions are sent over pfsync using struct pfsync_del_c. Remove the code for receiving state deletions using struct pfsync_state as such deletions are never sent. Rename functions and constants so that only the "compressed" versions remain. Reviewed by: kp Sponsored by: InnoGames GmbH Differential Revision: https://reviews.freebsd.org/D40004 --- sys/net/if_pfsync.h | 2 +- sys/netpfil/pf/if_pfsync.c | 44 ++++++-------------------------------------- 2 files changed, 7 insertions(+), 39 deletions(-) diff --git a/sys/net/if_pfsync.h b/sys/net/if_pfsync.h index bee247cd0a84..a13e26fd3bdf 100644 --- a/sys/net/if_pfsync.h +++ b/sys/net/if_pfsync.h @@ -274,7 +274,7 @@ struct pfsyncioc_nv { #define PFSYNC_S_IACK 0x01 #define PFSYNC_S_UPD 0x02 #define PFSYNC_S_UPD_C 0x03 -#define PFSYNC_S_DEL 0x04 +#define PFSYNC_S_DEL_C 0x04 #define PFSYNC_S_COUNT 0x05 #define PFSYNC_S_DEFER 0xfe diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c index a7924d822eee..f53479283ecd 100644 --- a/sys/netpfil/pf/if_pfsync.c +++ b/sys/netpfil/pf/if_pfsync.c @@ -128,7 +128,6 @@ static int pfsync_in_iack(struct mbuf *, int, int, int); static int pfsync_in_upd(struct mbuf *, int, int, int); static int pfsync_in_upd_c(struct mbuf *, int, int, int); static int pfsync_in_ureq(struct mbuf *, int, int, int); -static int pfsync_in_del(struct mbuf *, int, int, int); static int pfsync_in_del_c(struct mbuf *, int, int, int); static int pfsync_in_bus(struct mbuf *, int, int, int); static int pfsync_in_tdb(struct mbuf *, int, int, int); @@ -142,7 +141,7 @@ static int (*pfsync_acts[])(struct mbuf *, int, int, int) = { pfsync_in_upd, /* PFSYNC_ACT_UPD */ pfsync_in_upd_c, /* PFSYNC_ACT_UPD_C */ pfsync_in_ureq, /* PFSYNC_ACT_UPD_REQ */ - pfsync_in_del, /* PFSYNC_ACT_DEL */ + pfsync_in_error, /* PFSYNC_ACT_DEL */ pfsync_in_del_c, /* PFSYNC_ACT_DEL_C */ pfsync_in_error, /* PFSYNC_ACT_INS_F */ pfsync_in_error, /* PFSYNC_ACT_DEL_F */ @@ -161,14 +160,14 @@ struct pfsync_q { static void pfsync_out_state(struct pf_kstate *, void *); static void pfsync_out_iack(struct pf_kstate *, void *); static void pfsync_out_upd_c(struct pf_kstate *, void *); -static void pfsync_out_del(struct pf_kstate *, void *); +static void pfsync_out_del_c(struct pf_kstate *, void *); static struct pfsync_q pfsync_qs[] = { { pfsync_out_state, sizeof(struct pfsync_state), PFSYNC_ACT_INS }, { pfsync_out_iack, sizeof(struct pfsync_ins_ack), PFSYNC_ACT_INS_ACK }, { pfsync_out_state, sizeof(struct pfsync_state), PFSYNC_ACT_UPD }, { pfsync_out_upd_c, sizeof(struct pfsync_upd_c), PFSYNC_ACT_UPD_C }, - { pfsync_out_del, sizeof(struct pfsync_del_c), PFSYNC_ACT_DEL_C } + { pfsync_out_del_c, sizeof(struct pfsync_del_c), PFSYNC_ACT_DEL_C } }; static void pfsync_q_ins(struct pf_kstate *, int, bool); @@ -1127,37 +1126,6 @@ pfsync_in_ureq(struct mbuf *m, int offset, int count, int flags) return (len); } -static int -pfsync_in_del(struct mbuf *m, int offset, int count, int flags) -{ - struct mbuf *mp; - struct pfsync_state *sa, *sp; - struct pf_kstate *st; - int len = count * sizeof(*sp); - int offp, i; - - mp = m_pulldown(m, offset, len, &offp); - if (mp == NULL) { - V_pfsyncstats.pfsyncs_badlen++; - return (-1); - } - sa = (struct pfsync_state *)(mp->m_data + offp); - - for (i = 0; i < count; i++) { - sp = &sa[i]; - - st = pf_find_state_byid(sp->id, sp->creatorid); - if (st == NULL) { - V_pfsyncstats.pfsyncs_badstate++; - continue; - } - st->state_flags |= PFSTATE_NOSYNC; - pf_unlink_state(st); - } - - return (len); -} - static int pfsync_in_del_c(struct mbuf *m, int offset, int count, int flags) { @@ -1526,7 +1494,7 @@ pfsync_out_upd_c(struct pf_kstate *st, void *buf) } static void -pfsync_out_del(struct pf_kstate *st, void *buf) +pfsync_out_del_c(struct pf_kstate *st, void *buf) { struct pfsync_del_c *dp = buf; @@ -2039,7 +2007,7 @@ pfsync_update_state_req(struct pf_kstate *st) case PFSYNC_S_INS: case PFSYNC_S_UPD: - case PFSYNC_S_DEL: + case PFSYNC_S_DEL_C: /* we're already handling it */ break; @@ -2089,7 +2057,7 @@ pfsync_delete_state(struct pf_kstate *st) /* FALLTHROUGH */ case PFSYNC_S_NONE: - pfsync_q_ins(st, PFSYNC_S_DEL, ref); + pfsync_q_ins(st, PFSYNC_S_DEL_C, ref); break; default: