<feed xmlns='http://www.w3.org/2005/Atom'>
<title>accel-ppp.git/accel-pppd/ctrl/pppoe/pppoe.c, branch sstp-alloc-invariant</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=sstp-alloc-invariant</id>
<link rel='self' href='https://git.amelek.net/accel-ppp/accel-ppp.git/atom?h=sstp-alloc-invariant'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/'/>
<updated>2026-06-23T15:58:26+00:00</updated>
<entry>
<title>Merge pull request #323 from nuclearcat/stability-fixes</title>
<updated>2026-06-23T15:58:26+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2026-06-23T15:58:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=5787a45a952c021f697b31abe0063013912d7c8b'/>
<id>urn:sha1:5787a45a952c021f697b31abe0063013912d7c8b</id>
<content type='text'>
Stability fixes</content>
</entry>
<entry>
<title>pppoe: handle missing service-name tag</title>
<updated>2026-06-23T14:36:34+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2026-06-23T14:30:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=4deb615d7bd7134dd15686b9ea4239f73e20009e'/>
<id>urn:sha1:4deb615d7bd7134dd15686b9ea4239f73e20009e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rejecting any PADR lacking a Service-Name tag (RFC 2516 compliance)</title>
<updated>2026-05-29T05:58:41+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2026-05-29T05:58:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=f8dfbeca348d9f4eb794cdf3756a94f2d0acc730'/>
<id>urn:sha1:f8dfbeca348d9f4eb794cdf3756a94f2d0acc730</id>
<content type='text'>
Signed-off-by: Denys Fedoryshchenko &lt;denys.f@collabora.com&gt;
</content>
</entry>
<entry>
<title>session: encapsulate statistics counters</title>
<updated>2026-05-04T00:09:49+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2026-04-29T12:21:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=d6383d69813cf2244f31d8116176733ffbbeaceb'/>
<id>urn:sha1:d6383d69813cf2244f31d8116176733ffbbeaceb</id>
<content type='text'>
Group the core session starting, active, and finishing statistics behind the private ap_session_stat storage in session.c instead of exposing writable counters through ap_session.h. This keeps ownership inside the session core while preserving the existing CLI and ACCEL-PPP-MIB counter semantics.

Route session counter updates through ap_session_stat_*() helpers. Session start, activation, termination, finish, and shutdown-idle paths no longer open-code individual counter increments/decrements; the update policy now lives beside the session-owned storage and uses relaxed atomic operations for the simple state counters.

Make the CLI show-stat path render from a local snapshot and convert the PPP SNMP starting/active/finishing scalars from watched raw pointers to scalar handlers. PPP controllers now read max-session limits through ap_session_stat_starting() and ap_session_stat_active(), removing external direct access to ap_session_stat.

Signed-off-by: Denys Fedoryshchenko &lt;denys.f@collabora.com&gt;
</content>
</entry>
<entry>
<title>pppoe: encapsulate statistics counters</title>
<updated>2026-05-04T00:09:49+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2026-04-29T10:12:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=d28a24252f0df8c8babf3a7321f303d3298029fc'/>
<id>urn:sha1:d28a24252f0df8c8babf3a7321f303d3298029fc</id>
<content type='text'>
Group the PPPoE statistics in struct pppoe_stat_t and keep the storage private to pppoe.c instead of exporting writable counter globals through pppoe.h.  The CLI now reads a snapshot with pppoe_stat_get(), while the packet/control paths update the counters through the PPPoE-owned storage using relaxed atomic operations.

Convert the PPPoE SNMP starting/active scalars from watched raw pointers to scalar handlers.  This removes the old pppoe_get_stat() pointer escape hatch and makes SNMP read the counters through pppoe_stat_starting() and pppoe_stat_active(), so the synchronization policy is applied consistently outside the PPPoE module.

