Merge branch 'l2tp-module-autoloading'
Stephen Hemminger says: ==================== l2tp: module autoloading With L2TP it was necessary to manually load modules which is a nuisance and not required with other tunneling protocols. This set of patches adds the aliases and module load hook to get rid of the necessity of modprobing. ==================== Acked-By: James Chapman <jchapman@katalix.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Коммит
119e359c6f
|
@ -213,15 +213,12 @@ To create an L2TPv3 ethernet pseudowire between local host 192.168.1.1
|
|||
and peer 192.168.1.2, using IP addresses 10.5.1.1 and 10.5.1.2 for the
|
||||
tunnel endpoints:-
|
||||
|
||||
# modprobe l2tp_eth
|
||||
# modprobe l2tp_netlink
|
||||
|
||||
# ip l2tp add tunnel tunnel_id 1 peer_tunnel_id 1 udp_sport 5000 \
|
||||
udp_dport 5000 encap udp local 192.168.1.1 remote 192.168.1.2
|
||||
# ip l2tp add session tunnel_id 1 session_id 1 peer_session_id 1
|
||||
# ifconfig -a
|
||||
# ip -s -d show dev l2tpeth0
|
||||
# ip addr add 10.5.1.2/32 peer 10.5.1.1/32 dev l2tpeth0
|
||||
# ifconfig l2tpeth0 up
|
||||
# ip li set dev l2tpeth0 up
|
||||
|
||||
Choose IP addresses to be the address of a local IP interface and that
|
||||
of the remote system. The IP addresses of the l2tpeth0 interface can be
|
||||
|
|
|
@ -321,4 +321,7 @@ do { \
|
|||
#define l2tp_dbg(ptr, type, fmt, ...) \
|
||||
l2tp_printk(ptr, type, pr_debug, fmt, ##__VA_ARGS__)
|
||||
|
||||
#define MODULE_ALIAS_L2TP_PWTYPE(type) \
|
||||
MODULE_ALIAS("net-l2tp-type-" __stringify(type))
|
||||
|
||||
#endif /* _L2TP_CORE_H_ */
|
||||
|
|
|
@ -358,3 +358,4 @@ MODULE_LICENSE("GPL");
|
|||
MODULE_AUTHOR("James Chapman <jchapman@katalix.com>");
|
||||
MODULE_DESCRIPTION("L2TP ethernet pseudowire driver");
|
||||
MODULE_VERSION("1.0");
|
||||
MODULE_ALIAS_L2TP_PWTYPE(5);
|
||||
|
|
|
@ -655,3 +655,4 @@ MODULE_VERSION("1.0");
|
|||
* enums
|
||||
*/
|
||||
MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET, 2, IPPROTO_L2TP);
|
||||
MODULE_ALIAS_NET_PF_PROTO(PF_INET, IPPROTO_L2TP);
|
||||
|
|
|
@ -801,3 +801,4 @@ MODULE_VERSION("1.0");
|
|||
* enums
|
||||
*/
|
||||
MODULE_ALIAS_NET_PF_PROTO_TYPE(PF_INET6, 2, IPPROTO_L2TP);
|
||||
MODULE_ALIAS_NET_PF_PROTO(PF_INET6, IPPROTO_L2TP);
|
||||
|
|
|
@ -576,6 +576,13 @@ static int l2tp_nl_cmd_session_create(struct sk_buff *skb, struct genl_info *inf
|
|||
if (info->attrs[L2TP_ATTR_MRU])
|
||||
cfg.mru = nla_get_u16(info->attrs[L2TP_ATTR_MRU]);
|
||||
|
||||
#ifdef CONFIG_MODULES
|
||||
if (l2tp_nl_cmd_ops[cfg.pw_type] == NULL) {
|
||||
genl_unlock();
|
||||
request_module("net-l2tp-type-%u", cfg.pw_type);
|
||||
genl_lock();
|
||||
}
|
||||
#endif
|
||||
if ((l2tp_nl_cmd_ops[cfg.pw_type] == NULL) ||
|
||||
(l2tp_nl_cmd_ops[cfg.pw_type]->session_create == NULL)) {
|
||||
ret = -EPROTONOSUPPORT;
|
||||
|
|
|
@ -1863,3 +1863,4 @@ MODULE_DESCRIPTION("PPP over L2TP over UDP");
|
|||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(PPPOL2TP_DRV_VERSION);
|
||||
MODULE_ALIAS("pppox-proto-" __stringify(PX_PROTO_OL2TP));
|
||||
MODULE_ALIAS_L2TP_PWTYPE(11);
|
||||
|
|
Загрузка…
Ссылка в новой задаче