diff options
author | Kristof Provost <kp@FreeBSD.org> | 2023-09-04 16:00:08 +0000 |
---|---|---|
committer | Kristof Provost <kp@FreeBSD.org> | 2023-09-07 17:05:01 +0000 |
commit | f1cc29af84475b800df5eb94ff7d5b9484ddbdac (patch) | |
tree | 3d62e61ef5854467ce710ddc791dc14ce7a68d56 | |
parent | 51a78dd2764beabfd19a58b8a8b04387a547f02e (diff) | |
download | src-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.c | 6 |
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); } |