Lines Matching refs:retval
226 struct sctp_chunk *retval = NULL; in sctp_make_init() local
243 retval = NULL; in sctp_make_init()
321 retval = sctp_make_control(asoc, SCTP_CID_INIT, 0, chunksize); in sctp_make_init()
322 if (!retval) in sctp_make_init()
325 retval->subh.init_hdr = in sctp_make_init()
326 sctp_addto_chunk(retval, sizeof(init), &init); in sctp_make_init()
327 retval->param_hdr.v = in sctp_make_init()
328 sctp_addto_chunk(retval, addrs_len, addrs.v); in sctp_make_init()
339 sctp_addto_chunk(retval, sizeof(sat), &sat); in sctp_make_init()
340 sctp_addto_chunk(retval, num_types * sizeof(__u16), &types); in sctp_make_init()
342 sctp_addto_chunk(retval, sizeof(ecap_param), &ecap_param); in sctp_make_init()
351 sctp_addto_chunk(retval, sizeof(sctp_supported_ext_param_t), in sctp_make_init()
353 sctp_addto_param(retval, num_ext, extensions); in sctp_make_init()
357 sctp_addto_chunk(retval, sizeof(prsctp_param), &prsctp_param); in sctp_make_init()
363 sctp_addto_chunk(retval, sizeof(aiparam), &aiparam); in sctp_make_init()
368 sctp_addto_chunk(retval, sizeof(asoc->c.auth_random), in sctp_make_init()
371 sctp_addto_chunk(retval, ntohs(auth_hmacs->length), in sctp_make_init()
374 sctp_addto_chunk(retval, ntohs(auth_chunks->length), in sctp_make_init()
379 return retval; in sctp_make_init()
387 struct sctp_chunk *retval; in sctp_make_init_ack() local
402 retval = NULL; in sctp_make_init_ack()
468 retval = sctp_make_control(asoc, SCTP_CID_INIT_ACK, 0, chunksize); in sctp_make_init_ack()
469 if (!retval) in sctp_make_init_ack()
481 retval->transport = chunk->transport; in sctp_make_init_ack()
483 retval->subh.init_hdr = in sctp_make_init_ack()
484 sctp_addto_chunk(retval, sizeof(initack), &initack); in sctp_make_init_ack()
485 retval->param_hdr.v = sctp_addto_chunk(retval, addrs_len, addrs.v); in sctp_make_init_ack()
486 sctp_addto_chunk(retval, cookie_len, cookie); in sctp_make_init_ack()
488 sctp_addto_chunk(retval, sizeof(ecap_param), &ecap_param); in sctp_make_init_ack()
493 sctp_addto_chunk(retval, sizeof(sctp_supported_ext_param_t), in sctp_make_init_ack()
495 sctp_addto_param(retval, num_ext, extensions); in sctp_make_init_ack()
498 sctp_addto_chunk(retval, sizeof(prsctp_param), &prsctp_param); in sctp_make_init_ack()
504 sctp_addto_chunk(retval, sizeof(aiparam), &aiparam); in sctp_make_init_ack()
508 sctp_addto_chunk(retval, ntohs(auth_random->length), in sctp_make_init_ack()
511 sctp_addto_chunk(retval, ntohs(auth_hmacs->length), in sctp_make_init_ack()
514 sctp_addto_chunk(retval, ntohs(auth_chunks->length), in sctp_make_init_ack()
519 retval->asoc = (struct sctp_association *) asoc; in sctp_make_init_ack()
525 return retval; in sctp_make_init_ack()
565 struct sctp_chunk *retval; in sctp_make_cookie_echo() local
573 retval = sctp_make_control(asoc, SCTP_CID_COOKIE_ECHO, 0, cookie_len); in sctp_make_cookie_echo()
574 if (!retval) in sctp_make_cookie_echo()
576 retval->subh.cookie_hdr = in sctp_make_cookie_echo()
577 sctp_addto_chunk(retval, cookie_len, cookie); in sctp_make_cookie_echo()
589 retval->transport = chunk->transport; in sctp_make_cookie_echo()
592 return retval; in sctp_make_cookie_echo()
616 struct sctp_chunk *retval; in sctp_make_cookie_ack() local
618 retval = sctp_make_control(asoc, SCTP_CID_COOKIE_ACK, 0, 0); in sctp_make_cookie_ack()
629 if (retval && chunk) in sctp_make_cookie_ack()
630 retval->transport = chunk->transport; in sctp_make_cookie_ack()
632 return retval; in sctp_make_cookie_ack()
662 struct sctp_chunk *retval; in sctp_make_cwr() local
666 retval = sctp_make_control(asoc, SCTP_CID_ECN_CWR, 0, in sctp_make_cwr()
669 if (!retval) in sctp_make_cwr()
672 retval->subh.ecn_cwr_hdr = in sctp_make_cwr()
673 sctp_addto_chunk(retval, sizeof(cwr), &cwr); in sctp_make_cwr()
686 retval->transport = chunk->transport; in sctp_make_cwr()
689 return retval; in sctp_make_cwr()
696 struct sctp_chunk *retval; in sctp_make_ecne() local
700 retval = sctp_make_control(asoc, SCTP_CID_ECN_ECNE, 0, in sctp_make_ecne()
702 if (!retval) in sctp_make_ecne()
704 retval->subh.ecne_hdr = in sctp_make_ecne()
705 sctp_addto_chunk(retval, sizeof(ecne), &ecne); in sctp_make_ecne()
708 return retval; in sctp_make_ecne()
718 struct sctp_chunk *retval; in sctp_make_datafrag_empty() local
737 retval = sctp_make_data(asoc, flags, chunk_len); in sctp_make_datafrag_empty()
738 if (!retval) in sctp_make_datafrag_empty()
741 retval->subh.data_hdr = sctp_addto_chunk(retval, sizeof(dp), &dp); in sctp_make_datafrag_empty()
742 memcpy(&retval->sinfo, sinfo, sizeof(struct sctp_sndrcvinfo)); in sctp_make_datafrag_empty()
745 return retval; in sctp_make_datafrag_empty()
754 struct sctp_chunk *retval; in sctp_make_sack() local
784 retval = sctp_make_control(asoc, SCTP_CID_SACK, 0, len); in sctp_make_sack()
785 if (!retval) in sctp_make_sack()
818 retval->transport = asoc->peer.last_data_from; in sctp_make_sack()
820 retval->subh.sack_hdr = in sctp_make_sack()
821 sctp_addto_chunk(retval, sizeof(sack), &sack); in sctp_make_sack()
825 sctp_addto_chunk(retval, sizeof(__u32) * num_gabs, in sctp_make_sack()
831 sctp_addto_chunk(retval, sizeof(__u32) * num_dup_tsns, in sctp_make_sack()
849 return retval; in sctp_make_sack()
856 struct sctp_chunk *retval; in sctp_make_shutdown() local
863 retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN, 0, in sctp_make_shutdown()
865 if (!retval) in sctp_make_shutdown()
868 retval->subh.shutdown_hdr = in sctp_make_shutdown()
869 sctp_addto_chunk(retval, sizeof(shut), &shut); in sctp_make_shutdown()
872 retval->transport = chunk->transport; in sctp_make_shutdown()
874 return retval; in sctp_make_shutdown()
880 struct sctp_chunk *retval; in sctp_make_shutdown_ack() local
882 retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN_ACK, 0, 0); in sctp_make_shutdown_ack()
893 if (retval && chunk) in sctp_make_shutdown_ack()
894 retval->transport = chunk->transport; in sctp_make_shutdown_ack()
896 return retval; in sctp_make_shutdown_ack()
903 struct sctp_chunk *retval; in sctp_make_shutdown_complete() local
911 retval = sctp_make_control(asoc, SCTP_CID_SHUTDOWN_COMPLETE, flags, 0); in sctp_make_shutdown_complete()
923 if (retval && chunk) in sctp_make_shutdown_complete()
924 retval->transport = chunk->transport; in sctp_make_shutdown_complete()
926 return retval; in sctp_make_shutdown_complete()
936 struct sctp_chunk *retval; in sctp_make_abort() local
950 retval = sctp_make_control(asoc, SCTP_CID_ABORT, flags, hint); in sctp_make_abort()
961 if (retval && chunk) in sctp_make_abort()
962 retval->transport = chunk->transport; in sctp_make_abort()
964 return retval; in sctp_make_abort()
972 struct sctp_chunk *retval; in sctp_make_abort_no_data() local
975 retval = sctp_make_abort(asoc, chunk, sizeof(sctp_errhdr_t) in sctp_make_abort_no_data()
978 if (!retval) in sctp_make_abort_no_data()
983 sctp_init_cause(retval, SCTP_ERROR_NO_DATA, sizeof(payload)); in sctp_make_abort_no_data()
984 sctp_addto_chunk(retval, sizeof(payload), (const void *)&payload); in sctp_make_abort_no_data()
996 retval->transport = chunk->transport; in sctp_make_abort_no_data()
999 return retval; in sctp_make_abort_no_data()
1007 struct sctp_chunk *retval; in sctp_make_abort_user() local
1011 retval = sctp_make_abort(asoc, NULL, sizeof(sctp_errhdr_t) + paylen); in sctp_make_abort_user()
1012 if (!retval) in sctp_make_abort_user()
1026 sctp_init_cause(retval, SCTP_ERROR_USER_ABORT, paylen); in sctp_make_abort_user()
1027 sctp_addto_chunk(retval, paylen, payload); in sctp_make_abort_user()
1032 return retval; in sctp_make_abort_user()
1037 sctp_chunk_free(retval); in sctp_make_abort_user()
1038 retval = NULL; in sctp_make_abort_user()
1040 return retval; in sctp_make_abort_user()
1073 struct sctp_chunk *retval; in sctp_make_abort_violation() local
1076 retval = sctp_make_abort(asoc, chunk, sizeof(sctp_errhdr_t) + paylen in sctp_make_abort_violation()
1078 if (!retval) in sctp_make_abort_violation()
1081 sctp_init_cause(retval, SCTP_ERROR_PROTO_VIOLATION, paylen in sctp_make_abort_violation()
1086 sctp_addto_chunk(retval, paylen, payload); in sctp_make_abort_violation()
1087 sctp_addto_param(retval, sizeof(sctp_paramhdr_t), &phdr); in sctp_make_abort_violation()
1090 return retval; in sctp_make_abort_violation()
1098 struct sctp_chunk *retval; in sctp_make_violation_paramlen() local
1103 retval = sctp_make_abort(asoc, chunk, payload_len); in sctp_make_violation_paramlen()
1104 if (!retval) in sctp_make_violation_paramlen()
1107 sctp_init_cause(retval, SCTP_ERROR_PROTO_VIOLATION, in sctp_make_violation_paramlen()
1109 sctp_addto_chunk(retval, sizeof(error), error); in sctp_make_violation_paramlen()
1110 sctp_addto_param(retval, sizeof(sctp_paramhdr_t), param); in sctp_make_violation_paramlen()
1113 return retval; in sctp_make_violation_paramlen()
1120 struct sctp_chunk *retval; in sctp_make_violation_max_retrans() local
1124 retval = sctp_make_abort(asoc, chunk, payload_len); in sctp_make_violation_max_retrans()
1125 if (!retval) in sctp_make_violation_max_retrans()
1128 sctp_init_cause(retval, SCTP_ERROR_PROTO_VIOLATION, sizeof(error)); in sctp_make_violation_max_retrans()
1129 sctp_addto_chunk(retval, sizeof(error), error); in sctp_make_violation_max_retrans()
1132 return retval; in sctp_make_violation_max_retrans()
1139 struct sctp_chunk *retval; in sctp_make_heartbeat() local
1142 retval = sctp_make_control(asoc, SCTP_CID_HEARTBEAT, 0, sizeof(hbinfo)); in sctp_make_heartbeat()
1144 if (!retval) in sctp_make_heartbeat()
1156 retval->transport = (struct sctp_transport *) transport; in sctp_make_heartbeat()
1157 retval->subh.hbs_hdr = sctp_addto_chunk(retval, sizeof(hbinfo), in sctp_make_heartbeat()
1161 return retval; in sctp_make_heartbeat()
1168 struct sctp_chunk *retval; in sctp_make_heartbeat_ack() local
1170 retval = sctp_make_control(asoc, SCTP_CID_HEARTBEAT_ACK, 0, paylen); in sctp_make_heartbeat_ack()
1171 if (!retval) in sctp_make_heartbeat_ack()
1174 retval->subh.hbs_hdr = sctp_addto_chunk(retval, paylen, payload); in sctp_make_heartbeat_ack()
1186 retval->transport = chunk->transport; in sctp_make_heartbeat_ack()
1189 return retval; in sctp_make_heartbeat_ack()
1200 struct sctp_chunk *retval; in sctp_make_op_error_space() local
1202 retval = sctp_make_control(asoc, SCTP_CID_ERROR, 0, in sctp_make_op_error_space()
1204 if (!retval) in sctp_make_op_error_space()
1216 retval->transport = chunk->transport; in sctp_make_op_error_space()
1219 return retval; in sctp_make_op_error_space()
1246 struct sctp_chunk *retval; in sctp_make_op_error() local
1248 retval = sctp_make_op_error_space(asoc, chunk, paylen + reserve_tail); in sctp_make_op_error()
1249 if (!retval) in sctp_make_op_error()
1252 sctp_init_cause(retval, cause_code, paylen + reserve_tail); in sctp_make_op_error()
1253 sctp_addto_chunk(retval, paylen, payload); in sctp_make_op_error()
1255 sctp_addto_param(retval, reserve_tail, NULL); in sctp_make_op_error()
1258 return retval; in sctp_make_op_error()
1263 struct sctp_chunk *retval; in sctp_make_auth() local
1273 retval = sctp_make_control(asoc, SCTP_CID_AUTH, 0, in sctp_make_auth()
1275 if (!retval) in sctp_make_auth()
1281 retval->subh.auth_hdr = sctp_addto_chunk(retval, sizeof(sctp_authhdr_t), in sctp_make_auth()
1284 hmac = skb_put(retval->skb, hmac_desc->hmac_len); in sctp_make_auth()
1288 retval->chunk_hdr->length = in sctp_make_auth()
1289 htons(ntohs(retval->chunk_hdr->length) + hmac_desc->hmac_len); in sctp_make_auth()
1290 retval->chunk_end = skb_tail_pointer(retval->skb); in sctp_make_auth()
1292 return retval; in sctp_make_auth()
1314 struct sctp_chunk *retval; in sctp_chunkify() local
1316 retval = kmem_cache_zalloc(sctp_chunk_cachep, GFP_ATOMIC); in sctp_chunkify()
1318 if (!retval) in sctp_chunkify()
1323 INIT_LIST_HEAD(&retval->list); in sctp_chunkify()
1324 retval->skb = skb; in sctp_chunkify()
1325 retval->asoc = (struct sctp_association *)asoc; in sctp_chunkify()
1326 retval->singleton = 1; in sctp_chunkify()
1328 retval->fast_retransmit = SCTP_CAN_FRTX; in sctp_chunkify()
1331 INIT_LIST_HEAD(&retval->transmitted_list); in sctp_chunkify()
1332 INIT_LIST_HEAD(&retval->frag_list); in sctp_chunkify()
1334 atomic_set(&retval->refcnt, 1); in sctp_chunkify()
1337 return retval; in sctp_chunkify()
1366 struct sctp_chunk *retval; in _sctp_make_chunk() local
1384 retval = sctp_chunkify(skb, asoc, sk); in _sctp_make_chunk()
1385 if (!retval) { in _sctp_make_chunk()
1390 retval->chunk_hdr = chunk_hdr; in _sctp_make_chunk()
1391 retval->chunk_end = ((__u8 *)chunk_hdr) + sizeof(struct sctp_chunkhdr); in _sctp_make_chunk()
1395 retval->auth = 1; in _sctp_make_chunk()
1397 return retval; in _sctp_make_chunk()
1607 sctp_cookie_param_t *retval; in sctp_pack_cookie() local
1632 retval = kzalloc(*cookie_len, GFP_ATOMIC); in sctp_pack_cookie()
1633 if (!retval) in sctp_pack_cookie()
1636 cookie = (struct sctp_signed_cookie *) retval->body; in sctp_pack_cookie()
1639 retval->p.type = SCTP_PARAM_STATE_COOKIE; in sctp_pack_cookie()
1640 retval->p.length = htons(*cookie_len); in sctp_pack_cookie()
1679 return retval; in sctp_pack_cookie()
1682 kfree(retval); in sctp_pack_cookie()
1695 struct sctp_association *retval = NULL; in sctp_unpack_cookie() local
1812 retval = sctp_association_new(ep, ep->base.sk, scope, gfp); in sctp_unpack_cookie()
1813 if (!retval) { in sctp_unpack_cookie()
1819 retval->peer.port = ntohs(chunk->sctp_hdr->source); in sctp_unpack_cookie()
1822 memcpy(&retval->c, bear_cookie, sizeof(*bear_cookie)); in sctp_unpack_cookie()
1824 if (sctp_assoc_set_bind_addr_from_cookie(retval, bear_cookie, in sctp_unpack_cookie()
1831 if (list_empty(&retval->base.bind_addr.address_list)) { in sctp_unpack_cookie()
1832 sctp_add_bind_addr(&retval->base.bind_addr, &chunk->dest, in sctp_unpack_cookie()
1836 retval->next_tsn = retval->c.initial_tsn; in sctp_unpack_cookie()
1837 retval->ctsn_ack_point = retval->next_tsn - 1; in sctp_unpack_cookie()
1838 retval->addip_serial = retval->c.initial_tsn; in sctp_unpack_cookie()
1839 retval->adv_peer_ack_point = retval->ctsn_ack_point; in sctp_unpack_cookie()
1840 retval->peer.prsctp_capable = retval->c.prsctp_capable; in sctp_unpack_cookie()
1841 retval->peer.adaptation_ind = retval->c.adaptation_ind; in sctp_unpack_cookie()
1844 return retval; in sctp_unpack_cookie()
1847 if (retval) in sctp_unpack_cookie()
1848 sctp_association_free(retval); in sctp_unpack_cookie()
2058 int retval = SCTP_IERROR_NO_ERROR; in sctp_process_unk_param() local
2062 retval = SCTP_IERROR_ERROR; in sctp_process_unk_param()
2067 retval = SCTP_IERROR_ERROR; in sctp_process_unk_param()
2088 retval = SCTP_IERROR_NOMEM; in sctp_process_unk_param()
2095 return retval; in sctp_process_unk_param()
2114 int retval = SCTP_IERROR_NO_ERROR; in sctp_verify_param() local
2148 retval = SCTP_IERROR_ABORT; in sctp_verify_param()
2169 retval = SCTP_IERROR_ABORT; in sctp_verify_param()
2185 retval = SCTP_IERROR_ABORT; in sctp_verify_param()
2210 retval = SCTP_IERROR_ABORT; in sctp_verify_param()
2218 retval = sctp_process_unk_param(asoc, param, chunk, err_chunk); in sctp_verify_param()
2221 return retval; in sctp_verify_param()
2495 int retval = 1; in sctp_process_param() local
2651 retval = 0; in sctp_process_param()
2664 retval = 0; in sctp_process_param()
2679 retval = 0; in sctp_process_param()
2693 return retval; in sctp_process_param()
2714 __u32 retval; in sctp_generate_tsn() local
2716 get_random_bytes(&retval, sizeof(__u32)); in sctp_generate_tsn()
2717 return retval; in sctp_generate_tsn()
2747 struct sctp_chunk *retval; in sctp_make_asconf() local
2759 retval = sctp_make_control(asoc, SCTP_CID_ASCONF, 0, length); in sctp_make_asconf()
2760 if (!retval) in sctp_make_asconf()
2765 retval->subh.addip_hdr = in sctp_make_asconf()
2766 sctp_addto_chunk(retval, sizeof(asconf), &asconf); in sctp_make_asconf()
2767 retval->param_hdr.v = in sctp_make_asconf()
2768 sctp_addto_chunk(retval, addrlen, &addrparam); in sctp_make_asconf()
2770 return retval; in sctp_make_asconf()
2804 struct sctp_chunk *retval; in sctp_make_asconf_update_ip() local
2839 retval = sctp_make_asconf(asoc, laddr, totallen); in sctp_make_asconf_update_ip()
2840 if (!retval) in sctp_make_asconf_update_ip()
2853 sctp_addto_chunk(retval, paramlen, ¶m); in sctp_make_asconf_update_ip()
2854 sctp_addto_chunk(retval, addr_param_len, &addr_param); in sctp_make_asconf_update_ip()
2866 sctp_addto_chunk(retval, paramlen, ¶m); in sctp_make_asconf_update_ip()
2867 sctp_addto_chunk(retval, addr_param_len, &addr_param); in sctp_make_asconf_update_ip()
2869 return retval; in sctp_make_asconf_update_ip()
2890 struct sctp_chunk *retval; in sctp_make_asconf_set_prim() local
2902 retval = sctp_make_asconf(asoc, addr, len); in sctp_make_asconf_set_prim()
2903 if (!retval) in sctp_make_asconf_set_prim()
2910 sctp_addto_chunk(retval, sizeof(param), ¶m); in sctp_make_asconf_set_prim()
2911 sctp_addto_chunk(retval, addrlen, &addrparam); in sctp_make_asconf_set_prim()
2913 return retval; in sctp_make_asconf_set_prim()
2939 struct sctp_chunk *retval; in sctp_make_asconf_ack() local
2943 retval = sctp_make_control(asoc, SCTP_CID_ASCONF_ACK, 0, length); in sctp_make_asconf_ack()
2944 if (!retval) in sctp_make_asconf_ack()
2949 retval->subh.addip_hdr = in sctp_make_asconf_ack()
2950 sctp_addto_chunk(retval, sizeof(asconf), &asconf); in sctp_make_asconf_ack()
2952 return retval; in sctp_make_asconf_ack()
3390 int retval = 0; in sctp_process_asconf_ack() local
3433 retval = 1; in sctp_process_asconf_ack()
3469 return retval; in sctp_process_asconf_ack()
3477 struct sctp_chunk *retval = NULL; in sctp_make_fwdtsn() local
3485 retval = sctp_make_control(asoc, SCTP_CID_FWD_TSN, 0, hint); in sctp_make_fwdtsn()
3487 if (!retval) in sctp_make_fwdtsn()
3491 retval->subh.fwdtsn_hdr = in sctp_make_fwdtsn()
3492 sctp_addto_chunk(retval, sizeof(ftsn_hdr), &ftsn_hdr); in sctp_make_fwdtsn()
3497 sctp_addto_chunk(retval, sizeof(skip), &skip); in sctp_make_fwdtsn()
3500 return retval; in sctp_make_fwdtsn()