summaryrefslogtreecommitdiff
path: root/net/netrom/sysctl_net_netrom.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2005-09-12 14:27:37 -0700
committerDavid S. Miller <davem@davemloft.net>2005-09-12 14:27:37 -0700
commite21ce8c7c013fb223a002c70bb0a547de6c26c12 (patch)
tree767b9aae7bdd50cdf867f3cdc1a3e214692146e1 /net/netrom/sysctl_net_netrom.c
parentd2ce4bc340946d5b78484d638ac10df958c4c3bf (diff)
downloadlwn-e21ce8c7c013fb223a002c70bb0a547de6c26c12.tar.gz
lwn-e21ce8c7c013fb223a002c70bb0a547de6c26c12.zip
[NETROM]: Implement G8PZT Circuit reset for NET/ROM
NET/ROM is lacking a connection reset like TCP's RST flag which at times may result in a connecting having to slowly timing out instead of just being reset. An earlier attempt to reset the connection by sending a NR_CONNACK | NR_CHOKE_FLAG transport was inacceptable as it did result in crashes of BPQ systems. An alternative approach of introducing a new transport type 7 (NR_RESET) has be implemented several years ago in Paula Jayne Dowie G8PZT's Xrouter. Implement NR_RESET for Linux's NET/ROM but like any messing with the state engine consider this experimental for now and thus control it by a sysctl (net.netrom.reset) which for the time being defaults to off. Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netrom/sysctl_net_netrom.c')
-rw-r--r--net/netrom/sysctl_net_netrom.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/net/netrom/sysctl_net_netrom.c b/net/netrom/sysctl_net_netrom.c
index c9ed50382ea7..6bb8dda849dc 100644
--- a/net/netrom/sysctl_net_netrom.c
+++ b/net/netrom/sysctl_net_netrom.c
@@ -30,6 +30,7 @@ static int min_idle[] = {0 * HZ};
static int max_idle[] = {65535 * HZ};
static int min_route[] = {0}, max_route[] = {1};
static int min_fails[] = {1}, max_fails[] = {10};
+static int min_reset[] = {0}, max_reset[] = {1};
static struct ctl_table_header *nr_table_header;
@@ -155,6 +156,17 @@ static ctl_table nr_table[] = {
.extra1 = &min_fails,
.extra2 = &max_fails
},
+ {
+ .ctl_name = NET_NETROM_RESET,
+ .procname = "reset",
+ .data = &sysctl_netrom_reset_circuit,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec_minmax,
+ .strategy = &sysctl_intvec,
+ .extra1 = &min_reset,
+ .extra2 = &max_reset
+ },
{ .ctl_name = 0 }
};