<feed xmlns='http://www.w3.org/2005/Atom'>
<title>accel-ppp.git/drivers/ipoe/ipoe.h, branch 1.15.0</title>
<subtitle>High performance PPTP/L2TP/SSTP/PPPoE/IPoE server for Linux (mirror of https://github.com/accel-ppp/accel-ppp.git)
</subtitle>
<id>https://git.amelek.net/accel-ppp/accel-ppp.git/atom?h=1.15.0</id>
<link rel='self' href='https://git.amelek.net/accel-ppp/accel-ppp.git/atom?h=1.15.0'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/'/>
<updated>2026-08-08T14:47:49+00:00</updated>
<entry>
<title>ipoe: flush sessions left by a previous instance with a single command</title>
<updated>2026-08-08T14:47:49+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2026-08-08T14:47:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=6693d18ae0232da2c6febc0decf099e4fd064381'/>
<id>urn:sha1:6693d18ae0232da2c6febc0decf099e4fd064381</id>
<content type='text'>
On startup accel-pppd is expected to drop everything a previous instance
left behind in the kernel. For sessions it did so by dumping them with
IPOE_CMD_GET and sending one IPOE_CMD_DELETE per ifindex. That dump was
written for the session backup code removed in 1972a7e5c and was never
adapted to its new, destructive role:

 - it was issued on the socket subscribed to the packet multicast group,
   so it competed with the notifications that the still attached stale
   rx handlers keep generating; on a loaded box the receive buffer
   overruns and rtnl_dump_filter() gives up with ENOBUFS,
 - its return value was discarded, so such a failure was silent,
 - it ran before the interfaces were detached, which is what produces
   those notifications in the first place,
 - it was skipped entirely when the multicast group could not be
   resolved, again with nothing but a warning about packet handling,
 - and every session cost a socket, a round trip, a grace period and a
   full unregister_netdev().

Whatever it missed stays in the kernel forever: the daemon has no record
of those sessions, so nothing ever deletes them, and every subscriber
later assigned one of their addresses is refused with EEXIST by
IPOE_CMD_MODIFY.

Add IPOE_CMD_FLUSH, which unlinks all sessions in one go, waits for a
single grace period and unregisters the devices with
unregister_netdevice_many(), and use it instead. The old path is kept as
a fallback for a module predating the command, which is reported as
EOPNOTSUPP, and now checks its return value and uses a private socket.

Reorder init() so the interfaces are detached before the multicast group
is joined, and so the flush also runs when only the group lookup failed.
</content>
</entry>
<entry>
<title>ipoe: implemented starting UP session by arp request</title>
<updated>2016-03-18T20:15:20+00:00</updated>
<author>
<name>Dmitry Kozlov</name>
<email>xeb@mail.ru</email>
</author>
<published>2016-03-18T20:15:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=aa4ed7b9c637b70dc42a180b918fb4adb3e32d74'/>
<id>urn:sha1:aa4ed7b9c637b70dc42a180b918fb4adb3e32d74</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ipoe: restored local-net function</title>
<updated>2016-03-18T12:22:55+00:00</updated>
<author>
<name>Dmitry Kozlov</name>
<email>xeb@mail.ru</email>
</author>
<published>2016-03-18T12:22:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=d9e66279652a9e6639d5a82581bcc0fd7d999aff'/>
<id>urn:sha1:d9e66279652a9e6639d5a82581bcc0fd7d999aff</id>
<content type='text'>
local-net is used to filter incomming packets which may start UP session
</content>
</entry>
<entry>
<title>ipoe: many many changes</title>
<updated>2016-03-13T08:33:14+00:00</updated>
<author>
<name>Dmitry Kozlov</name>
<email>xeb@mail.ru</email>
</author>
<published>2016-03-12T21:20:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=c45b00d84de954d7f27fc7dce2909fab198cc298'/>
<id>urn:sha1:c45b00d84de954d7f27fc7dce2909fab198cc298</id>
<content type='text'>
</content>
</entry>
<entry>
<title>split ipoe driver to ipoe and vlan_mon</title>
<updated>2015-11-21T09:34:02+00:00</updated>
<author>
<name>Dmitry Kozlov</name>
<email>xeb@mail.ru</email>
</author>
<published>2015-11-21T09:34:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=9190fe47e0ce57e8f0b3360f2fe0404169b44263'/>
<id>urn:sha1:9190fe47e0ce57e8f0b3360f2fe0404169b44263</id>
<content type='text'>
introduced new module "vlan-mon"
</content>
</entry>
<entry>
<title>ipoe: fixed passing packets in 'redirect on reject' mode</title>
<updated>2014-07-17T10:17:38+00:00</updated>
<author>
<name>Dmitry Kozlov</name>
<email>xeb@mail.ru</email>
</author>
<published>2014-07-17T10:16:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=35149a848e169a7717d30537b54770e513a34679'/>
<id>urn:sha1:35149a848e169a7717d30537b54770e513a34679</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ipoe: fixed race during receiving relay reply</title>
<updated>2013-08-31T19:05:29+00:00</updated>
<author>
<name>Dmitry Kozlov</name>
<email>xeb@mail.ru</email>
</author>
<published>2013-08-31T19:05:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=4990a892f474fba052bd884aa8f4c072e6a42c5e'/>
<id>urn:sha1:4990a892f474fba052bd884aa8f4c072e6a42c5e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ipoe: accept packets only from specified interfaces</title>
<updated>2013-04-19T09:27:21+00:00</updated>
<author>
<name>Kozlov Dmitry</name>
<email>xeb@mail.ru</email>
</author>
<published>2013-04-19T09:27:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=bff0ea1c99ff68ca6f1ab58dcdfa0054caf42fca'/>
<id>urn:sha1:bff0ea1c99ff68ca6f1ab58dcdfa0054caf42fca</id>
<content type='text'>
</content>
</entry>
<entry>
<title>futher session backup implementation</title>
<updated>2012-07-11T11:01:23+00:00</updated>
<author>
<name>Kozlov Dmitry</name>
<email>xeb@mail.ru</email>
</author>
<published>2012-07-11T11:01:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=641e9de3e2ccbd7607ffb90e258c02635fe2616b'/>
<id>urn:sha1:641e9de3e2ccbd7607ffb90e258c02635fe2616b</id>
<content type='text'>
cli: introduced 'restart' command to restrat daemon
</content>
</entry>
<entry>
<title>ipoe: integrating accel-pppd and ipoe kernel module</title>
<updated>2012-07-02T15:18:00+00:00</updated>
<author>
<name>Kozlov Dmitry</name>
<email>xeb@mail.ru</email>
</author>
<published>2012-07-02T15:18:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=046642d5729493b25e5fba4b11c507fe3d2e2687'/>
<id>urn:sha1:046642d5729493b25e5fba4b11c507fe3d2e2687</id>
<content type='text'>
</content>
</entry>
</feed>
