Age | Commit message (Collapse) | Author |
|
Deactivate the tunnel connection establishment timer upon
reception of SCCCN messages and use a new session specific
timer for session establishment.
This new session timer follows the same behaviour as the
tunnel timeout timer: it is activated when sending the ICRP
message and deactivated upon reception of the corresponding
ICCN message.
This approach is necessary for handling several sessions per
tunnel, but it generates the following side effect: if a
tunnel is created but no session establishment is requested
from the LAC, the tunnel will no longer be automatically torn
down (since the tunnel is correctly set up, its timer is no
longer running, but since no session establishment process
has been started, there is no session timer neither).
Later on, tunnel and session timers could be turned into
inactivity timeouts to address this limitation.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Separate tunnels and sessions allocation: initialise tunnels
after receiving SCCRQ messages (with no session inside), then
initialise sessions upon reception of ICRQ messages.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Pass a struct l2tp_sess_t as parameter of functions acting on
sessions, instead of retrieving the session from an l2tp_conn_t
structure (which will no longer be possible once tunnels will
handle several sessions).
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
When a PPP connection is torn down, close the underlying session
but not the tunnel (unless its last session has been closed).
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Make HELLO messages independent from PPP connections (HELLO
messages are tunnel specific).
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Split StopCCN message building/sending from l2tp_terminate to
make it re-usable.
Rename l2tp_terminate() to l2tp_tunnel_disconnect() for
consistency with other tunnel/session management functions.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Implement CDN message sending in order to give the possibility
to close a session without closing the underlying tunnel (close
a tunnel only when closing its last session, which is always the
case as long as session-multiplexing is not implemented).
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Use the "state" field (struct l2tp_conn_t) for tracking tunnel
states and "state1" (struct l2tp_sess_t) for sessions. The
meaning of the STATE_* has been slightly modified:
* STATE_WAIT_SCCN (tunnel): no modification.
* STATE_WAIT_ICRQ (session): now unused. Acceptation of ICRQ
messages now depend on the tunnel state (STATE_ESTB).
* STATE_WAIT_ICCN (session): no modification.
* STATE_ESTB (tunnel and session): for tunnels, means that the
tunnel is ready to accept new sessions. For sessions, means
that the L2TP session is established, but that it doesn't
carry any PPP session yet.
* STATE_PPP (session): the session is in use (i.e. it is
established and carries a PPP session).
* STATE_FIN (tunnel): the tunnel is being closed.
* STATE_CLOSE (tunnel and session): default state after
allocation/free. For session, this is also the state
used once disconnected.
Since outgoing calls are not implemented yet, STATE_WAIT_OCRP and
STATE_WAIT_OCCN are not used.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Establish tunnel and session connections upon reception of SCCCN
and ICCN messages respectively.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Rename l2tp_disconnect() to l2tp_tunnel_free() for consistency
with the new l2tp_session_free() function.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Move session specific operations out of l2tp_disconnect().
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Separate session allocation from the rest of tunnel allocation
operations. This implies a few extra modifications:
* Store destination address of the SCCRQ message in the
connection structure (and rename the "addr" field to
"lac_addr" for consistency). This information is required
for allocating the session.
* No more PPP information in log prefix: with session
multiplexing, tunnels are no longer tied to a single PPP
session, so there is no struct ppp_t to pass as parameter
to the log_switch() function.
Session allocation is currently still done inside
l2tp_tunnel_alloc(). It should rather be done at session
establishment once tunnel/session separation will be terminated.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Use struct l2tp_sess_t to separate session data from other
connection information. This is required in order to implement
session multiplexing.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
Fix several errors and compiler warnings in format string
arguments.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
ssh://accel-ppp.git.sourceforge.net/gitroot/accel-ppp/accel-ppp
|
|
|
|
Stop sending messages on tunnels for which no peer is listening.
Discard retransmissions too.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
|
|
|
|
ipoe: use user paaword same is user name
|
|
|
|
|
|
|
|
ipoe: implemented client address, router address and mask to be passed via radius
|
|
|
|
|
|
Add error detection to ensure the FD_CLOEXEC flag gets set for
every new socket.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
* commit 'e04b9b2b35ed36ceb89d6991d2322210f6dd6abc':
L2TP: Close sockets opened by l2tp_connect() upon failure
|
|
* commit '0b99fef73bce3f1abed63e581594de9d1f132312':
L2TP: Fix socket() error handling in l2tp_connect()
iprange: accept network with null mask (which actually disables iprange module)
|
|
Add error detection to ensure the FD_CLOEXEC flag gets set for
every new socket.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Centralise error management to ensure full cleanup upon failure.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
Check if the tunnel file descriptor has been successfully created.
Explicitely check for negative values to detect socket() errors.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
|
|
|
|
|
|
|
|
|
|
cli: introduced 'restart' command to restrat daemon
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Low interface creation/deletion rate is kernel issue and should be fixed in 3.5.
This reverts commit 9ae4a0151805229face3385e6c966de90c7fec29.
|