Blame

e85ca0 ordex 2026-06-10 21:06:44 1
# OpenVPN Community Meetup 2026
16a979 novaflash 2026-03-04 13:22:21 2
e85ca0 ordex 2026-06-10 21:06:44 3
## Dates
16a979 novaflash 2026-03-04 13:22:21 4
e85ca0 ordex 2026-06-10 21:06:44 5
Previous nuudel poll about the date for the Meetup:
6
7
[https://nuudel.digitalcourage.de/VnbRxE6iKdWECLbW](https://nuudel.digitalcourage.de/VnbRxE6iKdWECLbW)
8
9
Planned date: October Sat. 17 - Sun. 18, 2026 (with October 16 and 19 as travel days)
16a979 novaflash 2026-03-04 13:22:21 10
Pre-meeting-social-outing-activity: https://www.hnf.de/en/home.html old computer museum, on the friday before.
e85ca0 ordex 2026-06-10 21:06:44 11
12
## Venue
16a979 novaflash 2026-03-04 13:22:21 13
14
Paderborn, Germany.
15
e85ca0 ordex 2026-06-10 21:06:44 16
Meeting room: Potentially https://www.welcome-hotels.com/en/hotels/paderborn/events/ - Arne will enquire for details.
17
18
## Accommodation
19
20
Welcome Hotel (same as the meeting room)
21
22
Price per night should be around 90EUR/night including breakfast.
23
24
Currently, for all people that have indicated that they want to come rooms have been reserved. If you do not want to stay in the hotel or want to stay longer etc, please contact Arne.
25
26
27
## How to get there
28
29
Paderborn has a small local airport, but it's hard to get there from outside Germany.
30
31
Closest airports: Frankfurt and Dusseldorf.
32
33
Alternatively you can arrive by train.
34
35
## Who is coming?
36
37
| Name | Topics | Arrival | Departure | Hotel | T-shirt size |
38
| -------- | -------- | - | - | - | -------- |
d4760b ordex 2026-06-14 20:54:29 39
| Gianmarco De Gregori | |16/10 late evening|19/10 early morning|Welcome Hotel (Arne's booking)| M |
40
| Antonio Quartulli | |16/10 late evening|19/10 early morning|Welcome Hotel (Arne's booking)| M |
c2e980 Ralf Lici 2026-10-06 09:22:31 41
| Ralf Lici | UDP source port entropy |16/10 late evening|19/10 early morning|Welcome Hotel (Arne's booking)| M |
d4760b ordex 2026-06-14 20:54:29 42
| Marco Baffo | |16/10 late afternoon|19/10 early morning|Welcome Hotel (Arne's booking)| L |
54f0f4 cron2 2026-10-11 20:47:58 43
| Gert Döring | 2.8 release, multipeer architecture | 15.10. (Thu)| 18.10. (Sun) afternoon-ish | Welcome Hotel | XL |
e85ca0 ordex 2026-06-10 21:06:44 44
| Arne Schwabe | | | | Home | XXL |
7e7a77 novaflash 2026-09-30 12:09:06 45
| Johan Draaisma | | not coming | | | XL |
eb4fc3 Heiko Hund 2026-08-19 12:47:08 46
| Heiko Hund | | Fri. 16.10 11:47 | Mon. 19.10. 10:48 | Welcome Hotel | L |
c69a4d flichtenheld 2026-08-06 11:47:57 47
| Frank Lichtenheld | | 16.10. | 19.10. | Welcome Hotel (Arne's booking) | XXL |
e85ca0 ordex 2026-06-10 21:06:44 48
| Samuli Seppänen | | | | | L |
340185 uddr 2026-06-17 10:12:56 49
| Yuriy Darnobyt | |16.10|19.10|Welcome Hotel (Arne's booking)| L |
834988 Max Fillinger 2026-06-24 12:06:17 50
| Max Fillinger | |16.10|19.10|Welcome Hotel (Arne's booking)| XL |
cada5a Steffan Karger 2026-08-13 20:00:20 51
| Steffan Karger | | 16/10 | 18/10 late afternoon | Welcome Hotel (Arne's booking) | L |
7d137e Lev Stipakov 2026-08-06 10:17:44 52
| Lev Stipakov | |16.10 14:40 |19.10 early morning|Welcome Hotel (Arne's booking)| M |
a41e40 novaflash 2026-09-30 12:05:32 53
| Jan Just Keijzer | |16.10 16:00 | 18.10 15:00|Welcome Hotel (own booking) | M |
e85ca0 ordex 2026-06-10 21:06:44 54
55
If someone is unable to edit this page please reach out to any developer with the travel/topics informations.
56
57
58
## Schedule
59
c1d26d cron2 2026-06-15 06:15:00 60
Friday 16.10.:
61
visit computer museum
62
e85ca0 ordex 2026-06-10 21:06:44 63
Saturday 17/10:
64
65
Sunday 18/10:
16a979 novaflash 2026-03-04 13:22:21 66
e85ca0 ordex 2026-06-10 21:06:44 67
## Meeting notes
a4293a Heiko Hund 2026-10-19 08:27:46 68
69
1.  Gert: 2.8 release planning
70
1. Gert wants to release 2.8 sooner, compared to older releases, because the code diverged a lot already from 2.7 and backporting patches is beginning to be annoying.
71
72
2. ideally 2.8 can be released early 2027 (february), on time for the next stable Debian release
73
74
3. 2.8 would be a cleanup release, with a few new features
75
76
4. SHOULD HAVE ("patches need to be in gerrit in the next few weeks"):
77
1. TLS cleanups (Arne)
78
79
2. string and integer cleanups (Frank)
80
81
3. server probe (Lev)
82
83
4. windows cleanup: remove network interface code from openvpn.exe (Heiko), split up monolithic iservice code into smaller compile units (Heiko), merge openvpnserv2 code back to iservice (Heiko/Lev/Gert).  Please do not break debuggability ("press F5 from IDE") - "openvpn.exe --pretend-to-be-gui-talk-to-iservice-yourself"
84
85
5. remove --static (Arne? Antonio? Steffan?)
86
87
6. Push-Update and Iroutes support for DCO (needs review)
88
89
7. DCO capability negotiation (on gerrit already) - userspace can query kernel (tx-peer-id, epoch)
90
91
8. windows installer: stop building x86 installers (Lev: check microsoft telemetry if they give us numbers on 32/64 bit distribution) - Win11 only exists as 64bit version, so this would only affect win10/x86 and older versions.
92
93
9. release notes for 2.8 must contain a list of features that "will not survive in the long term" (so \*we\* need to agree on this first...)
94
95
10. deprecate / remove "small block" cipher support for real?  3DES, blowfish?  -> drop support, except if you add \`--really-really-insecure-I-will-change-this-soon\` shame flag?  (Arne)
96
97
5. NICE TO HAVE;
98
1. Modernize Windows installer
99
1. Upgrade WiX
100
2. Replace JScript with CMake (there is PR already from Frank)
101
2. Multisocket support for dco-win
102
103
3. TCP server support for dco-win
104
4. improved VRF support for FreeBSD (Gert) and Linux (patches in Gerrit)
105
5. multi-pool patchset from Antonio
106
6. all features should be in before christmas 2026, so we can release in february
107
108
7. Features that might not make it (from the list agreed upon in Naples)
109
1. full multipeer server-to-server etc.
110
2. pluggable transport API - "it's a bit large, and has not seen much use" - Gianmarco has kept it updated, so it's "just a matter of doing it" (-> Antonio/Gianmarco: please ping Arne) - there is a use case for "have it in master for the client side" (OpenVPN for Android), which would give more experience
111
112
3. "peer session restoring" (upgrade userspace while kernel space is keeping the tunnel active, and reattach to kernel peer)
113
114
4. route monitoring to make openvpn react to "changes in network attachment" (wifi/wired roaming, etc.) in a more nice way than "time out and reconnect"
115
116
5. user space DCO (Antonio has this all running...?)
117
118
6. "ip rule" based VPN setup on Linux (nobody working on this right now, no patch set to review)
119
120
2. \- Yuriy: Gerrit private instance setup?
121
1. "yes, please" :-)
122
123
2. Gert ("whoever pushes to the normal public repos") is responsible for pushing "public" master + release/X branches to the "private" instance as well, so push-to-private has the correct commits to base on
124
125
3. Arne: FOOD!
126
1. Steak house is out -> plan with the "ghetto Norma fusion asian place" instead (13:00)
127
2. reservation for Saturday night is "italian place" (20:00, [https://maps.app.goo.gl/yqtSCdQK7nmuXwFK8](https://maps.app.goo.gl/yqtSCdQK7nmuXwFK8))
128
129
3. Sunday lunch:
130
131
4. Sunday evening: Steakhouse
132
133
4. Frank: Release Management
134
1. Gert: current point release handling works quite well - 4 week fixed and plannable schedule, good quality patches in the release/ branches, so "make a release" is just version.m4 / Changes.md / ChangeLog editing, and pushing to buildbot host - 30 minutes, unless there is "writing up Changes.md" is hard because of too many patches.  BB will test-build release, so there is an assurance the version.m4 commit didn't break anything.
135
136
2. we do not formally inform distros of dooming releases (informal heads up to debian and freebsd given) - do we want that?
137
138
3. Frank/Yuriy side: improvements?
139
1. remove debian/ubuntu package builds from build-openvpn -> build via build.opensuse.org (because SuSE supports "all the distros")
140
141
2. currently "t\_client" tests for Windows are not done on gerrit pushes, but on "push to openvpn-build" repo -> this could be improved --> "Lev has super-super comprehensive windows test framework now!" -> please integrate ;-)
142
143
5. Lev: dco-win (and dco?) CI test rig [https://lstipakov.github.io/dco-rig/](https://lstipakov.github.io/dco-rig/)
144
* very impressive coverage, 90.000 packets between clients, 20.000 sessions per run, iperf, misbehaving userspace, ...
145
146
* 4 pairs "stay connected all the time, run iperf", 16 "swarm" clients, 800 "flood" peers (gremlins)
147
148
* 7 EC2 instances, "a few EUR" per test <-> maybe not run this for every gerrit push?
149
150
* run this as nightly tests?
151
152
6. Merge handling
153
1. right now, Gert handles all the "merge final patches and push to sf/github/gitlab/gerrit/buildbot"
154
* with the review support from Razvan & the financial support from OpenVPN Inc, this works out reasonably well, and we've reduced the gerrit backlog quite a bit over the last 2 months
155
156
2. it would be useful to have at least one backup person in case of unavailability
157
* sf.net - who has access?  David, Samuli, James?
158
* github, gitlab - who has access?
159
* tooling (git ack-am) to be shared Gert -> dev-tools/
160
* commit/tag signing is currently only done for release commits, using gert@ personal key
161
162
7. Heiko: Anthropic Mythos Access for OpenVPN?
163
* Option 1: "Claude for OSS" - maximum plan for free for 6 months, then pay for it
164
* Option 2: "Project Glasswing" - sounds like "security researchers" and "red teams" and such - we could apply?
165
* Option 3: "OSS Scanner" - dedicated repository on GitHub where you can file PRs that explain attack vector, etc., and how the scanner should behave, and results are mailed "to a mailing list" -> looks useful.  Heiko plans to check with them how "different OS" builds are covered (Linux, Windows, ...) --> go for this one!  (Help with Docker -> Frank)
166
* there is a paid version of "OSS Scanner" which might be used for "Corp stuff" eventually
167
8. Max: Signal group - "how trusted is it?"
168
* create a new group with "core developers" (at least: Frank, Gert, Arne, David, Antonio, Max, Steffan, Lev, Heiko + X) - "those in the room right now + David + Johan" sounds like a plan ;-)
169
* group clearly marked as "confidential for active core developers"
170
* existing group is re-chartered to be more loose "people involved in OpenVPN"
171
* memes and volcanoes to be posted to the "community group"
172
9. Ralf: UDP source port entropy
173
* inbound high-bandwidth crypto stream between "just two" entities can not be properly fanned-out to multiple CPUs because "same source+destination port" gets hashed to 1 CPU, 1 Queue
174
* idea: modulate UDP source port (bind not needed from within kernel, just set the source port) 
175
* calculate inner hash, map to outer UDP source port
176
* get spread inner flows to multiple receive queues on the other side
177
* this is what VXLAN/GENEVE do "in data centers"
178
* can't use this for all scenarios ("if you are behind a stateful engine, state will explode")
179
* might cause issues with ECMP routing / LACP balancing
180
* will cause issues for packet-id / replay window checks, differential delay between flows, proportional to packet-per-second
181
* is incompatible with floating (= must not float on source port "change")
182
* "ignoring all this for first experiment" -> "it works, and gives a huuuge performance boost"
183
* on the receiving side -> replay-window shared between CPUs -> read-modify-write -> cache contention
184
185
* idea: every "lane" has its own receive window = no cache contention
186
187
* 3rd version...
188
* IPSEC draft: [https://datatracker.ietf.org/doc/html/draft-antony-ipsecme-muse-00](https://datatracker.ietf.org/doc/html/draft-antony-ipsecme-muse-00)
189
190
* "quite complex"
191
* different crypto space for "sub-channels" (child SA), negotiated, derived from main 
192
* assign child SA "to hardware resource", bounded to source port, nicer bidirectionality and NAT behaviour (= symmetric flow)
193
* inner flows mapped bidirectional to same "child SA" = helps with cache locality etc
194
* localized cryptographic state
195
* Question to the room...?
196
* "what makes sense? what do we want to adopt?"
197
* if "child SA" -> we need to do control-channel signalling
198
* Arne: #1 is very hacky, #2 is problematic with packet ID space limits (48 bit, but only 29 can be used due to AEAD limits) - "same key, IV space partitioned" - very small per-lane IV space (it would work with ChaCha or AEGIS)
199
* Steffan: "there is no good option with AEAD except do multiple keys"
200
* (discussion about technical details, bit length, data format, ...)
201
* rough result how an implementation could look like:
202
* server has multiple active sockets, set up by the admin, firewall ports openend ("it is known beforehand that these ports work")
203
* client connects
204
* server signals "I can do multi-channel, I would be willing to accept extra connections on <ip:port1>, <ip:port2>, <ip:port3>"
205
* client sends a CONTROL\_AUX packet to additional socket (= new "userland control-data channel" stuff, authenticated by peer-id + crypto")
206
* server acknowledges this, assigns a new peer-id for the subchannel (?)
207
* client sends a 3-way "let's do this!" CONTROL\_AUX PACKET
208
* data channel key is derived from original TLS session ("do not re-use the same identifier!")
209
* both ends instantiate a kernel peer (master peer-id, sub-channel peer-id) <<-- needs new kernel messages
210
* open question: what peer-id to use in which packets?
211
* identity of "what"?
212
* floating of subchannels?
213
* asymmetric peer-id?
214
* possibly de-couple "client id" (identifier between userspace and DCO) and "peer-id" (what is in the packet)
215
* "client id" can have "1..N" peer-id associated to it
216
* also rx-peer-id/tx-peer-id
217
10. Steffan: control channel test suite "it has been on the list since 2022! go merge it!"
218
 --> new patchset on Gerrit, go review!
219
220
11. Arne: testing management/testing in general
221
* App-Custom-Control: client and server can exchange "custom" messages over openvpn transport, using management-interface on both ends
222
* two demo scripts for this available in gerrit
223
* needs management interface patch to actively run scripts "connected to mgmt-if"
224
* python scripts with python module (omi.py) to excercise management interface
225
* Question to the room: what do we want and what do we need?
226
* Frank: yes! test! all of it!
227
* Gert: extend t\_client to use management interface to drive client side (connect, disconnect, reconnect, test signal handling, counters, 2FA, --management-query-user-pass, --management-external-key...)
228
* run openvpn --management-script $driver
229
* Gert: extend t\_server tests to test management functionality (permit/reject clients, do delayed auth, IP assignment, PUSH\_UPDATE, ...)
230
231
* Steffan: this could nicely integrate with the TLS test suite Steffan is currently building (for "make check")
232
233
* TODO: review and merge patches in gerrit, then enhance t\_client, t\_server, .. tests
234
235
* ACC examples is master, but the "python framework handling things" should be in 2.7
236
* Arne: grab one of the AS python developers to help review
237
12. Arne/Steffan/Lev/Max: CONTROL\_V2/probe protocol
238
* everbody agrees on the concepts and the naming (PMH!)
239
* Arne and Steffan will write it down next week
240
241
13. Gert: agree on server-probe architecture ("which bit of the code gets to do what"), before going into individual patch review
242
* Lev: "this is mostly client side and I need to rewrite everything now"
243
* please update the highlevel document :-) and we look very closely at this next week
244
14. Heiko: can we have automated testing for the windows services?
245
* Frank: "we have some windows infrastructure" (AWS), we also have t\_client "alike" windows tests
246
* not run on every commit to openvpn main repo, just on push to openvpn-build repo
247
* Lev: "will fix my test rig to use latest-master .msi"
248
* how to test from gerrit?
249
* \*what\* to test from gerrit?
250
* for windows: split-dns, block-outside-dns testing looks interesting
251
* reference server ("phillip") has UDP, TCP, v4, v6 server instances that can push DNS if requested, etc. ("setenv IV\_WANT\_DNS=dns|dhcp" on the client side)
252
* Heiko: this looks good, but it's not testing the automatic service yet --> add work on this
253
* gui (-cli) can be used to monitor / restart / stop instances (if automatic configs have --management in them) -> Selva understands all the details
254
15. Lev: streamline dco-win releases (we now have EV/Authenticode signing automated, need to move builds from Lev machine to some AWS instance?)
255
* signing is done on Lev's laptop plus some machine in Community VPN today, and it's complicated with copying files and signed files back and forth 6 times
256
257
* improved scripting already - "one click!", but still built & signed on Lev's laptop
258
* it would need "Windows VM with right version of enterprise driver kit + community VPN access for signing"
259
* \-> Ball is with Frank and Yuriy to use the "windows installer building + signing" AMI for dco-win too, "we just need to do this"
260
16. Antonio: libdco, synchronize across linux/windows/freebsd?
261
262
17. next meeting?  location and time?
263
* Oulu (July/August)
264
* Tallinn?
265
* Berlin?
266
* Istanbul?
267
* Zagreb? --> east-west-trajectory being followed
268
* Belgrade?
269
18. multipeer support?
270
* will we have something in 2.8?  (no)
271
* Arne has proof of concept code, but it's "very rough"
272
* not being worked on righ