Lines Matching refs:params

2427 static int sctp_apply_peer_addr_params(struct sctp_paddrparams *params,  in sctp_apply_peer_addr_params()  argument
2437 if (params->spp_flags & SPP_HB_DEMAND && trans) { in sctp_apply_peer_addr_params()
2448 if (params->spp_flags & SPP_HB_ENABLE) { in sctp_apply_peer_addr_params()
2454 if (params->spp_flags & SPP_HB_TIME_IS_ZERO) in sctp_apply_peer_addr_params()
2455 params->spp_hbinterval = 0; in sctp_apply_peer_addr_params()
2457 if (params->spp_hbinterval || in sctp_apply_peer_addr_params()
2458 (params->spp_flags & SPP_HB_TIME_IS_ZERO)) { in sctp_apply_peer_addr_params()
2461 msecs_to_jiffies(params->spp_hbinterval); in sctp_apply_peer_addr_params()
2465 msecs_to_jiffies(params->spp_hbinterval); in sctp_apply_peer_addr_params()
2467 sp->hbinterval = params->spp_hbinterval; in sctp_apply_peer_addr_params()
2490 if ((params->spp_flags & SPP_PMTUD_DISABLE) && params->spp_pathmtu) { in sctp_apply_peer_addr_params()
2492 trans->pathmtu = params->spp_pathmtu; in sctp_apply_peer_addr_params()
2495 sctp_assoc_set_pmtu(asoc, params->spp_pathmtu); in sctp_apply_peer_addr_params()
2497 sp->pathmtu = params->spp_pathmtu; in sctp_apply_peer_addr_params()
2504 (params->spp_flags & SPP_PMTUD_ENABLE); in sctp_apply_peer_addr_params()
2525 if ((params->spp_flags & SPP_SACKDELAY_ENABLE) && params->spp_sackdelay) { in sctp_apply_peer_addr_params()
2528 msecs_to_jiffies(params->spp_sackdelay); in sctp_apply_peer_addr_params()
2531 msecs_to_jiffies(params->spp_sackdelay); in sctp_apply_peer_addr_params()
2533 sp->sackdelay = params->spp_sackdelay; in sctp_apply_peer_addr_params()
2556 if (params->spp_pathmaxrxt) { in sctp_apply_peer_addr_params()
2558 trans->pathmaxrxt = params->spp_pathmaxrxt; in sctp_apply_peer_addr_params()
2560 asoc->pathmaxrxt = params->spp_pathmaxrxt; in sctp_apply_peer_addr_params()
2562 sp->pathmaxrxt = params->spp_pathmaxrxt; in sctp_apply_peer_addr_params()
2566 if (params->spp_flags & SPP_IPV6_FLOWLABEL) { in sctp_apply_peer_addr_params()
2569 trans->flowlabel = params->spp_ipv6_flowlabel & in sctp_apply_peer_addr_params()
2580 t->flowlabel = params->spp_ipv6_flowlabel & in sctp_apply_peer_addr_params()
2584 asoc->flowlabel = params->spp_ipv6_flowlabel & in sctp_apply_peer_addr_params()
2588 sp->flowlabel = params->spp_ipv6_flowlabel & in sctp_apply_peer_addr_params()
2594 if (params->spp_flags & SPP_DSCP) { in sctp_apply_peer_addr_params()
2596 trans->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK; in sctp_apply_peer_addr_params()
2603 t->dscp = params->spp_dscp & in sctp_apply_peer_addr_params()
2607 asoc->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK; in sctp_apply_peer_addr_params()
2610 sp->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK; in sctp_apply_peer_addr_params()
2619 struct sctp_paddrparams *params, in sctp_setsockopt_peer_addr_params() argument
2630 if (params->spp_flags & (SPP_DSCP | SPP_IPV6_FLOWLABEL)) in sctp_setsockopt_peer_addr_params()
2632 } else if (optlen != sizeof(*params)) { in sctp_setsockopt_peer_addr_params()
2637 hb_change = params->spp_flags & SPP_HB; in sctp_setsockopt_peer_addr_params()
2638 pmtud_change = params->spp_flags & SPP_PMTUD; in sctp_setsockopt_peer_addr_params()
2639 sackdelay_change = params->spp_flags & SPP_SACKDELAY; in sctp_setsockopt_peer_addr_params()
2644 params->spp_sackdelay > 500 || in sctp_setsockopt_peer_addr_params()
2645 (params->spp_pathmtu && in sctp_setsockopt_peer_addr_params()
2646 params->spp_pathmtu < SCTP_DEFAULT_MINSEGMENT)) in sctp_setsockopt_peer_addr_params()
2652 if (!sctp_is_any(sk, (union sctp_addr *)&params->spp_address)) { in sctp_setsockopt_peer_addr_params()
2653 trans = sctp_addr_id2transport(sk, &params->spp_address, in sctp_setsockopt_peer_addr_params()
2654 params->spp_assoc_id); in sctp_setsockopt_peer_addr_params()
2663 asoc = sctp_id2assoc(sk, params->spp_assoc_id); in sctp_setsockopt_peer_addr_params()
2664 if (!asoc && params->spp_assoc_id != SCTP_FUTURE_ASSOC && in sctp_setsockopt_peer_addr_params()
2671 if (params->spp_flags & SPP_HB_DEMAND && !trans && !asoc) in sctp_setsockopt_peer_addr_params()
2675 error = sctp_apply_peer_addr_params(params, trans, asoc, sp, in sctp_setsockopt_peer_addr_params()
2688 sctp_apply_peer_addr_params(params, trans, asoc, sp, in sctp_setsockopt_peer_addr_params()
2707 static void sctp_apply_asoc_delayed_ack(struct sctp_sack_info *params, in sctp_apply_asoc_delayed_ack() argument
2712 if (params->sack_delay) { in sctp_apply_asoc_delayed_ack()
2713 asoc->sackdelay = msecs_to_jiffies(params->sack_delay); in sctp_apply_asoc_delayed_ack()
2717 if (params->sack_freq == 1) { in sctp_apply_asoc_delayed_ack()
2720 } else if (params->sack_freq > 1) { in sctp_apply_asoc_delayed_ack()
2721 asoc->sackfreq = params->sack_freq; in sctp_apply_asoc_delayed_ack()
2728 if (params->sack_delay) { in sctp_apply_asoc_delayed_ack()
2729 trans->sackdelay = msecs_to_jiffies(params->sack_delay); in sctp_apply_asoc_delayed_ack()
2733 if (params->sack_freq == 1) { in sctp_apply_asoc_delayed_ack()
2736 } else if (params->sack_freq > 1) { in sctp_apply_asoc_delayed_ack()
2737 trans->sackfreq = params->sack_freq; in sctp_apply_asoc_delayed_ack()
2780 struct sctp_sack_info *params) in __sctp_setsockopt_delayed_ack() argument
2786 if (params->sack_delay > 500) in __sctp_setsockopt_delayed_ack()
2793 asoc = sctp_id2assoc(sk, params->sack_assoc_id); in __sctp_setsockopt_delayed_ack()
2794 if (!asoc && params->sack_assoc_id > SCTP_ALL_ASSOC && in __sctp_setsockopt_delayed_ack()
2799 sctp_apply_asoc_delayed_ack(params, asoc); in __sctp_setsockopt_delayed_ack()
2805 params->sack_assoc_id = SCTP_FUTURE_ASSOC; in __sctp_setsockopt_delayed_ack()
2807 if (params->sack_assoc_id == SCTP_FUTURE_ASSOC || in __sctp_setsockopt_delayed_ack()
2808 params->sack_assoc_id == SCTP_ALL_ASSOC) { in __sctp_setsockopt_delayed_ack()
2809 if (params->sack_delay) { in __sctp_setsockopt_delayed_ack()
2810 sp->sackdelay = params->sack_delay; in __sctp_setsockopt_delayed_ack()
2814 if (params->sack_freq == 1) { in __sctp_setsockopt_delayed_ack()
2817 } else if (params->sack_freq > 1) { in __sctp_setsockopt_delayed_ack()
2818 sp->sackfreq = params->sack_freq; in __sctp_setsockopt_delayed_ack()
2824 if (params->sack_assoc_id == SCTP_CURRENT_ASSOC || in __sctp_setsockopt_delayed_ack()
2825 params->sack_assoc_id == SCTP_ALL_ASSOC) in __sctp_setsockopt_delayed_ack()
2827 sctp_apply_asoc_delayed_ack(params, asoc); in __sctp_setsockopt_delayed_ack()
2833 struct sctp_sack_info *params, in sctp_setsockopt_delayed_ack() argument
2837 struct sctp_assoc_value *v = (struct sctp_assoc_value *)params; in sctp_setsockopt_delayed_ack()
2854 if (params->sack_delay == 0 && params->sack_freq == 0) in sctp_setsockopt_delayed_ack()
2856 return __sctp_setsockopt_delayed_ack(sk, params); in sctp_setsockopt_delayed_ack()
3254 struct sctp_assoc_value *params, in sctp_setsockopt_maxseg() argument
3269 val = *(int *)params; in sctp_setsockopt_maxseg()
3271 assoc_id = params->assoc_id; in sctp_setsockopt_maxseg()
3272 val = params->assoc_value; in sctp_setsockopt_maxseg()
3401 struct sctp_assoc_value *params, in sctp_setsockopt_context() argument
3410 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_context()
3411 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC && in sctp_setsockopt_context()
3416 asoc->default_rcv_context = params->assoc_value; in sctp_setsockopt_context()
3422 params->assoc_id = SCTP_FUTURE_ASSOC; in sctp_setsockopt_context()
3424 if (params->assoc_id == SCTP_FUTURE_ASSOC || in sctp_setsockopt_context()
3425 params->assoc_id == SCTP_ALL_ASSOC) in sctp_setsockopt_context()
3426 sp->default_rcv_context = params->assoc_value; in sctp_setsockopt_context()
3428 if (params->assoc_id == SCTP_CURRENT_ASSOC || in sctp_setsockopt_context()
3429 params->assoc_id == SCTP_ALL_ASSOC) in sctp_setsockopt_context()
3431 asoc->default_rcv_context = params->assoc_value; in sctp_setsockopt_context()
3520 struct sctp_assoc_value *params, in sctp_setsockopt_maxburst() argument
3535 assoc_value = *((int *)params); in sctp_setsockopt_maxburst()
3537 assoc_id = params->assoc_id; in sctp_setsockopt_maxburst()
3538 assoc_value = params->assoc_value; in sctp_setsockopt_maxburst()
3963 struct sctp_assoc_value *params, in sctp_setsockopt_pr_supported() argument
3968 if (optlen != sizeof(*params)) in sctp_setsockopt_pr_supported()
3971 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_pr_supported()
3972 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC && in sctp_setsockopt_pr_supported()
3976 sctp_sk(sk)->ep->prsctp_enable = !!params->assoc_value; in sctp_setsockopt_pr_supported()
4034 struct sctp_assoc_value *params, in sctp_setsockopt_reconfig_supported() argument
4040 if (optlen != sizeof(*params)) in sctp_setsockopt_reconfig_supported()
4043 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_reconfig_supported()
4044 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC && in sctp_setsockopt_reconfig_supported()
4048 sctp_sk(sk)->ep->reconf_enable = !!params->assoc_value; in sctp_setsockopt_reconfig_supported()
4057 struct sctp_assoc_value *params, in sctp_setsockopt_enable_strreset() argument
4064 if (optlen != sizeof(*params)) in sctp_setsockopt_enable_strreset()
4067 if (params->assoc_value & (~SCTP_ENABLE_STRRESET_MASK)) in sctp_setsockopt_enable_strreset()
4070 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_enable_strreset()
4071 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC && in sctp_setsockopt_enable_strreset()
4078 asoc->strreset_enable = params->assoc_value; in sctp_setsockopt_enable_strreset()
4083 params->assoc_id = SCTP_FUTURE_ASSOC; in sctp_setsockopt_enable_strreset()
4085 if (params->assoc_id == SCTP_FUTURE_ASSOC || in sctp_setsockopt_enable_strreset()
4086 params->assoc_id == SCTP_ALL_ASSOC) in sctp_setsockopt_enable_strreset()
4087 ep->strreset_enable = params->assoc_value; in sctp_setsockopt_enable_strreset()
4089 if (params->assoc_id == SCTP_CURRENT_ASSOC || in sctp_setsockopt_enable_strreset()
4090 params->assoc_id == SCTP_ALL_ASSOC) in sctp_setsockopt_enable_strreset()
4092 asoc->strreset_enable = params->assoc_value; in sctp_setsockopt_enable_strreset()
4099 struct sctp_reset_streams *params, in sctp_setsockopt_reset_streams() argument
4104 if (optlen < sizeof(*params)) in sctp_setsockopt_reset_streams()
4108 sizeof(__u16) * sizeof(*params)); in sctp_setsockopt_reset_streams()
4110 if (params->srs_number_streams * sizeof(__u16) > in sctp_setsockopt_reset_streams()
4111 optlen - sizeof(*params)) in sctp_setsockopt_reset_streams()
4114 asoc = sctp_id2assoc(sk, params->srs_assoc_id); in sctp_setsockopt_reset_streams()
4118 return sctp_send_reset_streams(asoc, params); in sctp_setsockopt_reset_streams()
4137 struct sctp_add_streams *params, in sctp_setsockopt_add_streams() argument
4142 if (optlen != sizeof(*params)) in sctp_setsockopt_add_streams()
4145 asoc = sctp_id2assoc(sk, params->sas_assoc_id); in sctp_setsockopt_add_streams()
4149 return sctp_send_add_streams(asoc, params); in sctp_setsockopt_add_streams()
4153 struct sctp_assoc_value *params, in sctp_setsockopt_scheduler() argument
4160 if (optlen < sizeof(*params)) in sctp_setsockopt_scheduler()
4163 if (params->assoc_value > SCTP_SS_MAX) in sctp_setsockopt_scheduler()
4166 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_scheduler()
4167 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC && in sctp_setsockopt_scheduler()
4172 return sctp_sched_set_sched(asoc, params->assoc_value); in sctp_setsockopt_scheduler()
4175 params->assoc_id = SCTP_FUTURE_ASSOC; in sctp_setsockopt_scheduler()
4177 if (params->assoc_id == SCTP_FUTURE_ASSOC || in sctp_setsockopt_scheduler()
4178 params->assoc_id == SCTP_ALL_ASSOC) in sctp_setsockopt_scheduler()
4179 sp->default_ss = params->assoc_value; in sctp_setsockopt_scheduler()
4181 if (params->assoc_id == SCTP_CURRENT_ASSOC || in sctp_setsockopt_scheduler()
4182 params->assoc_id == SCTP_ALL_ASSOC) { in sctp_setsockopt_scheduler()
4185 params->assoc_value); in sctp_setsockopt_scheduler()
4196 struct sctp_stream_value *params, in sctp_setsockopt_scheduler_value() argument
4202 if (optlen < sizeof(*params)) in sctp_setsockopt_scheduler_value()
4205 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_scheduler_value()
4206 if (!asoc && params->assoc_id != SCTP_CURRENT_ASSOC && in sctp_setsockopt_scheduler_value()
4211 retval = sctp_sched_set_value(asoc, params->stream_id, in sctp_setsockopt_scheduler_value()
4212 params->stream_value, GFP_KERNEL); in sctp_setsockopt_scheduler_value()
4219 int ret = sctp_sched_set_value(asoc, params->stream_id, in sctp_setsockopt_scheduler_value()
4220 params->stream_value, in sctp_setsockopt_scheduler_value()
4334 struct sctp_assoc_value *params, in sctp_setsockopt_asconf_supported() argument
4341 if (optlen != sizeof(*params)) in sctp_setsockopt_asconf_supported()
4344 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_asconf_supported()
4345 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC && in sctp_setsockopt_asconf_supported()
4350 ep->asconf_enable = !!params->assoc_value; in sctp_setsockopt_asconf_supported()
4364 struct sctp_assoc_value *params, in sctp_setsockopt_auth_supported() argument
4371 if (optlen != sizeof(*params)) in sctp_setsockopt_auth_supported()
4374 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_auth_supported()
4375 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC && in sctp_setsockopt_auth_supported()
4380 if (params->assoc_value) { in sctp_setsockopt_auth_supported()
4390 ep->auth_enable = !!params->assoc_value; in sctp_setsockopt_auth_supported()
4398 struct sctp_assoc_value *params, in sctp_setsockopt_ecn_supported() argument
4404 if (optlen != sizeof(*params)) in sctp_setsockopt_ecn_supported()
4407 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_ecn_supported()
4408 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC && in sctp_setsockopt_ecn_supported()
4412 sctp_sk(sk)->ep->ecn_enable = !!params->assoc_value; in sctp_setsockopt_ecn_supported()
4420 struct sctp_assoc_value *params, in sctp_setsockopt_pf_expose() argument
4426 if (optlen != sizeof(*params)) in sctp_setsockopt_pf_expose()
4429 if (params->assoc_value > SCTP_PF_EXPOSE_MAX) in sctp_setsockopt_pf_expose()
4432 asoc = sctp_id2assoc(sk, params->assoc_id); in sctp_setsockopt_pf_expose()
4433 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC && in sctp_setsockopt_pf_expose()
4438 asoc->pf_expose = params->assoc_value; in sctp_setsockopt_pf_expose()
4440 sctp_sk(sk)->pf_expose = params->assoc_value; in sctp_setsockopt_pf_expose()
4498 struct sctp_probeinterval *params, in sctp_setsockopt_probe_interval() argument
4505 if (optlen != sizeof(*params)) in sctp_setsockopt_probe_interval()
4508 probe_interval = params->spi_interval; in sctp_setsockopt_probe_interval()
4515 if (!sctp_is_any(sk, (union sctp_addr *)&params->spi_address)) { in sctp_setsockopt_probe_interval()
4516 t = sctp_addr_id2transport(sk, &params->spi_address, in sctp_setsockopt_probe_interval()
4517 params->spi_assoc_id); in sctp_setsockopt_probe_interval()
4530 asoc = sctp_id2assoc(sk, params->spi_assoc_id); in sctp_setsockopt_probe_interval()
4531 if (!asoc && params->spi_assoc_id != SCTP_FUTURE_ASSOC && in sctp_setsockopt_probe_interval()
5919 struct sctp_paddrparams params; in sctp_getsockopt_peer_addr_params() local
5924 if (len >= sizeof(params)) in sctp_getsockopt_peer_addr_params()
5925 len = sizeof(params); in sctp_getsockopt_peer_addr_params()
5933 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_peer_addr_params()
5939 if (!sctp_is_any(sk, (union sctp_addr *)&params.spp_address)) { in sctp_getsockopt_peer_addr_params()
5940 trans = sctp_addr_id2transport(sk, &params.spp_address, in sctp_getsockopt_peer_addr_params()
5941 params.spp_assoc_id); in sctp_getsockopt_peer_addr_params()
5952 asoc = sctp_id2assoc(sk, params.spp_assoc_id); in sctp_getsockopt_peer_addr_params()
5953 if (!asoc && params.spp_assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_peer_addr_params()
5961 params.spp_hbinterval = jiffies_to_msecs(trans->hbinterval); in sctp_getsockopt_peer_addr_params()
5962 params.spp_pathmtu = trans->pathmtu; in sctp_getsockopt_peer_addr_params()
5963 params.spp_pathmaxrxt = trans->pathmaxrxt; in sctp_getsockopt_peer_addr_params()
5964 params.spp_sackdelay = jiffies_to_msecs(trans->sackdelay); in sctp_getsockopt_peer_addr_params()
5967 params.spp_flags = trans->param_flags; in sctp_getsockopt_peer_addr_params()
5969 params.spp_ipv6_flowlabel = trans->flowlabel & in sctp_getsockopt_peer_addr_params()
5971 params.spp_flags |= SPP_IPV6_FLOWLABEL; in sctp_getsockopt_peer_addr_params()
5974 params.spp_dscp = trans->dscp & SCTP_DSCP_VAL_MASK; in sctp_getsockopt_peer_addr_params()
5975 params.spp_flags |= SPP_DSCP; in sctp_getsockopt_peer_addr_params()
5979 params.spp_hbinterval = jiffies_to_msecs(asoc->hbinterval); in sctp_getsockopt_peer_addr_params()
5980 params.spp_pathmtu = asoc->pathmtu; in sctp_getsockopt_peer_addr_params()
5981 params.spp_pathmaxrxt = asoc->pathmaxrxt; in sctp_getsockopt_peer_addr_params()
5982 params.spp_sackdelay = jiffies_to_msecs(asoc->sackdelay); in sctp_getsockopt_peer_addr_params()
5985 params.spp_flags = asoc->param_flags; in sctp_getsockopt_peer_addr_params()
5987 params.spp_ipv6_flowlabel = asoc->flowlabel & in sctp_getsockopt_peer_addr_params()
5989 params.spp_flags |= SPP_IPV6_FLOWLABEL; in sctp_getsockopt_peer_addr_params()
5992 params.spp_dscp = asoc->dscp & SCTP_DSCP_VAL_MASK; in sctp_getsockopt_peer_addr_params()
5993 params.spp_flags |= SPP_DSCP; in sctp_getsockopt_peer_addr_params()
5997 params.spp_hbinterval = sp->hbinterval; in sctp_getsockopt_peer_addr_params()
5998 params.spp_pathmtu = sp->pathmtu; in sctp_getsockopt_peer_addr_params()
5999 params.spp_sackdelay = sp->sackdelay; in sctp_getsockopt_peer_addr_params()
6000 params.spp_pathmaxrxt = sp->pathmaxrxt; in sctp_getsockopt_peer_addr_params()
6003 params.spp_flags = sp->param_flags; in sctp_getsockopt_peer_addr_params()
6005 params.spp_ipv6_flowlabel = sp->flowlabel & in sctp_getsockopt_peer_addr_params()
6007 params.spp_flags |= SPP_IPV6_FLOWLABEL; in sctp_getsockopt_peer_addr_params()
6010 params.spp_dscp = sp->dscp & SCTP_DSCP_VAL_MASK; in sctp_getsockopt_peer_addr_params()
6011 params.spp_flags |= SPP_DSCP; in sctp_getsockopt_peer_addr_params()
6015 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_peer_addr_params()
6063 struct sctp_sack_info params; in sctp_getsockopt_delayed_ack() local
6070 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_delayed_ack()
6078 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_delayed_ack()
6087 asoc = sctp_id2assoc(sk, params.sack_assoc_id); in sctp_getsockopt_delayed_ack()
6088 if (!asoc && params.sack_assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_delayed_ack()
6095 params.sack_delay = jiffies_to_msecs(asoc->sackdelay); in sctp_getsockopt_delayed_ack()
6096 params.sack_freq = asoc->sackfreq; in sctp_getsockopt_delayed_ack()
6099 params.sack_delay = 0; in sctp_getsockopt_delayed_ack()
6100 params.sack_freq = 1; in sctp_getsockopt_delayed_ack()
6105 params.sack_delay = sp->sackdelay; in sctp_getsockopt_delayed_ack()
6106 params.sack_freq = sp->sackfreq; in sctp_getsockopt_delayed_ack()
6108 params.sack_delay = 0; in sctp_getsockopt_delayed_ack()
6109 params.sack_freq = 1; in sctp_getsockopt_delayed_ack()
6113 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_delayed_ack()
6706 struct sctp_assoc_value params; in sctp_getsockopt_context() local
6714 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_context()
6717 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_context()
6718 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_context()
6722 params.assoc_value = asoc ? asoc->default_rcv_context in sctp_getsockopt_context()
6727 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_context()
6763 struct sctp_assoc_value params; in sctp_getsockopt_maxseg() local
6772 params.assoc_id = SCTP_FUTURE_ASSOC; in sctp_getsockopt_maxseg()
6775 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_maxseg()
6780 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_maxseg()
6781 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_maxseg()
6786 params.assoc_value = asoc->frag_point; in sctp_getsockopt_maxseg()
6788 params.assoc_value = sctp_sk(sk)->user_frag; in sctp_getsockopt_maxseg()
6793 if (copy_to_user(optval, &params.assoc_value, len)) in sctp_getsockopt_maxseg()
6796 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_maxseg()
6858 struct sctp_assoc_value params; in sctp_getsockopt_maxburst() local
6867 params.assoc_id = SCTP_FUTURE_ASSOC; in sctp_getsockopt_maxburst()
6870 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_maxburst()
6875 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_maxburst()
6876 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_maxburst()
6880 params.assoc_value = asoc ? asoc->max_burst : sctp_sk(sk)->max_burst; in sctp_getsockopt_maxburst()
6883 if (copy_to_user(optval, &params.assoc_value, len)) in sctp_getsockopt_maxburst()
6886 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_maxburst()
7333 struct sctp_assoc_value params; in sctp_getsockopt_pr_supported() local
7337 if (len < sizeof(params)) { in sctp_getsockopt_pr_supported()
7342 len = sizeof(params); in sctp_getsockopt_pr_supported()
7343 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_pr_supported()
7346 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_pr_supported()
7347 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_pr_supported()
7353 params.assoc_value = asoc ? asoc->peer.prsctp_capable in sctp_getsockopt_pr_supported()
7359 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_pr_supported()
7418 struct sctp_prstatus params; in sctp_getsockopt_pr_assocstatus() local
7423 if (len < sizeof(params)) in sctp_getsockopt_pr_assocstatus()
7426 len = sizeof(params); in sctp_getsockopt_pr_assocstatus()
7427 if (copy_from_user(&params, optval, len)) { in sctp_getsockopt_pr_assocstatus()
7432 policy = params.sprstat_policy; in sctp_getsockopt_pr_assocstatus()
7437 asoc = sctp_id2assoc(sk, params.sprstat_assoc_id); in sctp_getsockopt_pr_assocstatus()
7442 params.sprstat_abandoned_unsent = 0; in sctp_getsockopt_pr_assocstatus()
7443 params.sprstat_abandoned_sent = 0; in sctp_getsockopt_pr_assocstatus()
7445 params.sprstat_abandoned_unsent += in sctp_getsockopt_pr_assocstatus()
7447 params.sprstat_abandoned_sent += in sctp_getsockopt_pr_assocstatus()
7451 params.sprstat_abandoned_unsent = in sctp_getsockopt_pr_assocstatus()
7453 params.sprstat_abandoned_sent = in sctp_getsockopt_pr_assocstatus()
7462 if (copy_to_user(optval, &params, len)) { in sctp_getsockopt_pr_assocstatus()
7479 struct sctp_prstatus params; in sctp_getsockopt_pr_streamstatus() local
7483 if (len < sizeof(params)) in sctp_getsockopt_pr_streamstatus()
7486 len = sizeof(params); in sctp_getsockopt_pr_streamstatus()
7487 if (copy_from_user(&params, optval, len)) { in sctp_getsockopt_pr_streamstatus()
7492 policy = params.sprstat_policy; in sctp_getsockopt_pr_streamstatus()
7497 asoc = sctp_id2assoc(sk, params.sprstat_assoc_id); in sctp_getsockopt_pr_streamstatus()
7498 if (!asoc || params.sprstat_sid >= asoc->stream.outcnt) in sctp_getsockopt_pr_streamstatus()
7501 streamoute = SCTP_SO(&asoc->stream, params.sprstat_sid)->ext; in sctp_getsockopt_pr_streamstatus()
7504 params.sprstat_abandoned_unsent = 0; in sctp_getsockopt_pr_streamstatus()
7505 params.sprstat_abandoned_sent = 0; in sctp_getsockopt_pr_streamstatus()
7511 params.sprstat_abandoned_unsent = 0; in sctp_getsockopt_pr_streamstatus()
7512 params.sprstat_abandoned_sent = 0; in sctp_getsockopt_pr_streamstatus()
7514 params.sprstat_abandoned_unsent += in sctp_getsockopt_pr_streamstatus()
7516 params.sprstat_abandoned_sent += in sctp_getsockopt_pr_streamstatus()
7520 params.sprstat_abandoned_unsent = in sctp_getsockopt_pr_streamstatus()
7522 params.sprstat_abandoned_sent = in sctp_getsockopt_pr_streamstatus()
7526 if (put_user(len, optlen) || copy_to_user(optval, &params, len)) { in sctp_getsockopt_pr_streamstatus()
7541 struct sctp_assoc_value params; in sctp_getsockopt_reconfig_supported() local
7545 if (len < sizeof(params)) { in sctp_getsockopt_reconfig_supported()
7550 len = sizeof(params); in sctp_getsockopt_reconfig_supported()
7551 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_reconfig_supported()
7554 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_reconfig_supported()
7555 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_reconfig_supported()
7561 params.assoc_value = asoc ? asoc->peer.reconf_capable in sctp_getsockopt_reconfig_supported()
7567 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_reconfig_supported()
7580 struct sctp_assoc_value params; in sctp_getsockopt_enable_strreset() local
7584 if (len < sizeof(params)) { in sctp_getsockopt_enable_strreset()
7589 len = sizeof(params); in sctp_getsockopt_enable_strreset()
7590 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_enable_strreset()
7593 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_enable_strreset()
7594 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_enable_strreset()
7600 params.assoc_value = asoc ? asoc->strreset_enable in sctp_getsockopt_enable_strreset()
7606 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_enable_strreset()
7619 struct sctp_assoc_value params; in sctp_getsockopt_scheduler() local
7623 if (len < sizeof(params)) { in sctp_getsockopt_scheduler()
7628 len = sizeof(params); in sctp_getsockopt_scheduler()
7629 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_scheduler()
7632 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_scheduler()
7633 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_scheduler()
7639 params.assoc_value = asoc ? sctp_sched_get_sched(asoc) in sctp_getsockopt_scheduler()
7645 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_scheduler()
7658 struct sctp_stream_value params; in sctp_getsockopt_scheduler_value() local
7662 if (len < sizeof(params)) { in sctp_getsockopt_scheduler_value()
7667 len = sizeof(params); in sctp_getsockopt_scheduler_value()
7668 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_scheduler_value()
7671 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_scheduler_value()
7677 retval = sctp_sched_get_value(asoc, params.stream_id, in sctp_getsockopt_scheduler_value()
7678 &params.stream_value); in sctp_getsockopt_scheduler_value()
7687 if (copy_to_user(optval, &params, len)) { in sctp_getsockopt_scheduler_value()
7700 struct sctp_assoc_value params; in sctp_getsockopt_interleaving_supported() local
7704 if (len < sizeof(params)) { in sctp_getsockopt_interleaving_supported()
7709 len = sizeof(params); in sctp_getsockopt_interleaving_supported()
7710 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_interleaving_supported()
7713 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_interleaving_supported()
7714 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_interleaving_supported()
7720 params.assoc_value = asoc ? asoc->peer.intl_capable in sctp_getsockopt_interleaving_supported()
7726 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_interleaving_supported()
7794 struct sctp_assoc_value params; in sctp_getsockopt_asconf_supported() local
7798 if (len < sizeof(params)) { in sctp_getsockopt_asconf_supported()
7803 len = sizeof(params); in sctp_getsockopt_asconf_supported()
7804 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_asconf_supported()
7807 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_asconf_supported()
7808 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_asconf_supported()
7814 params.assoc_value = asoc ? asoc->peer.asconf_capable in sctp_getsockopt_asconf_supported()
7820 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_asconf_supported()
7833 struct sctp_assoc_value params; in sctp_getsockopt_auth_supported() local
7837 if (len < sizeof(params)) { in sctp_getsockopt_auth_supported()
7842 len = sizeof(params); in sctp_getsockopt_auth_supported()
7843 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_auth_supported()
7846 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_auth_supported()
7847 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_auth_supported()
7853 params.assoc_value = asoc ? asoc->peer.auth_capable in sctp_getsockopt_auth_supported()
7859 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_auth_supported()
7872 struct sctp_assoc_value params; in sctp_getsockopt_ecn_supported() local
7876 if (len < sizeof(params)) { in sctp_getsockopt_ecn_supported()
7881 len = sizeof(params); in sctp_getsockopt_ecn_supported()
7882 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_ecn_supported()
7885 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_ecn_supported()
7886 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_ecn_supported()
7892 params.assoc_value = asoc ? asoc->peer.ecn_capable in sctp_getsockopt_ecn_supported()
7898 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_ecn_supported()
7911 struct sctp_assoc_value params; in sctp_getsockopt_pf_expose() local
7915 if (len < sizeof(params)) { in sctp_getsockopt_pf_expose()
7920 len = sizeof(params); in sctp_getsockopt_pf_expose()
7921 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_pf_expose()
7924 asoc = sctp_id2assoc(sk, params.assoc_id); in sctp_getsockopt_pf_expose()
7925 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_pf_expose()
7931 params.assoc_value = asoc ? asoc->pf_expose in sctp_getsockopt_pf_expose()
7937 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_pf_expose()
8009 struct sctp_probeinterval params; in sctp_getsockopt_probe_interval() local
8014 if (len < sizeof(params)) in sctp_getsockopt_probe_interval()
8017 len = sizeof(params); in sctp_getsockopt_probe_interval()
8018 if (copy_from_user(&params, optval, len)) in sctp_getsockopt_probe_interval()
8024 if (!sctp_is_any(sk, (union sctp_addr *)&params.spi_address)) { in sctp_getsockopt_probe_interval()
8025 t = sctp_addr_id2transport(sk, &params.spi_address, in sctp_getsockopt_probe_interval()
8026 params.spi_assoc_id); in sctp_getsockopt_probe_interval()
8040 asoc = sctp_id2assoc(sk, params.spi_assoc_id); in sctp_getsockopt_probe_interval()
8041 if (!asoc && params.spi_assoc_id != SCTP_FUTURE_ASSOC && in sctp_getsockopt_probe_interval()
8055 params.spi_interval = probe_interval; in sctp_getsockopt_probe_interval()
8056 if (copy_to_user(optval, &params, len)) in sctp_getsockopt_probe_interval()