]> git.ipfire.org Git - thirdparty/strongswan.git/log
thirdparty/strongswan.git
3 days agoandroid: Remove redundant namespace and fix indentation in state fragment layout android-updates
Tobias Brunner [Mon, 4 Aug 2025 13:44:16 +0000 (15:44 +0200)] 
android: Remove redundant namespace and fix indentation in state fragment layout

3 days agoandroid: Use correct title for proxy server port field in managed configs
Tobias Brunner [Mon, 4 Aug 2025 13:42:21 +0000 (15:42 +0200)] 
android: Use correct title for proxy server port field in managed configs

3 days agoandroid: Simplify theme definition due to minSdkVersion
Tobias Brunner [Mon, 4 Aug 2025 13:39:10 +0000 (15:39 +0200)] 
android: Simplify theme definition due to minSdkVersion

3 days agoandroid: Remove obsolete TargetApi attribute
Tobias Brunner [Mon, 4 Aug 2025 13:38:26 +0000 (15:38 +0200)] 
android: Remove obsolete TargetApi attribute

3 days agoandroid: Update syntax for three values Gradle warns about
Tobias Brunner [Mon, 4 Aug 2025 13:18:02 +0000 (15:18 +0200)] 
android: Update syntax for three values Gradle warns about

Others seem to be fine or even get an explicit error if changed, like
targetSdkVersion.

3 days agoandroid: Increase targetSdkVersion to 36 (Android 16)
Tobias Brunner [Mon, 4 Aug 2025 12:50:25 +0000 (14:50 +0200)] 
android: Increase targetSdkVersion to 36 (Android 16)

3 days agoandroid: Update NDK version
Tobias Brunner [Mon, 4 Aug 2025 12:50:13 +0000 (14:50 +0200)] 
android: Update NDK version

3 days agoandroid: Apply UI changes for edge-to-edge views in Android 15+
Tobias Brunner [Mon, 4 Aug 2025 12:35:11 +0000 (14:35 +0200)] 
android: Apply UI changes for edge-to-edge views in Android 15+

When targeting Android 15, edge-to-edge is the default and when targeting
Android 16, apps can't opt-out from this anymore.  So we update our views
and enable edge-to-edge also for older versions (avoids the black bar
behind the system UI at the bottom).  For most views we just use automatic
margins via android:fitsSystemWindows (or programmatically via
setDecorFitsSystemWindows).  However, for the profile lists and log views,
we take some extra measures that allow the lists to go behind the bottom
system UI.  Appropriate padding is applied at the bottom of the lists so
the last item(s) can be scrolled into full view.

3 days agoandroid: Avoid crash if read-only profile selection dialog is hidden
Tobias Brunner [Mon, 4 Aug 2025 12:31:26 +0000 (14:31 +0200)] 
android: Avoid crash if read-only profile selection dialog is hidden

3 days agoandroid: Update dependencies
Tobias Brunner [Mon, 28 Jul 2025 12:31:27 +0000 (14:31 +0200)] 
android: Update dependencies

3 days agoandroid: Update Gradle plugin
Tobias Brunner [Mon, 28 Jul 2025 12:31:17 +0000 (14:31 +0200)] 
android: Update Gradle plugin

2 weeks agocertexpire: Double size of internal buffer for identities
Tobias Brunner [Wed, 23 Jul 2025 15:10:31 +0000 (17:10 +0200)] 
certexpire: Double size of internal buffer for identities

The error-notify, lookip, and whitelist (previous commit) plugins already
use the same buffer size for identities.

2 weeks agowhitelist: Double the length of the id field in the messages
seantywork [Thu, 17 Jul 2025 11:29:31 +0000 (11:29 +0000)] 
whitelist: Double the length of the id field in the messages

Closes strongswan/strongswan#2842

2 weeks agoUse wolfSSL 5.8.2 for tests
Tobias Brunner [Sat, 19 Jul 2025 10:11:29 +0000 (12:11 +0200)] 
Use wolfSSL 5.8.2 for tests

