netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ipv6: unify logic evaluating inet6_dev's accept_ra property
@ 2012-11-29  9:26 Shmulik Ladkani
  2012-11-30 17:09 ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Shmulik Ladkani @ 2012-11-29  9:26 UTC (permalink / raw)
  To: David S. Miller
  Cc: netdev, Hideaki YOSHIFUJI, Thomas Graf, Tore Anderson,
	shmulik.ladkani

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>
---

Not sure about the proper header to place the 'ipv6_accept_ra' accessor.
Currently placed in include/net/ipv6.h.
Other candidates were if_inet6.h and addrconf.h.

 include/net/ipv6.h  |   10 ++++++++++
 net/ipv6/addrconf.c |    3 +--
 net/ipv6/ndisc.c    |   16 ++--------------
 3 files changed, 13 insertions(+), 16 deletions(-)

diff --git a/include/net/ipv6.h b/include/net/ipv6.h
index 979bf6c..cd15585 100644
--- a/include/net/ipv6.h
+++ b/include/net/ipv6.h
@@ -271,6 +271,16 @@ 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)
 {
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 0424e4e..ca1ed8a 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -3005,8 +3005,7 @@ static void addrconf_dad_completed(struct inet6_ifaddr *ifp)
 	   router advertisements, start sending router solicitations.
 	 */
 
-	if (((ifp->idev->cnf.accept_ra == 1 && !ifp->idev->cnf.forwarding) ||
-	     ifp->idev->cnf.accept_ra == 2) &&
+	if (ipv6_accept_ra(ifp->idev) &&
 	    ifp->idev->cnf.rtr_solicits > 0 &&
 	    (dev->flags&IFF_LOOPBACK) == 0 &&
 	    (ipv6_addr_type(&ifp->addr) & IPV6_ADDR_LINKLOCAL)) {
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c
index 2edce30..980cdc3 100644
--- a/net/ipv6/ndisc.c
+++ b/net/ipv6/ndisc.c
@@ -1033,18 +1033,6 @@ errout:
 	rtnl_set_sk_err(net, RTNLGRP_ND_USEROPT, err);
 }
 
-static inline int accept_ra(struct inet6_dev *in6_dev)
-{
-	/*
-	 * If forwarding is enabled, RA are not accepted unless the special
-	 * hybrid mode (accept_ra=2) is enabled.
-	 */
-	if (in6_dev->cnf.forwarding && in6_dev->cnf.accept_ra < 2)
-		return 0;
-
-	return in6_dev->cnf.accept_ra;
-}
-
 static void ndisc_router_discovery(struct sk_buff *skb)
 {
 	struct ra_msg *ra_msg = (struct ra_msg *)skb_transport_header(skb);
@@ -1092,7 +1080,7 @@ static void ndisc_router_discovery(struct sk_buff *skb)
 		return;
 	}
 
-	if (!accept_ra(in6_dev))
+	if (!ipv6_accept_ra(in6_dev))
 		goto skip_linkparms;
 
 #ifdef CONFIG_IPV6_NDISC_NODETYPE
@@ -1248,7 +1236,7 @@ skip_linkparms:
 			     NEIGH_UPDATE_F_ISROUTER);
 	}
 
-	if (!accept_ra(in6_dev))
+	if (!ipv6_accept_ra(in6_dev))
 		goto out;
 
 #ifdef CONFIG_IPV6_ROUTE_INFO
-- 
1.7.9

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] ipv6: unify logic evaluating inet6_dev's accept_ra property
  2012-11-29  9:26 [PATCH] ipv6: unify logic evaluating inet6_dev's accept_ra property Shmulik Ladkani
@ 2012-11-30 17:09 ` David Miller
  2012-11-30 19:51   ` Shmulik Ladkani
  0 siblings, 1 reply; 4+ messages in thread
From: David Miller @ 2012-11-30 17:09 UTC (permalink / raw)
  To: shmulik.ladkani; +Cc: netdev, yoshfuji, tgraf, tore

From: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Date: Thu, 29 Nov 2012 11:26:19 +0200

> +	/*
> +	 * If forwarding is enabled, RA are not accepted unless the special
> +	 * hybrid mode (accept_ra=2) is enabled.
> +	 */

Please format this comment correctly, in the networking we use
the style:

	/* That looks
	 * like this.
	 */

	/*
	 * Not
	 * like this.
	 */

Thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ipv6: unify logic evaluating inet6_dev's accept_ra property
  2012-11-30 17:09 ` David Miller
@ 2012-11-30 19:51   ` Shmulik Ladkani
  2012-11-30 20:02     ` David Miller
  0 siblings, 1 reply; 4+ messages in thread
From: Shmulik Ladkani @ 2012-11-30 19:51 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, yoshfuji, tgraf, tore

Hi,

On Fri, 30 Nov 2012 12:09:43 -0500 (EST) David Miller <davem@davemloft.net> wrote:
> From: Shmulik Ladkani <shmulik.ladkani@gmail.com>
> Date: Thu, 29 Nov 2012 11:26:19 +0200
> 
> > +	/*
> > +	 * If forwarding is enabled, RA are not accepted unless the special
> > +	 * hybrid mode (accept_ra=2) is enabled.
> > +	 */
> 
> Please format this comment correctly, in the networking we use
> the style:
> 
> 	/* That looks
> 	 * like this.
> 	 */
> 
> 	/*
> 	 * Not
> 	 * like this.
> 	 */
> 
> Thanks.

Ok. Will amend shortly.

BTW the "Not like this" style has many occurrences in net/ipv6.
One of which was the comment relocated by my patch :-)

Regards,
Shmulik

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ipv6: unify logic evaluating inet6_dev's accept_ra property
  2012-11-30 19:51   ` Shmulik Ladkani
@ 2012-11-30 20:02     ` David Miller
  0 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2012-11-30 20:02 UTC (permalink / raw)
  To: shmulik.ladkani; +Cc: netdev, yoshfuji, tgraf, tore

From: Shmulik Ladkani <shmulik.ladkani@gmail.com>
Date: Fri, 30 Nov 2012 21:51:13 +0200

> BTW the "Not like this" style has many occurrences in net/ipv6.
> One of which was the comment relocated by my patch :-)

Patches to fix this are more than welcome :-)

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-11-30 20:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-29  9:26 [PATCH] ipv6: unify logic evaluating inet6_dev's accept_ra property Shmulik Ladkani
2012-11-30 17:09 ` David Miller
2012-11-30 19:51   ` Shmulik Ladkani
2012-11-30 20:02     ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).