Module Name: src Committed By: martin Date: Mon Oct 2 12:58:51 UTC 2023
Modified Files: src/sys/net [netbsd-10]: if_ipsec.c src/sys/netipsec [netbsd-10]: key.c src/tests/net/if_ipsec [netbsd-10]: t_ipsec_unnumbered.sh Log Message: Pull up following revision(s) (requested by knakahara in ticket #378): tests/net/if_ipsec/t_ipsec_unnumbered.sh: revision 1.2 sys/net/if_ipsec.c: revision 1.35 sys/netipsec/key.c: revision 1.281 Use kmem_free instead of kmem_intr_free, as key_freesaval() is not called in softint after key.c:r1.223. E.g. key_freesaval() was called the following call path before SAD MP-ify. esp_input_cb() KEY_FREESAV() key_freesav() key_delsav() key_freesaval() ok'ed by ozaki-r@n.o. Use unit id instead of if_index to reduce fixed_reqid space. Update for sys/net/if_ipsec.c:r1.35 To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.34.2.1 src/sys/net/if_ipsec.c cvs rdiff -u -r1.280 -r1.280.2.1 src/sys/netipsec/key.c cvs rdiff -u -r1.1 -r1.1.2.1 src/tests/net/if_ipsec/t_ipsec_unnumbered.sh Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/net/if_ipsec.c diff -u src/sys/net/if_ipsec.c:1.34 src/sys/net/if_ipsec.c:1.34.2.1 --- src/sys/net/if_ipsec.c:1.34 Tue Oct 11 09:51:47 2022 +++ src/sys/net/if_ipsec.c Mon Oct 2 12:58:51 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: if_ipsec.c,v 1.34 2022/10/11 09:51:47 knakahara Exp $ */ +/* $NetBSD: if_ipsec.c,v 1.34.2.1 2023/10/02 12:58:51 martin Exp $ */ /* * Copyright (c) 2017 Internet Initiative Japan Inc. @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_ipsec.c,v 1.34 2022/10/11 09:51:47 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_ipsec.c,v 1.34.2.1 2023/10/02 12:58:51 martin Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1798,9 +1798,10 @@ if_ipsec_get_reqids(struct ipsec_variant mutex_enter(&ipsec_softcs.lock); if (ipsec_softcs.use_fixed_reqid) { - uint32_t reqid_base; + uint32_t unit, reqid_base; - reqid_base = ipsec_softcs.reqid_base + ifp->if_index * 2; + unit = strtoul(ifp->if_xname + sizeof("ipsec") - 1, NULL, 10); + reqid_base = ipsec_softcs.reqid_base + unit * 2; if (reqid_base + 1 > ipsec_softcs.reqid_last) { log(LOG_ERR, "%s: invalid fixed reqid(%"PRIu32"), " Index: src/sys/netipsec/key.c diff -u src/sys/netipsec/key.c:1.280 src/sys/netipsec/key.c:1.280.2.1 --- src/sys/netipsec/key.c:1.280 Thu Dec 8 08:07:07 2022 +++ src/sys/netipsec/key.c Mon Oct 2 12:58:51 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: key.c,v 1.280 2022/12/08 08:07:07 knakahara Exp $ */ +/* $NetBSD: key.c,v 1.280.2.1 2023/10/02 12:58:51 martin Exp $ */ /* $FreeBSD: key.c,v 1.3.2.3 2004/02/14 22:23:23 bms Exp $ */ /* $KAME: key.c,v 1.191 2001/06/27 10:46:49 sakane Exp $ */ @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.280 2022/12/08 08:07:07 knakahara Exp $"); +__KERNEL_RCSID(0, "$NetBSD: key.c,v 1.280.2.1 2023/10/02 12:58:51 martin Exp $"); /* * This code is referred to RFC 2367 @@ -3589,21 +3589,21 @@ key_freesaval(struct secasvar *sav) key_sa_refcnt(sav)); if (sav->replay != NULL) - kmem_intr_free(sav->replay, sav->replay_len); + kmem_free(sav->replay, sav->replay_len); if (sav->key_auth != NULL) - kmem_intr_free(sav->key_auth, sav->key_auth_len); + kmem_free(sav->key_auth, sav->key_auth_len); if (sav->key_enc != NULL) - kmem_intr_free(sav->key_enc, sav->key_enc_len); + kmem_free(sav->key_enc, sav->key_enc_len); if (sav->lft_c_counters_percpu != NULL) { percpu_free(sav->lft_c_counters_percpu, sizeof(lifetime_counters_t)); } if (sav->lft_c != NULL) - kmem_intr_free(sav->lft_c, sizeof(*(sav->lft_c))); + kmem_free(sav->lft_c, sizeof(*(sav->lft_c))); if (sav->lft_h != NULL) - kmem_intr_free(sav->lft_h, sizeof(*(sav->lft_h))); + kmem_free(sav->lft_h, sizeof(*(sav->lft_h))); if (sav->lft_s != NULL) - kmem_intr_free(sav->lft_s, sizeof(*(sav->lft_s))); + kmem_free(sav->lft_s, sizeof(*(sav->lft_s))); } /* Index: src/tests/net/if_ipsec/t_ipsec_unnumbered.sh diff -u src/tests/net/if_ipsec/t_ipsec_unnumbered.sh:1.1 src/tests/net/if_ipsec/t_ipsec_unnumbered.sh:1.1.2.1 --- src/tests/net/if_ipsec/t_ipsec_unnumbered.sh:1.1 Fri Nov 25 08:43:16 2022 +++ src/tests/net/if_ipsec/t_ipsec_unnumbered.sh Mon Oct 2 12:58:50 2023 @@ -1,4 +1,4 @@ -# $NetBSD: t_ipsec_unnumbered.sh,v 1.1 2022/11/25 08:43:16 knakahara Exp $ +# $NetBSD: t_ipsec_unnumbered.sh,v 1.1.2.1 2023/10/02 12:58:50 martin Exp $ # # Copyright (c) 2022 Internet Initiative Japan Inc. # All rights reserved. @@ -73,7 +73,7 @@ add_sa() local tmpfile=./tmp local spi=10000 local algo_args="$(generate_algo_args esp $algo)" - local uniq=8200 # 8192(reqid_base) + 2 * 4(lo0, shmif0, shmif1 and ipsec0) + local uniq=8192 # 8192(reqid_base) + 2 * 0(unit id of "ipsec0") export RUMP_SERVER=$SOCK_LOCAL cat > $tmpfile <<-EOF