l2tplac: fast-forward session that triggered tunnel creation

Previously, when we got a call to be forwarded to another LNS and we didn't
have a tunnel to it yet, we would wait for a PAP/CHAP re-send to trigger the
creation of a session in the fresh tunnel. We do not have to wait, we can
trigger that on SCCCN ack.
This commit is contained in:
Samuel Thibault 2025-03-09 17:08:13 +01:00
parent b409fb7b9d
commit b5c198ae87
3 changed files with 14 additions and 1 deletions

View file

@ -341,6 +341,8 @@ static int lac_create_tunnelsession(tunnelidt t, sessionidt s, confrlnsidt i_con
tunnel[t].window = 4; // default window
tunnel[t].isremotelns = i_conf;
tunnel[t].indexudp = config->indexlacudpfd;
tunn_local[t].initialsession = s;
strncpy(tunn_local[t].initialuser, puser, sizeof(tunn_local[t].initialuser) - 1);
STAT(tunnel_created);
random_data(pconfigrlns[i_conf].auth, sizeof(pconfigrlns[i_conf].auth));
@ -354,7 +356,9 @@ static int lac_create_tunnelsession(tunnelidt t, sessionidt s, confrlnsidt i_con
}
else
{
/** TODO **/
/** TODO: ideally we would queue all sessions waiting for the tunnel to
* be finished creating, to trigger forwarding them all on SCCCN ack,
* not just the initial one **/
LOG(1, 0, t, "(REMOTE LNS) tunnel is not open\n");
}