2 weeks agowolfssl: Store RNG on object for curve25519
Tobias Brunner [Sat, 19 Jul 2025 10:10:25 +0000 (12:10 +0200)] 
wolfssl: Store RNG on object for curve25519

5.8.2 enables blinding for curve25519 by default, so the RNG set when
making the key is also used later on.

2 weeks agoml: Disable versioning for shared object
Rob Shearman [Mon, 14 Jul 2025 11:14:57 +0000 (12:14 +0100)] 
ml: Disable versioning for shared object

Avoid generating versioned shared objects which would need to be
installed along with the version-independent symlink by specifying
"-avoid-version" in the libtool LDFLAGS for the plugin. Avoid any
unwanted surprises by also specifying the "-module" option, making the
LDFLAGS consistent with all other libstrongswan plugins.

Closes strongswan/strongswan#2844

2 weeks agoMerge branch 'whitelist-watcher'
Tobias Brunner [Fri, 18 Jul 2025 14:16:17 +0000 (16:16 +0200)] 
Merge branch 'whitelist-watcher'

Use watcher and non-blocking I/O for client connections to avoid issues
with clients that stay connected for a long time.

Closes strongswan/strongswan#2827

2 weeks agowhitelist: Add error handling to socket reads and fix a memory leak
Tobias Brunner [Fri, 18 Jul 2025 10:07:45 +0000 (12:07 +0200)] 
whitelist: Add error handling to socket reads and fix a memory leak

This now adds some state (basically a message buffer), but simplifies
error handling as we don't have to handle two potential failure paths
and could avoid some potential issues by still calling the blocking
read_all().

It also fixes a memory leak when clients disconnect.

3 weeks agowhitelist: Use a watcher for control socket reading rather than blocking
Rob Shearman [Wed, 1 Jun 2022 18:41:08 +0000 (19:41 +0100)] 
whitelist: Use a watcher for control socket reading rather than blocking

Performing a stream read_all call (which is a blocking read) from
within the accept callback has the issue that if a whitelist client is
still connected whilst a shutdown of the charon deamon is triggered
then that shutdown won't complete gracefully due to the accept task
never exiting.

So fix shutting down gracefully by using the socket watcher rather than
a blocking read upon connection accept. Fall back to a blocking read
for partial messages to avoid the complexity associated (i.e. storing
state) for incomplete reads, which shouldn't block and cause the
original problem if the client only sends whole messages.

3 weeks agonm: Version bump to 1.6.3
Tobias Brunner [Mon, 14 Jul 2025 09:01:14 +0000 (11:01 +0200)] 
nm: Version bump to 1.6.3

3 weeks agoVersion bump to 6.0.2 6.0.2
Andreas Steffen [Sun, 13 Jul 2025 07:56:49 +0000 (09:56 +0200)] 
Version bump to 6.0.2

3 weeks agotesting: Use alternative approach for retransmits in ikev1/dpd-restart scenario
Tobias Brunner [Fri, 11 Jul 2025 09:45:37 +0000 (11:45 +0200)] 
testing: Use alternative approach for retransmits in ikev1/dpd-restart scenario

With a long delay, the retransmit might not get sent before further tests
are evaluated on faster machines, while more retransmits should still allow
the scenario to succeed on slower ones.

3 weeks agochild-cfg: Actually force narrowing TS in transport mode only as initiator
Tobias Brunner [Fri, 11 Jul 2025 06:50:30 +0000 (08:50 +0200)] 
child-cfg: Actually force narrowing TS in transport mode only as initiator

Closes strongswan/strongswan#2830

Fixes: ad1ad2159f0b ("child-cfg: Use traffic selector list")
3 weeks agoopenssl: Don't allocate salt if PRF/hash is unknown
Tobias Brunner [Fri, 11 Jul 2025 09:42:47 +0000 (11:42 +0200)] 
openssl: Don't allocate salt if PRF/hash is unknown

