mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 09:19:51 +00:00
![Amerigo Wang](/assets/img/avatar_default.png)
When CONFIG_IPV6=m and CONFIG_L2TP=y, I got the following compile error: LD init/built-in.o net/built-in.o: In function `l2tp_xmit_core': l2tp_core.c:(.text+0x147781): undefined reference to `inet6_csk_xmit' net/built-in.o: In function `l2tp_tunnel_create': (.text+0x149067): undefined reference to `udpv6_encap_enable' net/built-in.o: In function `l2tp_ip6_recvmsg': l2tp_ip6.c:(.text+0x14e991): undefined reference to `ipv6_recv_error' net/built-in.o: In function `l2tp_ip6_sendmsg': l2tp_ip6.c:(.text+0x14ec64): undefined reference to `fl6_sock_lookup' l2tp_ip6.c:(.text+0x14ed6b): undefined reference to `datagram_send_ctl' l2tp_ip6.c:(.text+0x14eda0): undefined reference to `fl6_sock_lookup' l2tp_ip6.c:(.text+0x14ede5): undefined reference to `fl6_merge_options' l2tp_ip6.c:(.text+0x14edf4): undefined reference to `ipv6_fixup_options' l2tp_ip6.c:(.text+0x14ee5d): undefined reference to `fl6_update_dst' l2tp_ip6.c:(.text+0x14eea3): undefined reference to `ip6_dst_lookup_flow' l2tp_ip6.c:(.text+0x14eee7): undefined reference to `ip6_dst_hoplimit' l2tp_ip6.c:(.text+0x14ef8b): undefined reference to `ip6_append_data' l2tp_ip6.c:(.text+0x14ef9d): undefined reference to `ip6_flush_pending_frames' l2tp_ip6.c:(.text+0x14efe2): undefined reference to `ip6_push_pending_frames' net/built-in.o: In function `l2tp_ip6_destroy_sock': l2tp_ip6.c:(.text+0x14f090): undefined reference to `ip6_flush_pending_frames' l2tp_ip6.c:(.text+0x14f0a0): undefined reference to `inet6_destroy_sock' net/built-in.o: In function `l2tp_ip6_connect': l2tp_ip6.c:(.text+0x14f14d): undefined reference to `ip6_datagram_connect' net/built-in.o: In function `l2tp_ip6_bind': l2tp_ip6.c:(.text+0x14f4fe): undefined reference to `ipv6_chk_addr' net/built-in.o: In function `l2tp_ip6_init': l2tp_ip6.c:(.init.text+0x73fa): undefined reference to `inet6_add_protocol' l2tp_ip6.c:(.init.text+0x740c): undefined reference to `inet6_register_protosw' net/built-in.o: In function `l2tp_ip6_exit': l2tp_ip6.c:(.exit.text+0x1954): undefined reference to `inet6_unregister_protosw' l2tp_ip6.c:(.exit.text+0x1965): undefined reference to `inet6_del_protocol' net/built-in.o:(.rodata+0xf2d0): undefined reference to `inet6_release' net/built-in.o:(.rodata+0xf2d8): undefined reference to `inet6_bind' net/built-in.o:(.rodata+0xf308): undefined reference to `inet6_ioctl' net/built-in.o:(.data+0x1af40): undefined reference to `ipv6_setsockopt' net/built-in.o:(.data+0x1af48): undefined reference to `ipv6_getsockopt' net/built-in.o:(.data+0x1af50): undefined reference to `compat_ipv6_setsockopt' net/built-in.o:(.data+0x1af58): undefined reference to `compat_ipv6_getsockopt' make: *** [vmlinux] Error 1 This is due to l2tp uses symbols from IPV6, so when IPV6 is a module, l2tp is not allowed to be builtin. Cc: David Miller <davem@davemloft.net> Signed-off-by: Cong Wang <amwang@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
108 lines
3.6 KiB
Text
108 lines
3.6 KiB
Text
#
|
|
# Layer Two Tunneling Protocol (L2TP)
|
|
#
|
|
|
|
menuconfig L2TP
|
|
tristate "Layer Two Tunneling Protocol (L2TP)"
|
|
depends on (IPV6 || IPV6=n)
|
|
depends on INET
|
|
---help---
|
|
Layer Two Tunneling Protocol
|
|
|
|
From RFC 2661 <http://www.ietf.org/rfc/rfc2661.txt>.
|
|
|
|
L2TP facilitates the tunneling of packets across an
|
|
intervening network in a way that is as transparent as
|
|
possible to both end-users and applications.
|
|
|
|
L2TP is often used to tunnel PPP traffic over IP
|
|
tunnels. One IP tunnel may carry thousands of individual PPP
|
|
connections. L2TP is also used as a VPN protocol, popular
|
|
with home workers to connect to their offices.
|
|
|
|
L2TPv3 allows other protocols as well as PPP to be carried
|
|
over L2TP tunnels. L2TPv3 is defined in RFC 3931
|
|
<http://www.ietf.org/rfc/rfc3931.txt>.
|
|
|
|
The kernel component handles only L2TP data packets: a
|
|
userland daemon handles L2TP the control protocol (tunnel
|
|
and session setup). One such daemon is OpenL2TP
|
|
(http://openl2tp.org/).
|
|
|
|
If you don't need L2TP, say N. To compile all L2TP code as
|
|
modules, choose M here.
|
|
|
|
config L2TP_DEBUGFS
|
|
tristate "L2TP debugfs support"
|
|
depends on L2TP && DEBUG_FS
|
|
help
|
|
Support for l2tp directory in debugfs filesystem. This may be
|
|
used to dump internal state of the l2tp drivers for problem
|
|
analysis.
|
|
|
|
If unsure, say 'Y'.
|
|
|
|
To compile this driver as a module, choose M here. The module
|
|
will be called l2tp_debugfs.
|
|
|
|
config L2TP_V3
|
|
bool "L2TPv3 support (EXPERIMENTAL)"
|
|
depends on EXPERIMENTAL && L2TP
|
|
help
|
|
Layer Two Tunneling Protocol Version 3
|
|
|
|
From RFC 3931 <http://www.ietf.org/rfc/rfc3931.txt>.
|
|
|
|
The Layer Two Tunneling Protocol (L2TP) provides a dynamic
|
|
mechanism for tunneling Layer 2 (L2) "circuits" across a
|
|
packet-oriented data network (e.g., over IP). L2TP, as
|
|
originally defined in RFC 2661, is a standard method for
|
|
tunneling Point-to-Point Protocol (PPP) [RFC1661] sessions.
|
|
L2TP has since been adopted for tunneling a number of other
|
|
L2 protocols, including ATM, Frame Relay, HDLC and even raw
|
|
ethernet frames.
|
|
|
|
If you are connecting to L2TPv3 equipment, or you want to
|
|
tunnel raw ethernet frames using L2TP, say Y here. If
|
|
unsure, say N.
|
|
|
|
config L2TP_IP
|
|
tristate "L2TP IP encapsulation for L2TPv3"
|
|
depends on L2TP_V3
|
|
help
|
|
Support for L2TP-over-IP socket family.
|
|
|
|
The L2TPv3 protocol defines two possible encapsulations for
|
|
L2TP frames, namely UDP and plain IP (without UDP). This
|
|
driver provides a new L2TPIP socket family with which
|
|
userspace L2TPv3 daemons may create L2TP/IP tunnel sockets
|
|
when UDP encapsulation is not required. When L2TP is carried
|
|
in IP packets, it used IP protocol number 115, so this port
|
|
must be enabled in firewalls.
|
|
|
|
To compile this driver as a module, choose M here. The module
|
|
will be called l2tp_ip.
|
|
|
|
config L2TP_ETH
|
|
tristate "L2TP ethernet pseudowire support for L2TPv3"
|
|
depends on L2TP_V3
|
|
help
|
|
Support for carrying raw ethernet frames over L2TPv3.
|
|
|
|
From RFC 4719 <http://www.ietf.org/rfc/rfc4719.txt>.
|
|
|
|
The Layer 2 Tunneling Protocol, Version 3 (L2TPv3) can be
|
|
used as a control protocol and for data encapsulation to set
|
|
up Pseudowires for transporting layer 2 Packet Data Units
|
|
across an IP network [RFC3931].
|
|
|
|
This driver provides an ethernet virtual interface for each
|
|
L2TP ethernet pseudowire instance. Standard Linux tools may
|
|
be used to assign an IP address to the local virtual
|
|
interface, or add the interface to a bridge.
|
|
|
|
If you are using L2TPv3, you will almost certainly want to
|
|
enable this option.
|
|
|
|
To compile this driver as a module, choose M here. The module
|
|
will be called l2tp_eth.
|