Commit graph

1255 commits

Author SHA1 Message Date
Samuel Thibault
3add0afa38 Log from which IPs odd UDP packets come from 2024-05-13 20:14:58 +02:00
Samuel Thibault
38bfd3f738 Add L2TP bridging offloading support 2024-05-13 20:14:58 +02:00
Samuel Thibault
a957ff08ee Throttle switching kernel acceleration
Creating/destroying interfaces etc. does take some time. When e.g. receiving
a lot of sessions as new slave, we don't want to stay stuck creating
hundreds of interfaces while we are already receiving control messages
that we have to forward to master not too late. Switching kernel
acceleration can wait a bit most of the time.
2024-05-13 20:14:58 +02:00
Samuel Thibault
a22295d804 Fasten quitting l2tp game
Drop routes as quickly as possible to lose as few packets as possible in the
meanwhile.
2024-05-13 20:14:58 +02:00
Samuel Thibault
0ac498d7d3 cli: Show acceleration interface name
And allow selecting a session through it
2024-05-13 20:14:56 +02:00
Samuel Thibault
f00ec1c6e4 Note that one probably wants to increase memory for igmp6 2024-05-13 20:14:39 +02:00
Samuel Thibault
60b78506e8 Document that MSS clamping needs to be done by Linux 2024-05-13 20:14:39 +02:00
Dominique Martinet
72fca9b8f0 create/update_kernel_tunnel: add some debug logs 2024-05-13 20:14:39 +02:00
Dominique Martinet
c8c197bf3a processppp: fix IP log when tunnel IP source change
fmtaddr formats the string to a static buffer that must be selected
manually, but this log message was re-using the same buffer.

Use another index for 2nd IP so we get to know which is what.

Fixes: 2429969bd04d ("Add L2TP offloading support")
2024-05-13 20:14:38 +02:00
Samuel Thibault
1b9c50df98 Comment on memory needs for igmp6 subscriptions 2024-05-13 20:14:38 +02:00
Samuel Thibault
58d038dc0b Add ICMPv6 support with acceleration 2024-05-13 20:14:38 +02:00
Samuel Thibault
5dcbd68b75 Add DHCPv6 support with acceleration 2024-05-13 20:14:38 +02:00
Samuel Thibault
a9e18411d3 Add L2TP offloading support
Fixes #13

Also-by: Dominique Martinet <asmadeus@codewreck.org>
2024-05-13 20:14:38 +02:00
Samuel Thibault
13d7080ac1 Add recvfromto6 2024-05-13 20:14:38 +02:00
Samuel Thibault
c3eb1be0b4 Separate out DHCP processing
So we can later call it on UDP datagrams obtained from UDP socket.
2024-05-13 20:14:38 +02:00
Samuel Thibault
e53fccd36c Add route for session-specific subprefix of the ipv6 prefix
Otherwise with kernel acceleration we would only have the same /64 route
on all ppp devices. We need separate /96 routes on each ppp device for
packets of the /96 subprefix to be routed to the correct session.
2024-05-13 20:14:38 +02:00
Samuel Thibault
8c04e26f3f Consolidate adding/removing routes
into routesset and routes6set.
2024-05-13 20:14:38 +02:00
Samuel Thibault
c7853de428 Consolidate stat update code
into
update_session_in_stat
update_session_out_stat
2024-05-13 20:14:38 +02:00
Samuel Thibault
1db43fc51d Separate out PPP processing
So we can later call it on frames obtained from kernel ppp interface.

Better seen with diff -w
2024-05-13 20:14:38 +02:00
Samuel Thibault
79a08faea9 Generalize L2TP UDP socket creation
So we can later use it to create per-tunnel L2TP sockets.
2024-05-13 20:14:38 +02:00
Samuel Thibault
5df78e9467 Separate out if configuration into setupif
So we can later apply it to ppp interfaces.

