]> Git Repo - linux.git/blame - net/dccp/sysctl.c
Linux 6.14-rc3
[linux.git] / net / dccp / sysctl.c
CommitLineData
e46bd709 1// SPDX-License-Identifier: GPL-2.0-only
e55d912f
ACM
2/*
3 * net/dccp/sysctl.c
4 *
5 * An implementation of the DCCP protocol
6 * Arnaldo Carvalho de Melo <[email protected]>
e55d912f
ACM
7 */
8
e55d912f
ACM
9#include <linux/mm.h>
10#include <linux/sysctl.h>
2e2e9e92 11#include "dccp.h"
2a0109a7 12#include "feat.h"
e55d912f 13
883ca833 14/* Boundary values */
eec4844f 15static int u8_max = 0xFF;
bfbb2346
GR
16static unsigned long seqw_min = DCCPF_SEQ_WMIN,
17 seqw_max = 0xFFFFFFFF; /* maximum on 32 bit */
883ca833 18
e55d912f
ACM
19static struct ctl_table dccp_default_table[] = {
20 {
e55d912f 21 .procname = "seq_window",
883ca833
GR
22 .data = &sysctl_dccp_sequence_window,
23 .maxlen = sizeof(sysctl_dccp_sequence_window),
e55d912f 24 .mode = 0644,
883ca833
GR
25 .proc_handler = proc_doulongvec_minmax,
26 .extra1 = &seqw_min, /* RFC 4340, 7.5.2 */
bfbb2346 27 .extra2 = &seqw_max,
e55d912f
ACM
28 },
29 {
e55d912f 30 .procname = "rx_ccid",
883ca833
GR
31 .data = &sysctl_dccp_rx_ccid,
32 .maxlen = sizeof(sysctl_dccp_rx_ccid),
e55d912f 33 .mode = 0644,
883ca833 34 .proc_handler = proc_dointvec_minmax,
eec4844f 35 .extra1 = SYSCTL_ZERO,
883ca833 36 .extra2 = &u8_max, /* RFC 4340, 10. */
e55d912f
ACM
37 },
38 {
e55d912f 39 .procname = "tx_ccid",
883ca833
GR
40 .data = &sysctl_dccp_tx_ccid,
41 .maxlen = sizeof(sysctl_dccp_tx_ccid),
e55d912f 42 .mode = 0644,
883ca833 43 .proc_handler = proc_dointvec_minmax,
eec4844f 44 .extra1 = SYSCTL_ZERO,
883ca833 45 .extra2 = &u8_max, /* RFC 4340, 10. */
e55d912f 46 },
2e2e9e92 47 {
2e2e9e92
GR
48 .procname = "request_retries",
49 .data = &sysctl_dccp_request_retries,
50 .maxlen = sizeof(sysctl_dccp_request_retries),
51 .mode = 0644,
883ca833 52 .proc_handler = proc_dointvec_minmax,
eec4844f 53 .extra1 = SYSCTL_ONE,
883ca833 54 .extra2 = &u8_max,
2e2e9e92
GR
55 },
56 {
2e2e9e92
GR
57 .procname = "retries1",
58 .data = &sysctl_dccp_retries1,
59 .maxlen = sizeof(sysctl_dccp_retries1),
60 .mode = 0644,
883ca833 61 .proc_handler = proc_dointvec_minmax,
eec4844f 62 .extra1 = SYSCTL_ZERO,
883ca833 63 .extra2 = &u8_max,
2e2e9e92
GR
64 },
65 {
2e2e9e92
GR
66 .procname = "retries2",
67 .data = &sysctl_dccp_retries2,
68 .maxlen = sizeof(sysctl_dccp_retries2),
69 .mode = 0644,
883ca833 70 .proc_handler = proc_dointvec_minmax,
eec4844f 71 .extra1 = SYSCTL_ZERO,
883ca833 72 .extra2 = &u8_max,
2e2e9e92 73 },
82e3ab9d 74 {
82e3ab9d
IM
75 .procname = "tx_qlen",
76 .data = &sysctl_dccp_tx_qlen,
77 .maxlen = sizeof(sysctl_dccp_tx_qlen),
78 .mode = 0644,
883ca833 79 .proc_handler = proc_dointvec_minmax,
eec4844f 80 .extra1 = SYSCTL_ZERO,
82e3ab9d 81 },
a94f0f97
GR
82 {
83 .procname = "sync_ratelimit",
84 .data = &sysctl_dccp_sync_ratelimit,
85 .maxlen = sizeof(sysctl_dccp_sync_ratelimit),
86 .mode = 0644,
87 .proc_handler = proc_dointvec_ms_jiffies,
88 },
e55d912f
ACM
89};
90
e55d912f
ACM
91static struct ctl_table_header *dccp_table_header;
92
93int __init dccp_sysctl_init(void)
94{
ec8f23ce 95 dccp_table_header = register_net_sysctl(&init_net, "net/dccp/default",
b5ccd792 96 dccp_default_table);
e55d912f
ACM
97
98 return dccp_table_header != NULL ? 0 : -ENOMEM;
99}
100
101void dccp_sysctl_exit(void)
102{
103 if (dccp_table_header != NULL) {
5dd3df10 104 unregister_net_sysctl_table(dccp_table_header);
e55d912f
ACM
105 dccp_table_header = NULL;
106 }
107}
This page took 1.150617 seconds and 4 git commands to generate.