ipv6: Move ipv6 stubs to a separate header file
The number of stubs is growing and has nothing to do with addrconf. Move the definition of the stubs to a separate header file and update users. In the move, drop the vxlan specific comment before ipv6_stub. Code move only; no functional change intended. Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5f4d6749c0
commit
3616d08bcb
|
@ -42,7 +42,7 @@
|
|||
#include <net/neighbour.h>
|
||||
#include <net/route.h>
|
||||
#include <net/netevent.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <rdma/ib_addr.h>
|
||||
#include <rdma/ib_sa.h>
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include <net/tc_act/tc_pedit.h>
|
||||
#include <net/tc_act/tc_csum.h>
|
||||
#include <net/arp.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include "en.h"
|
||||
#include "en_rep.h"
|
||||
#include "en_tc.h"
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include <linux/module.h>
|
||||
#include <linux/etherdevice.h>
|
||||
#include <linux/hash.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include <net/dst_metadata.h>
|
||||
#include <net/gro_cells.h>
|
||||
#include <net/rtnetlink.h>
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <linux/usb/cdc_ncm.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
|
||||
/* alternative VLAN for IP session 0 if not untagged */
|
||||
#define MBIM_IPS0_VID 4094
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/ethtool.h>
|
||||
#include <net/arp.h>
|
||||
#include <net/ndisc.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include <net/ip.h>
|
||||
#include <net/icmp.h>
|
||||
#include <net/rtnetlink.h>
|
||||
|
|
|
@ -238,53 +238,6 @@ bool ipv6_chk_mcast_addr(struct net_device *dev, const struct in6_addr *group,
|
|||
|
||||
void ipv6_mc_dad_complete(struct inet6_dev *idev);
|
||||
|
||||
/* A stub used by vxlan module. This is ugly, ideally these
|
||||
* symbols should be built into the core kernel.
|
||||
*/
|
||||
struct ipv6_stub {
|
||||
int (*ipv6_sock_mc_join)(struct sock *sk, int ifindex,
|
||||
const struct in6_addr *addr);
|
||||
int (*ipv6_sock_mc_drop)(struct sock *sk, int ifindex,
|
||||
const struct in6_addr *addr);
|
||||
int (*ipv6_dst_lookup)(struct net *net, struct sock *sk,
|
||||
struct dst_entry **dst, struct flowi6 *fl6);
|
||||
int (*ipv6_route_input)(struct sk_buff *skb);
|
||||
|
||||
struct fib6_table *(*fib6_get_table)(struct net *net, u32 id);
|
||||
struct fib6_info *(*fib6_lookup)(struct net *net, int oif,
|
||||
struct flowi6 *fl6, int flags);
|
||||
struct fib6_info *(*fib6_table_lookup)(struct net *net,
|
||||
struct fib6_table *table,
|
||||
int oif, struct flowi6 *fl6,
|
||||
int flags);
|
||||
struct fib6_info *(*fib6_multipath_select)(const struct net *net,
|
||||
struct fib6_info *f6i,
|
||||
struct flowi6 *fl6, int oif,
|
||||
const struct sk_buff *skb,
|
||||
int strict);
|
||||
u32 (*ip6_mtu_from_fib6)(struct fib6_info *f6i, struct in6_addr *daddr,
|
||||
struct in6_addr *saddr);
|
||||
|
||||
void (*udpv6_encap_enable)(void);
|
||||
void (*ndisc_send_na)(struct net_device *dev, const struct in6_addr *daddr,
|
||||
const struct in6_addr *solicited_addr,
|
||||
bool router, bool solicited, bool override, bool inc_opt);
|
||||
struct neigh_table *nd_tbl;
|
||||
};
|
||||
extern const struct ipv6_stub *ipv6_stub __read_mostly;
|
||||
|
||||
/* A stub used by bpf helpers. Similarly ugly as ipv6_stub */
|
||||
struct ipv6_bpf_stub {
|
||||
int (*inet6_bind)(struct sock *sk, struct sockaddr *uaddr, int addr_len,
|
||||
bool force_bind_address_no_port, bool with_lock);
|
||||
struct sock *(*udp6_lib_lookup)(struct net *net,
|
||||
const struct in6_addr *saddr, __be16 sport,
|
||||
const struct in6_addr *daddr, __be16 dport,
|
||||
int dif, int sdif, struct udp_table *tbl,
|
||||
struct sk_buff *skb);
|
||||
};
|
||||
extern const struct ipv6_bpf_stub *ipv6_bpf_stub __read_mostly;
|
||||
|
||||
/*
|
||||
* identify MLD packets for MLD filter exceptions
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef _IPV6_STUBS_H
|
||||
#define _IPV6_STUBS_H
|
||||
|
||||
#include <linux/in6.h>
|
||||
#include <linux/netdevice.h>
|
||||
#include <linux/skbuff.h>
|
||||
#include <net/dst.h>
|
||||
#include <net/flow.h>
|
||||
#include <net/neighbour.h>
|
||||
#include <net/sock.h>
|
||||
|
||||
/* structs from net/ip6_fib.h */
|
||||
struct fib6_info;
|
||||
|
||||
/* This is ugly, ideally these symbols should be built
|
||||
* into the core kernel.
|
||||
*/
|
||||
struct ipv6_stub {
|
||||
int (*ipv6_sock_mc_join)(struct sock *sk, int ifindex,
|
||||
const struct in6_addr *addr);
|
||||
int (*ipv6_sock_mc_drop)(struct sock *sk, int ifindex,
|
||||
const struct in6_addr *addr);
|
||||
int (*ipv6_dst_lookup)(struct net *net, struct sock *sk,
|
||||
struct dst_entry **dst, struct flowi6 *fl6);
|
||||
int (*ipv6_route_input)(struct sk_buff *skb);
|
||||
|
||||
struct fib6_table *(*fib6_get_table)(struct net *net, u32 id);
|
||||
struct fib6_info *(*fib6_lookup)(struct net *net, int oif,
|
||||
struct flowi6 *fl6, int flags);
|
||||
struct fib6_info *(*fib6_table_lookup)(struct net *net,
|
||||
struct fib6_table *table,
|
||||
int oif, struct flowi6 *fl6,
|
||||
int flags);
|
||||
struct fib6_info *(*fib6_multipath_select)(const struct net *net,
|
||||
struct fib6_info *f6i,
|
||||
struct flowi6 *fl6, int oif,
|
||||
const struct sk_buff *skb,
|
||||
int strict);
|
||||
u32 (*ip6_mtu_from_fib6)(struct fib6_info *f6i, struct in6_addr *daddr,
|
||||
struct in6_addr *saddr);
|
||||
|
||||
void (*udpv6_encap_enable)(void);
|
||||
void (*ndisc_send_na)(struct net_device *dev, const struct in6_addr *daddr,
|
||||
const struct in6_addr *solicited_addr,
|
||||
bool router, bool solicited, bool override, bool inc_opt);
|
||||
struct neigh_table *nd_tbl;
|
||||
};
|
||||
extern const struct ipv6_stub *ipv6_stub __read_mostly;
|
||||
|
||||
/* A stub used by bpf helpers. Similarly ugly as ipv6_stub */
|
||||
struct ipv6_bpf_stub {
|
||||
int (*inet6_bind)(struct sock *sk, struct sockaddr *uaddr, int addr_len,
|
||||
bool force_bind_address_no_port, bool with_lock);
|
||||
struct sock *(*udp6_lib_lookup)(struct net *net,
|
||||
const struct in6_addr *saddr, __be16 sport,
|
||||
const struct in6_addr *daddr, __be16 dport,
|
||||
int dif, int sdif, struct udp_table *tbl,
|
||||
struct sk_buff *skb);
|
||||
};
|
||||
extern const struct ipv6_bpf_stub *ipv6_bpf_stub __read_mostly;
|
||||
|
||||
#endif
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
#include <net/ipv6.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#endif
|
||||
|
||||
struct udp_port_cfg {
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include <linux/if_vlan.h>
|
||||
#include <linux/inetdevice.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
#include <net/ip6_checksum.h>
|
||||
#endif
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
#include <net/seg6.h>
|
||||
#include <net/seg6_local.h>
|
||||
#include <net/lwtunnel.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
|
||||
/**
|
||||
* sk_filter_trim_cap - run a packet through a socket filter
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <net/lwtunnel.h>
|
||||
#include <net/gre.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
|
||||
struct bpf_lwt_prog {
|
||||
struct bpf_prog *prog;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include <linux/export.h>
|
||||
#include <net/ipv6.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include <net/ip.h>
|
||||
|
||||
/* if ipv6 module registers this function is used by xfrm to force all
|
||||
|
|
|
@ -56,6 +56,7 @@
|
|||
#include <net/transp_v6.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include <net/ndisc.h>
|
||||
#ifdef CONFIG_IPV6_TUNNEL
|
||||
#include <net/ip6_tunnel.h>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
#include <net/ipv6.h>
|
||||
#endif
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include <net/nexthop.h>
|
||||
#include "internal.h"
|
||||
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
#include <net/sock.h>
|
||||
#include <net/ip.h>
|
||||
#include <net/udp_tunnel.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include <linux/tipc_netlink.h>
|
||||
#include "core.h"
|
||||
#include "addr.h"
|
||||
|
|
Loading…
Reference in New Issue