Better seen with diff -w
2024-05-13 20:14:38 +02:00
Samuel Thibault
b2bc6da827 Add support for deleting all kernel tunnels/sessions
Unfortunately, tunnels and session can survive us, so we have to drop any
tunnel/session left from a previous instance that might have crashed.
2024-05-13 20:14:38 +02:00
Samuel Thibault
1f4d79ce85 Add L2TP kernel infrastructure
This essentially exposes the kernel features, without using them yet.
2024-05-13 20:14:38 +02:00
Samuel Thibault
5db476bb6e Add generic netlink infrastructure 2024-05-13 20:14:38 +02:00
Samuel Thibault
60329986b2 Rename netlink infrastructure to rtnetlink
We will introduce genetlink infrastructure just after this.
2024-05-13 20:14:38 +02:00
Samuel Thibault
fdf19f5467 cli: Fix missing closing file descriptors 2024-05-13 20:14:38 +02:00
Samuel Thibault
32799f196a cli: Show bundle id 2024-05-12 23:35:46 +02:00
Samuel Thibault
b1fbf5885a Homogeneize naming with debian 2024-05-07 12:48:39 +02:00
Samuel Thibault
29f3409ef4 Make sure that the acct directory exists on bootup 2024-05-07 12:45:03 +02:00
Samuel Thibault
e9c1c31682 cluster: Save counters before we leave 2024-03-12 19:45:20 +01:00
sthibaul
cbe2b3910f Merge branch 'chap_passwd' into 'master'
Fix the password used when acting as LAC

See merge request l2tpns/l2tpns!22
2024-03-12 00:49:17 +00:00
Samuel Thibault
e442a69fc1 cluster: try make the cluster socket high-priority
The heartbeat messages, notably, should really not be lost, otherwise the
cluster will dismantle itself if some very-high trafic is filling packet
queues.
2024-01-26 01:51:54 +01:00
Samuel Thibault
878e9dd88a RA: fix typo
It happens that htonl(9000) = 10275 so it's not so bad, but better be
correct :)
2024-01-25 10:31:06 +01:00
Samuel Thibault
135ada4008 cli: Fix showing local IP 2024-01-21 23:23:00 +01:00
Samuel Thibault
9daccab8ba shutdown_handler: really shutdown when we are last
If we are a master and we don't have peers, there is no use keeping the
sessions alive, when we'll restart we will have forgotten them all.
Better gracefully close them, so they can be quickly respawn on restart,
instead of having to wait for timeouts.
2024-01-21 00:36:39 +01:00
Samuel Thibault
2229ac6a8a RA: Fix announcing on the right tunnel
We were previously just announcing on the last tunnel looked at in the loop
much above.
2024-01-18 11:53:00 +01:00
Samuel Thibault
e6a933153d RA: announce after the actions which may be dropping the session
It's useless to announce RA just before dropping the session.
2024-01-18 10:13:00 +01:00
Samuel Thibault
1d19366e15 typo 2024-01-18 02:39:32 +01:00
Samuel Thibault
0adfa09090 typo 2024-01-18 02:36:07 +01:00
sthibaul
7ddeea4205 Merge branch 'data_out_warn' into 'master'
Warn about tunnel buffer being full only once per second

See merge request l2tpns/l2tpns!24
2024-01-18 01:02:56 +00:00
Samuel Thibault
640590a252 cli: Also show local IP 2024-01-17 20:01:27 +01:00
Samuel Thibault
58e04d8f08 cli: Also show remote tunnel id 2024-01-17 13:10:51 +01:00
Samuel Thibault
1f1b8d7b99 Enforce assumption 2024-01-17 00:48:14 +01:00
Samuel Thibault
deed73f28f typo 2024-01-14 18:26:48 +01:00
Samuel Thibault
db17a9a10b cli: Also show routes and ipv6 in session output 2024-01-05 18:40:12 +01:00
Samuel Thibault
3186e8aa99 Add support for easily formatting IPv6 addresses 2024-01-05 18:40:00 +01:00
Samuel Thibault
01f0062d2d cli: Support showing session by login 2024-01-05 18:39:36 +01:00
Samuel Thibault
943717e48d Add needrestart file
To let administrator when to drop all sessions
2024-01-05 14:11:38 +01:00
Samuel Thibault
6be06966e3 Use Makefile rules to generate documentation
And regenerate documentation.
2023-12-24 15:42:03 +01:00
Samuel Thibault
986961ad5d Add missing mp_mrru option in manpage source 2023-12-24 15:33:09 +01:00