This also fixes the long-standing PPPoE starting counter behavior.  PPPoE used to expose starting in the CLI and ACCEL-PPP-MIB, but never updated it, so it always reported zero.  Track a per-connection ppp_starting state, increment starting when the controller begins channel setup, move the session from starting to active after establish_ppp() succeeds, and decrement starting on setup failure before PPP becomes active.  This matches the state accounting used by the other PPP controllers.

Signed-off-by: Denys Fedoryshchenko &lt;denys.f@collabora.com&gt;
</content>
</entry>
<entry>
<title>Remove unused printf.h include</title>
<updated>2026-02-22T20:20:20+00:00</updated>
<author>
<name>marekm72</name>
<email>35698605+marekm72@users.noreply.github.com</email>
</author>
<published>2026-02-22T20:20:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=ff0255002bdba64e48b628a32224c9a5ecd554b9'/>
<id>urn:sha1:ff0255002bdba64e48b628a32224c9a5ecd554b9</id>
<content type='text'>
Removed conditional inclusion of printf.h.</content>
</entry>
<entry>
<title>Merge pull request #277 from nuclearcat/minor-rfc2516-compliance</title>
<updated>2025-12-13T15:25:13+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2025-12-13T15:25:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=0a5ac7f881103367daa8cf5d70cc55fd8f952fdb'/>
<id>urn:sha1:0a5ac7f881103367daa8cf5d70cc55fd8f952fdb</id>
<content type='text'>
pppoe: Fix RFC2516 non-compilance in PADI tags parsing</content>
</entry>
<entry>
<title>pppoe: Fix RFC2516 non-compilance in PADI tags parsing</title>
<updated>2025-12-10T23:01:05+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2025-12-10T22:59:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=6fbb4a900c17c28ecf2f6d0b620cfffe5bdd6b39'/>
<id>urn:sha1:6fbb4a900c17c28ecf2f6d0b620cfffe5bdd6b39</id>
<content type='text'>
We currently only break out of the switch, so the for loop keeps parsing tags after TAG_END_OF_LIST (accel-pppd/ctrl/pppoe/pppoe.c: around pppoe_recv_PADI).
RFC 2516 (paragraph 5, Tag Types: End-of-List) says an End-of-List tag MAY appear in PADI/PADR and "any TAGs after an End-of-List MUST be ignored."
Since we continue processing them, this behavior is technically non-compliant with the RFC.
Same in pppoe_recv_PADR.

Signed-off-by: Denys Fedoryshchenko &lt;denys.f@collabora.com&gt;
</content>
</entry>
<entry>
<title>crypto: Removed internal tomcat crypto.</title>
<updated>2025-12-10T17:16:42+00:00</updated>
<author>
<name>Andrii Melnychenko</name>
<email>a.melnychenko@vyos.io</email>
</author>
<published>2025-09-29T16:14:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=c912d09018828745e3bcba268cd02a611e324d54'/>
<id>urn:sha1:c912d09018828745e3bcba268cd02a611e324d54</id>
<content type='text'>
Signed-off-by: Andrii Melnychenko &lt;a.melnychenko@vyos.io&gt;
</content>
</entry>
<entry>
<title>pppoe: add missing break, ignore vendor-specific tags when parsing PADR</title>
<updated>2025-11-23T14:13:23+00:00</updated>
<author>
<name>Denys Fedoryshchenko</name>
<email>denys.f@collabora.com</email>
</author>
<published>2025-11-12T05:29:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/accel-ppp/accel-ppp.git/commit/?id=d7e6984c74be8de8803f5ab3f51242d101464a1c'/>
<id>urn:sha1:d7e6984c74be8de8803f5ab3f51242d101464a1c</id>
<content type='text'>
Added an explicit break after handling TAG_VENDOR_SPECIFIC,
so vendor-specific PADR tags (e.g., TR-101) no longer fall
through and get misinterpreted as other tags like TAG_PPP_MAX_PAYLOAD.

Signed-off-by: Denys Fedoryshchenko &lt;denys.f@collabora.com&gt;
</content>
</entry>
</feed>