This can happen if e.g. AES-XCBC is selected.

Fixes: 2dbeecfc029b ("openssl: Fix testing KDF_PRF in the constructor with OpenSSL 3.5.1")
4 weeks agogithub: Shorten name for crypto-plugin job and reverse matrix arguments
Tobias Brunner [Thu, 10 Jul 2025 17:07:13 +0000 (19:07 +0200)] 
github: Shorten name for crypto-plugin job and reverse matrix arguments

This gives us more readable names in the UI.  Instead of

  crypto-plugins (ubuntu-latest, b...
  crypto-plugins (ubuntu-latest, b...
  crypto-plugins (ubuntu-latest, ...
  crypto-plugins (ubuntu-latest, ...
  crypto-plugins (ubuntu-latest, o...
  crypto-plugins (ubuntu-latest, o...

we now get

  crypto (botan, ubuntu-latest, no)
  crypto (botan, ubuntu-latest, yes)
  crypto (wolfssl, ubuntu-latest, no)
  crypto (wolfssl, ubuntu-latest, yes)
  crypto (openssl, ubuntu-latest, no)
  crypto (openssl, ubuntu-latest, yes)

4 weeks agoopenssl: Fix testing KDF_PRF in the constructor with OpenSSL 3.5.1
Tobias Brunner [Thu, 10 Jul 2025 16:11:19 +0000 (18:11 +0200)] 
openssl: Fix testing KDF_PRF in the constructor with OpenSSL 3.5.1

Setting the salt to NULL now fails, so we set it to hash length's zeroes,
which is the default value for HKDF-Extract if no salt is passed.

Fixes strongswan/strongswan#2828

4 weeks agoDoxyfile: Don't hide set_seed() method
Tobias Brunner [Tue, 8 Jul 2025 11:13:06 +0000 (13:13 +0200)] 
Doxyfile: Don't hide set_seed() method

4 weeks agoFixed some typos, courtesy of codespell
Tobias Brunner [Tue, 8 Jul 2025 08:54:49 +0000 (10:54 +0200)] 
Fixed some typos, courtesy of codespell

4 weeks agoVersion bump to 6.0.2rc1 6.0.2rc1
Andreas Steffen [Mon, 7 Jul 2025 08:57:25 +0000 (10:57 +0200)] 
Version bump to 6.0.2rc1

4 weeks agoNEWS: Add news for 6.0.2
Tobias Brunner [Mon, 7 Jul 2025 08:31:56 +0000 (10:31 +0200)] 
NEWS: Add news for 6.0.2

4 weeks agogithub: Use AWS-LC 1.55.0 for tests
Tobias Brunner [Tue, 1 Jul 2025 06:32:46 +0000 (08:32 +0200)] 
github: Use AWS-LC 1.55.0 for tests

4 weeks agogithub: Use OpenSSL 3.5.1 for tests
Tobias Brunner [Tue, 1 Jul 2025 12:16:49 +0000 (14:16 +0200)] 
github: Use OpenSSL 3.5.1 for tests

4 weeks agovici: Allow backlog size configuration via compile option
Thomas Egerer [Wed, 2 Jul 2025 10:46:30 +0000 (12:46 +0200)] 
vici: Allow backlog size configuration via compile option

Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com>
4 weeks agogithub: Make sure at least one run with the same content is not skipped
Tobias Brunner [Mon, 7 Jul 2025 09:55:01 +0000 (11:55 +0200)] 
github: Make sure at least one run with the same content is not skipped

5 weeks agoVersion bump to 6.0.2dr3 6.0.2dr3
Andreas Steffen [Thu, 3 Jul 2025 09:43:53 +0000 (11:43 +0200)] 
Version bump to 6.0.2dr3

5 weeks agonm: Don't set DL_LIBS to 'none required' in configure script
orbea [Tue, 5 Mar 2024 23:46:30 +0000 (15:46 -0800)] 
nm: Don't set DL_LIBS to 'none required' in configure script

This copies the AC_SEARCH_LIBS check from the main strongSwan
configure.ac.

When building networkmanager-strongswan with slibtool if fails.

  ld: cannot find none: No such file or directory
  ld: cannot find required: No such file or directory

This is because configure.ac uses AC_SEARCH_LIBS to find dlopen which
sets the value of $ac_cv_search_dlopen to 'none required' which then
gets set in DL_LIBS and passed to slibtool.

With GNU libtool it silently ignores the unknown arguments.

Gentoo issue: https://bugs.gentoo.org/914100

Closes strongswan/strongswan#2141

Signed-off-by: orbea <orbea@riseup.net>
5 weeks agoMerge branch 'android-http-proxy' android-2.5.6
Tobias Brunner [Fri, 27 Jun 2025 07:13:38 +0000 (09:13 +0200)] 
Merge branch 'android-http-proxy'

Adds support for HTTP proxy server.

Closes strongswan/strongswan#2789

5 weeks agoandroid: New release after adding HTTP proxy configuration
Tobias Brunner [Fri, 6 Jun 2025 09:11:34 +0000 (11:11 +0200)] 
android: New release after adding HTTP proxy configuration

5 weeks agoandroid: Apply proxy server setting when creating TUN device
Tobias Brunner [Thu, 5 Jun 2025 14:34:52 +0000 (16:34 +0200)] 
android: Apply proxy server setting when creating TUN device

This is only available with Android 10+ (SDK 29+).

5 weeks agoandroid: Avoid proxy settings in the internal fetcher
Tobias Brunner [Thu, 5 Jun 2025 14:31:16 +0000 (16:31 +0200)] 
android: Avoid proxy settings in the internal fetcher

5 weeks agoandroid: Allow setting proxy settings in managed profiles
Tobias Brunner [Thu, 5 Jun 2025 14:13:45 +0000 (16:13 +0200)] 
android: Allow setting proxy settings in managed profiles

5 weeks agoandroid: Import proxy server settings
Tobias Brunner [Thu, 5 Jun 2025 14:10:21 +0000 (16:10 +0200)] 
android: Import proxy server settings

5 weeks agoandroid: Make proxy server configurable
Tobias Brunner [Thu, 5 Jun 2025 14:09:50 +0000 (16:09 +0200)] 
android: Make proxy server configurable

5 weeks agoandroid: Add properties to VPN profiles for proxy server configuration
Tobias Brunner [Thu, 5 Jun 2025 13:15:04 +0000 (15:15 +0200)] 
android: Add properties to VPN profiles for proxy server configuration

5 weeks agoandroid: Don't mention IKEv1 and L2TP in app description
Tobias Brunner [Mon, 2 Jun 2025 12:58:36 +0000 (14:58 +0200)] 
android: Don't mention IKEv1 and L2TP in app description

Also removed on Play so the app does not show up when people search
for these keywords (they tend to not read the actual description and
then are surprised that neither protocol is supported).

5 weeks agoandroid: Update dependencies
Tobias Brunner [Mon, 2 Jun 2025 12:55:19 +0000 (14:55 +0200)] 
android: Update dependencies

6 weeks agoidentification: Clarify that ID_USER_FQDN is just an alias for ID_RFC822_ADDR
Tobias Brunner [Mon, 16 Jun 2025 07:28:40 +0000 (09:28 +0200)] 
identification: Clarify that ID_USER_FQDN is just an alias for ID_RFC822_ADDR

This means userfqdn: is a valid prefix for regular expressions.

6 weeks agoswanctl: Document that IP-TFS mode is subject to mode negotiation
Tobias Brunner [Fri, 6 Jun 2025 12:19:09 +0000 (14:19 +0200)] 
swanctl: Document that IP-TFS mode is subject to mode negotiation

6 weeks agotesting: Make sure ML-KEM scenarios use our ml plugin
Tobias Brunner [Fri, 6 Jun 2025 09:17:38 +0000 (11:17 +0200)] 
testing: Make sure ML-KEM scenarios use our ml plugin

We now support OpenSSL's implementation in the openssl plugin.  This
makes sure our plugin is used on at least one of the hosts if we ever
switch to an OpenSSL version that supports ML-KEM.

In the ikev2/rw-mlkem scenario the logic is reversed.  There the ml plugin
is preferred on moon to test the responder side (and carol for the
initiator) and dave will switch to OpenSSL if it ever provides ML-KEM.

2 months agoVersion bump to 6.0.2dr2 6.0.2dr2
Andreas Steffen [Thu, 5 Jun 2025 11:43:21 +0000 (13:43 +0200)] 
Version bump to 6.0.2dr2

2 months agotesting: soup plugin removed from test environment
Andreas Steffen [Thu, 5 Jun 2025 11:42:41 +0000 (13:42 +0200)] 
testing: soup plugin removed from test environment

2 months agoVersion bump to 6.0.2dr1 6.0.2dr1
Andreas Steffen [Wed, 4 Jun 2025 17:45:05 +0000 (19:45 +0200)] 
Version bump to 6.0.2dr1

2 months agoMerge branch 'libsoup3'
Tobias Brunner [Wed, 4 Jun 2025 17:09:33 +0000 (19:09 +0200)] 
Merge branch 'libsoup3'

Ports the soup plugin to libsoup 3.

Closes strongswan/strongswan#2788

2 months agogithub: Use libsoup 3 for tests
Tobias Brunner [Wed, 4 Jun 2025 16:07:35 +0000 (18:07 +0200)] 
github: Use libsoup 3 for tests

Requires installing libxml2-dev explicitly for the alpine build as
libsoup-dev had a dependency on it.

2 months agoleak-detective: Remove whitelisted libsoup2.x functions
Tobias Brunner [Wed, 4 Jun 2025 15:51:55 +0000 (17:51 +0200)] 
leak-detective: Remove whitelisted libsoup2.x functions

As mentioned in 0f141fb095a41a9fdfe5c111269eb643dc643494, we can't
really whitelist the "leaks" in GLib, so don't even try to do anything
with libsoup3.x.

2 months agosoup: Port to libsoup 3
Mike Gorse [Tue, 3 Jun 2025 21:13:41 +0000 (16:13 -0500)] 
soup: Port to libsoup 3

2 months agofetcher: Remove unused FETCH_HTTP_VERSION_1_0 option
Tobias Brunner [Tue, 3 Jun 2025 15:37:24 +0000 (17:37 +0200)] 
fetcher: Remove unused FETCH_HTTP_VERSION_1_0 option

Was only used by the removed scepclient and does not serve any purpose
nowadays anyway.

2 months agounit-tests: Serial number tests depend on X.509 certificate parsing
Tobias Brunner [Wed, 4 Jun 2025 15:14:08 +0000 (17:14 +0200)] 
unit-tests: Serial number tests depend on X.509 certificate parsing

Requires additional plugin features, but if this is available, the
others are usually as well.

2 months agowolfssl: Fix build if wolfSSL was built in OpenSSL-compat mode
Tobias Brunner [Wed, 4 Jun 2025 16:25:22 +0000 (18:25 +0200)] 
wolfssl: Fix build if wolfSSL was built in OpenSSL-compat mode

2 months agoMerge branch 'wolfssl-fips'
Tobias Brunner [Mon, 2 Jun 2025 09:31:03 +0000 (11:31 +0200)] 
Merge branch 'wolfssl-fips'

Fixes various issues when building the wolfssl plugin against wolfSSL's
FIPS module.

References strongswan/strongswan#2603
Closes strongswan/strongswan#2771

2 months agowolfssl: Unlock keys if necessary when using FIPS module
Juliusz Sosinowicz [Wed, 23 Apr 2025 14:32:52 +0000 (16:32 +0200)] 
wolfssl: Unlock keys if necessary when using FIPS module

Wrap the functions that require it in PRIVATE_KEY_UNLOCK/PRIVATE_KEY_LOCK.
This can't be done at plugin initialization because it needs to be done
for every thread. strongSwan currently doesn't provide on-thread-create
callbacks for plugins so we need to wrap each direct call. Another reason
to do so is that some functions we call (e.g. wc_EccKeyToDer) internally
call PRIVATE_KEY_UNLOCK/PRIVATE_KEY_LOCK and would leave the keys locked
for that particular thread.

2 months agowolfssl: Properly initialize ECC private key object
Juliusz Sosinowicz [Wed, 23 Apr 2025 13:56:09 +0000 (15:56 +0200)] 
wolfssl: Properly initialize ECC private key object

2 months agowolfssl: Set a dummy key when testing KDF implementations
Tobias Brunner [Fri, 21 Feb 2025 07:09:31 +0000 (08:09 +0100)] 
wolfssl: Set a dummy key when testing KDF implementations

In FIPS mode, wolfSSL enforces a minimum key size for these algorithms.

2 months agotest-vectors: Remove HMAC PRF test vectors with key size 4
Tobias Brunner [Tue, 18 Feb 2025 13:24:08 +0000 (14:24 +0100)] 
test-vectors: Remove HMAC PRF test vectors with key size 4

Some implementations enforce a minimum key size (e.g. wolfSSL in FIPS
mode) and in practice, the keys will be longer anyway (e.g. our nonces
are 32 bytes).

2 months agowolfssl: Include settings.h in case WOLFSSL_USER_SETTINGS is defined
Tobias Brunner [Fri, 29 Nov 2024 07:45:53 +0000 (08:45 +0100)] 
wolfssl: Include settings.h in case WOLFSSL_USER_SETTINGS is defined

2 months agowolfssl: Use consistent defines for ECC public/private key loading
Tobias Brunner [Thu, 28 Nov 2024 08:28:28 +0000 (09:28 +0100)] 
wolfssl: Use consistent defines for ECC public/private key loading

HAVE_ECC_KEY_IMPORT can be defined while HAVE_ECC_SIGN is not.
So just use the same defines we use when defining the load functions.

2 months agowolfssl: Call wc_SetSeed_Cb() as required for FIPS-mode
Tobias Brunner [Tue, 26 Nov 2024 09:19:33 +0000 (10:19 +0100)] 
wolfssl: Call wc_SetSeed_Cb() as required for FIPS-mode

2 months agoMerge branch 'iptfs'
Tobias Brunner [Wed, 28 May 2025 14:48:42 +0000 (16:48 +0200)] 
Merge branch 'iptfs'

This adds basic support for IP-TFS/AGGFRAG (RFC 9347).  The Linux kernel,
since 6.14, only supports aggregation/fragmentation so far.  The actual
TFS features will get added later.

2 months agotesting: Add ikev2/net2net-iptfs scenario
Tobias Brunner [Fri, 16 May 2025 08:28:16 +0000 (10:28 +0200)] 
testing: Add ikev2/net2net-iptfs scenario

2 months agotesting: Add config for Linux 6.14
Tobias Brunner [Fri, 16 May 2025 08:22:20 +0000 (10:22 +0200)] 
testing: Add config for Linux 6.14

This has IP-TFS enabled.

2 months agoconf: Document global IP-TFS settings
Tobias Brunner [Thu, 15 May 2025 10:58:12 +0000 (12:58 +0200)] 
conf: Document global IP-TFS settings

2 months agochild-create: Negotiate IP-TFS mode if configured
Tobias Brunner [Thu, 15 May 2025 10:57:38 +0000 (12:57 +0200)] 
child-create: Negotiate IP-TFS mode if configured

2 months agonotify-payload: Add notify type for IP-TFS/AGGFRAG
Tobias Brunner [Thu, 15 May 2025 08:37:01 +0000 (10:37 +0200)] 
notify-payload: Add notify type for IP-TFS/AGGFRAG

2 months agokernel-netlink: Support IPTFS mode and attributes
Tobias Brunner [Thu, 15 May 2025 07:22:17 +0000 (09:22 +0200)] 
kernel-netlink: Support IPTFS mode and attributes

2 months agochild-sa: Allow disabling fragmenting packets across AGGFRAG payloads
Tobias Brunner [Thu, 15 May 2025 10:56:00 +0000 (12:56 +0200)] 
child-sa: Allow disabling fragmenting packets across AGGFRAG payloads

This is necessary if the peer isn't able to handle such fragments.

2 months agokernel-ipsec: Add flag to disable sending fragments across AGGFRAG payloads
Tobias Brunner [Thu, 15 May 2025 07:20:52 +0000 (09:20 +0200)] 
kernel-ipsec: Add flag to disable sending fragments across AGGFRAG payloads

We have to set this if the peer indicates that it doesn't support
handling such fragments in the notify.

2 months agovici: Make IP-TFS mode configurable
Tobias Brunner [Wed, 14 May 2025 08:13:44 +0000 (10:13 +0200)] 
vici: Make IP-TFS mode configurable

2 months agoinclude: Add XFRM mode and attributes for IP-TFS
Tobias Brunner [Wed, 14 May 2025 08:16:55 +0000 (10:16 +0200)] 
include: Add XFRM mode and attributes for IP-TFS

2 months agoipsec-types: Add new mode for IP-TFS
Tobias Brunner [Wed, 14 May 2025 08:11:12 +0000 (10:11 +0200)] 
ipsec-types: Add new mode for IP-TFS

Added at the end as the numeric mode is e.g. used in SQL databases.

2 months agoMerge branch 'per-cpu-sas'
Tobias Brunner [Wed, 28 May 2025 14:36:10 +0000 (16:36 +0200)] 
Merge branch 'per-cpu-sas'

This adds support for per-CPU SAs (RFC 9611).

2 months agotesting: Add ikev2/per-cpu-sas-encap-transport scenario
Tobias Brunner [Wed, 16 Jun 2021 07:45:57 +0000 (09:45 +0200)] 
testing: Add ikev2/per-cpu-sas-encap-transport scenario

Tests transport mode and UDP encapsulation with random source ports.
Interestingly, the responder always uses the same SA to respond (maybe
due to the cache on the policy).

2 months agotesting: Add ikev2/per-cpu-sas-encap scenario
Tobias Brunner [Tue, 15 Jun 2021 09:13:35 +0000 (11:13 +0200)] 
testing: Add ikev2/per-cpu-sas-encap scenario

Basically the same as the one without UDP encapsulation, but here the
outbound SAs use random source ports.

2 months agokernel-netlink: Suppress NAT mapping updates for per-CPU SAs
Tobias Brunner [Tue, 22 Apr 2025 09:19:34 +0000 (11:19 +0200)] 
kernel-netlink: Suppress NAT mapping updates for per-CPU SAs

As we set the remote port to 0, we'd get a mapping change message with
every packet. Setting the threshold avoids all kernel messages after the
first, which we suppress explicitly as well.

2 months agochild-sa: Configure UDP encapsulation for per-CPU SAs
Tobias Brunner [Tue, 15 Jun 2021 09:11:14 +0000 (11:11 +0200)] 
child-sa: Configure UDP encapsulation for per-CPU SAs

As the kernel does not support processing UDP-encapsulated and plain ESP
for the same SA, we require forcing UDP encapsulation if there is no NAT.

2 months agovici: Make UDP encapsulation for per-CPU SAs configurable
Tobias Brunner [Tue, 15 Jun 2021 09:10:40 +0000 (11:10 +0200)] 
vici: Make UDP encapsulation for per-CPU SAs configurable

2 months agochild-cfg: Add flag to enable UDP encapsulation for per-CPU SAs
Tobias Brunner [Tue, 15 Jun 2021 07:46:31 +0000 (09:46 +0200)] 
child-cfg: Add flag to enable UDP encapsulation for per-CPU SAs

2 months agotesting: Add per-CPU SA test scenario
Tobias Brunner [Wed, 2 Jun 2021 15:07:01 +0000 (17:07 +0200)] 
testing: Add per-CPU SA test scenario

2 months agotesting: Configure multiple virtual CPUs for moon and sun
Tobias Brunner [Mon, 31 May 2021 14:46:41 +0000 (16:46 +0200)] 
testing: Configure multiple virtual CPUs for moon and sun

This allows testing per-CPU SAs by e.g. pinging over a specific CPU
via taskset.

2 months agotesting: Enable SMP support for latest kernels
Tobias Brunner [Mon, 31 May 2021 15:09:28 +0000 (17:09 +0200)] 
testing: Enable SMP support for latest kernels

2 months agoswanctl: Report per-CPU information in --list-sas
Tobias Brunner [Thu, 20 May 2021 08:32:09 +0000 (10:32 +0200)] 
swanctl: Report per-CPU information in --list-sas

2 months agovici: Report per-CPU SA information
Tobias Brunner [Thu, 20 May 2021 08:19:41 +0000 (10:19 +0200)] 
vici: Report per-CPU SA information

2 months agovici: Make per-CPU CHILD_SAs configurable
Tobias Brunner [Thu, 20 May 2021 08:12:30 +0000 (10:12 +0200)] 
vici: Make per-CPU CHILD_SAs configurable

2 months agokernel-netlink: Forward CPU ID from acquires
Tobias Brunner [Thu, 20 May 2021 08:04:46 +0000 (10:04 +0200)] 
kernel-netlink: Forward CPU ID from acquires

2 months agotrap-manager: Add support to handle acquires for per-CPU SAs
Tobias Brunner [Thu, 20 May 2021 07:46:55 +0000 (09:46 +0200)] 
trap-manager: Add support to handle acquires for per-CPU SAs

2 months agokernel-handler: Log CPU ID that's passed with an acquire
Tobias Brunner [Mon, 26 Sep 2022 14:55:00 +0000 (16:55 +0200)] 
kernel-handler: Log CPU ID that's passed with an acquire

2 months agokernel-interface: Optionally pass CPU ID for which an acquire was triggered
Tobias Brunner [Mon, 26 Sep 2022 14:47:46 +0000 (16:47 +0200)] 
kernel-interface: Optionally pass CPU ID for which an acquire was triggered

2 months agoike-sa: Accept optional CPU ID when initiating CHILD_SAs
Tobias Brunner [Wed, 19 May 2021 13:11:53 +0000 (15:11 +0200)] 
ike-sa: Accept optional CPU ID when initiating CHILD_SAs

2 months agoike-sa: Sort CHILD_SAs by CPU ID
Tobias Brunner [Thu, 20 May 2021 07:41:54 +0000 (09:41 +0200)] 
ike-sa: Sort CHILD_SAs by CPU ID

This might make debugging easier and also ensures that a possible
fallback SA without CPU ID is established first when reestablishing
an IKE_SA.  Because even if such an SA is established first initially,
that might change later depending on when per-CPU SAs are rekeyed.

2 months agochild-rekey: Maintain per-CPU values during rekeying
Tobias Brunner [Wed, 19 May 2021 10:00:39 +0000 (12:00 +0200)] 
child-rekey: Maintain per-CPU values during rekeying

2 months agochild-create: Add support to negotiate per-CPU SAs
Tobias Brunner [Wed, 19 May 2021 08:59:03 +0000 (10:59 +0200)] 
child-create: Add support to negotiate per-CPU SAs