Thread (19 messages) 19 messages, 4 authors, 2012-10-30

Re: [PATCH net-next] sctp: support per-association stats via a new SCTP_GET_ASSOC_STATS call

flat view

From: Thomas Graf <tgraf@suug.ch>
Date: 2012-10-29 08:41:51
Also in: linux-sctp

On 10/26/12 at 10:37am, Neil Horman wrote:
We already have files in /proc/net/sctp to count snmp system-wide totals,
per-endpoint totals, and per association totals.  Why do these stats differently
instead of just adding them the per-association file?  I get that solaris does
this, but its not codified in any of the RFC's or other standards.  I would
really rather see something like this go into the interfaces we have, rather
than creating a new one.
I really dislike to grow the procfs interface. I would favour a
netlink inteface but we already export all the statistics via
the socket interface so this is the most consistent choice.
And the max observed rto stat is just odd.  Each
transport has an rto value, not each association, and you cal already see the
individual transport rto values in /proc/net/sctp/remaddr.
It's true that this is not found in any RFC and the request seems to
be based on the fact that Solaris provides this information already.
Recording the largest observed RTO is critical for latency sensitive
use cases. Looking at RTO in remaddr doesn't really help to figure out
the MAX(RTO) even with a very high polling frequency, something you
don't want to do on a procfs file.
quoted
+	if (q->asoc)
+		q->asoc->rtxpackets++;
+
+
This seems incorrect to me.  The packet being assembled here may have new chunks
in it (either control or data).  Counting a packet as being retransmitted just
because it has a retransmitted chunk in it seems wrong.  At the very least its a
misleading/vague statistic.
I agree, this can't be done 100% accurate. I'm fine with leaving this
out and have userspace create the sum of SCTP_MIB_*_RETRANSMITS.
quoted
+		if (chunk->asoc)
+			chunk->asoc->outseqtsns++;
This just seems wrong.  The definition states that this is counting the last TSN
recevied (despite being name outseqtsns), yet this looks like you're:
1) just incrementing a counter, rather than recording the TSN value itself
(which may or may not be what you meant, but seems to contradict what the
comments at the definition)
2) Only incremanting it if the TSN is out of range, which makes very little
sense to me.
As Vlad pointed out the name could be improved but the description
seems correct. The statistic counts the number of chunks where
TSN > expected.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help