summaryrefslogtreecommitdiffstats
path: root/net/kcm/kcmproc.c
diff options
context:
space:
mode:
authorTom Herbert <tom@herbertland.com>2016-03-07 17:11:11 -0500
committerDavid S. Miller <davem@davemloft.net>2016-03-09 16:36:15 -0500
commit29152a34f72cb4d7ab32885ad2f20a482c92a8f3 (patch)
tree89287b971525eab8a238437e3e12959074f9fa63 /net/kcm/kcmproc.c
parent7ced95ef525c329f947c424859cf2b0a3b731f8c (diff)
kcm: Add receive message timeout
This patch adds receive timeout for message assembly on the attached TCP sockets. The timeout is set when a new messages is started and the whole message has not been received by TCP (not in the receive queue). If the completely message is subsequently received the timer is cancelled, if the timer expires the RX side is aborted. The timeout value is taken from the socket timeout (SO_RCVTIMEO) that is set on a TCP socket (i.e. set by get sockopt before attaching a TCP socket to KCM. Signed-off-by: Tom Herbert <tom@herbertland.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/kcm/kcmproc.c')
-rw-r--r--net/kcm/kcmproc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/kcm/kcmproc.c b/net/kcm/kcmproc.c
index 7638b3555b17..738008726cc6 100644
--- a/net/kcm/kcmproc.c
+++ b/net/kcm/kcmproc.c
@@ -331,7 +331,7 @@ static int kcm_stats_seq_show(struct seq_file *seq, void *v)
331 mux_stats.rx_ready_drops); 331 mux_stats.rx_ready_drops);
332 332
333 seq_printf(seq, 333 seq_printf(seq,
334 "%-8s %-10s %-16s %-10s %-16s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s\n", 334 "%-8s %-10s %-16s %-10s %-16s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s %-10s\n",
335 "Psock", 335 "Psock",
336 "RX-Msgs", 336 "RX-Msgs",
337 "RX-Bytes", 337 "RX-Bytes",
@@ -344,10 +344,11 @@ static int kcm_stats_seq_show(struct seq_file *seq, void *v)
344 "RX-NeedMor", 344 "RX-NeedMor",
345 "RX-BadLen", 345 "RX-BadLen",
346 "RX-TooBig", 346 "RX-TooBig",
347 "RX-Timeout",
347 "TX-Aborts"); 348 "TX-Aborts");
348 349
349 seq_printf(seq, 350 seq_printf(seq,
350 "%-8s %-10llu %-16llu %-10llu %-16llu %-10llu %-10llu %-10u %-10u %-10u %-10u %-10u %-10u\n", 351 "%-8s %-10llu %-16llu %-10llu %-16llu %-10llu %-10llu %-10u %-10u %-10u %-10u %-10u %-10u %-10u\n",
351 "", 352 "",
352 psock_stats.rx_msgs, 353 psock_stats.rx_msgs,
353 psock_stats.rx_bytes, 354 psock_stats.rx_bytes,
@@ -360,6 +361,7 @@ static int kcm_stats_seq_show(struct seq_file *seq, void *v)
360 psock_stats.rx_need_more_hdr, 361 psock_stats.rx_need_more_hdr,
361 psock_stats.rx_bad_hdr_len, 362 psock_stats.rx_bad_hdr_len,
362 psock_stats.rx_msg_too_big, 363 psock_stats.rx_msg_too_big,
364 psock_stats.rx_msg_timeouts,
363 psock_stats.tx_aborts); 365 psock_stats.tx_aborts);
364 366
365 return 0; 367 return 0;