BACKPORT: 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. Change-Id: I77b025a0cfdcd9921dbbf29419b7a94beb620e96 Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
#include <net/neighbour.h>
|
||||
#include <net/route.h>
|
||||
#include <net/netevent.h>
|
||||
#include <net/addrconf.h>
|
||||
#include <net/ipv6_stub.h>
|
||||
#include <net/ip6_route.h>
|
||||
#include <rdma/ib_addr.h>
|
||||
#include <rdma/ib.h>
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
#include <net/tc_act/tc_csum.h>
|
||||
#include <net/vxlan.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>
|
||||
|
||||
@@ -227,54 +227,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);
|
||||
struct dst_entry *(*ipv6_dst_lookup_flow)(struct net *net,
|
||||
const struct sock *sk,
|
||||
struct flowi6 *fl6,
|
||||
const struct in6_addr *final_dst);
|
||||
|
||||
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,
|
||||
u32 flags);
|
||||
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
|
||||
*/
|
||||
|
||||
64
include/net/ipv6_stubs.h
Normal file
64
include/net/ipv6_stubs.h
Normal file
@@ -0,0 +1,64 @@
|
||||
/* 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;
|
||||
|
||||
/* 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);
|
||||
struct dst_entry *(*ipv6_dst_lookup_flow)(struct net *net,
|
||||
const struct sock *sk,
|
||||
struct flowi6 *fl6,
|
||||
const struct in6_addr *final_dst);
|
||||
|
||||
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,
|
||||
u32 flags);
|
||||
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
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
#include <net/seg6.h>
|
||||
#include <net/seg6_local.h>
|
||||
#include <net/lwtunnel.h>
|
||||
#include <net/ipv6_stubs.h>
|
||||
#include <net/bpf_sk_storage.h>
|
||||
#include <net/transp_v6.h>
|
||||
#include <linux/btf_ids.h>
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/bpf.h>
|
||||
#include <net/lwtunnel.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"
|
||||
|
||||
Reference in New Issue
Block a user