Lines Matching defs:params

2420 static int sctp_apply_peer_addr_params(struct sctp_paddrparams *params,
2430 if (params->spp_flags & SPP_HB_DEMAND && trans) {
2441 if (params->spp_flags & SPP_HB_ENABLE) {
2447 if (params->spp_flags & SPP_HB_TIME_IS_ZERO)
2448 params->spp_hbinterval = 0;
2450 if (params->spp_hbinterval ||
2451 (params->spp_flags & SPP_HB_TIME_IS_ZERO)) {
2454 msecs_to_jiffies(params->spp_hbinterval);
2458 msecs_to_jiffies(params->spp_hbinterval);
2460 sp->hbinterval = params->spp_hbinterval;
2483 if ((params->spp_flags & SPP_PMTUD_DISABLE) && params->spp_pathmtu) {
2485 trans->pathmtu = params->spp_pathmtu;
2488 sctp_assoc_set_pmtu(asoc, params->spp_pathmtu);
2490 sp->pathmtu = params->spp_pathmtu;
2497 (params->spp_flags & SPP_PMTUD_ENABLE);
2517 if ((params->spp_flags & SPP_SACKDELAY_ENABLE) && params->spp_sackdelay) {
2520 msecs_to_jiffies(params->spp_sackdelay);
2523 msecs_to_jiffies(params->spp_sackdelay);
2525 sp->sackdelay = params->spp_sackdelay;
2548 if (params->spp_pathmaxrxt) {
2550 trans->pathmaxrxt = params->spp_pathmaxrxt;
2552 asoc->pathmaxrxt = params->spp_pathmaxrxt;
2554 sp->pathmaxrxt = params->spp_pathmaxrxt;
2558 if (params->spp_flags & SPP_IPV6_FLOWLABEL) {
2561 trans->flowlabel = params->spp_ipv6_flowlabel &
2572 t->flowlabel = params->spp_ipv6_flowlabel &
2576 asoc->flowlabel = params->spp_ipv6_flowlabel &
2580 sp->flowlabel = params->spp_ipv6_flowlabel &
2586 if (params->spp_flags & SPP_DSCP) {
2588 trans->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK;
2595 t->dscp = params->spp_dscp &
2599 asoc->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK;
2602 sp->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK;
2611 struct sctp_paddrparams *params,
2622 if (params->spp_flags & (SPP_DSCP | SPP_IPV6_FLOWLABEL))
2624 } else if (optlen != sizeof(*params)) {
2629 hb_change = params->spp_flags & SPP_HB;
2630 pmtud_change = params->spp_flags & SPP_PMTUD;
2631 sackdelay_change = params->spp_flags & SPP_SACKDELAY;
2636 params->spp_sackdelay > 500 ||
2637 (params->spp_pathmtu &&
2638 params->spp_pathmtu < SCTP_DEFAULT_MINSEGMENT))
2644 if (!sctp_is_any(sk, (union sctp_addr *)&params->spp_address)) {
2645 trans = sctp_addr_id2transport(sk, &params->spp_address,
2646 params->spp_assoc_id);
2655 asoc = sctp_id2assoc(sk, params->spp_assoc_id);
2656 if (!asoc && params->spp_assoc_id != SCTP_FUTURE_ASSOC &&
2663 if (params->spp_flags & SPP_HB_DEMAND && !trans && !asoc)
2667 error = sctp_apply_peer_addr_params(params, trans, asoc, sp,
2680 sctp_apply_peer_addr_params(params, trans, asoc, sp,
2699 static void sctp_apply_asoc_delayed_ack(struct sctp_sack_info *params,
2704 if (params->sack_delay) {
2705 asoc->sackdelay = msecs_to_jiffies(params->sack_delay);
2709 if (params->sack_freq == 1) {
2712 } else if (params->sack_freq > 1) {
2713 asoc->sackfreq = params->sack_freq;
2720 if (params->sack_delay) {
2721 trans->sackdelay = msecs_to_jiffies(params->sack_delay);
2725 if (params->sack_freq == 1) {
2728 } else if (params->sack_freq > 1) {
2729 trans->sackfreq = params->sack_freq;
2772 struct sctp_sack_info *params)
2778 if (params->sack_delay > 500)
2785 asoc = sctp_id2assoc(sk, params->sack_assoc_id);
2786 if (!asoc && params->sack_assoc_id > SCTP_ALL_ASSOC &&
2791 sctp_apply_asoc_delayed_ack(params, asoc);
2797 params->sack_assoc_id = SCTP_FUTURE_ASSOC;
2799 if (params->sack_assoc_id == SCTP_FUTURE_ASSOC ||
2800 params->sack_assoc_id == SCTP_ALL_ASSOC) {
2801 if (params->sack_delay) {
2802 sp->sackdelay = params->sack_delay;
2806 if (params->sack_freq == 1) {
2809 } else if (params->sack_freq > 1) {
2810 sp->sackfreq = params->sack_freq;
2816 if (params->sack_assoc_id == SCTP_CURRENT_ASSOC ||
2817 params->sack_assoc_id == SCTP_ALL_ASSOC)
2819 sctp_apply_asoc_delayed_ack(params, asoc);
2825 struct sctp_sack_info *params,
2829 struct sctp_assoc_value *v = (struct sctp_assoc_value *)params;
2846 if (params->sack_delay == 0 && params->sack_freq == 0)
2848 return __sctp_setsockopt_delayed_ack(sk, params);
3246 struct sctp_assoc_value *params,
3261 val = *(int *)params;
3263 assoc_id = params->assoc_id;
3264 val = params->assoc_value;
3393 struct sctp_assoc_value *params,
3402 asoc = sctp_id2assoc(sk, params->assoc_id);
3403 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC &&
3408 asoc->default_rcv_context = params->assoc_value;
3414 params->assoc_id = SCTP_FUTURE_ASSOC;
3416 if (params->assoc_id == SCTP_FUTURE_ASSOC ||
3417 params->assoc_id == SCTP_ALL_ASSOC)
3418 sp->default_rcv_context = params->assoc_value;
3420 if (params->assoc_id == SCTP_CURRENT_ASSOC ||
3421 params->assoc_id == SCTP_ALL_ASSOC)
3423 asoc->default_rcv_context = params->assoc_value;
3512 struct sctp_assoc_value *params,
3527 assoc_value = *((int *)params);
3529 assoc_id = params->assoc_id;
3530 assoc_value = params->assoc_value;
3955 struct sctp_assoc_value *params,
3960 if (optlen != sizeof(*params))
3963 asoc = sctp_id2assoc(sk, params->assoc_id);
3964 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
3968 sctp_sk(sk)->ep->prsctp_enable = !!params->assoc_value;
4026 struct sctp_assoc_value *params,
4032 if (optlen != sizeof(*params))
4035 asoc = sctp_id2assoc(sk, params->assoc_id);
4036 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4040 sctp_sk(sk)->ep->reconf_enable = !!params->assoc_value;
4049 struct sctp_assoc_value *params,
4056 if (optlen != sizeof(*params))
4059 if (params->assoc_value & (~SCTP_ENABLE_STRRESET_MASK))
4062 asoc = sctp_id2assoc(sk, params->assoc_id);
4063 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC &&
4070 asoc->strreset_enable = params->assoc_value;
4075 params->assoc_id = SCTP_FUTURE_ASSOC;
4077 if (params->assoc_id == SCTP_FUTURE_ASSOC ||
4078 params->assoc_id == SCTP_ALL_ASSOC)
4079 ep->strreset_enable = params->assoc_value;
4081 if (params->assoc_id == SCTP_CURRENT_ASSOC ||
4082 params->assoc_id == SCTP_ALL_ASSOC)
4084 asoc->strreset_enable = params->assoc_value;
4091 struct sctp_reset_streams *params,
4096 if (optlen < sizeof(*params))
4100 sizeof(__u16) * sizeof(*params));
4102 if (params->srs_number_streams * sizeof(__u16) >
4103 optlen - sizeof(*params))
4106 asoc = sctp_id2assoc(sk, params->srs_assoc_id);
4110 return sctp_send_reset_streams(asoc, params);
4129 struct sctp_add_streams *params,
4134 if (optlen != sizeof(*params))
4137 asoc = sctp_id2assoc(sk, params->sas_assoc_id);
4141 return sctp_send_add_streams(asoc, params);
4145 struct sctp_assoc_value *params,
4152 if (optlen < sizeof(*params))
4155 if (params->assoc_value > SCTP_SS_MAX)
4158 asoc = sctp_id2assoc(sk, params->assoc_id);
4159 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC &&
4164 return sctp_sched_set_sched(asoc, params->assoc_value);
4167 params->assoc_id = SCTP_FUTURE_ASSOC;
4169 if (params->assoc_id == SCTP_FUTURE_ASSOC ||
4170 params->assoc_id == SCTP_ALL_ASSOC)
4171 sp->default_ss = params->assoc_value;
4173 if (params->assoc_id == SCTP_CURRENT_ASSOC ||
4174 params->assoc_id == SCTP_ALL_ASSOC) {
4177 params->assoc_value);
4188 struct sctp_stream_value *params,
4194 if (optlen < sizeof(*params))
4197 asoc = sctp_id2assoc(sk, params->assoc_id);
4198 if (!asoc && params->assoc_id != SCTP_CURRENT_ASSOC &&
4203 retval = sctp_sched_set_value(asoc, params->stream_id,
4204 params->stream_value, GFP_KERNEL);
4211 int ret = sctp_sched_set_value(asoc, params->stream_id,
4212 params->stream_value,
4326 struct sctp_assoc_value *params,
4333 if (optlen != sizeof(*params))
4336 asoc = sctp_id2assoc(sk, params->assoc_id);
4337 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4342 ep->asconf_enable = !!params->assoc_value;
4356 struct sctp_assoc_value *params,
4363 if (optlen != sizeof(*params))
4366 asoc = sctp_id2assoc(sk, params->assoc_id);
4367 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4372 if (params->assoc_value) {
4382 ep->auth_enable = !!params->assoc_value;
4390 struct sctp_assoc_value *params,
4396 if (optlen != sizeof(*params))
4399 asoc = sctp_id2assoc(sk, params->assoc_id);
4400 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4404 sctp_sk(sk)->ep->ecn_enable = !!params->assoc_value;
4412 struct sctp_assoc_value *params,
4418 if (optlen != sizeof(*params))
4421 if (params->assoc_value > SCTP_PF_EXPOSE_MAX)
4424 asoc = sctp_id2assoc(sk, params->assoc_id);
4425 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4430 asoc->pf_expose = params->assoc_value;
4432 sctp_sk(sk)->pf_expose = params->assoc_value;
5788 struct sctp_paddrparams params;
5793 if (len >= sizeof(params))
5794 len = sizeof(params);
5802 if (copy_from_user(&params, optval, len))
5808 if (!sctp_is_any(sk, (union sctp_addr *)&params.spp_address)) {
5809 trans = sctp_addr_id2transport(sk, &params.spp_address,
5810 params.spp_assoc_id);
5821 asoc = sctp_id2assoc(sk, params.spp_assoc_id);
5822 if (!asoc && params.spp_assoc_id != SCTP_FUTURE_ASSOC &&
5830 params.spp_hbinterval = jiffies_to_msecs(trans->hbinterval);
5831 params.spp_pathmtu = trans->pathmtu;
5832 params.spp_pathmaxrxt = trans->pathmaxrxt;
5833 params.spp_sackdelay = jiffies_to_msecs(trans->sackdelay);
5836 params.spp_flags = trans->param_flags;
5838 params.spp_ipv6_flowlabel = trans->flowlabel &
5840 params.spp_flags |= SPP_IPV6_FLOWLABEL;
5843 params.spp_dscp = trans->dscp & SCTP_DSCP_VAL_MASK;
5844 params.spp_flags |= SPP_DSCP;
5848 params.spp_hbinterval = jiffies_to_msecs(asoc->hbinterval);
5849 params.spp_pathmtu = asoc->pathmtu;
5850 params.spp_pathmaxrxt = asoc->pathmaxrxt;
5851 params.spp_sackdelay = jiffies_to_msecs(asoc->sackdelay);
5854 params.spp_flags = asoc->param_flags;
5856 params.spp_ipv6_flowlabel = asoc->flowlabel &
5858 params.spp_flags |= SPP_IPV6_FLOWLABEL;
5861 params.spp_dscp = asoc->dscp & SCTP_DSCP_VAL_MASK;
5862 params.spp_flags |= SPP_DSCP;
5866 params.spp_hbinterval = sp->hbinterval;
5867 params.spp_pathmtu = sp->pathmtu;
5868 params.spp_sackdelay = sp->sackdelay;
5869 params.spp_pathmaxrxt = sp->pathmaxrxt;
5872 params.spp_flags = sp->param_flags;
5874 params.spp_ipv6_flowlabel = sp->flowlabel &
5876 params.spp_flags |= SPP_IPV6_FLOWLABEL;
5879 params.spp_dscp = sp->dscp & SCTP_DSCP_VAL_MASK;
5880 params.spp_flags |= SPP_DSCP;
5884 if (copy_to_user(optval, &params, len))
5932 struct sctp_sack_info params;
5939 if (copy_from_user(&params, optval, len))
5947 if (copy_from_user(&params, optval, len))
5956 asoc = sctp_id2assoc(sk, params.sack_assoc_id);
5957 if (!asoc && params.sack_assoc_id != SCTP_FUTURE_ASSOC &&
5964 params.sack_delay = jiffies_to_msecs(asoc->sackdelay);
5965 params.sack_freq = asoc->sackfreq;
5968 params.sack_delay = 0;
5969 params.sack_freq = 1;
5974 params.sack_delay = sp->sackdelay;
5975 params.sack_freq = sp->sackfreq;
5977 params.sack_delay = 0;
5978 params.sack_freq = 1;
5982 if (copy_to_user(optval, &params, len))
6575 struct sctp_assoc_value params;
6583 if (copy_from_user(&params, optval, len))
6586 asoc = sctp_id2assoc(sk, params.assoc_id);
6587 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
6591 params.assoc_value = asoc ? asoc->default_rcv_context
6596 if (copy_to_user(optval, &params, len))
6632 struct sctp_assoc_value params;
6641 params.assoc_id = SCTP_FUTURE_ASSOC;
6644 if (copy_from_user(&params, optval, len))
6649 asoc = sctp_id2assoc(sk, params.assoc_id);
6650 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
6655 params.assoc_value = asoc->frag_point;
6657 params.assoc_value = sctp_sk(sk)->user_frag;
6662 if (copy_to_user(optval, &params.assoc_value, len))
6665 if (copy_to_user(optval, &params, len))
6727 struct sctp_assoc_value params;
6736 params.assoc_id = SCTP_FUTURE_ASSOC;
6739 if (copy_from_user(&params, optval, len))
6744 asoc = sctp_id2assoc(sk, params.assoc_id);
6745 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
6749 params.assoc_value = asoc ? asoc->max_burst : sctp_sk(sk)->max_burst;
6752 if (copy_to_user(optval, &params.assoc_value, len))
6755 if (copy_to_user(optval, &params, len))
7201 struct sctp_assoc_value params;
7205 if (len < sizeof(params)) {
7210 len = sizeof(params);
7211 if (copy_from_user(&params, optval, len))
7214 asoc = sctp_id2assoc(sk, params.assoc_id);
7215 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7221 params.assoc_value = asoc ? asoc->peer.prsctp_capable
7227 if (copy_to_user(optval, &params, len))
7286 struct sctp_prstatus params;
7291 if (len < sizeof(params))
7294 len = sizeof(params);
7295 if (copy_from_user(&params, optval, len)) {
7300 policy = params.sprstat_policy;
7305 asoc = sctp_id2assoc(sk, params.sprstat_assoc_id);
7310 params.sprstat_abandoned_unsent = 0;
7311 params.sprstat_abandoned_sent = 0;
7313 params.sprstat_abandoned_unsent +=
7315 params.sprstat_abandoned_sent +=
7319 params.sprstat_abandoned_unsent =
7321 params.sprstat_abandoned_sent =
7330 if (copy_to_user(optval, &params, len)) {
7347 struct sctp_prstatus params;
7351 if (len < sizeof(params))
7354 len = sizeof(params);
7355 if (copy_from_user(&params, optval, len)) {
7360 policy = params.sprstat_policy;
7365 asoc = sctp_id2assoc(sk, params.sprstat_assoc_id);
7366 if (!asoc || params.sprstat_sid >= asoc->stream.outcnt)
7369 streamoute = SCTP_SO(&asoc->stream, params.sprstat_sid)->ext;
7372 params.sprstat_abandoned_unsent = 0;
7373 params.sprstat_abandoned_sent = 0;
7379 params.sprstat_abandoned_unsent = 0;
7380 params.sprstat_abandoned_sent = 0;
7382 params.sprstat_abandoned_unsent +=
7384 params.sprstat_abandoned_sent +=
7388 params.sprstat_abandoned_unsent =
7390 params.sprstat_abandoned_sent =
7394 if (put_user(len, optlen) || copy_to_user(optval, &params, len)) {
7409 struct sctp_assoc_value params;
7413 if (len < sizeof(params)) {
7418 len = sizeof(params);
7419 if (copy_from_user(&params, optval, len))
7422 asoc = sctp_id2assoc(sk, params.assoc_id);
7423 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7429 params.assoc_value = asoc ? asoc->peer.reconf_capable
7435 if (copy_to_user(optval, &params, len))
7448 struct sctp_assoc_value params;
7452 if (len < sizeof(params)) {
7457 len = sizeof(params);
7458 if (copy_from_user(&params, optval, len))
7461 asoc = sctp_id2assoc(sk, params.assoc_id);
7462 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7468 params.assoc_value = asoc ? asoc->strreset_enable
7474 if (copy_to_user(optval, &params, len))
7487 struct sctp_assoc_value params;
7491 if (len < sizeof(params)) {
7496 len = sizeof(params);
7497 if (copy_from_user(&params, optval, len))
7500 asoc = sctp_id2assoc(sk, params.assoc_id);
7501 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7507 params.assoc_value = asoc ? sctp_sched_get_sched(asoc)
7513 if (copy_to_user(optval, &params, len))
7526 struct sctp_stream_value params;
7530 if (len < sizeof(params)) {
7535 len = sizeof(params);
7536 if (copy_from_user(&params, optval, len))
7539 asoc = sctp_id2assoc(sk, params.assoc_id);
7545 retval = sctp_sched_get_value(asoc, params.stream_id,
7546 &params.stream_value);
7555 if (copy_to_user(optval, &params, len)) {
7568 struct sctp_assoc_value params;
7572 if (len < sizeof(params)) {
7577 len = sizeof(params);
7578 if (copy_from_user(&params, optval, len))
7581 asoc = sctp_id2assoc(sk, params.assoc_id);
7582 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7588 params.assoc_value = asoc ? asoc->peer.intl_capable
7594 if (copy_to_user(optval, &params, len))
7662 struct sctp_assoc_value params;
7666 if (len < sizeof(params)) {
7671 len = sizeof(params);
7672 if (copy_from_user(&params, optval, len))
7675 asoc = sctp_id2assoc(sk, params.assoc_id);
7676 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7682 params.assoc_value = asoc ? asoc->peer.asconf_capable
7688 if (copy_to_user(optval, &params, len))
7701 struct sctp_assoc_value params;
7705 if (len < sizeof(params)) {
7710 len = sizeof(params);
7711 if (copy_from_user(&params, optval, len))
7714 asoc = sctp_id2assoc(sk, params.assoc_id);
7715 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7721 params.assoc_value = asoc ? asoc->peer.auth_capable
7727 if (copy_to_user(optval, &params, len))
7740 struct sctp_assoc_value params;
7744 if (len < sizeof(params)) {
7749 len = sizeof(params);
7750 if (copy_from_user(&params, optval, len))
7753 asoc = sctp_id2assoc(sk, params.assoc_id);
7754 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7760 params.assoc_value = asoc ? asoc->peer.ecn_capable
7766 if (copy_to_user(optval, &params, len))
7779 struct sctp_assoc_value params;
7783 if (len < sizeof(params)) {
7788 len = sizeof(params);
7789 if (copy_from_user(&params, optval, len))
7792 asoc = sctp_id2assoc(sk, params.assoc_id);
7793 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7799 params.assoc_value = asoc ? asoc->pf_expose
7805 if (copy_to_user(optval, &params, len))