Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1176587

problems with L2TP

From Sam Protsenko <semen.protsenko@linaro.org>
Newsgroups linux.kernel
Subject problems with L2TP
Date 2015-07-03 16:00 +0200
Message-ID <pI9Fw-KS-19@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


Hi,

I'm having issues running user-space code, which uses net/l2tp/l2tp_ppp.c.
The code is supposed to be running in LAC mode (which is I believe is default).
My server configuration described here: https://wiki.linaro.org/LMG/Kernel/PPP

I was trying to use next code snippets as user-space part:
  1. Code example from comments in net/l2tp/l2tp_ppp.c
  2. Code examples from Documentation/networking/l2tp.txt
  3. Code from this project: http://www.kvack.org/~bcrl/pppol2tp/multihop.c

Basically, I was trying two options for user-space code:
  1. Creating only one sockaddr_pppol2tp, like this:

    <<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>
    session_fd = socket(AF_PPPOX, SOCK_DGRAM, PX_PROTO_OL2TP);
    session_sa.sa_family = AF_PPPOX;
    session_sa.sa_protocol = PX_PROTO_OL2TP;
    session_sa.pppol2tp.fd = udp_fd;
    session_sa.pppol2tp.s_tunnel = local_tunnel;
    session_sa.pppol2tp.s_session = local_session;
    session_sa.pppol2tp.d_tunnel = remote_tunnel;
    session_sa.pppol2tp.d_session = remote_session;
    connect(session_fd, (struct sockaddr *)&session_sa,
            sizeof(session_sa));
    <<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>

    In that case user-space tool was failing on connect() call.

  2. Creating two sockaddr_pppol2tp, like this:

    <<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>

    tunnel_fd = socket(AF_PPPOX, SOCK_DGRAM, PX_PROTO_OL2TP);
    tunnel_sa.sa_family = AF_PPPOX;
    tunnel_sa.sa_protocol = PX_PROTO_OL2TP;
    tunnel_sa.pppol2tp.fd = the_socket; /* UDP socket */
    tunnel_sa.pppol2tp.s_tunnel = local_tunnel;
    tunnel_sa.pppol2tp.s_session = 0; /* special case: mgmt socket */
    tunnel_sa.pppol2tp.d_tunnel = remote_tunnel;
    tunnel_sa.pppol2tp.d_session = 0; /* special case: mgmt socket */
    connect(tunnel_fd, (struct sockaddr *)&tunnel_sa,
            sizeof(tunnel_sa));

    session_fd = socket(AF_PPPOX, SOCK_DGRAM, PX_PROTO_OL2TP);
    session_sa.sa_family = AF_PPPOX;
    session_sa.sa_protocol = PX_PROTO_OL2TP;
    session_sa.pppol2tp.fd = udp_fd;
    session_sa.pppol2tp.s_tunnel = local_tunnel;
    session_sa.pppol2tp.s_session = local_session;
    session_sa.pppol2tp.d_tunnel = remote_tunnel;
    session_sa.pppol2tp.d_session = remote_session;
    connect(session_fd, (struct sockaddr *)&session_sa,
            sizeof(session_sa));
    <<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>

    In this case my user-space tool works fine, but my server shows
next errors in /var/log/syslog:

    <<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>
    Jul  3 16:32:49 joe-laptop xl2tpd[2978]: Can not find tunnel 25061
(refhim=0)
    Jul  3 16:32:49 joe-laptop xl2tpd[2978]: network_thread: unable to
find call or tunnel to handle packet.  call = 48566, tunnel = 25061
Dumping.
    <<<<<<<<<<<<<<<<<<<<<< cut here >>>>>>>>>>>>>>>>>>

UDP socket was created next way (for both cases):
https://android.googlesource.com/platform/external/mtpd/+/0269612ac00a0700997dda333faf0a3c33a388b8/mtpd.c#253

(see the_socket variable in create_socket() function).

So my questions are:
1. Am I doing something wrong in userspace part? Because my server
part is working fine with Android kernel implementation of LAC
(drivers/net/ppp/pppolac.c). When I'm trying to do the same with
mainline kernel implementation of LAC -- I'm having issues described
above.
2. Do we have some testing code for L2TP (particularly LAC)? Or maybe
just some working user-space code sample?

Thanks!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

problems with L2TP Sam Protsenko <semen.protsenko@linaro.org> - 2015-07-03 16:00 +0200
  Re: problems with L2TP Tom Parkin <tparkin@katalix.com> - 2015-07-03 18:00 +0200

csiph-web