summaryrefslogtreecommitdiffstats
path: root/include/net
diff options
context:
space:
mode:
authorShmulik Ladkani <shmulik.ladkani@gmail.com>2012-11-30 10:25:59 +0000
committerDavid S. Miller <davem@davemloft.net>2012-12-01 11:36:37 -0500
commitaeaf6e9d2f49d793d3eb8c1af4095cf25e061b94 (patch)
treef668b46359bfa50f83563fb3ee0247f55f451760 /include/net
parentfd90b29d757827ab12d6669292612308ec249532 (diff)
downloadlinux-aeaf6e9d2f49d793d3eb8c1af4095cf25e061b94.tar.bz2
ipv6: unify logic evaluating inet6_dev's accept_ra property
As of 026359b [ipv6: Send ICMPv6 RSes only when RAs are accepted], the logic determining whether to send Router Solicitations is identical to the logic determining whether kernel accepts Router Advertisements. However the condition itself is repeated in several code locations. Unify it by introducing 'ipv6_accept_ra()' accessor. Also, simplify the condition expression, making it more readable. No semantic change. Signed-off-by: Shmulik Ladkani <shmulik.ladkani@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r--include/net/ipv6.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index acbd8e034310..5af66b26ebdd 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -271,6 +271,15 @@ struct ipv6_txoptions *ipv6_fixup_options(struct ipv6_txoptions *opt_space,
extern bool ipv6_opt_accepted(const struct sock *sk, const struct sk_buff *skb);
+static inline bool ipv6_accept_ra(struct inet6_dev *idev)
+{
+ /* If forwarding is enabled, RA are not accepted unless the special
+ * hybrid mode (accept_ra=2) is enabled.
+ */
+ return idev->cnf.forwarding ? idev->cnf.accept_ra == 2 :
+ idev->cnf.accept_ra;
+}
+
#if IS_ENABLED(CONFIG_IPV6)
static inline int ip6_frag_nqueues(struct net *net)
{