49 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
72 #define DO_LOOKUP(_max, _type, _table) \
74 const sctp_sm_table_entry_t *rtn; \
76 if ((event_subtype._type > (_max))) { \
77 pr_warn("table %p possible attack: event %d exceeds max %d\n", \
78 _table, event_subtype._type, _max); \
81 rtn = &_table[event_subtype._type][(int)state]; \
93 return sctp_chunk_event_lookup(net, event_subtype.
chunk, state);
102 primitive_event_table);
109 #define TYPE_SCTP_FUNC(func) {.fn = func, .name = #func}
111 #define TYPE_SCTP_DATA { \
113 TYPE_SCTP_FUNC(sctp_sf_ootb), \
115 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
117 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
119 TYPE_SCTP_FUNC(sctp_sf_eat_data_6_2), \
121 TYPE_SCTP_FUNC(sctp_sf_eat_data_6_2), \
123 TYPE_SCTP_FUNC(sctp_sf_eat_data_fast_4_4), \
125 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
127 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
130 #define TYPE_SCTP_INIT { \
132 TYPE_SCTP_FUNC(sctp_sf_do_5_1B_init), \
134 TYPE_SCTP_FUNC(sctp_sf_do_5_2_1_siminit), \
136 TYPE_SCTP_FUNC(sctp_sf_do_5_2_1_siminit), \
138 TYPE_SCTP_FUNC(sctp_sf_do_5_2_2_dupinit), \
140 TYPE_SCTP_FUNC(sctp_sf_do_5_2_2_dupinit), \
142 TYPE_SCTP_FUNC(sctp_sf_do_5_2_2_dupinit), \
144 TYPE_SCTP_FUNC(sctp_sf_do_5_2_2_dupinit), \
146 TYPE_SCTP_FUNC(sctp_sf_do_9_2_reshutack), \
149 #define TYPE_SCTP_INIT_ACK { \
151 TYPE_SCTP_FUNC(sctp_sf_do_5_2_3_initack), \
153 TYPE_SCTP_FUNC(sctp_sf_do_5_1C_ack), \
155 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
157 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
159 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
161 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
163 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
165 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
168 #define TYPE_SCTP_SACK { \
170 TYPE_SCTP_FUNC(sctp_sf_ootb), \
172 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
174 TYPE_SCTP_FUNC(sctp_sf_eat_sack_6_2), \
176 TYPE_SCTP_FUNC(sctp_sf_eat_sack_6_2), \
178 TYPE_SCTP_FUNC(sctp_sf_eat_sack_6_2), \
180 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
182 TYPE_SCTP_FUNC(sctp_sf_eat_sack_6_2), \
184 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
187 #define TYPE_SCTP_HEARTBEAT { \
189 TYPE_SCTP_FUNC(sctp_sf_ootb), \
191 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
193 TYPE_SCTP_FUNC(sctp_sf_beat_8_3), \
195 TYPE_SCTP_FUNC(sctp_sf_beat_8_3), \
197 TYPE_SCTP_FUNC(sctp_sf_beat_8_3), \
199 TYPE_SCTP_FUNC(sctp_sf_beat_8_3), \
201 TYPE_SCTP_FUNC(sctp_sf_beat_8_3), \
204 TYPE_SCTP_FUNC(sctp_sf_beat_8_3), \
207 #define TYPE_SCTP_HEARTBEAT_ACK { \
209 TYPE_SCTP_FUNC(sctp_sf_ootb), \
211 TYPE_SCTP_FUNC(sctp_sf_violation), \
213 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
215 TYPE_SCTP_FUNC(sctp_sf_backbeat_8_3), \
217 TYPE_SCTP_FUNC(sctp_sf_backbeat_8_3), \
219 TYPE_SCTP_FUNC(sctp_sf_backbeat_8_3), \
221 TYPE_SCTP_FUNC(sctp_sf_backbeat_8_3), \
223 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
226 #define TYPE_SCTP_ABORT { \
228 TYPE_SCTP_FUNC(sctp_sf_pdiscard), \
230 TYPE_SCTP_FUNC(sctp_sf_cookie_wait_abort), \
232 TYPE_SCTP_FUNC(sctp_sf_cookie_echoed_abort), \
234 TYPE_SCTP_FUNC(sctp_sf_do_9_1_abort), \
236 TYPE_SCTP_FUNC(sctp_sf_shutdown_pending_abort), \
238 TYPE_SCTP_FUNC(sctp_sf_shutdown_sent_abort), \
240 TYPE_SCTP_FUNC(sctp_sf_do_9_1_abort), \
242 TYPE_SCTP_FUNC(sctp_sf_shutdown_ack_sent_abort), \
245 #define TYPE_SCTP_SHUTDOWN { \
247 TYPE_SCTP_FUNC(sctp_sf_ootb), \
249 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
251 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
253 TYPE_SCTP_FUNC(sctp_sf_do_9_2_shutdown), \
255 TYPE_SCTP_FUNC(sctp_sf_do_9_2_shutdown), \
257 TYPE_SCTP_FUNC(sctp_sf_do_9_2_shutdown_ack), \
259 TYPE_SCTP_FUNC(sctp_sf_do_9_2_shut_ctsn), \
261 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
264 #define TYPE_SCTP_SHUTDOWN_ACK { \
266 TYPE_SCTP_FUNC(sctp_sf_ootb), \
268 TYPE_SCTP_FUNC(sctp_sf_do_8_5_1_E_sa), \
270 TYPE_SCTP_FUNC(sctp_sf_do_8_5_1_E_sa), \
272 TYPE_SCTP_FUNC(sctp_sf_violation), \
274 TYPE_SCTP_FUNC(sctp_sf_violation), \
276 TYPE_SCTP_FUNC(sctp_sf_do_9_2_final), \
278 TYPE_SCTP_FUNC(sctp_sf_violation), \
280 TYPE_SCTP_FUNC(sctp_sf_do_9_2_final), \
283 #define TYPE_SCTP_ERROR { \
285 TYPE_SCTP_FUNC(sctp_sf_ootb), \
287 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
289 TYPE_SCTP_FUNC(sctp_sf_cookie_echoed_err), \
291 TYPE_SCTP_FUNC(sctp_sf_operr_notify), \
293 TYPE_SCTP_FUNC(sctp_sf_operr_notify), \
295 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
297 TYPE_SCTP_FUNC(sctp_sf_operr_notify), \
299 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
302 #define TYPE_SCTP_COOKIE_ECHO { \
304 TYPE_SCTP_FUNC(sctp_sf_do_5_1D_ce), \
306 TYPE_SCTP_FUNC(sctp_sf_do_5_2_4_dupcook), \
308 TYPE_SCTP_FUNC(sctp_sf_do_5_2_4_dupcook), \
310 TYPE_SCTP_FUNC(sctp_sf_do_5_2_4_dupcook), \
312 TYPE_SCTP_FUNC(sctp_sf_do_5_2_4_dupcook), \
314 TYPE_SCTP_FUNC(sctp_sf_do_5_2_4_dupcook), \
316 TYPE_SCTP_FUNC(sctp_sf_do_5_2_4_dupcook), \
318 TYPE_SCTP_FUNC(sctp_sf_do_5_2_4_dupcook), \
321 #define TYPE_SCTP_COOKIE_ACK { \
323 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
325 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
327 TYPE_SCTP_FUNC(sctp_sf_do_5_1E_ca), \
329 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
331 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
333 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
335 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
337 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
340 #define TYPE_SCTP_ECN_ECNE { \
342 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
344 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
346 TYPE_SCTP_FUNC(sctp_sf_do_ecne), \
348 TYPE_SCTP_FUNC(sctp_sf_do_ecne), \
350 TYPE_SCTP_FUNC(sctp_sf_do_ecne), \
352 TYPE_SCTP_FUNC(sctp_sf_do_ecne), \
354 TYPE_SCTP_FUNC(sctp_sf_do_ecne), \
356 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
359 #define TYPE_SCTP_ECN_CWR { \
361 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
363 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
365 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
367 TYPE_SCTP_FUNC(sctp_sf_do_ecn_cwr), \
369 TYPE_SCTP_FUNC(sctp_sf_do_ecn_cwr), \
371 TYPE_SCTP_FUNC(sctp_sf_do_ecn_cwr), \
373 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
375 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
378 #define TYPE_SCTP_SHUTDOWN_COMPLETE { \
380 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
382 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
384 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
386 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
388 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
390 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
392 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
394 TYPE_SCTP_FUNC(sctp_sf_do_4_C), \
420 #define TYPE_SCTP_ASCONF { \
422 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
424 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
426 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
428 TYPE_SCTP_FUNC(sctp_sf_do_asconf), \
430 TYPE_SCTP_FUNC(sctp_sf_do_asconf), \
432 TYPE_SCTP_FUNC(sctp_sf_do_asconf), \
434 TYPE_SCTP_FUNC(sctp_sf_do_asconf), \
436 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
439 #define TYPE_SCTP_ASCONF_ACK { \
441 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
443 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
445 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
447 TYPE_SCTP_FUNC(sctp_sf_do_asconf_ack), \
449 TYPE_SCTP_FUNC(sctp_sf_do_asconf_ack), \
451 TYPE_SCTP_FUNC(sctp_sf_do_asconf_ack), \
453 TYPE_SCTP_FUNC(sctp_sf_do_asconf_ack), \
455 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
466 #define TYPE_SCTP_FWD_TSN { \
468 TYPE_SCTP_FUNC(sctp_sf_ootb), \
470 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
472 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
474 TYPE_SCTP_FUNC(sctp_sf_eat_fwd_tsn), \
476 TYPE_SCTP_FUNC(sctp_sf_eat_fwd_tsn), \
478 TYPE_SCTP_FUNC(sctp_sf_eat_fwd_tsn_fast), \
480 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
482 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
492 #define TYPE_SCTP_AUTH { \
494 TYPE_SCTP_FUNC(sctp_sf_ootb), \
496 TYPE_SCTP_FUNC(sctp_sf_discard_chunk), \
498 TYPE_SCTP_FUNC(sctp_sf_eat_auth), \
500 TYPE_SCTP_FUNC(sctp_sf_eat_auth), \
502 TYPE_SCTP_FUNC(sctp_sf_eat_auth), \
504 TYPE_SCTP_FUNC(sctp_sf_eat_auth), \
506 TYPE_SCTP_FUNC(sctp_sf_eat_auth), \
508 TYPE_SCTP_FUNC(sctp_sf_eat_auth), \
539 #define TYPE_SCTP_PRIMITIVE_ASSOCIATE { \
541 TYPE_SCTP_FUNC(sctp_sf_do_prm_asoc), \
543 TYPE_SCTP_FUNC(sctp_sf_not_impl), \
545 TYPE_SCTP_FUNC(sctp_sf_not_impl), \
547 TYPE_SCTP_FUNC(sctp_sf_not_impl), \
549 TYPE_SCTP_FUNC(sctp_sf_not_impl), \
551 TYPE_SCTP_FUNC(sctp_sf_not_impl), \
553 TYPE_SCTP_FUNC(sctp_sf_not_impl), \
555 TYPE_SCTP_FUNC(sctp_sf_not_impl), \
558 #define TYPE_SCTP_PRIMITIVE_SHUTDOWN { \
560 TYPE_SCTP_FUNC(sctp_sf_error_closed), \
562 TYPE_SCTP_FUNC(sctp_sf_cookie_wait_prm_shutdown), \
564 TYPE_SCTP_FUNC(sctp_sf_cookie_echoed_prm_shutdown),\
566 TYPE_SCTP_FUNC(sctp_sf_do_9_2_prm_shutdown), \
568 TYPE_SCTP_FUNC(sctp_sf_ignore_primitive), \
570 TYPE_SCTP_FUNC(sctp_sf_ignore_primitive), \
572 TYPE_SCTP_FUNC(sctp_sf_ignore_primitive), \
574 TYPE_SCTP_FUNC(sctp_sf_ignore_primitive), \
577 #define TYPE_SCTP_PRIMITIVE_ABORT { \
579 TYPE_SCTP_FUNC(sctp_sf_error_closed), \
581 TYPE_SCTP_FUNC(sctp_sf_cookie_wait_prm_abort), \
583 TYPE_SCTP_FUNC(sctp_sf_cookie_echoed_prm_abort), \
585 TYPE_SCTP_FUNC(sctp_sf_do_9_1_prm_abort), \
587 TYPE_SCTP_FUNC(sctp_sf_shutdown_pending_prm_abort), \
589 TYPE_SCTP_FUNC(sctp_sf_shutdown_sent_prm_abort), \
591 TYPE_SCTP_FUNC(sctp_sf_do_9_1_prm_abort), \
593 TYPE_SCTP_FUNC(sctp_sf_shutdown_ack_sent_prm_abort), \
596 #define TYPE_SCTP_PRIMITIVE_SEND { \
598 TYPE_SCTP_FUNC(sctp_sf_error_closed), \
600 TYPE_SCTP_FUNC(sctp_sf_do_prm_send), \
602 TYPE_SCTP_FUNC(sctp_sf_do_prm_send), \
604 TYPE_SCTP_FUNC(sctp_sf_do_prm_send), \
606 TYPE_SCTP_FUNC(sctp_sf_error_shutdown), \
608 TYPE_SCTP_FUNC(sctp_sf_error_shutdown), \
610 TYPE_SCTP_FUNC(sctp_sf_error_shutdown), \
612 TYPE_SCTP_FUNC(sctp_sf_error_shutdown), \
615 #define TYPE_SCTP_PRIMITIVE_REQUESTHEARTBEAT { \
617 TYPE_SCTP_FUNC(sctp_sf_error_closed), \
619 TYPE_SCTP_FUNC(sctp_sf_do_prm_requestheartbeat), \
621 TYPE_SCTP_FUNC(sctp_sf_do_prm_requestheartbeat), \
623 TYPE_SCTP_FUNC(sctp_sf_do_prm_requestheartbeat), \
625 TYPE_SCTP_FUNC(sctp_sf_do_prm_requestheartbeat), \
627 TYPE_SCTP_FUNC(sctp_sf_do_prm_requestheartbeat), \
629 TYPE_SCTP_FUNC(sctp_sf_do_prm_requestheartbeat), \
631 TYPE_SCTP_FUNC(sctp_sf_do_prm_requestheartbeat), \
634 #define TYPE_SCTP_PRIMITIVE_ASCONF { \
636 TYPE_SCTP_FUNC(sctp_sf_error_closed), \
638 TYPE_SCTP_FUNC(sctp_sf_error_closed), \
640 TYPE_SCTP_FUNC(sctp_sf_error_closed), \
642 TYPE_SCTP_FUNC(sctp_sf_do_prm_asconf), \
644 TYPE_SCTP_FUNC(sctp_sf_do_prm_asconf), \
646 TYPE_SCTP_FUNC(sctp_sf_do_prm_asconf), \
648 TYPE_SCTP_FUNC(sctp_sf_do_prm_asconf), \
650 TYPE_SCTP_FUNC(sctp_sf_error_shutdown), \
665 #define TYPE_SCTP_OTHER_NO_PENDING_TSN { \
667 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
669 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
671 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
673 TYPE_SCTP_FUNC(sctp_sf_do_no_pending_tsn), \
675 TYPE_SCTP_FUNC(sctp_sf_do_9_2_start_shutdown), \
677 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
679 TYPE_SCTP_FUNC(sctp_sf_do_9_2_shutdown_ack), \
681 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
684 #define TYPE_SCTP_OTHER_ICMP_PROTO_UNREACH { \
686 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
688 TYPE_SCTP_FUNC(sctp_sf_cookie_wait_icmp_abort), \
690 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
692 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
694 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
696 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
698 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
700 TYPE_SCTP_FUNC(sctp_sf_ignore_other), \
708 #define TYPE_SCTP_EVENT_TIMEOUT_NONE { \
710 TYPE_SCTP_FUNC(sctp_sf_bug), \
712 TYPE_SCTP_FUNC(sctp_sf_bug), \
714 TYPE_SCTP_FUNC(sctp_sf_bug), \
716 TYPE_SCTP_FUNC(sctp_sf_bug), \
718 TYPE_SCTP_FUNC(sctp_sf_bug), \
720 TYPE_SCTP_FUNC(sctp_sf_bug), \
722 TYPE_SCTP_FUNC(sctp_sf_bug), \
724 TYPE_SCTP_FUNC(sctp_sf_bug), \
727 #define TYPE_SCTP_EVENT_TIMEOUT_T1_COOKIE { \
729 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
731 TYPE_SCTP_FUNC(sctp_sf_bug), \
733 TYPE_SCTP_FUNC(sctp_sf_t1_cookie_timer_expire), \
735 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
737 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
739 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
741 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
743 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
746 #define TYPE_SCTP_EVENT_TIMEOUT_T1_INIT { \
748 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
750 TYPE_SCTP_FUNC(sctp_sf_t1_init_timer_expire), \
752 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
754 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
756 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
758 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
760 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
762 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
765 #define TYPE_SCTP_EVENT_TIMEOUT_T2_SHUTDOWN { \
767 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
769 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
771 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
773 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
775 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
777 TYPE_SCTP_FUNC(sctp_sf_t2_timer_expire), \
779 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
781 TYPE_SCTP_FUNC(sctp_sf_t2_timer_expire), \
784 #define TYPE_SCTP_EVENT_TIMEOUT_T3_RTX { \
786 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
788 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
790 TYPE_SCTP_FUNC(sctp_sf_do_6_3_3_rtx), \
792 TYPE_SCTP_FUNC(sctp_sf_do_6_3_3_rtx), \
794 TYPE_SCTP_FUNC(sctp_sf_do_6_3_3_rtx), \
796 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
798 TYPE_SCTP_FUNC(sctp_sf_do_6_3_3_rtx), \
800 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
803 #define TYPE_SCTP_EVENT_TIMEOUT_T4_RTO { \
805 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
807 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
809 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
811 TYPE_SCTP_FUNC(sctp_sf_t4_timer_expire), \
813 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
815 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
817 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
819 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
822 #define TYPE_SCTP_EVENT_TIMEOUT_T5_SHUTDOWN_GUARD { \
824 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
826 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
828 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
830 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
832 TYPE_SCTP_FUNC(sctp_sf_t5_timer_expire), \
834 TYPE_SCTP_FUNC(sctp_sf_t5_timer_expire), \
836 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
838 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
841 #define TYPE_SCTP_EVENT_TIMEOUT_HEARTBEAT { \
843 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
845 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
847 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
849 TYPE_SCTP_FUNC(sctp_sf_sendbeat_8_3), \
851 TYPE_SCTP_FUNC(sctp_sf_sendbeat_8_3), \
853 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
855 TYPE_SCTP_FUNC(sctp_sf_sendbeat_8_3), \
857 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
860 #define TYPE_SCTP_EVENT_TIMEOUT_SACK { \
862 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
864 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
866 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
868 TYPE_SCTP_FUNC(sctp_sf_do_6_2_sack), \
870 TYPE_SCTP_FUNC(sctp_sf_do_6_2_sack), \
872 TYPE_SCTP_FUNC(sctp_sf_do_6_2_sack), \
874 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
876 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
879 #define TYPE_SCTP_EVENT_TIMEOUT_AUTOCLOSE { \
881 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
883 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
885 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
887 TYPE_SCTP_FUNC(sctp_sf_autoclose_timer_expire), \
889 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
891 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
893 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
895 TYPE_SCTP_FUNC(sctp_sf_timer_ignore), \
919 return &chunk_event_table[
cid][
state];
921 if (net->sctp.prsctp_enable) {
923 return &prsctp_chunk_event_table[0][
state];
926 if (net->sctp.addip_enable) {
928 return &addip_chunk_event_table[0][
state];
931 return &addip_chunk_event_table[1][
state];
934 if (net->sctp.auth_enable) {
936 return &auth_chunk_event_table[0][
state];
939 return &chunk_event_table_unknown[
state];