Lines Matching refs:params

2425 static int sctp_apply_peer_addr_params(struct sctp_paddrparams *params,
2435 if (params->spp_flags & SPP_HB_DEMAND && trans) {
2446 if (params->spp_flags & SPP_HB_ENABLE) {
2452 if (params->spp_flags & SPP_HB_TIME_IS_ZERO)
2453 params->spp_hbinterval = 0;
2455 if (params->spp_hbinterval ||
2456 (params->spp_flags & SPP_HB_TIME_IS_ZERO)) {
2459 msecs_to_jiffies(params->spp_hbinterval);
2463 msecs_to_jiffies(params->spp_hbinterval);
2465 sp->hbinterval = params->spp_hbinterval;
2488 if ((params->spp_flags & SPP_PMTUD_DISABLE) && params->spp_pathmtu) {
2490 trans->pathmtu = params->spp_pathmtu;
2493 sctp_assoc_set_pmtu(asoc, params->spp_pathmtu);
2495 sp->pathmtu = params->spp_pathmtu;
2502 (params->spp_flags & SPP_PMTUD_ENABLE);
2523 if ((params->spp_flags & SPP_SACKDELAY_ENABLE) && params->spp_sackdelay) {
2526 msecs_to_jiffies(params->spp_sackdelay);
2529 msecs_to_jiffies(params->spp_sackdelay);
2531 sp->sackdelay = params->spp_sackdelay;
2554 if (params->spp_pathmaxrxt) {
2556 trans->pathmaxrxt = params->spp_pathmaxrxt;
2558 asoc->pathmaxrxt = params->spp_pathmaxrxt;
2560 sp->pathmaxrxt = params->spp_pathmaxrxt;
2564 if (params->spp_flags & SPP_IPV6_FLOWLABEL) {
2567 trans->flowlabel = params->spp_ipv6_flowlabel &
2578 t->flowlabel = params->spp_ipv6_flowlabel &
2582 asoc->flowlabel = params->spp_ipv6_flowlabel &
2586 sp->flowlabel = params->spp_ipv6_flowlabel &
2592 if (params->spp_flags & SPP_DSCP) {
2594 trans->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK;
2601 t->dscp = params->spp_dscp &
2605 asoc->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK;
2608 sp->dscp = params->spp_dscp & SCTP_DSCP_VAL_MASK;
2617 struct sctp_paddrparams *params,
2628 if (params->spp_flags & (SPP_DSCP | SPP_IPV6_FLOWLABEL))
2630 } else if (optlen != sizeof(*params)) {
2635 hb_change = params->spp_flags & SPP_HB;
2636 pmtud_change = params->spp_flags & SPP_PMTUD;
2637 sackdelay_change = params->spp_flags & SPP_SACKDELAY;
2642 params->spp_sackdelay > 500 ||
2643 (params->spp_pathmtu &&
2644 params->spp_pathmtu < SCTP_DEFAULT_MINSEGMENT))
2650 if (!sctp_is_any(sk, (union sctp_addr *)&params->spp_address)) {
2651 trans = sctp_addr_id2transport(sk, &params->spp_address,
2652 params->spp_assoc_id);
2661 asoc = sctp_id2assoc(sk, params->spp_assoc_id);
2662 if (!asoc && params->spp_assoc_id != SCTP_FUTURE_ASSOC &&
2669 if (params->spp_flags & SPP_HB_DEMAND && !trans && !asoc)
2673 error = sctp_apply_peer_addr_params(params, trans, asoc, sp,
2686 sctp_apply_peer_addr_params(params, trans, asoc, sp,
2705 static void sctp_apply_asoc_delayed_ack(struct sctp_sack_info *params,
2710 if (params->sack_delay) {
2711 asoc->sackdelay = msecs_to_jiffies(params->sack_delay);
2715 if (params->sack_freq == 1) {
2718 } else if (params->sack_freq > 1) {
2719 asoc->sackfreq = params->sack_freq;
2726 if (params->sack_delay) {
2727 trans->sackdelay = msecs_to_jiffies(params->sack_delay);
2731 if (params->sack_freq == 1) {
2734 } else if (params->sack_freq > 1) {
2735 trans->sackfreq = params->sack_freq;
2778 struct sctp_sack_info *params)
2784 if (params->sack_delay > 500)
2791 asoc = sctp_id2assoc(sk, params->sack_assoc_id);
2792 if (!asoc && params->sack_assoc_id > SCTP_ALL_ASSOC &&
2797 sctp_apply_asoc_delayed_ack(params, asoc);
2803 params->sack_assoc_id = SCTP_FUTURE_ASSOC;
2805 if (params->sack_assoc_id == SCTP_FUTURE_ASSOC ||
2806 params->sack_assoc_id == SCTP_ALL_ASSOC) {
2807 if (params->sack_delay) {
2808 sp->sackdelay = params->sack_delay;
2812 if (params->sack_freq == 1) {
2815 } else if (params->sack_freq > 1) {
2816 sp->sackfreq = params->sack_freq;
2822 if (params->sack_assoc_id == SCTP_CURRENT_ASSOC ||
2823 params->sack_assoc_id == SCTP_ALL_ASSOC)
2825 sctp_apply_asoc_delayed_ack(params, asoc);
2831 struct sctp_sack_info *params,
2835 struct sctp_assoc_value *v = (struct sctp_assoc_value *)params;
2852 if (params->sack_delay == 0 && params->sack_freq == 0)
2854 return __sctp_setsockopt_delayed_ack(sk, params);
3252 struct sctp_assoc_value *params,
3267 val = *(int *)params;
3269 assoc_id = params->assoc_id;
3270 val = params->assoc_value;
3399 struct sctp_assoc_value *params,
3408 asoc = sctp_id2assoc(sk, params->assoc_id);
3409 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC &&
3414 asoc->default_rcv_context = params->assoc_value;
3420 params->assoc_id = SCTP_FUTURE_ASSOC;
3422 if (params->assoc_id == SCTP_FUTURE_ASSOC ||
3423 params->assoc_id == SCTP_ALL_ASSOC)
3424 sp->default_rcv_context = params->assoc_value;
3426 if (params->assoc_id == SCTP_CURRENT_ASSOC ||
3427 params->assoc_id == SCTP_ALL_ASSOC)
3429 asoc->default_rcv_context = params->assoc_value;
3518 struct sctp_assoc_value *params,
3533 assoc_value = *((int *)params);
3535 assoc_id = params->assoc_id;
3536 assoc_value = params->assoc_value;
3961 struct sctp_assoc_value *params,
3966 if (optlen != sizeof(*params))
3969 asoc = sctp_id2assoc(sk, params->assoc_id);
3970 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
3974 sctp_sk(sk)->ep->prsctp_enable = !!params->assoc_value;
4032 struct sctp_assoc_value *params,
4038 if (optlen != sizeof(*params))
4041 asoc = sctp_id2assoc(sk, params->assoc_id);
4042 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4046 sctp_sk(sk)->ep->reconf_enable = !!params->assoc_value;
4055 struct sctp_assoc_value *params,
4062 if (optlen != sizeof(*params))
4065 if (params->assoc_value & (~SCTP_ENABLE_STRRESET_MASK))
4068 asoc = sctp_id2assoc(sk, params->assoc_id);
4069 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC &&
4076 asoc->strreset_enable = params->assoc_value;
4081 params->assoc_id = SCTP_FUTURE_ASSOC;
4083 if (params->assoc_id == SCTP_FUTURE_ASSOC ||
4084 params->assoc_id == SCTP_ALL_ASSOC)
4085 ep->strreset_enable = params->assoc_value;
4087 if (params->assoc_id == SCTP_CURRENT_ASSOC ||
4088 params->assoc_id == SCTP_ALL_ASSOC)
4090 asoc->strreset_enable = params->assoc_value;
4097 struct sctp_reset_streams *params,
4102 if (optlen < sizeof(*params))
4106 sizeof(__u16) * sizeof(*params));
4108 if (params->srs_number_streams * sizeof(__u16) >
4109 optlen - sizeof(*params))
4112 asoc = sctp_id2assoc(sk, params->srs_assoc_id);
4116 return sctp_send_reset_streams(asoc, params);
4135 struct sctp_add_streams *params,
4140 if (optlen != sizeof(*params))
4143 asoc = sctp_id2assoc(sk, params->sas_assoc_id);
4147 return sctp_send_add_streams(asoc, params);
4151 struct sctp_assoc_value *params,
4158 if (optlen < sizeof(*params))
4161 if (params->assoc_value > SCTP_SS_MAX)
4164 asoc = sctp_id2assoc(sk, params->assoc_id);
4165 if (!asoc && params->assoc_id > SCTP_ALL_ASSOC &&
4170 return sctp_sched_set_sched(asoc, params->assoc_value);
4173 params->assoc_id = SCTP_FUTURE_ASSOC;
4175 if (params->assoc_id == SCTP_FUTURE_ASSOC ||
4176 params->assoc_id == SCTP_ALL_ASSOC)
4177 sp->default_ss = params->assoc_value;
4179 if (params->assoc_id == SCTP_CURRENT_ASSOC ||
4180 params->assoc_id == SCTP_ALL_ASSOC) {
4183 params->assoc_value);
4194 struct sctp_stream_value *params,
4200 if (optlen < sizeof(*params))
4203 asoc = sctp_id2assoc(sk, params->assoc_id);
4204 if (!asoc && params->assoc_id != SCTP_CURRENT_ASSOC &&
4209 retval = sctp_sched_set_value(asoc, params->stream_id,
4210 params->stream_value, GFP_KERNEL);
4217 int ret = sctp_sched_set_value(asoc, params->stream_id,
4218 params->stream_value,
4332 struct sctp_assoc_value *params,
4339 if (optlen != sizeof(*params))
4342 asoc = sctp_id2assoc(sk, params->assoc_id);
4343 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4348 ep->asconf_enable = !!params->assoc_value;
4362 struct sctp_assoc_value *params,
4369 if (optlen != sizeof(*params))
4372 asoc = sctp_id2assoc(sk, params->assoc_id);
4373 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4378 if (params->assoc_value) {
4388 ep->auth_enable = !!params->assoc_value;
4396 struct sctp_assoc_value *params,
4402 if (optlen != sizeof(*params))
4405 asoc = sctp_id2assoc(sk, params->assoc_id);
4406 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4410 sctp_sk(sk)->ep->ecn_enable = !!params->assoc_value;
4418 struct sctp_assoc_value *params,
4424 if (optlen != sizeof(*params))
4427 if (params->assoc_value > SCTP_PF_EXPOSE_MAX)
4430 asoc = sctp_id2assoc(sk, params->assoc_id);
4431 if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC &&
4436 asoc->pf_expose = params->assoc_value;
4438 sctp_sk(sk)->pf_expose = params->assoc_value;
4496 struct sctp_probeinterval *params,
4503 if (optlen != sizeof(*params))
4506 probe_interval = params->spi_interval;
4513 if (!sctp_is_any(sk, (union sctp_addr *)&params->spi_address)) {
4514 t = sctp_addr_id2transport(sk, &params->spi_address,
4515 params->spi_assoc_id);
4528 asoc = sctp_id2assoc(sk, params->spi_assoc_id);
4529 if (!asoc && params->spi_assoc_id != SCTP_FUTURE_ASSOC &&
5912 struct sctp_paddrparams params;
5917 if (len >= sizeof(params))
5918 len = sizeof(params);
5926 if (copy_from_user(&params, optval, len))
5932 if (!sctp_is_any(sk, (union sctp_addr *)&params.spp_address)) {
5933 trans = sctp_addr_id2transport(sk, &params.spp_address,
5934 params.spp_assoc_id);
5945 asoc = sctp_id2assoc(sk, params.spp_assoc_id);
5946 if (!asoc && params.spp_assoc_id != SCTP_FUTURE_ASSOC &&
5954 params.spp_hbinterval = jiffies_to_msecs(trans->hbinterval);
5955 params.spp_pathmtu = trans->pathmtu;
5956 params.spp_pathmaxrxt = trans->pathmaxrxt;
5957 params.spp_sackdelay = jiffies_to_msecs(trans->sackdelay);
5960 params.spp_flags = trans->param_flags;
5962 params.spp_ipv6_flowlabel = trans->flowlabel &
5964 params.spp_flags |= SPP_IPV6_FLOWLABEL;
5967 params.spp_dscp = trans->dscp & SCTP_DSCP_VAL_MASK;
5968 params.spp_flags |= SPP_DSCP;
5972 params.spp_hbinterval = jiffies_to_msecs(asoc->hbinterval);
5973 params.spp_pathmtu = asoc->pathmtu;
5974 params.spp_pathmaxrxt = asoc->pathmaxrxt;
5975 params.spp_sackdelay = jiffies_to_msecs(asoc->sackdelay);
5978 params.spp_flags = asoc->param_flags;
5980 params.spp_ipv6_flowlabel = asoc->flowlabel &
5982 params.spp_flags |= SPP_IPV6_FLOWLABEL;
5985 params.spp_dscp = asoc->dscp & SCTP_DSCP_VAL_MASK;
5986 params.spp_flags |= SPP_DSCP;
5990 params.spp_hbinterval = sp->hbinterval;
5991 params.spp_pathmtu = sp->pathmtu;
5992 params.spp_sackdelay = sp->sackdelay;
5993 params.spp_pathmaxrxt = sp->pathmaxrxt;
5996 params.spp_flags = sp->param_flags;
5998 params.spp_ipv6_flowlabel = sp->flowlabel &
6000 params.spp_flags |= SPP_IPV6_FLOWLABEL;
6003 params.spp_dscp = sp->dscp & SCTP_DSCP_VAL_MASK;
6004 params.spp_flags |= SPP_DSCP;
6008 if (copy_to_user(optval, &params, len))
6056 struct sctp_sack_info params;
6063 if (copy_from_user(&params, optval, len))
6071 if (copy_from_user(&params, optval, len))
6080 asoc = sctp_id2assoc(sk, params.sack_assoc_id);
6081 if (!asoc && params.sack_assoc_id != SCTP_FUTURE_ASSOC &&
6088 params.sack_delay = jiffies_to_msecs(asoc->sackdelay);
6089 params.sack_freq = asoc->sackfreq;
6092 params.sack_delay = 0;
6093 params.sack_freq = 1;
6098 params.sack_delay = sp->sackdelay;
6099 params.sack_freq = sp->sackfreq;
6101 params.sack_delay = 0;
6102 params.sack_freq = 1;
6106 if (copy_to_user(optval, &params, len))
6699 struct sctp_assoc_value params;
6707 if (copy_from_user(&params, optval, len))
6710 asoc = sctp_id2assoc(sk, params.assoc_id);
6711 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
6715 params.assoc_value = asoc ? asoc->default_rcv_context
6720 if (copy_to_user(optval, &params, len))
6756 struct sctp_assoc_value params;
6765 params.assoc_id = SCTP_FUTURE_ASSOC;
6768 if (copy_from_user(&params, optval, len))
6773 asoc = sctp_id2assoc(sk, params.assoc_id);
6774 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
6779 params.assoc_value = asoc->frag_point;
6781 params.assoc_value = sctp_sk(sk)->user_frag;
6786 if (copy_to_user(optval, &params.assoc_value, len))
6789 if (copy_to_user(optval, &params, len))
6851 struct sctp_assoc_value params;
6860 params.assoc_id = SCTP_FUTURE_ASSOC;
6863 if (copy_from_user(&params, optval, len))
6868 asoc = sctp_id2assoc(sk, params.assoc_id);
6869 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
6873 params.assoc_value = asoc ? asoc->max_burst : sctp_sk(sk)->max_burst;
6876 if (copy_to_user(optval, &params.assoc_value, len))
6879 if (copy_to_user(optval, &params, len))
7325 struct sctp_assoc_value params;
7329 if (len < sizeof(params)) {
7334 len = sizeof(params);
7335 if (copy_from_user(&params, optval, len))
7338 asoc = sctp_id2assoc(sk, params.assoc_id);
7339 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7345 params.assoc_value = asoc ? asoc->peer.prsctp_capable
7351 if (copy_to_user(optval, &params, len))
7410 struct sctp_prstatus params;
7415 if (len < sizeof(params))
7418 len = sizeof(params);
7419 if (copy_from_user(&params, optval, len)) {
7424 policy = params.sprstat_policy;
7429 asoc = sctp_id2assoc(sk, params.sprstat_assoc_id);
7434 params.sprstat_abandoned_unsent = 0;
7435 params.sprstat_abandoned_sent = 0;
7437 params.sprstat_abandoned_unsent +=
7439 params.sprstat_abandoned_sent +=
7443 params.sprstat_abandoned_unsent =
7445 params.sprstat_abandoned_sent =
7454 if (copy_to_user(optval, &params, len)) {
7471 struct sctp_prstatus params;
7475 if (len < sizeof(params))
7478 len = sizeof(params);
7479 if (copy_from_user(&params, optval, len)) {
7484 policy = params.sprstat_policy;
7489 asoc = sctp_id2assoc(sk, params.sprstat_assoc_id);
7490 if (!asoc || params.sprstat_sid >= asoc->stream.outcnt)
7493 streamoute = SCTP_SO(&asoc->stream, params.sprstat_sid)->ext;
7496 params.sprstat_abandoned_unsent = 0;
7497 params.sprstat_abandoned_sent = 0;
7503 params.sprstat_abandoned_unsent = 0;
7504 params.sprstat_abandoned_sent = 0;
7506 params.sprstat_abandoned_unsent +=
7508 params.sprstat_abandoned_sent +=
7512 params.sprstat_abandoned_unsent =
7514 params.sprstat_abandoned_sent =
7518 if (put_user(len, optlen) || copy_to_user(optval, &params, len)) {
7533 struct sctp_assoc_value params;
7537 if (len < sizeof(params)) {
7542 len = sizeof(params);
7543 if (copy_from_user(&params, optval, len))
7546 asoc = sctp_id2assoc(sk, params.assoc_id);
7547 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7553 params.assoc_value = asoc ? asoc->peer.reconf_capable
7559 if (copy_to_user(optval, &params, len))
7572 struct sctp_assoc_value params;
7576 if (len < sizeof(params)) {
7581 len = sizeof(params);
7582 if (copy_from_user(&params, optval, len))
7585 asoc = sctp_id2assoc(sk, params.assoc_id);
7586 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7592 params.assoc_value = asoc ? asoc->strreset_enable
7598 if (copy_to_user(optval, &params, len))
7611 struct sctp_assoc_value params;
7615 if (len < sizeof(params)) {
7620 len = sizeof(params);
7621 if (copy_from_user(&params, optval, len))
7624 asoc = sctp_id2assoc(sk, params.assoc_id);
7625 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7631 params.assoc_value = asoc ? sctp_sched_get_sched(asoc)
7637 if (copy_to_user(optval, &params, len))
7650 struct sctp_stream_value params;
7654 if (len < sizeof(params)) {
7659 len = sizeof(params);
7660 if (copy_from_user(&params, optval, len))
7663 asoc = sctp_id2assoc(sk, params.assoc_id);
7669 retval = sctp_sched_get_value(asoc, params.stream_id,
7670 &params.stream_value);
7679 if (copy_to_user(optval, &params, len)) {
7692 struct sctp_assoc_value params;
7696 if (len < sizeof(params)) {
7701 len = sizeof(params);
7702 if (copy_from_user(&params, optval, len))
7705 asoc = sctp_id2assoc(sk, params.assoc_id);
7706 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7712 params.assoc_value = asoc ? asoc->peer.intl_capable
7718 if (copy_to_user(optval, &params, len))
7786 struct sctp_assoc_value params;
7790 if (len < sizeof(params)) {
7795 len = sizeof(params);
7796 if (copy_from_user(&params, optval, len))
7799 asoc = sctp_id2assoc(sk, params.assoc_id);
7800 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7806 params.assoc_value = asoc ? asoc->peer.asconf_capable
7812 if (copy_to_user(optval, &params, len))
7825 struct sctp_assoc_value params;
7829 if (len < sizeof(params)) {
7834 len = sizeof(params);
7835 if (copy_from_user(&params, optval, len))
7838 asoc = sctp_id2assoc(sk, params.assoc_id);
7839 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7845 params.assoc_value = asoc ? asoc->peer.auth_capable
7851 if (copy_to_user(optval, &params, len))
7864 struct sctp_assoc_value params;
7868 if (len < sizeof(params)) {
7873 len = sizeof(params);
7874 if (copy_from_user(&params, optval, len))
7877 asoc = sctp_id2assoc(sk, params.assoc_id);
7878 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7884 params.assoc_value = asoc ? asoc->peer.ecn_capable
7890 if (copy_to_user(optval, &params, len))
7903 struct sctp_assoc_value params;
7907 if (len < sizeof(params)) {
7912 len = sizeof(params);
7913 if (copy_from_user(&params, optval, len))
7916 asoc = sctp_id2assoc(sk, params.assoc_id);
7917 if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC &&
7923 params.assoc_value = asoc ? asoc->pf_expose
7929 if (copy_to_user(optval, &params, len))
8001 struct sctp_probeinterval params;
8006 if (len < sizeof(params))
8009 len = sizeof(params);
8010 if (copy_from_user(&params, optval, len))
8016 if (!sctp_is_any(sk, (union sctp_addr *)&params.spi_address)) {
8017 t = sctp_addr_id2transport(sk, &params.spi_address,
8018 params.spi_assoc_id);
8032 asoc = sctp_id2assoc(sk, params.spi_assoc_id);
8033 if (!asoc && params.spi_assoc_id != SCTP_FUTURE_ASSOC &&
8047 params.spi_interval = probe_interval;
8048 if (copy_to_user(optval, &params, len))