Blame view

net/dccp/sysctl.c 2.65 KB
e46bd7099   Thomas Gleixner   treewide: Replace...
1
  // SPDX-License-Identifier: GPL-2.0-only
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
2
3
4
5
6
  /*
   *  net/dccp/sysctl.c
   *
   *  An implementation of the DCCP protocol
   *  Arnaldo Carvalho de Melo <acme@mandriva.com>
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
7
   */
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
8
9
  #include <linux/mm.h>
  #include <linux/sysctl.h>
2e2e9e92b   Gerrit Renker   [DCCP]: Add sysct...
10
  #include "dccp.h"
2a0109a70   Ian McDonald   [DCCP]: Shift sys...
11
  #include "feat.h"
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
12
13
14
15
  
  #ifndef CONFIG_SYSCTL
  #error This file should not be compiled without CONFIG_SYSCTL defined
  #endif
883ca833e   Gerrit Renker   dccp: Initialisat...
16
  /* Boundary values */
eec4844fa   Matteo Croce   proc/sysctl: add ...
17
  static int		u8_max   = 0xFF;
bfbb23466   Gerrit Renker   dccp: make upper ...
18
19
  static unsigned long	seqw_min = DCCPF_SEQ_WMIN,
  			seqw_max = 0xFFFFFFFF;		/* maximum on 32 bit */
883ca833e   Gerrit Renker   dccp: Initialisat...
20

