ipv6_devconf
int ifindex, struct ipv6_devconf *devconf);
struct ipv6_devconf cnf;
struct ipv6_devconf *devconf_all;
struct ipv6_devconf *devconf_dflt;
static struct ipv6_devconf ipv6_devconf __read_mostly = {
static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
struct ipv6_devconf *devconf, u32 portid,
static void ipv6_store_devconf(const struct ipv6_devconf *cnf,
int ifindex, struct ipv6_devconf *devconf)
struct ipv6_devconf *devconf;
.data = &ipv6_devconf.forwarding,
.data = &ipv6_devconf.hop_limit,
.data = &ipv6_devconf.mtu6,
.data = &ipv6_devconf.accept_ra,
.data = &ipv6_devconf.accept_redirects,
.data = &ipv6_devconf.autoconf,
.data = &ipv6_devconf.dad_transmits,
.data = &ipv6_devconf.rtr_solicits,
.data = &ipv6_devconf.rtr_solicit_interval,
.data = &ipv6_devconf.rtr_solicit_max_interval,
.data = &ipv6_devconf.rtr_solicit_delay,
.data = &ipv6_devconf.force_mld_version,
&ipv6_devconf.mldv1_unsolicited_report_interval,
&ipv6_devconf.mldv2_unsolicited_report_interval,
.data = &ipv6_devconf.use_tempaddr,
.data = &ipv6_devconf.temp_valid_lft,
.data = &ipv6_devconf.temp_prefered_lft,
.data = &ipv6_devconf.regen_min_advance,
.data = &ipv6_devconf.regen_max_retry,
.data = &ipv6_devconf.max_desync_factor,
.data = &ipv6_devconf.max_addresses,
.data = &ipv6_devconf.accept_ra_defrtr,
.data = &ipv6_devconf.ra_defrtr_metric,
.data = &ipv6_devconf.accept_ra_min_hop_limit,
.data = &ipv6_devconf.accept_ra_min_lft,
.data = &ipv6_devconf.accept_ra_pinfo,
.data = &ipv6_devconf.ra_honor_pio_life,
.data = &ipv6_devconf.ra_honor_pio_pflag,
.data = &ipv6_devconf.accept_ra_rtr_pref,
.data = &ipv6_devconf.rtr_probe_interval,
.data = &ipv6_devconf.accept_ra_rt_info_min_plen,
.data = &ipv6_devconf.accept_ra_rt_info_max_plen,
.data = &ipv6_devconf.proxy_ndp,
.data = &ipv6_devconf.accept_source_route,
.data = &ipv6_devconf.optimistic_dad,
.data = &ipv6_devconf.use_optimistic,
.data = &ipv6_devconf.mc_forwarding,
.data = &ipv6_devconf.disable_ipv6,
.data = &ipv6_devconf.accept_dad,
.data = &ipv6_devconf.force_tllao,
.data = &ipv6_devconf.ndisc_notify,
.data = &ipv6_devconf.suppress_frag_ndisc,
.data = &ipv6_devconf.accept_ra_from_local,
.data = &ipv6_devconf.accept_ra_mtu,
.data = &ipv6_devconf.stable_secret,
.data = &ipv6_devconf.use_oif_addrs_only,
.data = &ipv6_devconf.ignore_routes_with_linkdown,
.data = &ipv6_devconf.drop_unicast_in_l2_multicast,
.data = &ipv6_devconf.drop_unsolicited_na,
.data = &ipv6_devconf.keep_addr_on_down,
.data = &ipv6_devconf.seg6_enabled,
.data = &ipv6_devconf.seg6_require_hmac,
.data = &ipv6_devconf.enhanced_dad,
.data = &ipv6_devconf.addr_gen_mode,
.data = &ipv6_devconf.disable_policy,
.data = &ipv6_devconf.ndisc_tclass,
.data = &ipv6_devconf.rpl_seg_enabled,
.data = &ipv6_devconf.ioam6_enabled,
.data = &ipv6_devconf.ioam6_id,
.data = &ipv6_devconf.ioam6_id_wide,
.data = &ipv6_devconf.ndisc_evict_nocarrier,
.data = &ipv6_devconf.accept_untracked_na,
.data = &ipv6_devconf.force_forwarding,
struct inet6_dev *idev, struct ipv6_devconf *p)
table[i].data += (char *)p - (char *)&ipv6_devconf;
struct ipv6_devconf *p, int ifindex)
struct ipv6_devconf *all, *dflt;
all = kmemdup(&ipv6_devconf, sizeof(ipv6_devconf), GFP_KERNEL);
sizeof(ipv6_devconf));
sizeof(ipv6_devconf));
struct ipv6_devconf *devconf;