aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2023-09-04 16:00:08 +0000
committerKristof Provost <kp@FreeBSD.org>2023-09-07 17:05:01 +0000
commitf1cc29af84475b800df5eb94ff7d5b9484ddbdac (patch)
tree3d62e61ef5854467ce710ddc791dc14ce7a68d56
parent51a78dd2764beabfd19a58b8a8b04387a547f02e (diff)
downloadsrc-f1cc29af84475b800df5eb94ff7d5b9484ddbdac.tar.gz
src-f1cc29af84475b800df5eb94ff7d5b9484ddbdac.zip
pf: inherit v_tag values to multihomed connections
When we create a new state for an existing SCTP association inherit the v_tag values from the original connection. MFC after: 3 weeks Sponsored by: Orange Business Services
-rw-r--r--sys/netpfil/pf/pf.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index c24d4dfce742..5667cb422bbb 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -5947,8 +5947,12 @@ pf_sctp_multihome_delayed(struct pf_pdesc *pd, int off, struct pfi_kkif *kif,
j->m, off, &j->pd, &ra, &rs, NULL);
PF_RULES_RUNLOCK();
SDT_PROBE4(pf, sctp, multihome, test, kif, r, j->m, action);
- if (sm)
+ if (sm) {
+ /* Inherit v_tag values. */
+ sm->src.scrub->pfss_v_tag = s->src.scrub->pfss_flags;
+ sm->dst.scrub->pfss_v_tag = s->dst.scrub->pfss_flags;
PF_STATE_UNLOCK(sm);
+ }
free(j, M_PFTEMP);
}