* Re: [Lksctp-developers] ARP request being sent every 20 seconds or so
@ 2013-03-20 12:40 Vlad Yasevich
2013-03-21 13:24 ` Vlad Yasevich
2013-03-22 8:24 ` upma gandhi
0 siblings, 2 replies; 3+ messages in thread
From: Vlad Yasevich @ 2013-03-20 12:40 UTC (permalink / raw)
To: linux-sctp
On 03/20/2013 06:40 AM, upma gandhi wrote:
> Hi Vlad,
> I am using linux kernel 2.6.32 and wondering if the fix you are
> referring is after that ?
> I would like to know if MIB variable SCTP_MIB_OUTSCTPPACKS is picked
> up by ICMP to figure out if neighbour is stale/unreachable/delay etc.
> ? Can you pls. point me to variable which is being set by SCTp on
> successful packet out and pickup by ARP to figure out if resolution is
> required or not ? I am sorry for writing personal mail but I am in
> need of solution faster.
I just checked, and we don't appear to have this fix. Let me see if I
can cook something up for you to test.
-vlad
>
> Thanks
> Upma
>
> On Tue, Mar 19, 2013 at 5:37 PM, Vlad Yasevich <vyasevich@gmail.com> wrote:
>> On 03/19/2013 05:03 AM, upma gandhi wrote:
>>> Hello All,
>>> I have one basic SCTP client and server ( having single network
>>> connection) and client is continuously sending data to server every 1
>>> second. I am seeing that server is sending ARP request every 20
>>> seconds or so ( see below logs) for client IP address. If I use TCP
>>> client/ server instead of SCTP, I see that ARP request is being sent
>>> every 4 minute. Can somebody clarify why its happening or if my
>>> observation is wrong ?
>>
>> There was an old bug that SCTP didn't update the route forward progress
>> thus causing NUD to kick in even though reachability was configured
>> through SCTP. I thought it was fixed a long time ago. Which kernel
>> version are you using?
>>
>> -vlad
>>
>>>
>>> Thanks
>>>
>>> ------------------------------------------------------------------------------
>>> Everyone hates slow websites. So do we.
>>> Make your web apps faster with AppDynamics
>>> Download AppDynamics Lite for free today:
>>> http://p.sf.net/sfu/appdyn_d2d_mar
>>> _______________________________________________
>>> Lksctp-developers mailing list
>>> Lksctp-developers@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/lksctp-developers
>>>
>>
>>
>> ------------------------------------------------------------------------------
>> Everyone hates slow websites. So do we.
>> Make your web apps faster with AppDynamics
>> Download AppDynamics Lite for free today:
>> http://p.sf.net/sfu/appdyn_d2d_mar
>> _______________________________________________
>> Lksctp-developers mailing list
>> Lksctp-developers@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/lksctp-developers
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Lksctp-developers] ARP request being sent every 20 seconds or so
2013-03-20 12:40 [Lksctp-developers] ARP request being sent every 20 seconds or so Vlad Yasevich
@ 2013-03-21 13:24 ` Vlad Yasevich
2013-03-22 8:24 ` upma gandhi
1 sibling, 0 replies; 3+ messages in thread
From: Vlad Yasevich @ 2013-03-21 13:24 UTC (permalink / raw)
To: linux-sctp
[-- Attachment #1: Type: text/plain, Size: 3674 bytes --]
On 03/21/2013 03:38 AM, upma gandhi wrote:
> Hi Vlad,
> I understand that SCTP_MIB_OUTSCTPPACKS is just for SCTP level stats.
> But in route module, when a packet( SCTP) is send out for some
> neighbor, we must be updating "used" variable with 'jiffies' and
> which should not let ARP expiry timer kick in ? or is it that dst at
> SCTP layer doesn't match exactly to neighbor maintained at ARP layer ?
> I am asking all this for my understanding, pls. let me know if there
> is any document which talks about SCTP linux implementation.
The MIB attribute is just that. It is used in the SNMP MIB.
The solution is for SCTP to call the proper dst/route code when the time
is right. Essentially, when SCTP determines that is has made forward
progress in the connection, it can call dst_confirm().
I am attaching a patch that does this, but I have not tested it yet.
Give it a try and let me know if it works for you.
-vlad
>
> Thanks
> Upma
>
>
> On Wed, Mar 20, 2013 at 6:10 PM, Vlad Yasevich <vyasevich@gmail.com> wrote:
>> On 03/20/2013 06:40 AM, upma gandhi wrote:
>>>
>>> Hi Vlad,
>>> I am using linux kernel 2.6.32 and wondering if the fix you are
>>> referring is after that ?
>>> I would like to know if MIB variable SCTP_MIB_OUTSCTPPACKS is picked
>>> up by ICMP to figure out if neighbour is stale/unreachable/delay etc.
>>> ? Can you pls. point me to variable which is being set by SCTp on
>>> successful packet out and pickup by ARP to figure out if resolution is
>>> required or not ? I am sorry for writing personal mail but I am in
>>> need of solution faster.
>>
>>
>> I just checked, and we don't appear to have this fix. Let me see if I can
>> cook something up for you to test.
>>
>> -vlad
>>
>>>
>>> Thanks
>>> Upma
>>>
>>> On Tue, Mar 19, 2013 at 5:37 PM, Vlad Yasevich <vyasevich@gmail.com>
>>> wrote:
>>>>
>>>> On 03/19/2013 05:03 AM, upma gandhi wrote:
>>>>>
>>>>> Hello All,
>>>>> I have one basic SCTP client and server ( having single network
>>>>> connection) and client is continuously sending data to server every 1
>>>>> second. I am seeing that server is sending ARP request every 20
>>>>> seconds or so ( see below logs) for client IP address. If I use TCP
>>>>> client/ server instead of SCTP, I see that ARP request is being sent
>>>>> every 4 minute. Can somebody clarify why its happening or if my
>>>>> observation is wrong ?
>>>>
>>>>
>>>> There was an old bug that SCTP didn't update the route forward progress
>>>> thus causing NUD to kick in even though reachability was configured
>>>> through SCTP. I thought it was fixed a long time ago. Which kernel
>>>> version are you using?
>>>>
>>>> -vlad
>>>>
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Everyone hates slow websites. So do we.
>>>>> Make your web apps faster with AppDynamics
>>>>> Download AppDynamics Lite for free today:
>>>>> http://p.sf.net/sfu/appdyn_d2d_mar
>>>>> _______________________________________________
>>>>> Lksctp-developers mailing list
>>>>> Lksctp-developers@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/lksctp-developers
>>>>>
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Everyone hates slow websites. So do we.
>>>> Make your web apps faster with AppDynamics
>>>> Download AppDynamics Lite for free today:
>>>> http://p.sf.net/sfu/appdyn_d2d_mar
>>>> _______________________________________________
>>>> Lksctp-developers mailing list
>>>> Lksctp-developers@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/lksctp-developers
>>
>>
[-- Attachment #2: 0001-sctp-Confirm-route-during-forward-progress.patch --]
[-- Type: text/x-patch, Size: 2691 bytes --]
From 6b5ccbdcddf0cfe763f27e0e264a685b53987a7c Mon Sep 17 00:00:00 2001
From: Vlad Yasevich <vyasevich@gmail.com>
Date: Thu, 21 Mar 2013 09:12:18 -0400
Subject: [PATCH] sctp: Confirm route during forward progress.
When SCTP makes forward progress (receives a SACK that acks new chunks,
renegs, or answeres 0-window probes) or when HB-ACK arrives, mark
the route as confirmed so we don't unnecessarily send NUD probes.
Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
---
net/sctp/outqueue.c | 9 +++++++++
net/sctp/sm_sideeffect.c | 6 ++++++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c
index 01dca75..643c487 100644
--- a/net/sctp/outqueue.c
+++ b/net/sctp/outqueue.c
@@ -1354,6 +1354,7 @@ static void sctp_check_transmitted(struct sctp_outq *q,
__u8 restart_timer = 0;
int bytes_acked = 0;
int migrate_bytes = 0;
+ bool forward_progress = false;
/* These state variables are for coherent debug output. --xguo */
@@ -1435,6 +1436,7 @@ static void sctp_check_transmitted(struct sctp_outq *q,
bytes_acked += sctp_data_size(tchunk);
if (!tchunk->transport)
migrate_bytes += sctp_data_size(tchunk);
+ forward_progress = true;
}
if (TSN_lte(tsn, sack_ctsn)) {
@@ -1557,6 +1559,7 @@ static void sctp_check_transmitted(struct sctp_outq *q,
* transmitted if it is not already running.
*/
restart_timer = 1;
+ forward_progress = true;
}
list_add_tail(lchunk, &tlist);
@@ -1690,6 +1693,7 @@ static void sctp_check_transmitted(struct sctp_outq *q,
__func__, sack_ctsn);
q->asoc->overall_error_count = 0;
transport->error_count = 0;
+ forward_progress = true;
}
}
@@ -1707,6 +1711,11 @@ static void sctp_check_transmitted(struct sctp_outq *q,
jiffies + transport->rto))
sctp_transport_hold(transport);
}
+
+ if (forward_progress) {
+ if (transport->dst)
+ dst_confirm(transport->dst);
+ }
}
list_splice(&tlist, transmitted_queue);
diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
index 8aab894..a657d87 100644
--- a/net/sctp/sm_sideeffect.c
+++ b/net/sctp/sm_sideeffect.c
@@ -733,6 +733,12 @@ static void sctp_cmd_transport_on(sctp_cmd_seq_t *cmds,
sctp_assoc_control_transport(asoc, t, SCTP_TRANSPORT_UP,
SCTP_HEARTBEAT_SUCCESS);
+ /* HB-ACK was received for a the proper HB. Consider this
+ * forward progress.
+ */
+ if (t->dst)
+ dst_confirm(t->dst);
+
/* The receiver of the HEARTBEAT ACK should also perform an
* RTT measurement for that destination transport address
* using the time value carried in the HEARTBEAT ACK chunk.
--
1.7.7.6
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Lksctp-developers] ARP request being sent every 20 seconds or so
2013-03-20 12:40 [Lksctp-developers] ARP request being sent every 20 seconds or so Vlad Yasevich
2013-03-21 13:24 ` Vlad Yasevich
@ 2013-03-22 8:24 ` upma gandhi
1 sibling, 0 replies; 3+ messages in thread
From: upma gandhi @ 2013-03-22 8:24 UTC (permalink / raw)
To: linux-sctp
Thanks Vlad, Will try and let you know.
There seems to be one issue in 2.6.32 where netstat shows sctp
socket in CLOSE state and it never cleans up. Rebooting m/c does solve
the problem.
Thanks
Upma
On Thu, Mar 21, 2013 at 6:54 PM, Vlad Yasevich <vyasevich@gmail.com> wrote:
> On 03/21/2013 03:38 AM, upma gandhi wrote:
>>
>> Hi Vlad,
>> I understand that SCTP_MIB_OUTSCTPPACKS is just for SCTP level stats.
>> But in route module, when a packet( SCTP) is send out for some
>> neighbor, we must be updating "used" variable with 'jiffies' and
>> which should not let ARP expiry timer kick in ? or is it that dst at
>> SCTP layer doesn't match exactly to neighbor maintained at ARP layer ?
>> I am asking all this for my understanding, pls. let me know if there
>> is any document which talks about SCTP linux implementation.
>
>
> The MIB attribute is just that. It is used in the SNMP MIB.
>
> The solution is for SCTP to call the proper dst/route code when the time is
> right. Essentially, when SCTP determines that is has made forward progress
> in the connection, it can call dst_confirm().
>
> I am attaching a patch that does this, but I have not tested it yet.
> Give it a try and let me know if it works for you.
>
> -vlad
>
>>
>> Thanks
>> Upma
>>
>>
>> On Wed, Mar 20, 2013 at 6:10 PM, Vlad Yasevich <vyasevich@gmail.com>
>> wrote:
>>>
>>> On 03/20/2013 06:40 AM, upma gandhi wrote:
>>>>
>>>>
>>>> Hi Vlad,
>>>> I am using linux kernel 2.6.32 and wondering if the fix you are
>>>> referring is after that ?
>>>> I would like to know if MIB variable SCTP_MIB_OUTSCTPPACKS is picked
>>>> up by ICMP to figure out if neighbour is stale/unreachable/delay etc.
>>>> ? Can you pls. point me to variable which is being set by SCTp on
>>>> successful packet out and pickup by ARP to figure out if resolution is
>>>> required or not ? I am sorry for writing personal mail but I am in
>>>> need of solution faster.
>>>
>>>
>>>
>>> I just checked, and we don't appear to have this fix. Let me see if I
>>> can
>>> cook something up for you to test.
>>>
>>> -vlad
>>>
>>>>
>>>> Thanks
>>>> Upma
>>>>
>>>> On Tue, Mar 19, 2013 at 5:37 PM, Vlad Yasevich <vyasevich@gmail.com>
>>>> wrote:
>>>>>
>>>>>
>>>>> On 03/19/2013 05:03 AM, upma gandhi wrote:
>>>>>>
>>>>>>
>>>>>> Hello All,
>>>>>> I have one basic SCTP client and server ( having single network
>>>>>> connection) and client is continuously sending data to server every 1
>>>>>> second. I am seeing that server is sending ARP request every 20
>>>>>> seconds or so ( see below logs) for client IP address. If I use TCP
>>>>>> client/ server instead of SCTP, I see that ARP request is being sent
>>>>>> every 4 minute. Can somebody clarify why its happening or if my
>>>>>> observation is wrong ?
>>>>>
>>>>>
>>>>>
>>>>> There was an old bug that SCTP didn't update the route forward progress
>>>>> thus causing NUD to kick in even though reachability was configured
>>>>> through SCTP. I thought it was fixed a long time ago. Which kernel
>>>>> version are you using?
>>>>>
>>>>> -vlad
>>>>>
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Everyone hates slow websites. So do we.
>>>>>> Make your web apps faster with AppDynamics
>>>>>> Download AppDynamics Lite for free today:
>>>>>> http://p.sf.net/sfu/appdyn_d2d_mar
>>>>>> _______________________________________________
>>>>>> Lksctp-developers mailing list
>>>>>> Lksctp-developers@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/lksctp-developers
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Everyone hates slow websites. So do we.
>>>>> Make your web apps faster with AppDynamics
>>>>> Download AppDynamics Lite for free today:
>>>>> http://p.sf.net/sfu/appdyn_d2d_mar
>>>>> _______________________________________________
>>>>> Lksctp-developers mailing list
>>>>> Lksctp-developers@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/lksctp-developers
>>>
>>>
>>>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-03-22 8:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-20 12:40 [Lksctp-developers] ARP request being sent every 20 seconds or so Vlad Yasevich
2013-03-21 13:24 ` Vlad Yasevich
2013-03-22 8:24 ` upma gandhi
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.