All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for kernel 3.4.x 0/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
@ 2015-03-24  9:45 Zhu Yanjun
  2015-03-24  9:45 ` [PATCH for kernel 3.4.x 1/1] " Zhu Yanjun
  2015-03-24 11:06 ` [PATCH for kernel 3.4.x 0/1] " YOSHIFUJI Hideaki
  0 siblings, 2 replies; 11+ messages in thread
From: Zhu Yanjun @ 2015-03-24  9:45 UTC (permalink / raw)
  To: lizefan, netdev, ulf.samuelsson, hideaki.yoshifuji, yoshfuji,
	Alexandre.Dietsch

This patch is for the kernel 4.0. But kernel 3.4 needs this patch, too. So this patch is backported.
There are the following modifications:
 1. Because the mothod to set sysctl is different between kernel 3.4 and kernel 4.0, in this patch, the sysctl method is changed;
 2. Because the variables of mcast_resolicit is different, in this patch, the function neigh_max_probes is changed;
 3. Because there are so many modifications in this patch, so the author is changed to me;

Zhu Yanjun (1):
  net: neighbour: Add mcast_resolicit to configure the number of
    multicast resolicitations in PROBE state

 include/linux/neighbour.h |  1 +
 include/net/neighbour.h   |  1 +
 net/core/neighbour.c      | 20 +++++++++++++++++---
 3 files changed, 19 insertions(+), 3 deletions(-)

-- 
1.9.1

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

