Loading include/net/xfrm.h +1 −1 Original line number Diff line number Diff line Loading @@ -803,7 +803,7 @@ struct xfrm_algo_desc { /* XFRM tunnel handlers. */ struct xfrm_tunnel { int (*handler)(struct sk_buff *skb); void (*err_handler)(struct sk_buff *skb, void *info); void (*err_handler)(struct sk_buff *skb, __u32 info); }; struct xfrm6_tunnel { Loading net/ipv4/Kconfig +0 −1 Original line number Diff line number Diff line Loading @@ -235,7 +235,6 @@ config IP_PNP_RARP # bool ' IP: ARP support' CONFIG_IP_PNP_ARP config NET_IPIP tristate "IP: tunneling" select INET_TUNNEL ---help--- Tunneling means encapsulating data of one protocol type within another protocol and sending it over a channel that understands the Loading net/ipv4/ipip.c +32 −4 Original line number Diff line number Diff line Loading @@ -273,7 +273,7 @@ static void ipip_tunnel_uninit(struct net_device *dev) dev_put(dev); } static void ipip_err(struct sk_buff *skb, void *__unused) static void ipip_err(struct sk_buff *skb, u32 info) { #ifndef I_WISH_WORLD_WERE_PERFECT Loading Loading @@ -852,11 +852,39 @@ static int __init ipip_fb_tunnel_init(struct net_device *dev) return 0; } #ifdef CONFIG_INET_TUNNEL static struct xfrm_tunnel ipip_handler = { .handler = ipip_rcv, .err_handler = ipip_err, }; static inline int ipip_register(void) { return xfrm4_tunnel_register(&ipip_handler); } static inline int ipip_unregister(void) { return xfrm4_tunnel_deregister(&ipip_handler); } #else static struct net_protocol ipip_protocol = { .handler = ipip_rcv, .err_handler = ipip_err, .no_policy = 1, }; static inline int ipip_register(void) { return inet_add_protocol(&ipip_protocol, IPPROTO_IPIP); } static inline int ipip_unregister(void) { return inet_del_protocol(&ipip_protocol, IPPROTO_IPIP); } #endif static char banner[] __initdata = KERN_INFO "IPv4 over IPv4 tunneling driver\n"; Loading @@ -866,7 +894,7 @@ static int __init ipip_init(void) printk(banner); if (xfrm4_tunnel_register(&ipip_handler) < 0) { if (ipip_register() < 0) { printk(KERN_INFO "ipip init: can't register tunnel\n"); return -EAGAIN; } Loading @@ -888,13 +916,13 @@ static int __init ipip_init(void) err2: free_netdev(ipip_fb_tunnel_dev); err1: xfrm4_tunnel_deregister(&ipip_handler); ipip_unregister(); goto out; } static void __exit ipip_fini(void) { if (xfrm4_tunnel_deregister(&ipip_handler) < 0) if (ipip_unregister() < 0) printk(KERN_INFO "ipip close: can't deregister tunnel\n"); unregister_netdev(ipip_fb_tunnel_dev); Loading net/ipv4/xfrm4_tunnel.c +1 −2 Original line number Diff line number Diff line Loading @@ -78,10 +78,9 @@ static int ipip_rcv(struct sk_buff *skb) static void ipip_err(struct sk_buff *skb, u32 info) { struct xfrm_tunnel *handler = ipip_handler; u32 arg = info; if (handler) handler->err_handler(skb, &arg); handler->err_handler(skb, info); } static int ipip_init_state(struct xfrm_state *x) Loading net/ipv6/Kconfig +0 −1 Original line number Diff line number Diff line Loading @@ -91,7 +91,6 @@ config INET6_TUNNEL config IPV6_TUNNEL tristate "IPv6: IPv6-in-IPv6 tunnel" depends on IPV6 select INET6_TUNNEL ---help--- Support for IPv6-in-IPv6 tunnels described in RFC 2473. Loading Loading
include/net/xfrm.h +1 −1 Original line number Diff line number Diff line Loading @@ -803,7 +803,7 @@ struct xfrm_algo_desc { /* XFRM tunnel handlers. */ struct xfrm_tunnel { int (*handler)(struct sk_buff *skb); void (*err_handler)(struct sk_buff *skb, void *info); void (*err_handler)(struct sk_buff *skb, __u32 info); }; struct xfrm6_tunnel { Loading
net/ipv4/Kconfig +0 −1 Original line number Diff line number Diff line Loading @@ -235,7 +235,6 @@ config IP_PNP_RARP # bool ' IP: ARP support' CONFIG_IP_PNP_ARP config NET_IPIP tristate "IP: tunneling" select INET_TUNNEL ---help--- Tunneling means encapsulating data of one protocol type within another protocol and sending it over a channel that understands the Loading
net/ipv4/ipip.c +32 −4 Original line number Diff line number Diff line Loading @@ -273,7 +273,7 @@ static void ipip_tunnel_uninit(struct net_device *dev) dev_put(dev); } static void ipip_err(struct sk_buff *skb, void *__unused) static void ipip_err(struct sk_buff *skb, u32 info) { #ifndef I_WISH_WORLD_WERE_PERFECT Loading Loading @@ -852,11 +852,39 @@ static int __init ipip_fb_tunnel_init(struct net_device *dev) return 0; } #ifdef CONFIG_INET_TUNNEL static struct xfrm_tunnel ipip_handler = { .handler = ipip_rcv, .err_handler = ipip_err, }; static inline int ipip_register(void) { return xfrm4_tunnel_register(&ipip_handler); } static inline int ipip_unregister(void) { return xfrm4_tunnel_deregister(&ipip_handler); } #else static struct net_protocol ipip_protocol = { .handler = ipip_rcv, .err_handler = ipip_err, .no_policy = 1, }; static inline int ipip_register(void) { return inet_add_protocol(&ipip_protocol, IPPROTO_IPIP); } static inline int ipip_unregister(void) { return inet_del_protocol(&ipip_protocol, IPPROTO_IPIP); } #endif static char banner[] __initdata = KERN_INFO "IPv4 over IPv4 tunneling driver\n"; Loading @@ -866,7 +894,7 @@ static int __init ipip_init(void) printk(banner); if (xfrm4_tunnel_register(&ipip_handler) < 0) { if (ipip_register() < 0) { printk(KERN_INFO "ipip init: can't register tunnel\n"); return -EAGAIN; } Loading @@ -888,13 +916,13 @@ static int __init ipip_init(void) err2: free_netdev(ipip_fb_tunnel_dev); err1: xfrm4_tunnel_deregister(&ipip_handler); ipip_unregister(); goto out; } static void __exit ipip_fini(void) { if (xfrm4_tunnel_deregister(&ipip_handler) < 0) if (ipip_unregister() < 0) printk(KERN_INFO "ipip close: can't deregister tunnel\n"); unregister_netdev(ipip_fb_tunnel_dev); Loading
net/ipv4/xfrm4_tunnel.c +1 −2 Original line number Diff line number Diff line Loading @@ -78,10 +78,9 @@ static int ipip_rcv(struct sk_buff *skb) static void ipip_err(struct sk_buff *skb, u32 info) { struct xfrm_tunnel *handler = ipip_handler; u32 arg = info; if (handler) handler->err_handler(skb, &arg); handler->err_handler(skb, info); } static int ipip_init_state(struct xfrm_state *x) Loading
net/ipv6/Kconfig +0 −1 Original line number Diff line number Diff line Loading @@ -91,7 +91,6 @@ config INET6_TUNNEL config IPV6_TUNNEL tristate "IPv6: IPv6-in-IPv6 tunnel" depends on IPV6 select INET6_TUNNEL ---help--- Support for IPv6-in-IPv6 tunnels described in RFC 2473. Loading