summaryrefslogtreecommitdiff
path: root/accel-pppd/session.c
diff options
context:
space:
mode:
authorGuillaume Nault <g.nault@alphalink.fr>2014-02-06 17:21:22 +0100
committerDmitry Kozlov <xeb@mail.ru>2014-02-08 09:31:00 +0400
commit121194393d17efd00e34947dc064a572f80e7cfa (patch)
tree9ff46a5b72abb0524f2a98f1ca6530a01b18e30f /accel-pppd/session.c
parent74ce7e07a4a9e65f2cc641897bafe2d26c394b75 (diff)
downloadaccel-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