e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
21
22
  static struct ctl_table dccp_default_table[] = {
  	{
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
23
  		.procname	= "seq_window",
883ca833e   Gerrit Renker   dccp: Initialisat...
24
25
  		.data		= &sysctl_dccp_sequence_window,
  		.maxlen		= sizeof(sysctl_dccp_sequence_window),
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
26
  		.mode		= 0644,
883ca833e   Gerrit Renker   dccp: Initialisat...
27
28
  		.proc_handler	= proc_doulongvec_minmax,
  		.extra1		= &seqw_min,		/* RFC 4340, 7.5.2 */
bfbb23466   Gerrit Renker   dccp: make upper ...
29
  		.extra2		= &seqw_max,
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
30
31
  	},
  	{
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
32
  		.procname	= "rx_ccid",
883ca833e   Gerrit Renker   dccp: Initialisat...
33
34
  		.data		= &sysctl_dccp_rx_ccid,
  		.maxlen		= sizeof(sysctl_dccp_rx_ccid),
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
35
  		.mode		= 0644,
883ca833e   Gerrit Renker   dccp: Initialisat...
36
  		.proc_handler	= proc_dointvec_minmax,
eec4844fa   Matteo Croce   proc/sysctl: add ...
37
  		.extra1		= SYSCTL_ZERO,
883ca833e   Gerrit Renker   dccp: Initialisat...
38
  		.extra2		= &u8_max,		/* RFC 4340, 10. */
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
39
40
  	},
  	{
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
41
  		.procname	= "tx_ccid",
883ca833e   Gerrit Renker   dccp: Initialisat...
42
43
  		.data		= &sysctl_dccp_tx_ccid,
  		.maxlen		= sizeof(sysctl_dccp_tx_ccid),
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
44
  		.mode		= 0644,
883ca833e   Gerrit Renker   dccp: Initialisat...
45
  		.proc_handler	= proc_dointvec_minmax,
eec4844fa   Matteo Croce   proc/sysctl: add ...
46
  		.extra1		= SYSCTL_ZERO,
883ca833e   Gerrit Renker   dccp: Initialisat...
47
  		.extra2		= &u8_max,		/* RFC 4340, 10. */
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
48
49
  	},
  	{
2e2e9e92b   Gerrit Renker   [DCCP]: Add sysct...
50
51
52
53
  		.procname	= "request_retries",
  		.data		= &sysctl_dccp_request_retries,
  		.maxlen		= sizeof(sysctl_dccp_request_retries),
  		.mode		= 0644,
883ca833e   Gerrit Renker   dccp: Initialisat...
54
  		.proc_handler	= proc_dointvec_minmax,
eec4844fa   Matteo Croce   proc/sysctl: add ...
55
  		.extra1		= SYSCTL_ONE,
883ca833e   Gerrit Renker   dccp: Initialisat...
56
  		.extra2		= &u8_max,
2e2e9e92b   Gerrit Renker   [DCCP]: Add sysct...
57
58
  	},
  	{
2e2e9e92b   Gerrit Renker   [DCCP]: Add sysct...
59
60
61
62
  		.procname	= "retries1",
  		.data		= &sysctl_dccp_retries1,
  		.maxlen		= sizeof(sysctl_dccp_retries1),
  		.mode		= 0644,
883ca833e   Gerrit Renker   dccp: Initialisat...
63
  		.proc_handler	= proc_dointvec_minmax,
eec4844fa   Matteo Croce   proc/sysctl: add ...
64
  		.extra1		= SYSCTL_ZERO,
883ca833e   Gerrit Renker   dccp: Initialisat...
65
  		.extra2		= &u8_max,
2e2e9e92b   Gerrit Renker   [DCCP]: Add sysct...
66
67
  	},
  	{
2e2e9e92b   Gerrit Renker   [DCCP]: Add sysct...
68
69
70
71
  		.procname	= "retries2",
  		.data		= &sysctl_dccp_retries2,
  		.maxlen		= sizeof(sysctl_dccp_retries2),
  		.mode		= 0644,
883ca833e   Gerrit Renker   dccp: Initialisat...
72
  		.proc_handler	= proc_dointvec_minmax,
eec4844fa   Matteo Croce   proc/sysctl: add ...
73
  		.extra1		= SYSCTL_ZERO,
883ca833e   Gerrit Renker   dccp: Initialisat...
74
  		.extra2		= &u8_max,
2e2e9e92b   Gerrit Renker   [DCCP]: Add sysct...
75
  	},
82e3ab9db   Ian McDonald   [DCCP]: Adds the ...
76
  	{
82e3ab9db   Ian McDonald   [DCCP]: Adds the ...
77
78
79
80
  		.procname	= "tx_qlen",
  		.data		= &sysctl_dccp_tx_qlen,
  		.maxlen		= sizeof(sysctl_dccp_tx_qlen),
  		.mode		= 0644,
883ca833e   Gerrit Renker   dccp: Initialisat...
81
  		.proc_handler	= proc_dointvec_minmax,
eec4844fa   Matteo Croce   proc/sysctl: add ...
82
  		.extra1		= SYSCTL_ZERO,
82e3ab9db   Ian McDonald   [DCCP]: Adds the ...
83
  	},
a94f0f970   Gerrit Renker   [DCCP]: Rate-limi...
84
85
86
87
88
89
90
  	{
  		.procname	= "sync_ratelimit",
  		.data		= &sysctl_dccp_sync_ratelimit,
  		.maxlen		= sizeof(sysctl_dccp_sync_ratelimit),
  		.mode		= 0644,
  		.proc_handler	= proc_dointvec_ms_jiffies,
  	},
82e3ab9db   Ian McDonald   [DCCP]: Adds the ...
91

f8572d8f2   Eric W. Biederman   sysctl net: Remov...
92
  	{ }
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
93
  };
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
94
95
96
97
  static struct ctl_table_header *dccp_table_header;
  
  int __init dccp_sysctl_init(void)
  {
ec8f23ce0   Eric W. Biederman   net: Convert all ...
98
  	dccp_table_header = register_net_sysctl(&init_net, "net/dccp/default",
b5ccd792f   Pavel Emelyanov   [NET]: Simple ctl...
99
  			dccp_default_table);
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
100
101
102
103
104
105
106
  
  	return dccp_table_header != NULL ? 0 : -ENOMEM;
  }
  
  void dccp_sysctl_exit(void)
  {
  	if (dccp_table_header != NULL) {
5dd3df105   Eric W. Biederman   net: Move all of ...
107
  		unregister_net_sysctl_table(dccp_table_header);
e55d912f5   Arnaldo Carvalho de Melo   [DCCP] feat: Intr...
108
109
110
  		dccp_table_header = NULL;
  	}
  }