• Home
  • Raw
  • Download

Lines Matching +full:write +full:- +full:data

1 // SPDX-License-Identifier: GPL-2.0-or-later
12 * lksctp developers <linux-sctp@vger.kernel.org>
45 static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write,
47 static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write,
49 static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, void *buffer,
51 static int proc_sctp_do_alpha_beta(struct ctl_table *ctl, int write,
53 static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
59 .data = &sysctl_sctp_mem,
66 .data = &sysctl_sctp_rmem,
73 .data = &sysctl_sctp_wmem,
95 .data = &init_net.sctp.rto_min,
104 .data = &init_net.sctp.rto_max,
113 .data = &init_net.sctp.pf_retrans,
122 .data = &init_net.sctp.ps_retrans,
131 .data = &init_net.sctp.rto_initial,
140 .data = &init_net.sctp.rto_alpha,
149 .data = &init_net.sctp.rto_beta,
158 .data = &init_net.sctp.max_burst,
167 .data = &init_net.sctp.cookie_preserve_enable,
174 .data = &init_net.sctp.sctp_hmac_alg,
181 .data = &init_net.sctp.valid_cookie_life,
190 .data = &init_net.sctp.sack_timeout,
199 .data = &init_net.sctp.hb_interval,
208 .data = &init_net.sctp.max_retrans_association,
217 .data = &init_net.sctp.max_retrans_path,
226 .data = &init_net.sctp.max_retrans_init,
235 .data = &init_net.sctp.sndbuf_policy,
242 .data = &init_net.sctp.rcvbuf_policy,
249 .data = &init_net.sctp.default_auto_asconf,
256 .data = &init_net.sctp.addip_enable,
263 .data = &init_net.sctp.addip_noauth,
270 .data = &init_net.sctp.prsctp_enable,
277 .data = &init_net.sctp.reconf_enable,
284 .data = &init_net.sctp.auth_enable,
291 .data = &init_net.sctp.intl_enable,
298 .data = &init_net.sctp.ecn_enable,
305 .data = &init_net.sctp.scope_policy,
314 .data = &init_net.sctp.rwnd_upd_shift,
323 .data = &init_net.sctp.max_autoclose,
332 .data = &init_net.sctp.pf_enable,
339 .data = &init_net.sctp.pf_expose,
350 static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write, in proc_sctp_do_hmac_alg() argument
353 struct net *net = current->nsproxy->net_ns; in proc_sctp_do_hmac_alg()
362 if (write) { in proc_sctp_do_hmac_alg()
363 tbl.data = tmp; in proc_sctp_do_hmac_alg()
366 tbl.data = net->sctp.sctp_hmac_alg ? : none; in proc_sctp_do_hmac_alg()
367 tbl.maxlen = strlen(tbl.data); in proc_sctp_do_hmac_alg()
370 ret = proc_dostring(&tbl, write, buffer, lenp, ppos); in proc_sctp_do_hmac_alg()
371 if (write && ret == 0) { in proc_sctp_do_hmac_alg()
374 net->sctp.sctp_hmac_alg = "md5"; in proc_sctp_do_hmac_alg()
380 net->sctp.sctp_hmac_alg = "sha1"; in proc_sctp_do_hmac_alg()
385 net->sctp.sctp_hmac_alg = NULL; in proc_sctp_do_hmac_alg()
389 ret = -EINVAL; in proc_sctp_do_hmac_alg()
395 static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write, in proc_sctp_do_rto_min() argument
398 struct net *net = current->nsproxy->net_ns; in proc_sctp_do_rto_min()
399 unsigned int min = *(unsigned int *) ctl->extra1; in proc_sctp_do_rto_min()
400 unsigned int max = *(unsigned int *) ctl->extra2; in proc_sctp_do_rto_min()
407 if (write) in proc_sctp_do_rto_min()
408 tbl.data = &new_value; in proc_sctp_do_rto_min()
410 tbl.data = &net->sctp.rto_min; in proc_sctp_do_rto_min()
412 ret = proc_dointvec(&tbl, write, buffer, lenp, ppos); in proc_sctp_do_rto_min()
413 if (write && ret == 0) { in proc_sctp_do_rto_min()
415 return -EINVAL; in proc_sctp_do_rto_min()
417 net->sctp.rto_min = new_value; in proc_sctp_do_rto_min()
423 static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write, in proc_sctp_do_rto_max() argument
426 struct net *net = current->nsproxy->net_ns; in proc_sctp_do_rto_max()
427 unsigned int min = *(unsigned int *) ctl->extra1; in proc_sctp_do_rto_max()
428 unsigned int max = *(unsigned int *) ctl->extra2; in proc_sctp_do_rto_max()
435 if (write) in proc_sctp_do_rto_max()
436 tbl.data = &new_value; in proc_sctp_do_rto_max()
438 tbl.data = &net->sctp.rto_max; in proc_sctp_do_rto_max()
440 ret = proc_dointvec(&tbl, write, buffer, lenp, ppos); in proc_sctp_do_rto_max()
441 if (write && ret == 0) { in proc_sctp_do_rto_max()
443 return -EINVAL; in proc_sctp_do_rto_max()
445 net->sctp.rto_max = new_value; in proc_sctp_do_rto_max()
451 static int proc_sctp_do_alpha_beta(struct ctl_table *ctl, int write, in proc_sctp_do_alpha_beta() argument
454 if (write) in proc_sctp_do_alpha_beta()
458 return proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); in proc_sctp_do_alpha_beta()
461 static int proc_sctp_do_auth(struct ctl_table *ctl, int write, in proc_sctp_do_auth() argument
464 struct net *net = current->nsproxy->net_ns; in proc_sctp_do_auth()
471 if (write) in proc_sctp_do_auth()
472 tbl.data = &new_value; in proc_sctp_do_auth()
474 tbl.data = &net->sctp.auth_enable; in proc_sctp_do_auth()
476 ret = proc_dointvec(&tbl, write, buffer, lenp, ppos); in proc_sctp_do_auth()
477 if (write && ret == 0) { in proc_sctp_do_auth()
478 struct sock *sk = net->sctp.ctl_sock; in proc_sctp_do_auth()
480 net->sctp.auth_enable = new_value; in proc_sctp_do_auth()
483 sctp_sk(sk)->ep->auth_enable = new_value; in proc_sctp_do_auth()
497 return -ENOMEM; in sctp_sysctl_net_register()
499 for (i = 0; table[i].data; i++) in sctp_sysctl_net_register()
500 table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp; in sctp_sysctl_net_register()
502 table[SCTP_RTO_MIN_IDX].extra2 = &net->sctp.rto_max; in sctp_sysctl_net_register()
503 table[SCTP_RTO_MAX_IDX].extra1 = &net->sctp.rto_min; in sctp_sysctl_net_register()
504 table[SCTP_PF_RETRANS_IDX].extra2 = &net->sctp.ps_retrans; in sctp_sysctl_net_register()
505 table[SCTP_PS_RETRANS_IDX].extra1 = &net->sctp.pf_retrans; in sctp_sysctl_net_register()
507 net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table); in sctp_sysctl_net_register()
508 if (net->sctp.sysctl_header == NULL) { in sctp_sysctl_net_register()
510 return -ENOMEM; in sctp_sysctl_net_register()
519 table = net->sctp.sysctl_header->ctl_table_arg; in sctp_sysctl_net_unregister()
520 unregister_net_sysctl_table(net->sctp.sysctl_header); in sctp_sysctl_net_unregister()