* [PATCH for kernel 3.4.x 1/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24  9:45 [PATCH for kernel 3.4.x 0/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state Zhu Yanjun
@ 2015-03-24  9:45 ` Zhu Yanjun
  2015-03-24  9:51   ` Zhu, Yanjun
  2015-03-24 10:35   ` YOSHIFUJI Hideaki
  2015-03-24 11:06 ` [PATCH for kernel 3.4.x 0/1] " YOSHIFUJI Hideaki
  1 sibling, 2 replies; 11+ messages in thread
From: Zhu Yanjun @ 2015-03-24  9:45 UTC (permalink / raw)
  To: lizefan, netdev, ulf.samuelsson, hideaki.yoshifuji, yoshfuji,
	Alexandre.Dietsch

We send unicast neighbor (ARP or NDP) solicitations ucast_probes
times in PROBE state.  Zhu Yanjun reported that some implementation
does not reply against them and the entry will become FAILED, which
is undesirable.

We had been dealt with such nodes by sending multicast probes mcast_
solicit times after unicast probes in PROBE state.  In 2003, I made
a change not to send them to improve compatibility with IPv6 NDP.

Let's introduce per-protocol per-interface sysctl knob "mcast_
reprobe" to configure the number of multicast (re)solicitation for
reconfirmation in PROBE state.  The default is 0, since we have
been doing so for 10+ years.

Reported-by: Zhu Yanjun <Yanjun.Zhu@windriver.com>
CC: Ulf Samuelsson <ulf.samuelsson@ericsson.com>
Signed-off-by: YOSHIFUJI Hideaki <hideaki.yoshifuji@miraclelinux.com>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
[Zhu Yanjun: since kernel 3.4.x is different from mainline kernel(kernel 4.0-rcX).
This patch is modified a lot.]
Signed-off-by: Zhu Yanjun <Yanjun.Zhu@windriver.com>
---
 include/linux/neighbour.h |  1 +
 include/net/neighbour.h   |  1 +
 net/core/neighbour.c      | 20 +++++++++++++++++---
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h
index b188f68..6945f4f 100644
--- a/include/linux/neighbour.h
+++ b/include/linux/neighbour.h
@@ -112,6 +112,7 @@ enum {
 	NDTPA_APP_PROBES,		/* u32 */
 	NDTPA_UCAST_PROBES,		/* u32 */
 	NDTPA_MCAST_PROBES,		/* u32 */
+	NDTPA_MCAST_REPROBES,		/* u32 */
 	NDTPA_ANYCAST_DELAY,		/* u64, msecs */
 	NDTPA_PROXY_DELAY,		/* u64, msecs */
 	NDTPA_PROXY_QLEN,		/* u32 */
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index 34c996f..a2d9407 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -63,6 +63,7 @@ struct neigh_parms {
 	int	ucast_probes;
 	int	app_probes;
 	int	mcast_probes;
+	int	mcast_reprobes;
 	int	anycast_delay;
 	int	proxy_delay;
 	int	proxy_qlen;
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index ebd4b21..eb573cf 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -843,9 +843,9 @@ next_elt:
 static __inline__ int neigh_max_probes(struct neighbour *n)
 {
 	struct neigh_parms *p = n->parms;
-	return (n->nud_state & NUD_PROBE) ?
-		p->ucast_probes :
-		p->ucast_probes + p->app_probes + p->mcast_probes;
+
+	return p->ucast_probes + p->app_probes +
+		(n->nud_state & NUD_PROBE) ? p->mcast_reprobes : p->mcast_probes;
 }
 
 static void neigh_invalidate(struct neighbour *neigh)
@@ -982,6 +982,7 @@ int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
 		goto out_unlock_bh;
 
 	if (!(neigh->nud_state & (NUD_STALE | NUD_INCOMPLETE))) {
+		/* We are in (NUD_NONE | NUD_FAILED) */
 		if (neigh->parms->mcast_probes + neigh->parms->app_probes) {
 			unsigned long next, now = jiffies;
 
@@ -1783,6 +1784,7 @@ static int neightbl_fill_parms(struct sk_buff *skb, struct neigh_parms *parms)
 	NLA_PUT_U32(skb, NDTPA_APP_PROBES, parms->app_probes);
 	NLA_PUT_U32(skb, NDTPA_UCAST_PROBES, parms->ucast_probes);
 	NLA_PUT_U32(skb, NDTPA_MCAST_PROBES, parms->mcast_probes);
+	NLA_PUT_U32(skb, NDTPA_MCAST_REPROBES, parms->mcast_reprobes);
 	NLA_PUT_MSECS(skb, NDTPA_REACHABLE_TIME, parms->reachable_time);
 	NLA_PUT_MSECS(skb, NDTPA_BASE_REACHABLE_TIME,
 		      parms->base_reachable_time);
@@ -1932,6 +1934,7 @@ static const struct nla_policy nl_ntbl_parm_policy[NDTPA_MAX+1] = {
 	[NDTPA_APP_PROBES]		= { .type = NLA_U32 },
 	[NDTPA_UCAST_PROBES]		= { .type = NLA_U32 },
 	[NDTPA_MCAST_PROBES]		= { .type = NLA_U32 },
+	[NDTPA_MCAST_REPROBES]		= { .type = NLA_U32 },
 	[NDTPA_BASE_REACHABLE_TIME]	= { .type = NLA_U64 },
 	[NDTPA_GC_STALETIME]		= { .type = NLA_U64 },
 	[NDTPA_DELAY_PROBE_TIME]	= { .type = NLA_U64 },
@@ -2023,6 +2026,9 @@ static int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
 			case NDTPA_MCAST_PROBES:
 				p->mcast_probes = nla_get_u32(tbp[i]);
 				break;
+			case NDTPA_MCAST_REPROBES:
+				p->mcast_reprobes = nla_get_u32(tbp[i]);
+				break;
 			case NDTPA_BASE_REACHABLE_TIME:
 				p->base_reachable_time = nla_get_msecs(tbp[i]);
 				break;
@@ -2773,6 +2779,7 @@ enum {
 	NEIGH_VAR_MCAST_PROBE,
 	NEIGH_VAR_UCAST_PROBE,
 	NEIGH_VAR_APP_PROBE,
+	NEIGH_VAR_MCAST_REPROBE,
 	NEIGH_VAR_RETRANS_TIME,
 	NEIGH_VAR_BASE_REACHABLE_TIME,
 	NEIGH_VAR_DELAY_PROBE_TIME,
@@ -2804,6 +2811,12 @@ static struct neigh_sysctl_table {
 			.mode		= 0644,
 			.proc_handler	= proc_dointvec,
 		},
+		[NEIGH_VAR_MCAST_REPROBE] = {
+			.procname	= "mcast_resolicit",
+			.maxlen		= sizeof(int),
+			.mode		= 0644,
+			.proc_handler	= proc_dointvec,
+		},
 		[NEIGH_VAR_UCAST_PROBE] = {
 			.procname	= "ucast_solicit",
 			.maxlen		= sizeof(int),
@@ -2940,6 +2953,7 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,
 		goto err;
 
 	t->neigh_vars[NEIGH_VAR_MCAST_PROBE].data  = &p->mcast_probes;
+	t->neigh_vars[NEIGH_VAR_MCAST_REPROBE].data  = &p->mcast_reprobes;
 	t->neigh_vars[NEIGH_VAR_UCAST_PROBE].data  = &p->ucast_probes;
 	t->neigh_vars[NEIGH_VAR_APP_PROBE].data  = &p->app_probes;
 	t->neigh_vars[NEIGH_VAR_RETRANS_TIME].data  = &p->retrans_time;
-- 
1.9.1

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

* RE: [PATCH for kernel 3.4.x 1/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24  9:45 ` [PATCH for kernel 3.4.x 1/1] " Zhu Yanjun
@ 2015-03-24  9:51   ` Zhu, Yanjun
  2015-03-24 15:55     ` David Miller
  2015-03-24 10:35   ` YOSHIFUJI Hideaki
  1 sibling, 1 reply; 11+ messages in thread
From: Zhu, Yanjun @ 2015-03-24  9:51 UTC (permalink / raw)
  To: lizefan, netdev, ulf.samuelsson, hideaki.yoshifuji, yoshfuji,
	Dietsch, Alexandre

Hi, Ulf && YOSHIFUJI Hideaki

This patch is needed in linux kernel 3.4.106. I made a new patch based on linux kernel 3.4.106. Please let me know your advice.

Thanks a lot.
Zhu Yanjun

________________________________________
From: netdev-owner@vger.kernel.org [netdev-owner@vger.kernel.org] on behalf of Zhu Yanjun [Yanjun.Zhu@windriver.com]
Sent: Tuesday, March 24, 2015 2:45 AM
To: lizefan@huawei.com; netdev@vger.kernel.org; ulf.samuelsson@ericsson.com; hideaki.yoshifuji@miraclelinux.com; yoshfuji@linux-ipv6.org; Dietsch, Alexandre
Subject: [PATCH for kernel 3.4.x 1/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state

We send unicast neighbor (ARP or NDP) solicitations ucast_probes
times in PROBE state.  Zhu Yanjun reported that some implementation
does not reply against them and the entry will become FAILED, which
is undesirable.

We had been dealt with such nodes by sending multicast probes mcast_
solicit times after unicast probes in PROBE state.  In 2003, I made
a change not to send them to improve compatibility with IPv6 NDP.

Let's introduce per-protocol per-interface sysctl knob "mcast_
reprobe" to configure the number of multicast (re)solicitation for
reconfirmation in PROBE state.  The default is 0, since we have
been doing so for 10+ years.

Reported-by: Zhu Yanjun <Yanjun.Zhu@windriver.com>
CC: Ulf Samuelsson <ulf.samuelsson@ericsson.com>
Signed-off-by: YOSHIFUJI Hideaki <hideaki.yoshifuji@miraclelinux.com>
Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
[Zhu Yanjun: since kernel 3.4.x is different from mainline kernel(kernel 4.0-rcX).
This patch is modified a lot.]
Signed-off-by: Zhu Yanjun <Yanjun.Zhu@windriver.com>
---
 include/linux/neighbour.h |  1 +
 include/net/neighbour.h   |  1 +
 net/core/neighbour.c      | 20 +++++++++++++++++---
 3 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h
index b188f68..6945f4f 100644
--- a/include/linux/neighbour.h
+++ b/include/linux/neighbour.h
@@ -112,6 +112,7 @@ enum {
        NDTPA_APP_PROBES,               /* u32 */
        NDTPA_UCAST_PROBES,             /* u32 */
        NDTPA_MCAST_PROBES,             /* u32 */
+       NDTPA_MCAST_REPROBES,           /* u32 */
        NDTPA_ANYCAST_DELAY,            /* u64, msecs */
        NDTPA_PROXY_DELAY,              /* u64, msecs */
        NDTPA_PROXY_QLEN,               /* u32 */
diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index 34c996f..a2d9407 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -63,6 +63,7 @@ struct neigh_parms {
        int     ucast_probes;
        int     app_probes;
        int     mcast_probes;
+       int     mcast_reprobes;
        int     anycast_delay;
        int     proxy_delay;
        int     proxy_qlen;
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index ebd4b21..eb573cf 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -843,9 +843,9 @@ next_elt:
 static __inline__ int neigh_max_probes(struct neighbour *n)
 {
        struct neigh_parms *p = n->parms;
-       return (n->nud_state & NUD_PROBE) ?
-               p->ucast_probes :
-               p->ucast_probes + p->app_probes + p->mcast_probes;
+
+       return p->ucast_probes + p->app_probes +
+               (n->nud_state & NUD_PROBE) ? p->mcast_reprobes : p->mcast_probes;
 }

 static void neigh_invalidate(struct neighbour *neigh)
@@ -982,6 +982,7 @@ int __neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
                goto out_unlock_bh;

        if (!(neigh->nud_state & (NUD_STALE | NUD_INCOMPLETE))) {
+               /* We are in (NUD_NONE | NUD_FAILED) */
                if (neigh->parms->mcast_probes + neigh->parms->app_probes) {
                        unsigned long next, now = jiffies;

@@ -1783,6 +1784,7 @@ static int neightbl_fill_parms(struct sk_buff *skb, struct neigh_parms *parms)
        NLA_PUT_U32(skb, NDTPA_APP_PROBES, parms->app_probes);
        NLA_PUT_U32(skb, NDTPA_UCAST_PROBES, parms->ucast_probes);
        NLA_PUT_U32(skb, NDTPA_MCAST_PROBES, parms->mcast_probes);
+       NLA_PUT_U32(skb, NDTPA_MCAST_REPROBES, parms->mcast_reprobes);
        NLA_PUT_MSECS(skb, NDTPA_REACHABLE_TIME, parms->reachable_time);
        NLA_PUT_MSECS(skb, NDTPA_BASE_REACHABLE_TIME,
                      parms->base_reachable_time);
@@ -1932,6 +1934,7 @@ static const struct nla_policy nl_ntbl_parm_policy[NDTPA_MAX+1] = {
        [NDTPA_APP_PROBES]              = { .type = NLA_U32 },
        [NDTPA_UCAST_PROBES]            = { .type = NLA_U32 },
        [NDTPA_MCAST_PROBES]            = { .type = NLA_U32 },
+       [NDTPA_MCAST_REPROBES]          = { .type = NLA_U32 },
        [NDTPA_BASE_REACHABLE_TIME]     = { .type = NLA_U64 },
        [NDTPA_GC_STALETIME]            = { .type = NLA_U64 },
        [NDTPA_DELAY_PROBE_TIME]        = { .type = NLA_U64 },
@@ -2023,6 +2026,9 @@ static int neightbl_set(struct sk_buff *skb, struct nlmsghdr *nlh, void *arg)
                        case NDTPA_MCAST_PROBES:
                                p->mcast_probes = nla_get_u32(tbp[i]);
                                break;
+                       case NDTPA_MCAST_REPROBES:
+                               p->mcast_reprobes = nla_get_u32(tbp[i]);
+                               break;
                        case NDTPA_BASE_REACHABLE_TIME:
                                p->base_reachable_time = nla_get_msecs(tbp[i]);
                                break;
@@ -2773,6 +2779,7 @@ enum {
        NEIGH_VAR_MCAST_PROBE,
        NEIGH_VAR_UCAST_PROBE,
        NEIGH_VAR_APP_PROBE,
+       NEIGH_VAR_MCAST_REPROBE,
        NEIGH_VAR_RETRANS_TIME,
        NEIGH_VAR_BASE_REACHABLE_TIME,
        NEIGH_VAR_DELAY_PROBE_TIME,
@@ -2804,6 +2811,12 @@ static struct neigh_sysctl_table {
                        .mode           = 0644,
                        .proc_handler   = proc_dointvec,
                },
+               [NEIGH_VAR_MCAST_REPROBE] = {
+                       .procname       = "mcast_resolicit",
+                       .maxlen         = sizeof(int),
+                       .mode           = 0644,
+                       .proc_handler   = proc_dointvec,
+               },
                [NEIGH_VAR_UCAST_PROBE] = {
                        .procname       = "ucast_solicit",
                        .maxlen         = sizeof(int),
@@ -2940,6 +2953,7 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,
                goto err;

        t->neigh_vars[NEIGH_VAR_MCAST_PROBE].data  = &p->mcast_probes;
+       t->neigh_vars[NEIGH_VAR_MCAST_REPROBE].data  = &p->mcast_reprobes;
        t->neigh_vars[NEIGH_VAR_UCAST_PROBE].data  = &p->ucast_probes;
        t->neigh_vars[NEIGH_VAR_APP_PROBE].data  = &p->app_probes;
        t->neigh_vars[NEIGH_VAR_RETRANS_TIME].data  = &p->retrans_time;
--
1.9.1

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

* Re: [PATCH for kernel 3.4.x 1/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24  9:45 ` [PATCH for kernel 3.4.x 1/1] " Zhu Yanjun
  2015-03-24  9:51   ` Zhu, Yanjun
@ 2015-03-24 10:35   ` YOSHIFUJI Hideaki
  2015-03-25  6:40     ` yzhu1
  1 sibling, 1 reply; 11+ messages in thread
From: YOSHIFUJI Hideaki @ 2015-03-24 10:35 UTC (permalink / raw)
  To: Zhu Yanjun, lizefan, netdev, ulf.samuelsson, yoshfuji, Alexandre.Dietsch
  Cc: hideaki.yoshifuji

Hi.

Zhu Yanjun wrote:

> We send unicast neighbor (ARP or NDP) solicitations ucast_probes
> times in PROBE state.  Zhu Yanjun reported that some implementation
> does not reply against them and the entry will become FAILED, which
> is undesirable.
> 
> We had been dealt with such nodes by sending multicast probes mcast_
> solicit times after unicast probes in PROBE state.  In 2003, I made

I?  Or please Add the From: to change the author to me.

> a change not to send them to improve compatibility with IPv6 NDP.
> 
> Let's introduce per-protocol per-interface sysctl knob "mcast_
> reprobe" to configure the number of multicast (re)solicitation for
> reconfirmation in PROBE state.  The default is 0, since we have
> been doing so for 10+ years.
> 

You should say: 'This patch is based on commit foobar ("title") by
author...' or something here.

> Reported-by: Zhu Yanjun <Yanjun.Zhu@windriver.com>
> CC: Ulf Samuelsson <ulf.samuelsson@ericsson.com>
> Signed-off-by: YOSHIFUJI Hideaki <hideaki.yoshifuji@miraclelinux.com>
> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
> [Zhu Yanjun: since kernel 3.4.x is different from mainline kernel(kernel 4.0-rcX).
> This patch is modified a lot.]
> Signed-off-by: Zhu Yanjun <Yanjun.Zhu@windriver.com>

> ---
>  include/linux/neighbour.h |  1 +
>  include/net/neighbour.h   |  1 +
>  net/core/neighbour.c      | 20 +++++++++++++++++---
>  3 files changed, 19 insertions(+), 3 deletions(-)
> 
> diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h
> index b188f68..6945f4f 100644
> --- a/include/linux/neighbour.h
> +++ b/include/linux/neighbour.h
> @@ -112,6 +112,7 @@ enum {
>  	NDTPA_APP_PROBES,		/* u32 */
>  	NDTPA_UCAST_PROBES,		/* u32 */
>  	NDTPA_MCAST_PROBES,		/* u32 */
> +	NDTPA_MCAST_REPROBES,		/* u32 */
>  	NDTPA_ANYCAST_DELAY,		/* u64, msecs */
>  	NDTPA_PROXY_DELAY,		/* u64, msecs */
>  	NDTPA_PROXY_QLEN,		/* u32 */

No, this breaks binary compatibility.

-- 
Hideaki Yoshifuji <hideaki.yoshifuji@miraclelinux.com>
Technical Division, MIRACLE LINUX CORPORATION

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

* Re: [PATCH for kernel 3.4.x 0/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24  9:45 [PATCH for kernel 3.4.x 0/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state Zhu Yanjun
  2015-03-24  9:45 ` [PATCH for kernel 3.4.x 1/1] " Zhu Yanjun
@ 2015-03-24 11:06 ` YOSHIFUJI Hideaki
  2015-03-24 15:59   ` David Miller
  2015-03-25  2:24   ` yzhu1
  1 sibling, 2 replies; 11+ messages in thread
From: YOSHIFUJI Hideaki @ 2015-03-24 11:06 UTC (permalink / raw)
  To: Zhu Yanjun, lizefan, netdev, ulf.samuelsson, yoshfuji, Alexandre.Dietsch
  Cc: hideaki.yoshifuji

Hi,

Zhu Yanjun wrote:
> This patch is for the kernel 4.0. But kernel 3.4 needs this patch, too. So this patch is backported.
> There are the following modifications:
>  1. Because the mothod to set sysctl is different between kernel 3.4 and kernel 4.0, in this patch, the sysctl method is changed;
>  2. Because the variables of mcast_resolicit is different, in this patch, the function neigh_max_probes is changed;
>  3. Because there are so many modifications in this patch, so the author is changed to me;
> 
> Zhu Yanjun (1):
>   net: neighbour: Add mcast_resolicit to configure the number of
>     multicast resolicitations in PROBE state
> 
>  include/linux/neighbour.h |  1 +
>  include/net/neighbour.h   |  1 +
>  net/core/neighbour.c      | 20 +++++++++++++++++---
>  3 files changed, 19 insertions(+), 3 deletions(-)
> 

Hmm, it needs additional knob to change this 10+-year-old
behavior.  I am not for backporting this to old stable
kernels unless all stable kernels supports this knob as
well.

-- 
Hideaki Yoshifuji <hideaki.yoshifuji@miraclelinux.com>
Technical Division, MIRACLE LINUX CORPORATION

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

* Re: [PATCH for kernel 3.4.x 1/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24  9:51   ` Zhu, Yanjun
@ 2015-03-24 15:55     ` David Miller
  2015-03-25  2:22       ` yzhu1
  0 siblings, 1 reply; 11+ messages in thread
From: David Miller @ 2015-03-24 15:55 UTC (permalink / raw)
  To: Yanjun.Zhu
  Cc: lizefan, netdev, ulf.samuelsson, hideaki.yoshifuji, yoshfuji,
	Alexandre.Dietsch

From: "Zhu, Yanjun" <Yanjun.Zhu@windriver.com>
Date: Tue, 24 Mar 2015 09:51:56 +0000

> This patch is needed in linux kernel 3.4.106. I made a new patch
> based on linux kernel 3.4.106. Please let me know your advice.

It's a new feature therefore not appropriate for -stable.

It's only "needed" from your perspective, therefore you can apply it
to your own local sources as needed.

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

* Re: [PATCH for kernel 3.4.x 0/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24 11:06 ` [PATCH for kernel 3.4.x 0/1] " YOSHIFUJI Hideaki
@ 2015-03-24 15:59   ` David Miller
  2015-03-24 23:06     ` YOSHIFUJI Hideaki
  2015-03-25  2:24   ` yzhu1
  1 sibling, 1 reply; 11+ messages in thread
From: David Miller @ 2015-03-24 15:59 UTC (permalink / raw)
  To: hideaki.yoshifuji
  Cc: Yanjun.Zhu, lizefan, netdev, ulf.samuelsson, yoshfuji, Alexandre.Dietsch

From: YOSHIFUJI Hideaki <hideaki.yoshifuji@miraclelinux.com>
Date: Tue, 24 Mar 2015 20:06:43 +0900

> Hmm, it needs additional knob to change this 10+-year-old
> behavior.  I am not for backporting this to old stable
> kernels unless all stable kernels supports this knob as
> well.

It is not appropriate for -stable at all.

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

* Re: [PATCH for kernel 3.4.x 0/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24 15:59   ` David Miller
@ 2015-03-24 23:06     ` YOSHIFUJI Hideaki
  0 siblings, 0 replies; 11+ messages in thread
From: YOSHIFUJI Hideaki @ 2015-03-24 23:06 UTC (permalink / raw)
  To: David Miller
  Cc: hideaki.yoshifuji, Yanjun.Zhu, lizefan, netdev, ulf.samuelsson,
	yoshfuji, Alexandre.Dietsch

David Miller wrote:
> From: YOSHIFUJI Hideaki <hideaki.yoshifuji@miraclelinux.com>
> Date: Tue, 24 Mar 2015 20:06:43 +0900
> 
>> Hmm, it needs additional knob to change this 10+-year-old
>> behavior.  I am not for backporting this to old stable
>> kernels unless all stable kernels supports this knob as
>> well.
> 
> It is not appropriate for -stable at all.
> 

I thought some people might say that it was a long-standing
bug, but I totally agree with you, Dave.

--yoshfuji

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

* Re: [PATCH for kernel 3.4.x 1/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24 15:55     ` David Miller
@ 2015-03-25  2:22       ` yzhu1
  0 siblings, 0 replies; 11+ messages in thread
From: yzhu1 @ 2015-03-25  2:22 UTC (permalink / raw)
  To: David Miller
  Cc: lizefan, netdev, ulf.samuelsson, hideaki.yoshifuji, yoshfuji,
	Alexandre.Dietsch

On 03/24/2015 11:55 PM, David Miller wrote:
> From: "Zhu, Yanjun" <Yanjun.Zhu@windriver.com>
> Date: Tue, 24 Mar 2015 09:51:56 +0000
>
>> This patch is needed in linux kernel 3.4.106. I made a new patch
>> based on linux kernel 3.4.106. Please let me know your advice.
> It's a new feature therefore not appropriate for -stable.
>
> It's only "needed" from your perspective, therefore you can apply it
> to your own local sources as needed.
>
>
OK. Thanks for your comments.

Zhu Yanjun

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

* Re: [PATCH for kernel 3.4.x 0/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24 11:06 ` [PATCH for kernel 3.4.x 0/1] " YOSHIFUJI Hideaki
  2015-03-24 15:59   ` David Miller
@ 2015-03-25  2:24   ` yzhu1
  1 sibling, 0 replies; 11+ messages in thread
From: yzhu1 @ 2015-03-25  2:24 UTC (permalink / raw)
  To: YOSHIFUJI Hideaki, lizefan, netdev, ulf.samuelsson, yoshfuji,
	Alexandre.Dietsch

On 03/24/2015 07:06 PM, YOSHIFUJI Hideaki wrote:
> Hi,
>
> Zhu Yanjun wrote:
>> This patch is for the kernel 4.0. But kernel 3.4 needs this patch, too. So this patch is backported.
>> There are the following modifications:
>>  1. Because the mothod to set sysctl is different between kernel 3.4 and kernel 4.0, in this patch, the sysctl method is changed;
>>  2. Because the variables of mcast_resolicit is different, in this patch, the function neigh_max_probes is changed;
>>  3. Because there are so many modifications in this patch, so the author is changed to me;
>>
>> Zhu Yanjun (1):
>>   net: neighbour: Add mcast_resolicit to configure the number of
>>     multicast resolicitations in PROBE state
>>
>>  include/linux/neighbour.h |  1 +
>>  include/net/neighbour.h   |  1 +
>>  net/core/neighbour.c      | 20 +++++++++++++++++---
>>  3 files changed, 19 insertions(+), 3 deletions(-)
>>
> Hmm, it needs additional knob to change this 10+-year-old
> behavior.  I am not for backporting this to old stable
> kernels unless all stable kernels supports this knob as
> well.
>
HI, YOSHIFUJI

>From your perspective, what is the additional knob ? would you like to
let me know?

Best Regards!
Zhu Yanjun

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

* Re: [PATCH for kernel 3.4.x 1/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state
  2015-03-24 10:35   ` YOSHIFUJI Hideaki
@ 2015-03-25  6:40     ` yzhu1
  0 siblings, 0 replies; 11+ messages in thread
From: yzhu1 @ 2015-03-25  6:40 UTC (permalink / raw)
  To: YOSHIFUJI Hideaki, lizefan, netdev, ulf.samuelsson, yoshfuji,
	Alexandre.Dietsch

On 03/24/2015 06:35 PM, YOSHIFUJI Hideaki wrote:
> Hi.
>
> Zhu Yanjun wrote:
>
>> We send unicast neighbor (ARP or NDP) solicitations ucast_probes
>> times in PROBE state.  Zhu Yanjun reported that some implementation
>> does not reply against them and the entry will become FAILED, which
>> is undesirable.
>>
>> We had been dealt with such nodes by sending multicast probes mcast_
>> solicit times after unicast probes in PROBE state.  In 2003, I made
> I?  Or please Add the From: to change the author to me.
>
>> a change not to send them to improve compatibility with IPv6 NDP.
>>
>> Let's introduce per-protocol per-interface sysctl knob "mcast_
>> reprobe" to configure the number of multicast (re)solicitation for
>> reconfirmation in PROBE state.  The default is 0, since we have
>> been doing so for 10+ years.
>>
> You should say: 'This patch is based on commit foobar ("title") by
> author...' or something here.
>
>> Reported-by: Zhu Yanjun <Yanjun.Zhu@windriver.com>
>> CC: Ulf Samuelsson <ulf.samuelsson@ericsson.com>
>> Signed-off-by: YOSHIFUJI Hideaki <hideaki.yoshifuji@miraclelinux.com>
>> Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
>> [Zhu Yanjun: since kernel 3.4.x is different from mainline kernel(kernel 4.0-rcX).
>> This patch is modified a lot.]
>> Signed-off-by: Zhu Yanjun <Yanjun.Zhu@windriver.com>
>> ---
>>  include/linux/neighbour.h |  1 +
>>  include/net/neighbour.h   |  1 +
>>  net/core/neighbour.c      | 20 +++++++++++++++++---
>>  3 files changed, 19 insertions(+), 3 deletions(-)
>>
>> diff --git a/include/linux/neighbour.h b/include/linux/neighbour.h
>> index b188f68..6945f4f 100644
>> --- a/include/linux/neighbour.h
>> +++ b/include/linux/neighbour.h
>> @@ -112,6 +112,7 @@ enum {
>>  	NDTPA_APP_PROBES,		/* u32 */
>>  	NDTPA_UCAST_PROBES,		/* u32 */
>>  	NDTPA_MCAST_PROBES,		/* u32 */
>> +	NDTPA_MCAST_REPROBES,		/* u32 */
>>  	NDTPA_ANYCAST_DELAY,		/* u64, msecs */
>>  	NDTPA_PROXY_DELAY,		/* u64, msecs */
>>  	NDTPA_PROXY_QLEN,		/* u32 */
> No, this breaks binary compatibility.
Sorry. My bad. I will correct.

Best Regards!
Zhu Yanjun

>

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

end of thread, other threads:[~2015-03-25  6:40 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-24  9:45 [PATCH for kernel 3.4.x 0/1] net: neighbour: Add mcast_resolicit to configure the number of multicast resolicitations in PROBE state Zhu Yanjun
2015-03-24  9:45 ` [PATCH for kernel 3.4.x 1/1] " Zhu Yanjun
2015-03-24  9:51   ` Zhu, Yanjun
2015-03-24 15:55     ` David Miller
2015-03-25  2:22       ` yzhu1
2015-03-24 10:35   ` YOSHIFUJI Hideaki
2015-03-25  6:40     ` yzhu1
2015-03-24 11:06 ` [PATCH for kernel 3.4.x 0/1] " YOSHIFUJI Hideaki
2015-03-24 15:59   ` David Miller
2015-03-24 23:06     ` YOSHIFUJI Hideaki
2015-03-25  2:24   ` yzhu1

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.