Lines Matching refs:asoc
64 const struct sctp_association *asoc,
68 static int sctp_eat_data(const struct sctp_association *asoc,
72 const struct sctp_association *asoc,
76 const struct sctp_association *asoc,
82 const struct sctp_association *asoc,
88 const struct sctp_association *asoc,
94 const struct sctp_association *asoc,
103 const struct sctp_association *asoc,
109 const struct sctp_association *asoc,
118 const struct sctp_association *asoc,
126 const struct sctp_association *asoc,
134 const struct sctp_association *asoc,
142 const struct sctp_association *asoc,
149 const struct sctp_association *asoc,
155 const struct sctp_association *asoc,
219 const struct sctp_association *asoc, in sctp_sf_do_4_C() argument
227 if (!sctp_vtag_verify_either(chunk, asoc)) in sctp_sf_do_4_C()
228 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_4_C()
236 return sctp_sf_violation_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_do_4_C()
240 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_4_C()
250 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_SHUTDOWN_COMP, in sctp_sf_do_4_C()
305 const struct sctp_association *asoc, in sctp_sf_do_5_1B_init() argument
328 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1B_init()
335 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1B_init()
342 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1B_init()
350 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1B_init()
359 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1B_init()
363 if (!sctp_verify_init(net, ep, asoc, chunk->chunk_hdr->type, in sctp_sf_do_5_1B_init()
370 packet = sctp_abort_pkt_new(net, ep, asoc, arg, in sctp_sf_do_5_1B_init()
387 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, in sctp_sf_do_5_1B_init()
501 const struct sctp_association *asoc, in sctp_sf_do_5_1C_ack() argument
511 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_do_5_1C_ack()
512 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1C_ack()
519 return sctp_sf_violation_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1C_ack()
523 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_5_1C_ack()
530 if (!sctp_verify_init(net, ep, asoc, chunk->chunk_hdr->type, in sctp_sf_do_5_1C_ack()
542 packet = sctp_abort_pkt_new(net, ep, asoc, arg, in sctp_sf_do_5_1C_ack()
569 if (sctp_auth_recv_cid(SCTP_CID_ABORT, asoc)) in sctp_sf_do_5_1C_ack()
570 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1C_ack()
574 asoc, chunk->transport); in sctp_sf_do_5_1C_ack()
651 const struct sctp_association *asoc, in sctp_sf_do_5_1D_ce() argument
669 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1D_ce()
678 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1D_ce()
687 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1D_ce()
702 new_asoc = sctp_unpack_cookie(ep, asoc, chunk, GFP_ATOMIC, &error, in sctp_sf_do_5_1D_ce()
720 sctp_send_stale_cookie_err(net, ep, asoc, chunk, commands, in sctp_sf_do_5_1D_ce()
722 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1D_ce()
726 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1D_ce()
767 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1D_ce()
772 auth.asoc = chunk->asoc; in sctp_sf_do_5_1D_ce()
782 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1D_ce()
877 const struct sctp_association *asoc, in sctp_sf_do_5_1E_ca() argument
884 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_do_5_1E_ca()
885 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_1E_ca()
891 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_5_1E_ca()
915 if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE]) in sctp_sf_do_5_1E_ca()
923 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_UP, in sctp_sf_do_5_1E_ca()
924 0, asoc->c.sinit_num_ostreams, in sctp_sf_do_5_1E_ca()
925 asoc->c.sinit_max_instreams, in sctp_sf_do_5_1E_ca()
938 if (asoc->peer.adaptation_ind) { in sctp_sf_do_5_1E_ca()
939 ev = sctp_ulpevent_make_adaptation_indication(asoc, GFP_ATOMIC); in sctp_sf_do_5_1E_ca()
954 const struct sctp_association *asoc, in sctp_sf_heartbeat() argument
963 reply = sctp_make_heartbeat(asoc, transport); in sctp_sf_heartbeat()
980 const struct sctp_association *asoc, in sctp_sf_sendbeat_8_3() argument
987 if (asoc->overall_error_count >= asoc->max_retrans) { in sctp_sf_sendbeat_8_3()
1007 sctp_sf_heartbeat(ep, asoc, type, arg, in sctp_sf_sendbeat_8_3()
1051 const struct sctp_association *asoc, in sctp_sf_beat_8_3() argument
1061 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_beat_8_3()
1062 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_beat_8_3()
1066 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_beat_8_3()
1078 return sctp_sf_violation_paramlen(net, ep, asoc, type, arg, in sctp_sf_beat_8_3()
1084 reply = sctp_make_heartbeat_ack(asoc, chunk, param_hdr, paylen); in sctp_sf_beat_8_3()
1125 const struct sctp_association *asoc, in sctp_sf_backbeat_8_3() argument
1136 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_backbeat_8_3()
1137 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_backbeat_8_3()
1142 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_backbeat_8_3()
1153 link = sctp_assoc_lookup_paddr(asoc, &from_addr); in sctp_sf_backbeat_8_3()
1160 asoc, in sctp_sf_backbeat_8_3()
1165 asoc, in sctp_sf_backbeat_8_3()
1265 const struct sctp_association *asoc, in sctp_sf_check_restart_addrs() argument
1286 if (!list_has_sctp_addr(&asoc->peer.transport_addr_list, in sctp_sf_check_restart_addrs()
1305 const struct sctp_association *asoc) in sctp_tietags_populate() argument
1307 switch (asoc->state) { in sctp_tietags_populate()
1312 new_asoc->c.my_vtag = asoc->c.my_vtag; in sctp_tietags_populate()
1313 new_asoc->c.my_ttag = asoc->c.my_vtag; in sctp_tietags_populate()
1318 new_asoc->c.my_vtag = asoc->c.my_vtag; in sctp_tietags_populate()
1319 new_asoc->c.my_ttag = asoc->c.my_vtag; in sctp_tietags_populate()
1320 new_asoc->c.peer_ttag = asoc->c.peer_vtag; in sctp_tietags_populate()
1327 new_asoc->c.my_ttag = asoc->c.my_vtag; in sctp_tietags_populate()
1328 new_asoc->c.peer_ttag = asoc->c.peer_vtag; in sctp_tietags_populate()
1336 new_asoc->rwnd = asoc->rwnd; in sctp_tietags_populate()
1337 new_asoc->c.sinit_num_ostreams = asoc->c.sinit_num_ostreams; in sctp_tietags_populate()
1338 new_asoc->c.sinit_max_instreams = asoc->c.sinit_max_instreams; in sctp_tietags_populate()
1339 new_asoc->c.initial_tsn = asoc->c.initial_tsn; in sctp_tietags_populate()
1352 const struct sctp_association *asoc) in sctp_tietags_compare() argument
1355 if ((asoc->c.my_vtag != new_asoc->c.my_vtag) && in sctp_tietags_compare()
1356 (asoc->c.peer_vtag != new_asoc->c.peer_vtag) && in sctp_tietags_compare()
1357 (asoc->c.my_vtag == new_asoc->c.my_ttag) && in sctp_tietags_compare()
1358 (asoc->c.peer_vtag == new_asoc->c.peer_ttag)) in sctp_tietags_compare()
1362 if ((asoc->c.my_vtag == new_asoc->c.my_vtag) && in sctp_tietags_compare()
1363 ((asoc->c.peer_vtag != new_asoc->c.peer_vtag) || in sctp_tietags_compare()
1364 (0 == asoc->c.peer_vtag))) { in sctp_tietags_compare()
1369 if ((asoc->c.my_vtag == new_asoc->c.my_vtag) && in sctp_tietags_compare()
1370 (asoc->c.peer_vtag == new_asoc->c.peer_vtag)) in sctp_tietags_compare()
1374 if ((asoc->c.my_vtag != new_asoc->c.my_vtag) && in sctp_tietags_compare()
1375 (asoc->c.peer_vtag == new_asoc->c.peer_vtag) && in sctp_tietags_compare()
1390 const struct sctp_association *asoc, in sctp_sf_do_unexpected_init() argument
1413 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_unexpected_init()
1419 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands); in sctp_sf_do_unexpected_init()
1426 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_unexpected_init()
1436 if (!sctp_verify_init(net, ep, asoc, chunk->chunk_hdr->type, in sctp_sf_do_unexpected_init()
1443 packet = sctp_abort_pkt_new(net, ep, asoc, arg, in sctp_sf_do_unexpected_init()
1459 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, in sctp_sf_do_unexpected_init()
1493 if (!sctp_state(asoc, COOKIE_WAIT)) { in sctp_sf_do_unexpected_init()
1494 if (!sctp_sf_check_restart_addrs(new_asoc, asoc, chunk, in sctp_sf_do_unexpected_init()
1501 sctp_tietags_populate(new_asoc, asoc); in sctp_sf_do_unexpected_init()
1603 const struct sctp_association *asoc, in sctp_sf_do_5_2_1_siminit() argument
1611 return sctp_sf_do_unexpected_init(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_2_1_siminit()
1657 const struct sctp_association *asoc, in sctp_sf_do_5_2_2_dupinit() argument
1665 return sctp_sf_do_unexpected_init(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_2_2_dupinit()
1680 const struct sctp_association *asoc, in sctp_sf_do_5_2_3_initack() argument
1688 return sctp_sf_ootb(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_2_3_initack()
1690 return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_2_3_initack()
1700 const struct sctp_association *asoc, in sctp_sf_do_dupcook_a() argument
1724 if (!sctp_sf_check_restart_addrs(new_asoc, asoc, chunk, commands)) { in sctp_sf_do_dupcook_a()
1734 if (sctp_state(asoc, SHUTDOWN_ACK_SENT)) { in sctp_sf_do_dupcook_a()
1735 disposition = sctp_sf_do_9_2_reshutack(net, ep, asoc, in sctp_sf_do_dupcook_a()
1741 err = sctp_make_op_error(asoc, chunk, in sctp_sf_do_dupcook_a()
1771 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_RESTART, 0, in sctp_sf_do_dupcook_a()
1781 if (sctp_state(asoc, SHUTDOWN_PENDING) && in sctp_sf_do_dupcook_a()
1782 (sctp_sstate(asoc->base.sk, CLOSING) || in sctp_sf_do_dupcook_a()
1783 sock_flag(asoc->base.sk, SOCK_DEAD))) { in sctp_sf_do_dupcook_a()
1789 return sctp_sf_do_9_2_start_shutdown(net, ep, asoc, in sctp_sf_do_dupcook_a()
1815 const struct sctp_association *asoc, in sctp_sf_do_dupcook_b() argument
1866 if (asoc->peer.adaptation_ind) in sctp_sf_do_dupcook_b()
1886 const struct sctp_association *asoc, in sctp_sf_do_dupcook_c() argument
1908 const struct sctp_association *asoc, in sctp_sf_do_dupcook_d() argument
1924 if (asoc->state < SCTP_STATE_ESTABLISHED) { in sctp_sf_do_dupcook_d()
1940 ev = sctp_ulpevent_make_assoc_change(asoc, 0, in sctp_sf_do_dupcook_d()
1942 asoc->c.sinit_num_ostreams, in sctp_sf_do_dupcook_d()
1943 asoc->c.sinit_max_instreams, in sctp_sf_do_dupcook_d()
1953 if (asoc->peer.adaptation_ind) { in sctp_sf_do_dupcook_d()
1954 ai_ev = sctp_ulpevent_make_adaptation_indication(asoc, in sctp_sf_do_dupcook_d()
2003 const struct sctp_association *asoc, in sctp_sf_do_5_2_4_dupcook() argument
2021 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_5_2_4_dupcook()
2037 new_asoc = sctp_unpack_cookie(ep, asoc, chunk, GFP_ATOMIC, &error, in sctp_sf_do_5_2_4_dupcook()
2055 sctp_send_stale_cookie_err(net, ep, asoc, chunk, commands, in sctp_sf_do_5_2_4_dupcook()
2057 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_2_4_dupcook()
2060 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_2_4_dupcook()
2067 action = sctp_tietags_compare(new_asoc, asoc); in sctp_sf_do_5_2_4_dupcook()
2071 retval = sctp_sf_do_dupcook_a(net, ep, asoc, chunk, commands, in sctp_sf_do_5_2_4_dupcook()
2076 retval = sctp_sf_do_dupcook_b(net, ep, asoc, chunk, commands, in sctp_sf_do_5_2_4_dupcook()
2081 retval = sctp_sf_do_dupcook_c(net, ep, asoc, chunk, commands, in sctp_sf_do_5_2_4_dupcook()
2086 retval = sctp_sf_do_dupcook_d(net, ep, asoc, chunk, commands, in sctp_sf_do_5_2_4_dupcook()
2091 retval = sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_5_2_4_dupcook()
2103 SCTP_ASOC((struct sctp_association *)asoc)); in sctp_sf_do_5_2_4_dupcook()
2119 const struct sctp_association *asoc, in sctp_sf_shutdown_pending_abort() argument
2126 if (!sctp_vtag_verify_either(chunk, asoc)) in sctp_sf_shutdown_pending_abort()
2127 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_pending_abort()
2140 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_pending_abort()
2148 sctp_bind_addr_state(&asoc->base.bind_addr, &chunk->dest)) in sctp_sf_shutdown_pending_abort()
2149 return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_pending_abort()
2151 return __sctp_sf_do_9_1_abort(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_pending_abort()
2161 const struct sctp_association *asoc, in sctp_sf_shutdown_sent_abort() argument
2168 if (!sctp_vtag_verify_either(chunk, asoc)) in sctp_sf_shutdown_sent_abort()
2169 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_sent_abort()
2182 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_sent_abort()
2190 sctp_bind_addr_state(&asoc->base.bind_addr, &chunk->dest)) in sctp_sf_shutdown_sent_abort()
2191 return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_sent_abort()
2201 return __sctp_sf_do_9_1_abort(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_sent_abort()
2212 const struct sctp_association *asoc, in sctp_sf_shutdown_ack_sent_abort() argument
2220 return sctp_sf_shutdown_sent_abort(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_ack_sent_abort()
2239 const struct sctp_association *asoc, in sctp_sf_cookie_echoed_err() argument
2247 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_cookie_echoed_err()
2248 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_cookie_echoed_err()
2254 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_cookie_echoed_err()
2264 return sctp_sf_do_5_2_6_stale(net, ep, asoc, type, in sctp_sf_cookie_echoed_err()
2273 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_cookie_echoed_err()
2303 const struct sctp_association *asoc, in sctp_sf_do_5_2_6_stale() argument
2314 int attempts = asoc->init_err_counter + 1; in sctp_sf_do_5_2_6_stale()
2316 if (attempts > asoc->max_init_attempts) { in sctp_sf_do_5_2_6_stale()
2348 bp = (struct sctp_bind_addr *) &asoc->base.bind_addr; in sctp_sf_do_5_2_6_stale()
2349 reply = sctp_make_init(asoc, bp, GFP_ATOMIC, sizeof(bht)); in sctp_sf_do_5_2_6_stale()
2371 SCTP_TRANSPORT(asoc->peer.primary_path)); in sctp_sf_do_5_2_6_stale()
2426 const struct sctp_association *asoc, in sctp_sf_do_9_1_abort() argument
2433 if (!sctp_vtag_verify_either(chunk, asoc)) in sctp_sf_do_9_1_abort()
2434 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_1_abort()
2447 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_1_abort()
2455 sctp_bind_addr_state(&asoc->base.bind_addr, &chunk->dest)) in sctp_sf_do_9_1_abort()
2456 return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_1_abort()
2458 return __sctp_sf_do_9_1_abort(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_1_abort()
2463 const struct sctp_association *asoc, in __sctp_sf_do_9_1_abort() argument
2479 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in __sctp_sf_do_9_1_abort()
2500 const struct sctp_association *asoc, in sctp_sf_cookie_wait_abort() argument
2509 if (!sctp_vtag_verify_either(chunk, asoc)) in sctp_sf_cookie_wait_abort()
2510 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_cookie_wait_abort()
2523 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_cookie_wait_abort()
2530 return sctp_stop_t1_and_abort(net, commands, error, ECONNREFUSED, asoc, in sctp_sf_cookie_wait_abort()
2539 const struct sctp_association *asoc, in sctp_sf_cookie_wait_icmp_abort() argument
2545 ENOPROTOOPT, asoc, in sctp_sf_cookie_wait_icmp_abort()
2554 const struct sctp_association *asoc, in sctp_sf_cookie_echoed_abort() argument
2562 return sctp_sf_cookie_wait_abort(net, ep, asoc, type, arg, commands); in sctp_sf_cookie_echoed_abort()
2573 const struct sctp_association *asoc, in sctp_stop_t1_and_abort() argument
2626 const struct sctp_association *asoc, in sctp_sf_do_9_2_shutdown() argument
2637 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_do_9_2_shutdown()
2638 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_2_shutdown()
2643 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_9_2_shutdown()
2652 if (TSN_lt(ctsn, asoc->ctsn_ack_point)) { in sctp_sf_do_9_2_shutdown()
2654 asoc->ctsn_ack_point); in sctp_sf_do_9_2_shutdown()
2663 if (!TSN_lt(ctsn, asoc->next_tsn)) in sctp_sf_do_9_2_shutdown()
2664 return sctp_sf_violation_ctsn(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_2_shutdown()
2670 ev = sctp_ulpevent_make_shutdown_event(asoc, 0, GFP_ATOMIC); in sctp_sf_do_9_2_shutdown()
2687 if (sctp_outq_is_empty(&asoc->outqueue)) { in sctp_sf_do_9_2_shutdown()
2688 disposition = sctp_sf_do_9_2_shutdown_ack(net, ep, asoc, type, in sctp_sf_do_9_2_shutdown()
2716 const struct sctp_association *asoc, in sctp_sf_do_9_2_shut_ctsn() argument
2725 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_do_9_2_shut_ctsn()
2726 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_2_shut_ctsn()
2731 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_9_2_shut_ctsn()
2737 if (TSN_lt(ctsn, asoc->ctsn_ack_point)) { in sctp_sf_do_9_2_shut_ctsn()
2739 asoc->ctsn_ack_point); in sctp_sf_do_9_2_shut_ctsn()
2748 if (!TSN_lt(ctsn, asoc->next_tsn)) in sctp_sf_do_9_2_shut_ctsn()
2749 return sctp_sf_violation_ctsn(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_2_shut_ctsn()
2770 const struct sctp_association *asoc, in sctp_sf_do_9_2_reshutack() argument
2780 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_9_2_reshutack()
2787 reply = sctp_make_shutdown_ack(asoc, chunk); in sctp_sf_do_9_2_reshutack()
2834 const struct sctp_association *asoc, in sctp_sf_do_ecn_cwr() argument
2843 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_do_ecn_cwr()
2844 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_ecn_cwr()
2847 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_ecn_cwr()
2856 if (TSN_lte(asoc->last_ecne_tsn, lowest_tsn)) { in sctp_sf_do_ecn_cwr()
2890 const struct sctp_association *asoc, in sctp_sf_do_ecne() argument
2898 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_do_ecne()
2899 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_ecne()
2902 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_ecne()
2947 const struct sctp_association *asoc, in sctp_sf_eat_data_6_2() argument
2956 if (!sctp_vtag_verify(chunk, asoc)) { in sctp_sf_eat_data_6_2()
2959 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_eat_data_6_2()
2963 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_eat_data_6_2()
2966 error = sctp_eat_data(asoc, chunk, commands); in sctp_sf_eat_data_6_2()
2981 return sctp_sf_abort_violation(net, ep, asoc, chunk, commands, in sctp_sf_eat_data_6_2()
2990 if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE]) { in sctp_sf_eat_data_6_2()
3069 const struct sctp_association *asoc, in sctp_sf_eat_data_fast_4_4() argument
3077 if (!sctp_vtag_verify(chunk, asoc)) { in sctp_sf_eat_data_fast_4_4()
3080 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_eat_data_fast_4_4()
3084 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_eat_data_fast_4_4()
3087 error = sctp_eat_data(asoc, chunk, commands); in sctp_sf_eat_data_fast_4_4()
3098 return sctp_sf_abort_violation(net, ep, asoc, chunk, commands, in sctp_sf_eat_data_fast_4_4()
3160 const struct sctp_association *asoc, in sctp_sf_eat_sack_6_2() argument
3169 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_eat_sack_6_2()
3170 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_eat_sack_6_2()
3174 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_eat_sack_6_2()
3181 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_eat_sack_6_2()
3191 if (TSN_lt(ctsn, asoc->ctsn_ack_point)) { in sctp_sf_eat_sack_6_2()
3193 asoc->ctsn_ack_point); in sctp_sf_eat_sack_6_2()
3202 if (!TSN_lt(ctsn, asoc->next_tsn)) in sctp_sf_eat_sack_6_2()
3203 return sctp_sf_violation_ctsn(net, ep, asoc, type, arg, commands); in sctp_sf_eat_sack_6_2()
3234 const struct sctp_association *asoc, in sctp_sf_tabort_8_4_8() argument
3243 packet = sctp_ootb_pkt_new(net, asoc, chunk); in sctp_sf_tabort_8_4_8()
3249 abort = sctp_make_abort(asoc, chunk, 0); in sctp_sf_tabort_8_4_8()
3269 sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_tabort_8_4_8()
3286 const struct sctp_association *asoc, in sctp_sf_operr_notify() argument
3294 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_operr_notify()
3295 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_operr_notify()
3299 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_operr_notify()
3303 return sctp_sf_violation_paramlen(net, ep, asoc, type, arg, in sctp_sf_operr_notify()
3324 const struct sctp_association *asoc, in sctp_sf_do_9_2_final() argument
3333 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_do_9_2_final()
3334 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_2_final()
3338 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_9_2_final()
3345 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_SHUTDOWN_COMP, in sctp_sf_do_9_2_final()
3351 reply = sctp_make_shutdown_complete(asoc, chunk); in sctp_sf_do_9_2_final()
3407 const struct sctp_association *asoc, in sctp_sf_ootb() argument
3426 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_ootb()
3441 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_ootb()
3463 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_ootb()
3470 return sctp_sf_shut_8_4_5(net, ep, asoc, type, arg, commands); in sctp_sf_ootb()
3472 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_ootb()
3474 return sctp_sf_tabort_8_4_8(net, ep, asoc, type, arg, commands); in sctp_sf_ootb()
3500 const struct sctp_association *asoc, in sctp_sf_shut_8_4_5() argument
3509 packet = sctp_ootb_pkt_new(net, asoc, chunk); in sctp_sf_shut_8_4_5()
3515 shut = sctp_make_shutdown_complete(asoc, chunk); in sctp_sf_shut_8_4_5()
3539 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_shut_8_4_5()
3545 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_shut_8_4_5()
3564 const struct sctp_association *asoc, in sctp_sf_do_8_5_1_E_sa() argument
3573 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_8_5_1_E_sa()
3589 const struct sctp_association *asoc, in sctp_sf_do_asconf() argument
3599 if (!sctp_vtag_verify(chunk, asoc)) { in sctp_sf_do_asconf()
3602 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_asconf()
3612 return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_do_asconf()
3616 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_asconf()
3623 if (!sctp_verify_asconf(asoc, chunk, true, &err_param)) in sctp_sf_do_asconf()
3624 return sctp_sf_violation_paramlen(net, ep, asoc, type, arg, in sctp_sf_do_asconf()
3631 if (serial == asoc->peer.addip_serial + 1) { in sctp_sf_do_asconf()
3636 sctp_assoc_clean_asconf_ack_cache(asoc); in sctp_sf_do_asconf()
3647 asoc, chunk); in sctp_sf_do_asconf()
3650 } else if (serial < asoc->peer.addip_serial + 1) { in sctp_sf_do_asconf()
3663 asconf_ack = sctp_assoc_lookup_asconf_ack(asoc, hdr->serial); in sctp_sf_do_asconf()
3690 if (asoc->new_transport) { in sctp_sf_do_asconf()
3691 sctp_sf_heartbeat(ep, asoc, type, asoc->new_transport, commands); in sctp_sf_do_asconf()
3692 ((struct sctp_association *)asoc)->new_transport = NULL; in sctp_sf_do_asconf()
3705 const struct sctp_association *asoc, in sctp_sf_do_asconf_ack() argument
3710 struct sctp_chunk *last_asconf = asoc->addip_last_asconf; in sctp_sf_do_asconf_ack()
3716 if (!sctp_vtag_verify(asconf_ack, asoc)) { in sctp_sf_do_asconf_ack()
3719 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_asconf_ack()
3729 return sctp_sf_discard_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_do_asconf_ack()
3733 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_asconf_ack()
3740 if (!sctp_verify_asconf(asoc, asconf_ack, false, &err_param)) in sctp_sf_do_asconf_ack()
3741 return sctp_sf_violation_paramlen(net, ep, asoc, type, arg, in sctp_sf_do_asconf_ack()
3748 sent_serial = asoc->addip_serial - 1; in sctp_sf_do_asconf_ack()
3758 !(asoc->addip_last_asconf)) { in sctp_sf_do_asconf_ack()
3759 abort = sctp_make_abort(asoc, asconf_ack, in sctp_sf_do_asconf_ack()
3781 if ((rcvd_serial == sent_serial) && asoc->addip_last_asconf) { in sctp_sf_do_asconf_ack()
3785 if (!sctp_process_asconf_ack((struct sctp_association *)asoc, in sctp_sf_do_asconf_ack()
3795 abort = sctp_make_abort(asoc, asconf_ack, in sctp_sf_do_asconf_ack()
3834 const struct sctp_association *asoc, in sctp_sf_eat_fwd_tsn() argument
3845 if (!sctp_vtag_verify(chunk, asoc)) { in sctp_sf_eat_fwd_tsn()
3848 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_eat_fwd_tsn()
3853 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_eat_fwd_tsn()
3868 if (sctp_tsnmap_check(&asoc->peer.tsn_map, tsn) < 0) in sctp_sf_eat_fwd_tsn()
3873 if (ntohs(skip->stream) >= asoc->c.sinit_max_instreams) in sctp_sf_eat_fwd_tsn()
3883 if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE]) { in sctp_sf_eat_fwd_tsn()
3902 const struct sctp_association *asoc, in sctp_sf_eat_fwd_tsn_fast() argument
3913 if (!sctp_vtag_verify(chunk, asoc)) { in sctp_sf_eat_fwd_tsn_fast()
3916 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_eat_fwd_tsn_fast()
3921 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_eat_fwd_tsn_fast()
3936 if (sctp_tsnmap_check(&asoc->peer.tsn_map, tsn) < 0) in sctp_sf_eat_fwd_tsn_fast()
3941 if (ntohs(skip->stream) >= asoc->c.sinit_max_instreams) in sctp_sf_eat_fwd_tsn_fast()
3990 const struct sctp_association *asoc, in sctp_sf_authenticate() argument
4009 if (!sctp_auth_asoc_verify_hmac_id(asoc, auth_hdr->hmac_id)) in sctp_sf_authenticate()
4016 if (key_id != asoc->active_key_id && !sctp_auth_get_shkey(asoc, key_id)) in sctp_sf_authenticate()
4044 sctp_auth_calculate_hmac(asoc, chunk->skb, in sctp_sf_authenticate()
4064 const struct sctp_association *asoc, in sctp_sf_eat_auth() argument
4075 if (!asoc->peer.auth_capable) in sctp_sf_eat_auth()
4076 return sctp_sf_unk_chunk(net, ep, asoc, type, arg, commands); in sctp_sf_eat_auth()
4078 if (!sctp_vtag_verify(chunk, asoc)) { in sctp_sf_eat_auth()
4081 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_eat_auth()
4086 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_eat_auth()
4090 error = sctp_sf_authenticate(net, ep, asoc, type, chunk); in sctp_sf_eat_auth()
4096 err_chunk = sctp_make_op_error(asoc, chunk, in sctp_sf_eat_auth()
4107 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_eat_auth()
4110 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_eat_auth()
4120 if (asoc->active_key_id != ntohs(auth_hdr->shkey_id)) { in sctp_sf_eat_auth()
4123 ev = sctp_ulpevent_make_authkey(asoc, ntohs(auth_hdr->shkey_id), in sctp_sf_eat_auth()
4161 const struct sctp_association *asoc, in sctp_sf_unk_chunk() argument
4172 if (!sctp_vtag_verify(unk_chunk, asoc)) in sctp_sf_unk_chunk()
4173 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_unk_chunk()
4180 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_unk_chunk()
4186 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_unk_chunk()
4190 err_chunk = sctp_make_op_error(asoc, unk_chunk, in sctp_sf_unk_chunk()
4200 sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_unk_chunk()
4208 err_chunk = sctp_make_op_error(asoc, unk_chunk, in sctp_sf_unk_chunk()
4241 const struct sctp_association *asoc, in sctp_sf_discard_chunk() argument
4253 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_discard_chunk()
4281 const struct sctp_association *asoc, in sctp_sf_pdiscard() argument
4309 const struct sctp_association *asoc, in sctp_sf_violation() argument
4318 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_violation()
4330 const struct sctp_association *asoc, in sctp_sf_abort_violation() argument
4351 if (sctp_auth_recv_cid(SCTP_CID_ABORT, asoc)) in sctp_sf_abort_violation()
4355 abort = sctp_make_abort_violation(asoc, chunk, payload, paylen); in sctp_sf_abort_violation()
4359 if (asoc) { in sctp_sf_abort_violation()
4362 !asoc->peer.i.init_tag) { in sctp_sf_abort_violation()
4381 if (asoc->state <= SCTP_STATE_COOKIE_ECHOED) { in sctp_sf_abort_violation()
4396 packet = sctp_ootb_pkt_new(net, asoc, chunk); in sctp_sf_abort_violation()
4417 sctp_sf_pdiscard(net, ep, asoc, SCTP_ST_CHUNK(0), arg, commands); in sctp_sf_abort_violation()
4448 const struct sctp_association *asoc, in sctp_sf_violation_chunklen() argument
4455 return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str, in sctp_sf_violation_chunklen()
4468 const struct sctp_association *asoc, in sctp_sf_violation_paramlen() argument
4477 if (sctp_auth_recv_cid(SCTP_CID_ABORT, asoc)) in sctp_sf_violation_paramlen()
4481 abort = sctp_make_violation_paramlen(asoc, chunk, param); in sctp_sf_violation_paramlen()
4496 sctp_sf_pdiscard(net, ep, asoc, SCTP_ST_CHUNK(0), arg, commands); in sctp_sf_violation_paramlen()
4511 const struct sctp_association *asoc, in sctp_sf_violation_ctsn() argument
4518 return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str, in sctp_sf_violation_ctsn()
4531 const struct sctp_association *asoc, in sctp_sf_violation_chunk() argument
4538 if (!asoc) in sctp_sf_violation_chunk()
4539 return sctp_sf_violation(net, ep, asoc, type, arg, commands); in sctp_sf_violation_chunk()
4541 return sctp_sf_abort_violation(net, ep, asoc, arg, commands, err_str, in sctp_sf_violation_chunk()
4606 const struct sctp_association *asoc, in sctp_sf_do_prm_asoc() argument
4629 repl = sctp_make_init(asoc, &asoc->base.bind_addr, GFP_ATOMIC, 0); in sctp_sf_do_prm_asoc()
4640 my_asoc = (struct sctp_association *)asoc; in sctp_sf_do_prm_asoc()
4718 const struct sctp_association *asoc, in sctp_sf_do_prm_send() argument
4758 const struct sctp_association *asoc, in sctp_sf_do_9_2_prm_shutdown() argument
4777 if (sctp_outq_is_empty(&asoc->outqueue)) { in sctp_sf_do_9_2_prm_shutdown()
4778 disposition = sctp_sf_do_9_2_start_shutdown(net, ep, asoc, type, in sctp_sf_do_9_2_prm_shutdown()
4814 const struct sctp_association *asoc, in sctp_sf_do_9_1_prm_abort() argument
4854 const struct sctp_association *asoc, in sctp_sf_error_closed() argument
4868 const struct sctp_association *asoc, in sctp_sf_error_shutdown() argument
4895 const struct sctp_association *asoc, in sctp_sf_cookie_wait_prm_shutdown() argument
4930 const struct sctp_association *asoc, in sctp_sf_cookie_echoed_prm_shutdown() argument
4937 return sctp_sf_cookie_wait_prm_shutdown(net, ep, asoc, type, arg, commands); in sctp_sf_cookie_echoed_prm_shutdown()
4957 const struct sctp_association *asoc, in sctp_sf_cookie_wait_prm_abort() argument
5008 const struct sctp_association *asoc, in sctp_sf_cookie_echoed_prm_abort() argument
5016 return sctp_sf_cookie_wait_prm_abort(net, ep, asoc, type, arg, commands); in sctp_sf_cookie_echoed_prm_abort()
5034 const struct sctp_association *asoc, in sctp_sf_shutdown_pending_prm_abort() argument
5043 return sctp_sf_do_9_1_prm_abort(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_pending_prm_abort()
5061 const struct sctp_association *asoc, in sctp_sf_shutdown_sent_prm_abort() argument
5074 return sctp_sf_do_9_1_prm_abort(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_sent_prm_abort()
5092 const struct sctp_association *asoc, in sctp_sf_shutdown_ack_sent_prm_abort() argument
5100 return sctp_sf_shutdown_sent_prm_abort(net, ep, asoc, type, arg, commands); in sctp_sf_shutdown_ack_sent_prm_abort()
5128 const struct sctp_association *asoc, in sctp_sf_do_prm_requestheartbeat() argument
5133 if (SCTP_DISPOSITION_NOMEM == sctp_sf_heartbeat(ep, asoc, type, in sctp_sf_do_prm_requestheartbeat()
5160 const struct sctp_association *asoc, in sctp_sf_do_prm_asconf() argument
5182 const struct sctp_association *asoc, in sctp_sf_ignore_primitive() argument
5206 const struct sctp_association *asoc, in sctp_sf_do_no_pending_tsn() argument
5213 event = sctp_ulpevent_make_sender_dry_event(asoc, GFP_ATOMIC); in sctp_sf_do_no_pending_tsn()
5238 const struct sctp_association *asoc, in sctp_sf_do_9_2_start_shutdown() argument
5250 reply = sctp_make_shutdown(asoc, NULL); in sctp_sf_do_9_2_start_shutdown()
5270 if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE]) in sctp_sf_do_9_2_start_shutdown()
5308 const struct sctp_association *asoc, in sctp_sf_do_9_2_shutdown_ack() argument
5324 if (!sctp_vtag_verify(chunk, asoc)) in sctp_sf_do_9_2_shutdown_ack()
5325 return sctp_sf_pdiscard(net, ep, asoc, type, arg, commands); in sctp_sf_do_9_2_shutdown_ack()
5329 return sctp_sf_violation_chunklen(net, ep, asoc, type, arg, in sctp_sf_do_9_2_shutdown_ack()
5336 reply = sctp_make_shutdown_ack(asoc, chunk); in sctp_sf_do_9_2_shutdown_ack()
5349 if (asoc->timeouts[SCTP_EVENT_TIMEOUT_AUTOCLOSE]) in sctp_sf_do_9_2_shutdown_ack()
5379 const struct sctp_association *asoc, in sctp_sf_ignore_other() argument
5407 const struct sctp_association *asoc, in sctp_sf_do_6_3_3_rtx() argument
5416 if (asoc->overall_error_count >= asoc->max_retrans) { in sctp_sf_do_6_3_3_rtx()
5417 if (asoc->peer.zero_window_announced && in sctp_sf_do_6_3_3_rtx()
5418 asoc->state == SCTP_STATE_SHUTDOWN_PENDING) { in sctp_sf_do_6_3_3_rtx()
5495 const struct sctp_association *asoc, in sctp_sf_do_6_2_sack() argument
5526 const struct sctp_association *asoc, in sctp_sf_t1_init_timer_expire() argument
5533 int attempts = asoc->init_err_counter + 1; in sctp_sf_t1_init_timer_expire()
5539 if (attempts <= asoc->max_init_attempts) { in sctp_sf_t1_init_timer_expire()
5540 bp = (struct sctp_bind_addr *) &asoc->base.bind_addr; in sctp_sf_t1_init_timer_expire()
5541 repl = sctp_make_init(asoc, bp, GFP_ATOMIC, 0); in sctp_sf_t1_init_timer_expire()
5557 asoc->max_init_attempts); in sctp_sf_t1_init_timer_expire()
5590 const struct sctp_association *asoc, in sctp_sf_t1_cookie_timer_expire() argument
5596 int attempts = asoc->init_err_counter + 1; in sctp_sf_t1_cookie_timer_expire()
5602 if (attempts <= asoc->max_init_attempts) { in sctp_sf_t1_cookie_timer_expire()
5603 repl = sctp_make_cookie_echo(asoc, NULL); in sctp_sf_t1_cookie_timer_expire()
5640 const struct sctp_association *asoc, in sctp_sf_t2_timer_expire() argument
5651 ((struct sctp_association *)asoc)->shutdown_retries++; in sctp_sf_t2_timer_expire()
5653 if (asoc->overall_error_count >= asoc->max_retrans) { in sctp_sf_t2_timer_expire()
5664 switch (asoc->state) { in sctp_sf_t2_timer_expire()
5666 reply = sctp_make_shutdown(asoc, NULL); in sctp_sf_t2_timer_expire()
5670 reply = sctp_make_shutdown_ack(asoc, NULL); in sctp_sf_t2_timer_expire()
5685 if (asoc->shutdown_last_sent_to) in sctp_sf_t2_timer_expire()
5687 SCTP_TRANSPORT(asoc->shutdown_last_sent_to)); in sctp_sf_t2_timer_expire()
5711 const struct sctp_association *asoc, in sctp_sf_t4_timer_expire() argument
5716 struct sctp_chunk *chunk = asoc->addip_last_asconf; in sctp_sf_t4_timer_expire()
5737 if (asoc->overall_error_count >= asoc->max_retrans) { in sctp_sf_t4_timer_expire()
5760 sctp_chunk_hold(asoc->addip_last_asconf); in sctp_sf_t4_timer_expire()
5762 SCTP_CHUNK(asoc->addip_last_asconf)); in sctp_sf_t4_timer_expire()
5782 const struct sctp_association *asoc, in sctp_sf_t5_timer_expire() argument
5793 reply = sctp_make_abort(asoc, NULL, 0); in sctp_sf_t5_timer_expire()
5819 const struct sctp_association *asoc, in sctp_sf_autoclose_timer_expire() argument
5840 if (sctp_outq_is_empty(&asoc->outqueue)) { in sctp_sf_autoclose_timer_expire()
5841 disposition = sctp_sf_do_9_2_start_shutdown(net, ep, asoc, type, in sctp_sf_autoclose_timer_expire()
5861 const struct sctp_association *asoc, in sctp_sf_not_impl() argument
5879 const struct sctp_association *asoc, in sctp_sf_bug() argument
5900 const struct sctp_association *asoc, in sctp_sf_timer_ignore() argument
5944 const struct sctp_association *asoc, in sctp_abort_pkt_new() argument
5952 packet = sctp_ootb_pkt_new(net, asoc, chunk); in sctp_abort_pkt_new()
5958 abort = sctp_make_abort(asoc, chunk, paylen); in sctp_abort_pkt_new()
5985 const struct sctp_association *asoc, in sctp_ootb_pkt_new() argument
6001 if (asoc) { in sctp_ootb_pkt_new()
6015 vtag = asoc->peer.i.init_tag; in sctp_ootb_pkt_new()
6066 const struct sctp_association *asoc, in sctp_send_stale_cookie_err() argument
6074 packet = sctp_ootb_pkt_new(net, asoc, chunk); in sctp_send_stale_cookie_err()
6095 static int sctp_eat_data(const struct sctp_association *asoc, in sctp_eat_data() argument
6105 struct sctp_tsnmap *map = (struct sctp_tsnmap *)&asoc->peer.tsn_map; in sctp_eat_data()
6106 struct sock *sk = asoc->base.sk; in sctp_eat_data()
6137 if (af && af->is_ce(chunk->skb) && asoc->peer.ecn_capable) { in sctp_eat_data()
6144 tmp = sctp_tsnmap_check(&asoc->peer.tsn_map, tsn); in sctp_eat_data()
6149 if (chunk->asoc) in sctp_eat_data()
6150 chunk->asoc->stats.outofseqtsns++; in sctp_eat_data()
6169 if ((datalen >= asoc->rwnd) && (!asoc->ulpq.pd_mode)) { in sctp_eat_data()
6182 if ((!chunk->data_accepted) && (!asoc->rwnd || asoc->rwnd_over || in sctp_eat_data()
6183 (datalen > asoc->rwnd + asoc->frag_point))) { in sctp_eat_data()
6197 __func__, tsn, datalen, asoc->rwnd); in sctp_eat_data()
6228 err = sctp_make_abort_no_data(asoc, chunk, tsn); in sctp_eat_data()
6253 if (chunk->asoc) in sctp_eat_data()
6254 chunk->asoc->stats.iuodchunks++; in sctp_eat_data()
6257 if (chunk->asoc) in sctp_eat_data()
6258 chunk->asoc->stats.iodchunks++; in sctp_eat_data()
6271 if (sid >= asoc->c.sinit_max_instreams) { in sctp_eat_data()
6275 err = sctp_make_op_error(asoc, chunk, SCTP_ERROR_INV_STRM, in sctp_eat_data()
6293 if (ordered && SSN_lt(ssn, sctp_ssn_peek(&asoc->ssnmap->in, sid))) { in sctp_eat_data()