ipv6_stub
Regular
4.4
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
4.8
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
4.10
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
4.13
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
4.15
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
4.18
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
struct fib6_info * (*fib6_lookup)(struct net *, int, struct flowi6 *, int);
struct fib6_info * (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, int);
struct fib6_info * (*fib6_multipath_select)(const struct net *, struct fib6_info *, struct flowi6 *, int, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(struct fib6_info *, struct in6_addr *, struct in6_addr *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
5.0
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
struct fib6_info * (*fib6_lookup)(struct net *, int, struct flowi6 *, int);
struct fib6_info * (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, int);
struct fib6_info * (*fib6_multipath_select)(const struct net *, struct fib6_info *, struct flowi6 *, int, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(struct fib6_info *, struct in6_addr *, struct in6_addr *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
5.3
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
5.4
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
5.8
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
struct neigh_table *nd_tbl;
};
5.11
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
struct neigh_table *nd_tbl;
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int(*)(struct net *, struct sock *, struct sk_buff *));
};
5.13
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
struct neigh_table *nd_tbl;
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int(*)(struct net *, struct sock *, struct sk_buff *));
struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
};
5.15
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_nh_release_dsts)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
struct neigh_table *nd_tbl;
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int(*)(struct net *, struct sock *, struct sk_buff *));
struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
};
5.19
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_nh_release_dsts)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
struct neigh_table *nd_tbl;
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int(*)(struct net *, struct sock *, struct sk_buff *));
struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
};
6.2
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_nh_release_dsts)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
struct neigh_table *nd_tbl;
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int(*)(struct net *, struct sock *, struct sk_buff *));
struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
};
6.5
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_nh_release_dsts)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
struct neigh_table *nd_tbl;
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int(*)(struct net *, struct sock *, struct sk_buff *));
struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
};
6.8
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_nh_release_dsts)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *, bool);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32);
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *);
struct sk_buff * (*xfrm6_gro_udp_encap_rcv)(struct sock *, struct list_head *, struct sk_buff *);
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int);
struct neigh_table *nd_tbl;
int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int(*)(struct net *, struct sock *, struct sk_buff *));
struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *);
};
arm64
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
armhf
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
ppc64el
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
riscv64
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
aws
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
azure
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
gcp
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
lowlatency
: ✅struct ipv6_stub {
int (*ipv6_sock_mc_join)(struct sock *, int, const struct in6_addr *);
int (*ipv6_sock_mc_drop)(struct sock *, int, const struct in6_addr *);
struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *);
int (*ipv6_route_input)(struct sk_buff *);
struct fib6_table * (*fib6_get_table)(struct net *, u32);
int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int);
int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int);
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int);
u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *);
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *);
void (*fib6_nh_release)(struct fib6_nh *);
void (*fib6_update_sernum)(struct net *, struct fib6_info *);
int (*ip6_del_rt)(struct net *, struct fib6_info *);
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *);
void (*udpv6_encap_enable)();
void (*ndisc_send_na)(struct net_device *, const struct in6_addr *, const struct in6_addr *, bool, bool, bool, bool);
struct neigh_table *nd_tbl;
};
Regular
4.4
and 4.8
✅
4.8
and 4.10
✅
4.10
and 4.13
✅
4.13
and 4.15
✅
4.15
and 4.18
⚠️struct fib6_table * (*fib6_get_table)(struct net *, u32)
struct fib6_info * (*fib6_lookup)(struct net *, int, struct flowi6 *, int)
struct fib6_info * (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, int)
struct fib6_info * (*fib6_multipath_select)(const struct net *, struct fib6_info *, struct flowi6 *, int, const struct sk_buff *, int)
u32 (*ip6_mtu_from_fib6)(struct fib6_info *, struct in6_addr *, struct in6_addr *)
4.18
and 5.0
✅
5.0
and 5.3
⚠️int (*ipv6_route_input)(struct sk_buff *)
void (*fib6_select_path)(const struct net *, struct fib6_result *, struct flowi6 *, int, bool, const struct sk_buff *, int)
int (*fib6_nh_init)(struct net *, struct fib6_nh *, struct fib6_config *, gfp_t, struct netlink_ext_ack *)
void (*fib6_nh_release)(struct fib6_nh *)
void (*fib6_update_sernum)(struct net *, struct fib6_info *)
int (*ip6_del_rt)(struct net *, struct fib6_info *)
void (*fib6_rt_update)(struct net *, struct fib6_info *, struct nl_info *)
struct fib6_info * (*fib6_multipath_select)(const struct net *, struct fib6_info *, struct flowi6 *, int, const struct sk_buff *, int)
struct fib6_info * (*fib6_lookup)(struct net *, int, struct flowi6 *, int)
➡️ int (*fib6_lookup)(struct net *, int, struct flowi6 *, struct fib6_result *, int)
struct fib6_info * (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, int)
➡️ int (*fib6_table_lookup)(struct net *, struct fib6_table *, int, struct flowi6 *, struct fib6_result *, int)
u32 (*ip6_mtu_from_fib6)(struct fib6_info *, struct in6_addr *, struct in6_addr *)
➡️ u32 (*ip6_mtu_from_fib6)(const struct fib6_result *, const struct in6_addr *, const struct in6_addr *)
5.3
and 5.4
⚠️struct dst_entry * (*ipv6_dst_lookup_flow)(struct net *, const struct sock *, struct flowi6 *, const struct in6_addr *)
int (*ipv6_dst_lookup)(struct net *, struct sock *, struct dst_entry **, struct flowi6 *)
5.4
and 5.8
⚠️void (*xfrm6_local_rxpmtu)(struct sk_buff *, u32)
int (*xfrm6_udp_encap_rcv)(struct sock *, struct sk_buff *)
int (*xfrm6_rcv_encap)(struct sk_buff *, int, __be32, int)
int (*ip6_del_rt)(struct net *, struct fib6_info *)
➡️ int (*ip6_del_rt)(struct net *, struct fib6_info *, bool)
5.8
and 5.11
⚠️int (*ipv6_fragment)(struct net *, struct sock *, struct sk_buff *, int(*)(struct net *, struct sock *, struct sk_buff *))
5.11
and 5.13
⚠️struct net_device * (*ipv6_dev_find)(struct net *, const struct in6_addr *, struct net_device *)
5.13
and 5.15
⚠️void (*fib6_nh_release_dsts)(struct fib6_nh *)
5.15
and 5.19
✅
5.19
and 6.2
✅
6.2
and 6.5
✅
6.5
and 6.8
⚠️struct sk_buff * (*xfrm6_gro_udp_encap_rcv)(struct sock *, struct list_head *, struct sk_buff *)
amd64
and arm64
✅
amd64
and armhf
✅
amd64
and ppc64el
✅
amd64
and riscv64
✅
generic
and aws
✅
generic
and azure
✅
generic
and gcp
✅
generic
and lowlatency
✅