diff options
author | Guillaume Nault <g.nault@alphalink.fr> | 2014-04-08 23:06:57 +0200 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2014-04-11 06:47:42 +0400 |
commit | 6677ca651c0c014375b71acda296c7f565878336 (patch) | |
tree | f0b4c3ef2147a5a42627b4011d8b5cbdc07a67cf /accel-pppd/accel-ppp.conf.5 | |
parent | 635005576438e092415683179997d002dcbfe344 (diff) | |
download | accel-ppp-6677ca651c0c014375b71acda296c7f565878336.tar.gz accel-ppp-6677ca651c0c014375b71acda296c7f565878336.zip |
l2tp: implement local receive window
Add a fixed length receive queue to tunnels and adverdise its length to
the peer using the Receive Window Size AVP.
Incoming message handling is modified as follow:
-Read as much messages as possible and store them in the receive queue.
Messages are stored in order, based on their sequence number. Messages
not fitting into the queue are discarded (doesn't happen if peer
respects our Receive Window AVP). This is the job of the new
l2tp_tunnel_store_msg() function. It also automatically finds out if
there are new messages to acknowledge.
-Once all incoming messages have been read, free acknowledged packets
from retransmission queue (based on the highest received
acknowledgement number).
-Then process messages in the receive queue. This is done by
l2tp_tunnel_reply(). Each packet is processed by
l2tp_{tunnel,session}_recv() (or dropped in some particular cases).
The send queue is then pushed. If there's no message in the send
queue and an acknowledgement is necessary, a ZLB is sent instead.
-Finally, detect if the peer has acknowledged a StopCCN. There are
three components to this test:
-Have we tried to send a StopCCN? Check with tunnel's state.
-Has the StopCCN been pushed on the network? Check with tunnel's
send queue.
-Has the peer acknowledged the StopCCN? Check with tunnel's
retransmission queue.
For now, l2tp_tunnel_store_msg() doesn't perform fast retransmissions.
So l2tp_retransmit() is removed.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Diffstat (limited to 'accel-pppd/accel-ppp.conf.5')
0 files changed, 0 insertions, 0 deletions