Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1176587
| 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 |
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 | Next — Next in thread | Find similar | Unroll 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