Source
x
static inline struct neigh_parms *__in6_dev_nd_parms_get_rcu(const struct net_device *dev)
/* SPDX-License-Identifier: GPL-2.0 */
/* unlimited */
/* 1 hour */
/* 2 hours */
struct prefix_info {
__u8 type;
__u8 length;
__u8 prefix_len;
__u8 onlink : 1,
autoconf : 1,
reserved : 6;
__u8 reserved : 6,
autoconf : 1,
onlink : 1;
__be32 valid;
__be32 prefered;
__be32 reserved2;
struct in6_addr prefix;
};
struct in6_validator_info {
struct in6_addr i6vi_addr;
struct inet6_dev *i6vi_dev;
struct netlink_ext_ack *extack;
};
struct ifa6_config {
const struct in6_addr *pfx;
unsigned int plen;
const struct in6_addr *peer_pfx;
u32 rt_priority;
u32 ifa_flags;
u32 preferred_lft;
u32 valid_lft;
u16 scope;
};
int addrconf_init(void);
void addrconf_cleanup(void);
int addrconf_add_ifaddr(struct net *net, void __user *arg);
int addrconf_del_ifaddr(struct net *net, void __user *arg);
int addrconf_set_dstaddr(struct net *net, void __user *arg);
int ipv6_chk_addr(struct net *net, const struct in6_addr *addr,
const struct net_device *dev, int strict);
int ipv6_chk_addr_and_flags(struct net *net, const struct in6_addr *addr,
const struct net_device *dev, bool skip_dev_check,
int strict, u32 banned_flags);
int ipv6_chk_home_addr(struct net *net, const struct in6_addr *addr);