diff options
author | Guillaume Nault <g.nault@alphalink.fr> | 2014-02-06 17:21:22 +0100 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2014-02-08 09:31:00 +0400 |
commit | 121194393d17efd00e34947dc064a572f80e7cfa (patch) | |
tree | 9ff46a5b72abb0524f2a98f1ca6530a01b18e30f /accel-pppd/session.c | |
parent | 74ce7e07a4a9e65f2cc641897bafe2d26c394b75 (diff) | |
download | accel-ppp-121194393d17efd00e34947dc064a572f80e7cfa.tar.gz accel-ppp-121194393d17efd00e34947dc064a572f80e7cfa.zip |
l2tp: launch session data channels in their own context
Split L2TP control and data channels operations. The data channel of an
L2TP session now runs in its own triton context.
The L2TP control session initialises and launches the data channel
context in l2tp_session_start_data_channel(). Then all data channel
operations (e.g. PPP negociation) are performed in this context.
When the data channel stops, it checks if the control channel is still
running; if so, it notifies the control channel about its disconnection
using the l2tp_session_apses_finished() callback.
The control channel similarly checks for data channel execution and
notifies about L2TP layer disconnection using apses_stop().
Since the presence of the data channel is checked using its context
field, the STATE_PPP state isn't required anymore. So L2TP control
sessions now automatically enter STATE_ESTB in l2tp_session_connect().
A new set of states (APSTATE_*) are defined for tracking evolution of
data channels. Data channels also handle statistics using these new
states.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Diffstat (limited to 'accel-pppd/session.c')
0 files changed, 0 insertions, 0 deletions