mirror of
https://github.com/commaai/agnos-kernel-sdm845.git
synced 2026-06-08 11:24:51 +08:00
net/ipv6/addrconf: IPv6 tethering enhancement
Added new procfs flag to toggle the automatic addition of prefix routes on a per device basis. The new flag is accept_ra_prefix_route. Defaults to 1 as to not break existing behavior. CRs-Fixed: 435320 Change-Id: If25493890c7531c27f5b2c4855afebbbbf5d072a Acked-by: Harout S. Hedeshian <harouth@qti.qualcomm.com> Signed-off-by: Tianyi Gou <tgou@codeaurora.org> Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org> Signed-off-by: Tejaswi Tanikella <tejaswit@codeaurora.org>
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
parent
d4dd9e52e3
commit
6666043e69
@@ -1502,6 +1502,11 @@ accept_ra_mtu - BOOLEAN
|
||||
Functional default: enabled if accept_ra is enabled.
|
||||
disabled if accept_ra is disabled.
|
||||
|
||||
accept_ra_prefix_route - BOOLEAN
|
||||
Set the prefix route for the autoconfigured interface address
|
||||
|
||||
Functional default: enabled
|
||||
|
||||
accept_redirects - BOOLEAN
|
||||
Accept Redirects.
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ struct ipv6_devconf {
|
||||
} stable_secret;
|
||||
__s32 use_oif_addrs_only;
|
||||
__s32 keep_addr_on_down;
|
||||
__s32 accept_ra_prefix_route;
|
||||
|
||||
struct ctl_table_header *sysctl_header;
|
||||
};
|
||||
|
||||
@@ -185,6 +185,7 @@ enum {
|
||||
DEVCONF_ADDR_GEN_MODE,
|
||||
DEVCONF_DISABLE_POLICY,
|
||||
DEVCONF_ACCEPT_RA_RT_INFO_MIN_PLEN,
|
||||
DEVCONF_ACCEPT_RA_PREFIX_ROUTE,
|
||||
DEVCONF_MAX
|
||||
};
|
||||
|
||||
|
||||
@@ -527,6 +527,7 @@ static const struct bin_table bin_net_ipv6_conf_var_table[] = {
|
||||
{ CTL_INT, NET_IPV6_PROXY_NDP, "proxy_ndp" },
|
||||
{ CTL_INT, NET_IPV6_ACCEPT_SOURCE_ROUTE, "accept_source_route" },
|
||||
{ CTL_INT, NET_IPV6_ACCEPT_RA_FROM_LOCAL, "accept_ra_from_local" },
|
||||
{ CTL_INT, NET_IPV6_ACCEPT_RA_PREFIX_ROUTE, "accept_ra_prefix_route" },
|
||||
{}
|
||||
};
|
||||
|
||||
|
||||
@@ -240,6 +240,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
|
||||
.use_oif_addrs_only = 0,
|
||||
.ignore_routes_with_linkdown = 0,
|
||||
.keep_addr_on_down = 0,
|
||||
.accept_ra_prefix_route = 1,
|
||||
};
|
||||
|
||||
static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
|
||||
@@ -288,6 +289,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
|
||||
.use_oif_addrs_only = 0,
|
||||
.ignore_routes_with_linkdown = 0,
|
||||
.keep_addr_on_down = 0,
|
||||
.accept_ra_prefix_route = 1,
|
||||
};
|
||||
|
||||
/* Check if link is ready: is it up and is a valid qdisc available */
|
||||
@@ -2607,8 +2609,11 @@ void addrconf_prefix_rcv(struct net_device *dev, u8 *opt, int len, bool sllao)
|
||||
flags |= RTF_EXPIRES;
|
||||
expires = jiffies_to_clock_t(rt_expires);
|
||||
}
|
||||
addrconf_prefix_route(&pinfo->prefix, pinfo->prefix_len,
|
||||
dev, expires, flags);
|
||||
if (dev->ip6_ptr->cnf.accept_ra_prefix_route) {
|
||||
addrconf_prefix_route(&pinfo->prefix,
|
||||
pinfo->prefix_len,
|
||||
dev, expires, flags);
|
||||
}
|
||||
}
|
||||
ip6_rt_put(rt);
|
||||
}
|
||||
@@ -6124,6 +6129,13 @@ static const struct ctl_table addrconf_sysctl[] = {
|
||||
.proc_handler = proc_dointvec,
|
||||
|
||||
},
|
||||
{
|
||||
.procname = "accept_ra_prefix_route",
|
||||
.data = &ipv6_devconf.accept_ra_prefix_route,
|
||||
.maxlen = sizeof(int),
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
{
|
||||
/* sentinel */
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user