FreeBSD kernel IPv4 code
|
#include <sys/cdefs.h>
Go to the source code of this file.
Macros | |
#define | _NETINET_SCTP_INDATA_H_ |
#define | sctp_build_readq_entry_mac(_ctl, in_it, context, net, tsn, ppid, sid, flags, dm, tfsn, mid) |
Functions | |
__FBSDID ("$FreeBSD$") | |
struct sctp_queued_to_read * | sctp_build_readq_entry (struct sctp_tcb *stcb, struct sctp_nets *net, uint32_t tsn, uint32_t ppid, uint32_t context, uint16_t sid, uint32_t mid, uint8_t flags, struct mbuf *dm) |
struct mbuf * | sctp_build_ctl_nchunk (struct sctp_inpcb *inp, struct sctp_sndrcvinfo *sinfo) |
void | sctp_set_rwnd (struct sctp_tcb *, struct sctp_association *) |
uint32_t | sctp_calc_rwnd (struct sctp_tcb *stcb, struct sctp_association *asoc) |
void | sctp_express_handle_sack (struct sctp_tcb *stcb, uint32_t cumack, uint32_t rwnd, int *abort_now, int ecne_seen) |
void | sctp_handle_sack (struct mbuf *m, int offset_seg, int offset_dup, struct sctp_tcb *stcb, uint16_t num_seg, uint16_t num_nr_seg, uint16_t num_dup, int *abort_now, uint8_t flags, uint32_t cum_ack, uint32_t rwnd, int ecne_seen) |
void | sctp_handle_forward_tsn (struct sctp_tcb *, struct sctp_forward_tsn_chunk *, int *, struct mbuf *, int) |
struct sctp_tmit_chunk * | sctp_try_advance_peer_ack_point (struct sctp_tcb *, struct sctp_association *) |
void | sctp_service_queues (struct sctp_tcb *, struct sctp_association *) |
void | sctp_update_acked (struct sctp_tcb *, struct sctp_shutdown_chunk *, int *) |
int | sctp_process_data (struct mbuf **, int, int *, int, struct sctp_inpcb *, struct sctp_tcb *, struct sctp_nets *, uint32_t *) |
void | sctp_slide_mapping_arrays (struct sctp_tcb *stcb) |
void | sctp_sack_check (struct sctp_tcb *, int) |
#define _NETINET_SCTP_INDATA_H_ |
Definition at line 39 of file sctp_indata.h.
#define sctp_build_readq_entry_mac | ( | _ctl, | |
in_it, | |||
context, | |||
net, | |||
tsn, | |||
ppid, | |||
sid, | |||
flags, | |||
dm, | |||
tfsn, | |||
mid | |||
) |
Definition at line 51 of file sctp_indata.h.
__FBSDID | ( | "$FreeBSD$" | ) |
struct mbuf * sctp_build_ctl_nchunk | ( | struct sctp_inpcb * | inp, |
struct sctp_sndrcvinfo * | sinfo | ||
) |
Definition at line 172 of file sctp_indata.c.
References IPPROTO_SCTP, sctp_nxtinfo::nxt_assoc_id, sctp_nxtinfo::nxt_flags, sctp_nxtinfo::nxt_length, sctp_nxtinfo::nxt_ppid, sctp_nxtinfo::nxt_sid, sctp_rcvinfo::rcv_assoc_id, sctp_rcvinfo::rcv_context, sctp_rcvinfo::rcv_cumtsn, sctp_rcvinfo::rcv_flags, sctp_rcvinfo::rcv_ppid, sctp_rcvinfo::rcv_sid, sctp_rcvinfo::rcv_ssn, sctp_rcvinfo::rcv_tsn, SCTP_BUF_LEN, SCTP_COMPLETE, SCTP_EXTRCV, sctp_get_mbuf_for_msg(), sctp_is_feature_off, sctp_is_feature_on, SCTP_NEXT_MSG_AVAIL, SCTP_NEXT_MSG_IS_NOTIFICATION, SCTP_NEXT_MSG_IS_UNORDERED, SCTP_NEXT_MSG_ISCOMPLETE, SCTP_NOTIFICATION, SCTP_NXTINFO, SCTP_PCB_FLAGS_EXT_RCVINFO, SCTP_PCB_FLAGS_RECVDATAIOEVNT, SCTP_PCB_FLAGS_RECVNXTINFO, SCTP_PCB_FLAGS_RECVRCVINFO, SCTP_RCVINFO, SCTP_SNDRCV, SCTP_UNORDERED, sctp_extrcvinfo::serinfo_next_aid, sctp_extrcvinfo::serinfo_next_flags, sctp_extrcvinfo::serinfo_next_length, sctp_extrcvinfo::serinfo_next_ppid, sctp_extrcvinfo::serinfo_next_stream, sctp_sndrcvinfo::sinfo_assoc_id, sctp_sndrcvinfo::sinfo_context, sctp_sndrcvinfo::sinfo_cumtsn, sctp_sndrcvinfo::sinfo_flags, sctp_sndrcvinfo::sinfo_ppid, sctp_sndrcvinfo::sinfo_ssn, sctp_sndrcvinfo::sinfo_stream, and sctp_sndrcvinfo::sinfo_tsn.
Referenced by sctp_soreceive().
struct sctp_queued_to_read * sctp_build_readq_entry | ( | struct sctp_tcb * | stcb, |
struct sctp_nets * | net, | ||
uint32_t | tsn, | ||
uint32_t | ppid, | ||
uint32_t | context, | ||
uint16_t | sid, | ||
uint32_t | mid, | ||
uint8_t | flags, | ||
struct mbuf * | dm | ||
) |
Definition at line 135 of file sctp_indata.c.
References sctp_tcb::asoc, sctp_queued_to_read::data, sctp_queued_to_read::do_not_ref_stcb, sctp_queued_to_read::fsn_included, sctp_queued_to_read::mid, sctp_queued_to_read::port_from, sctp_queued_to_read::reasm, sctp_nets::ref_count, sctp_tcb::rport, sctp_alloc_a_readq, sctp_get_associd, SCTP_STATE_ABOUT_TO_BE_FREED, sctp_queued_to_read::sinfo_assoc_id, sctp_queued_to_read::sinfo_context, sctp_queued_to_read::sinfo_cumtsn, sctp_queued_to_read::sinfo_flags, sctp_queued_to_read::sinfo_ppid, sctp_queued_to_read::sinfo_stream, sctp_queued_to_read::sinfo_tsn, sctp_association::state, sctp_queued_to_read::stcb, sctp_queued_to_read::top_fsn, and sctp_queued_to_read::whoFrom.
Referenced by sctp_notify_adaptation_layer(), sctp_notify_assoc_change(), sctp_notify_authentication(), sctp_notify_partial_delivery_indication(), sctp_notify_peer_addr_change(), sctp_notify_remote_error(), sctp_notify_send_failed(), sctp_notify_send_failed2(), sctp_notify_sender_dry_event(), sctp_notify_shutdown_event(), sctp_notify_stream_reset(), sctp_notify_stream_reset_add(), and sctp_notify_stream_reset_tsn().
uint32_t sctp_calc_rwnd | ( | struct sctp_tcb * | stcb, |
struct sctp_association * | asoc | ||
) |
Definition at line 79 of file sctp_indata.c.
References sctp_tcb::asoc, sctp_association::cnt_on_all_streams, sctp_association::cnt_on_reasm_queue, sctp_association::my_rwnd_control_len, sctp_association::sb_cc, SCTP_MINIMAL_RWND, SCTP_SB_LIMIT_RCV, sctp_sbspace, sctp_sbspace_sub, sctp_tcb::sctp_socket, sctp_association::size_on_all_streams, and sctp_association::size_on_reasm_queue.
Referenced by sctp_set_rwnd(), and sctp_user_rcvd().
void sctp_express_handle_sack | ( | struct sctp_tcb * | stcb, |
uint32_t | cumack, | ||
uint32_t | rwnd, | ||
int * | abort_now, | ||
int | ecne_seen | ||
) |
Definition at line 3924 of file sctp_indata.c.
References sctp_association::advanced_peer_ack_point, sctp_association::alternate, sctp_tcb::asoc, sctp_tmit_chunk::asoc, sctp_tmit_chunk::book_size, sctp_association::cc_functions, sctp_data_chunkrec::chunk_was_revoked, sctp_stream_out::chunks_on_queues, sctp_nets::cwnd, sctp_nets::cwr_window_tsn, sctp_tmit_chunk::data, sctp_nets::dest_state, sctp_tmit_chunk::do_rtt, sctp_nets::error_count, sctp_nets::find_pseudo_cumack, sctp_nets::find_rtx_pseudo_cumack, sctp_nets::flight_size, sctp_data_chunkrec::fwd_tsn_cnt, sctp_inpcb::last_abort_code, sctp_association::last_acked_seq, sctp_nets::lastsa, sctp_nets::lastsv, sctp_association::maxrto, sctp_association::minrto, sctp_nets::net_ack, sctp_nets::net_ack2, sctp_association::nets, sctp_nets::new_pseudo_cumack, sctp_stream_out::outqueue, sctp_association::overall_error_count, sctp_nets::partial_bytes_acked, sctp_association::peers_rwnd, sctp_association::pr_sctp_cnt, sctp_nets::prev_cwnd, sctp_association::primary_destination, sctp_association::prsctp_supported, sctp_tmit_chunk::rec, sctp_nets::RTO, sctp_nets::rto_needed, sctp_nets::rxt_timer, sctp_abort_an_association(), SCTP_ADD_SUBSTATE, SCTP_ADDR_PF, SCTP_ADDR_REACHABLE, SCTP_BASE_SYSCTL, sctp_calculate_rto(), SCTP_CAUSE_PROTOCOL_VIOLATION, SCTP_CAUSE_USER_INITIATED_ABT, SCTP_CWND_LOG_FROM_SACK, SCTP_CWND_LOGGING_ENABLE, sctp_cc_functions::sctp_cwnd_prepare_net_for_sack, sctp_cc_functions::sctp_cwnd_update_after_sack, sctp_cc_functions::sctp_cwnd_update_exit_pf, sctp_cc_functions::sctp_cwnd_update_tsn_acknowledged, SCTP_DATAGRAM_ACKED, SCTP_DATAGRAM_NR_ACKED, SCTP_DATAGRAM_RESEND, SCTP_DATAGRAM_UNSENT, SCTP_DIAG_INFO_LEN, sctp_inpcb::sctp_ep, sctp_tcb::sctp_ep, SCTP_FLIGHT_LOG_DOWN_CA, SCTP_FLIGHT_LOGGING_ENABLE, sctp_flight_size_decrease, sctp_flight_size_increase, sctp_free_a_chunk, sctp_free_bufspace, sctp_free_remote_addr, SCTP_FROM_SCTP_INDATA, sctp_fs_audit(), sctp_generate_cause(), SCTP_GET_STATE, SCTP_LOC_25, SCTP_LOC_26, SCTP_LOC_27, SCTP_LOC_28, sctp_log_cwnd(), SCTP_LOG_FREE_SENT, sctp_log_sack(), SCTP_LOG_SACK_ARRIVALS_ENABLE, sctp_m_freem, sctp_misc_ints(), SCTP_NOTIFY_INTERFACE_UP, SCTP_NOWAKE_FROM_SACK, SCTP_OS_TIMER_PENDING, SCTP_PRINTF, SCTP_RTT_FROM_DATA, SCTP_RTT_SHIFT, SCTP_SACK_LOG_EXPRESS, SCTP_SACK_LOGGING_ENABLE, SCTP_SACK_RWND_LOGGING_ENABLE, SCTP_SACK_RWND_UPDATE, sctp_sbspace_sub, sctp_send_shutdown(), sctp_send_shutdown_ack(), SCTP_SET_STATE, SCTP_SNPRINTF, SCTP_SO_NOT_LOCKED, sctp_tcb::sctp_socket, sctp_sowwakeup_locked, sctp_ss_functions::sctp_ss_is_user_msgs_incomplete, SCTP_STAT_DECR_GAUGE32, SCTP_STATE_OPEN, SCTP_STATE_PARTIAL_MSG_LEFT, SCTP_STATE_SHUTDOWN_ACK_SENT, SCTP_STATE_SHUTDOWN_PENDING, SCTP_STATE_SHUTDOWN_RECEIVED, SCTP_STATE_SHUTDOWN_SENT, sctp_stop_timers_for_shutdown(), SCTP_STREAM_RESET_PENDING, sctp_pcb::sctp_sws_sender, SCTP_TCB_LOCK_ASSERT, SCTP_THRESHOLD_CLEAR, SCTP_THRESHOLD_LOGGING, sctp_timer_start(), sctp_timer_stop(), SCTP_TIMER_TYPE_HEARTBEAT, SCTP_TIMER_TYPE_SEND, SCTP_TIMER_TYPE_SHUTDOWN, SCTP_TIMER_TYPE_SHUTDOWNACK, SCTP_TIMER_TYPE_SHUTDOWNGUARD, sctp_total_flight_decrease, sctp_total_flight_increase, sctp_try_advance_peer_ack_point(), SCTP_TSN_GE, SCTP_TSN_GT, SCTP_TSN_LOG_SIZE, sctp_ucount_decr, sctp_ucount_incr, sctp_ulp_notify(), SCTP_WAKE_LOGGING_ENABLE, SCTP_WAKESND_FROM_SACK, sctp_wakeup_log(), sctp_window_probe_recovery(), send_forward_tsn(), sctp_association::send_queue, sctp_tmit_chunk::send_size, sctp_association::sending_seq, sctp_tmit_chunk::sent, sctp_association::sent_queue, sctp_association::sent_queue_cnt, sctp_association::sent_queue_retran_cnt, sctp_tmit_chunk::sent_rcv_time, sctp_data_chunkrec::sid, sctp_tmit_chunk::snd_count, sctp_association::ss_functions, sctp_stream_out::state, sctp_association::state, sctp_association::stream_queue_cnt, sctp_association::strmout, sctp_association::this_sack_highest_gap, sctp_timer::timer, sctp_association::total_flight, sctp_association::total_flight_count, sctp_association::total_output_queue_size, sctp_association::trigger_reset, sctp_data_chunkrec::tsn, sctp_tmit_chunk::whoTo, sctp_nets::will_exit_fast_recovery, sctp_nets::window_probe, and sctp_tmit_chunk::window_probe.
Referenced by sctp_process_control(), and sctp_update_acked().
void sctp_handle_forward_tsn | ( | struct sctp_tcb * | stcb, |
struct sctp_forward_tsn_chunk * | fwd, | ||
int * | abort_flag, | ||
struct mbuf * | m, | ||
int | offset | ||
) |
Definition at line 5476 of file sctp_indata.c.
References sctp_tcb::asoc, sctp_forward_tsn_chunk::ch, sctp_chunkhdr::chunk_length, sctp_association::cnt_on_all_streams, sctp_association::control_pdapi, sctp_association::cumulative_tsn, sctp_queued_to_read::end_added, sctp_strseq_mid::flags, sctp_association::fragmented_delivery_inprogress, sctp_association::highest_tsn_inside_map, sctp_association::highest_tsn_inside_nr_map, sctp_association::idata_supported, sctp_stream_in::inqueue, sctp_inpcb::last_abort_code, sctp_stream_in::last_mid_delivered, sctp_queued_to_read::length, sctp_association::mapping_array, sctp_association::mapping_array_base_tsn, sctp_association::mapping_array_size, sctp_strseq_mid::mid, sctp_queued_to_read::mid, sctp_forward_tsn_chunk::new_cumulative_tsn, next, sctp_association::nr_mapping_array, sctp_queued_to_read::on_strm_q, sctp_queued_to_read::pdapi_aborted, PR_SCTP_UNORDERED_FLAG, sctp_inpcb::read_queue, sctp_abort_an_association(), SCTP_BASE_SYSCTL, SCTP_CALC_TSN_TO_GAP, SCTP_CAUSE_PROTOCOL_VIOLATION, SCTP_DEBUG_INDATA1, SCTP_DIAG_INFO_LEN, sctp_tcb::sctp_ep, sctp_flush_reassm_for_str_seq(), SCTP_FROM_SCTP_INDATA, sctp_generate_cause(), SCTP_INP_READ_LOCK, SCTP_INP_READ_UNLOCK, SCTP_IS_TSN_PRESENT, sctp_kick_prsctp_reorder_queue(), SCTP_LOC_37, sctp_log_map(), sctp_m_getptr(), SCTP_MAP_LOGGING_ENABLE, SCTP_MAP_SLIDE_RESULT, SCTP_MID_EQ, SCTP_MID_GE, SCTP_MID_GT, SCTP_NOTIFY_PARTIAL_DELVIERY_INDICATION, SCTP_ON_ORDERED, SCTP_ON_UNORDERED, SCTP_PARTIAL_DELIVERY_ABORTED, sctp_sbspace, SCTP_SET_TSN_PRESENT, sctp_slide_mapping_arrays(), SCTP_SNPRINTF, SCTP_SO_NOT_LOCKED, sctp_tcb::sctp_socket, SCTP_STAT_INCR, SCTP_TCB_LOCK_ASSERT, SCTP_TSN_GE, SCTP_TSN_GT, sctp_ucount_decr, sctp_ulp_notify(), SCTPDBG, sctp_strseq::sid, sctp_strseq_mid::sid, sctp_queued_to_read::sinfo_stream, sctp_association::size_on_all_streams, sctp_strseq::ssn, sctp_association::ssn_of_pdapi, sctp_queued_to_read::stcb, sctp_association::str_of_pdapi, sctp_association::streamincnt, sctp_association::strmin, and sctp_stream_in::uno_inqueue.
Referenced by sctp_handle_str_reset_request_tsn(), sctp_handle_stream_reset_response(), and sctp_process_control().
void sctp_handle_sack | ( | struct mbuf * | m, |
int | offset_seg, | ||
int | offset_dup, | ||
struct sctp_tcb * | stcb, | ||
uint16_t | num_seg, | ||
uint16_t | num_nr_seg, | ||
uint16_t | num_dup, | ||
int * | abort_now, | ||
uint8_t | flags, | ||
uint32_t | cum_ack, | ||
uint32_t | rwnd, | ||
int | ecne_seen | ||
) |
Definition at line 4401 of file sctp_indata.c.
References sctp_association::advanced_peer_ack_point, sctp_association::alternate, sctp_tcb::asoc, sctp_tmit_chunk::asoc, sctp_tmit_chunk::book_size, sctp_association::cc_functions, sctp_data_chunkrec::chunk_was_revoked, sctp_stream_out::chunks_on_queues, sctp_nets::cwnd, sctp_nets::cwr_window_tsn, sctp_tmit_chunk::data, sctp_nets::dest_state, sctp_tmit_chunk::do_rtt, sctp_nets::error_count, sctp_association::fast_recovery_tsn, sctp_nets::fast_retran_loss_recovery, sctp_association::fast_retran_loss_recovery, sctp_nets::find_pseudo_cumack, sctp_nets::find_rtx_pseudo_cumack, sctp_tmit_chunk::flags, sctp_nets::flight_size, sctp_data_chunkrec::fwd_tsn_cnt, sctp_inpcb::last_abort_code, sctp_association::last_acked_seq, sctp_nets::lastsa, sctp_nets::lastsv, sctp_association::maxrto, sctp_association::minrto, sctp_nets::net_ack, sctp_nets::net_ack2, sctp_association::nets, sctp_nets::new_pseudo_cumack, sctp_stream_out::outqueue, sctp_association::overall_error_count, sctp_nets::partial_bytes_acked, sctp_association::peers_rwnd, PR_SCTP_BUF_ENABLED, sctp_association::pr_sctp_cnt, PR_SCTP_ENABLED, sctp_nets::prev_cwnd, sctp_association::primary_destination, sctp_association::prsctp_supported, sctp_tmit_chunk::rec, sctp_nets::RTO, sctp_nets::rto_needed, sctp_nets::rxt_timer, sctp_association::sat_t3_loss_recovery, sctp_association::sat_t3_recovery_tsn, sctp_nets::saw_newack, sctp_association::saw_sack_with_frags, sctp_association::saw_sack_with_nr_frags, sctp_abort_an_association(), SCTP_ADD_SUBSTATE, SCTP_ADDR_PF, SCTP_ADDR_REACHABLE, SCTP_ADDR_UNCONFIRMED, SCTP_BASE_SYSCTL, sctp_calculate_rto(), SCTP_CAUSE_PROTOCOL_VIOLATION, SCTP_CAUSE_USER_INITIATED_ABT, sctp_check_for_revoked(), sctp_association::sctp_cmt_on_off, SCTP_CWND_LOG_FROM_SACK, SCTP_CWND_LOGGING_ENABLE, sctp_cc_functions::sctp_cwnd_prepare_net_for_sack, sctp_cc_functions::sctp_cwnd_update_after_fr, sctp_cc_functions::sctp_cwnd_update_after_sack, sctp_cc_functions::sctp_cwnd_update_exit_pf, sctp_cc_functions::sctp_cwnd_update_tsn_acknowledged, SCTP_DATAGRAM_ACKED, SCTP_DATAGRAM_NR_ACKED, SCTP_DATAGRAM_RESEND, SCTP_DATAGRAM_SENT, SCTP_DATAGRAM_UNSENT, SCTP_DIAG_INFO_LEN, sctp_inpcb::sctp_ep, sctp_tcb::sctp_ep, SCTP_FLIGHT_LOG_DOWN_CA, SCTP_FLIGHT_LOG_UP_REVOKE, SCTP_FLIGHT_LOGGING_ENABLE, sctp_flight_size_decrease, sctp_flight_size_increase, SCTP_FR_DUPED, SCTP_FR_LOGGING_ENABLE, sctp_free_a_chunk, sctp_free_bufspace, sctp_free_remote_addr, SCTP_FROM_SCTP_INDATA, sctp_fs_audit(), SCTP_FWD_TSN_CHECK, sctp_generate_cause(), SCTP_GET_STATE, sctp_handle_segments(), SCTP_LOC_29, SCTP_LOC_30, SCTP_LOC_31, SCTP_LOC_32, SCTP_LOC_33, SCTP_LOC_34, SCTP_LOC_35, SCTP_LOC_36, sctp_log_cwnd(), sctp_log_fr(), SCTP_LOG_FREE_SENT, SCTP_LOG_NEW_SACK, SCTP_LOG_RWND_ENABLE, sctp_log_rwnd_set(), sctp_log_sack(), SCTP_LOG_SACK_ARRIVALS_ENABLE, SCTP_LOG_TRY_ADVANCE, SCTP_LOG_TSN_ACKED, sctp_m_freem, sctp_m_getptr(), sctp_misc_ints(), SCTP_NOTIFY_INTERFACE_UP, SCTP_NOWAKE_FROM_SACK, SCTP_OS_TIMER_PENDING, SCTP_PRINTF, SCTP_RTT_FROM_DATA, SCTP_RTT_SHIFT, SCTP_SACK_CMT_DAC, SCTP_SACK_LOG_NORMAL, SCTP_SACK_LOGGING_ENABLE, SCTP_SACK_RWND_LOGGING_ENABLE, SCTP_SACK_RWND_UPDATE, sctp_sbspace_sub, sctp_send_shutdown(), sctp_send_shutdown_ack(), SCTP_SET_PEER_RWND_VIA_SACK, SCTP_SET_STATE, SCTP_SNPRINTF, SCTP_SO_NOT_LOCKED, sctp_tcb::sctp_socket, sctp_sowwakeup_locked, sctp_ss_functions::sctp_ss_is_user_msgs_incomplete, SCTP_STAT_DECR_GAUGE32, SCTP_STAT_INCR, SCTP_STATE_OPEN, SCTP_STATE_PARTIAL_MSG_LEFT, SCTP_STATE_SHUTDOWN_ACK_SENT, SCTP_STATE_SHUTDOWN_PENDING, SCTP_STATE_SHUTDOWN_RECEIVED, SCTP_STATE_SHUTDOWN_SENT, sctp_stop_timers_for_shutdown(), SCTP_STREAM_RESET_PENDING, sctp_strike_gap_ack_chunks(), sctp_pcb::sctp_sws_sender, SCTP_TCB_LOCK_ASSERT, SCTP_THRESHOLD_CLEAR, SCTP_THRESHOLD_LOGGING, sctp_timer_start(), sctp_timer_stop(), SCTP_TIMER_TYPE_HEARTBEAT, SCTP_TIMER_TYPE_SEND, SCTP_TIMER_TYPE_SHUTDOWN, SCTP_TIMER_TYPE_SHUTDOWNACK, SCTP_TIMER_TYPE_SHUTDOWNGUARD, sctp_total_flight_decrease, sctp_total_flight_increase, sctp_try_advance_peer_ack_point(), SCTP_TSN_GE, SCTP_TSN_GT, SCTP_TSN_LOG_SIZE, sctp_ucount_decr, sctp_ucount_incr, sctp_ulp_notify(), SCTP_WAKE_LOGGING_ENABLE, SCTP_WAKESND_FROM_SACK, sctp_wakeup_log(), sctp_window_probe_recovery(), send_forward_tsn(), sctp_association::send_queue, sctp_tmit_chunk::send_size, sctp_association::sending_seq, sctp_tmit_chunk::sent, sctp_association::sent_queue, sctp_association::sent_queue_cnt, sctp_association::sent_queue_cnt_removeable, sctp_association::sent_queue_retran_cnt, sctp_tmit_chunk::sent_rcv_time, sctp_data_chunkrec::sid, sctp_tmit_chunk::snd_count, sctp_association::ss_functions, sctp_stream_out::state, sctp_association::state, sctp_association::stream_queue_cnt, sctp_association::strmout, sctp_association::this_sack_highest_gap, sctp_nets::this_sack_highest_newack, sctp_timer::timer, sctp_association::total_flight, sctp_association::total_flight_count, sctp_association::total_output_queue_size, sctp_association::trigger_reset, sctp_data_chunkrec::tsn, sctp_tmit_chunk::whoTo, sctp_nets::will_exit_fast_recovery, sctp_nets::window_probe, and sctp_tmit_chunk::window_probe.
Referenced by sctp_process_control().
int sctp_process_data | ( | struct mbuf ** | mm, |
int | iphlen, | ||
int * | offset, | ||
int | length, | ||
struct sctp_inpcb * | inp, | ||
struct sctp_tcb * | stcb, | ||
struct sctp_nets * | net, | ||
uint32_t * | high_tsn | ||
) |
Definition at line 2649 of file sctp_indata.c.
References sctp_tcb::asoc, sctp_chunkhdr::chunk_length, sctp_chunkhdr::chunk_type, sctp_gen_error_cause::code, sctp_association::cumulative_tsn, sctp_association::data_pkts_seen, sctp_association::highest_tsn_inside_map, sctp_association::highest_tsn_inside_nr_map, sctp_association::idata_supported, sctp_inpcb::last_abort_code, sctp_association::last_data_chunk_from, sctp_gen_error_cause::length, sctp_association::overall_error_count, sctp_abort_an_association(), SCTP_ABORT_ASSOCIATION, SCTP_ASCONF, SCTP_ASCONF_ACK, SCTP_AUTHENTICATION, SCTP_BASE_SYSCTL, SCTP_BUF_LEN, SCTP_BUF_NEXT, SCTP_CAUSE_PROTOCOL_VIOLATION, SCTP_CAUSE_UNRECOG_CHUNK, SCTP_COOKIE_ACK, SCTP_COOKIE_ECHO, SCTP_DATA, SCTP_DIAG_INFO_LEN, SCTP_ECN_CWR, SCTP_ECN_ECHO, sctp_tcb::sctp_ep, SCTP_FORWARD_CUM_TSN, SCTP_FROM_SCTP_INDATA, sctp_generate_cause(), sctp_get_mbuf_for_msg(), SCTP_GET_STATE, SCTP_GETTIME_TIMEVAL, SCTP_HEARTBEAT_ACK, SCTP_HEARTBEAT_REQUEST, SCTP_IDATA, SCTP_INITIATION, SCTP_INITIATION_ACK, SCTP_LOC_21, SCTP_LOC_22, SCTP_LOC_23, SCTP_LOC_24, SCTP_M_COPYM, sctp_m_freem, sctp_m_getptr(), sctp_misc_ints(), SCTP_NR_SELECTIVE_ACK, SCTP_OPERATION_ERROR, SCTP_PACKET_DROPPED, sctp_process_a_data_chunk(), sctp_queue_op_err(), sctp_sack_check(), SCTP_SELECTIVE_ACK, sctp_send_packet_dropped(), sctp_set_rwnd(), SCTP_SHUTDOWN, SCTP_SHUTDOWN_ACK, SCTP_SHUTDOWN_COMPLETE, SCTP_SIZE32, SCTP_SNPRINTF, SCTP_SO_NOT_LOCKED, SCTP_STAT_INCR, SCTP_STATE_SHUTDOWN_SENT, SCTP_STREAM_RESET, SCTP_TCB_LOCK_ASSERT, SCTP_THRESHOLD_CLEAR, SCTP_THRESHOLD_LOGGING, SCTP_TSN_GT, sctp_association::send_sack, and sctp_association::time_last_rcvd.
Referenced by sctp_common_input_processing().
void sctp_sack_check | ( | struct sctp_tcb * | stcb, |
int | was_a_gap | ||
) |
Definition at line 2560 of file sctp_indata.c.
References sctp_association::alternate, sctp_tcb::asoc, sctp_association::cmt_dac_pkts_rcvd, sctp_association::cumulative_tsn, sctp_association::dack_timer, sctp_association::data_pkts_seen, sctp_association::delayed_ack, sctp_association::highest_tsn_inside_map, sctp_association::highest_tsn_inside_nr_map, sctp_association::numduptsns, sctp_association::primary_destination, sctp_association::sack_freq, SCTP_BASE_SYSCTL, sctp_association::sctp_cmt_on_off, sctp_tcb::sctp_ep, SCTP_FROM_SCTP_INDATA, SCTP_GET_STATE, SCTP_LOC_19, SCTP_LOC_20, SCTP_OS_TIMER_PENDING, sctp_send_sack(), sctp_send_shutdown(), sctp_slide_mapping_arrays(), SCTP_SO_NOT_LOCKED, SCTP_STATE_SHUTDOWN_SENT, sctp_timer_start(), sctp_timer_stop(), SCTP_TIMER_TYPE_RECV, SCTP_TSN_GT, sctp_association::send_sack, and sctp_timer::timer.
Referenced by sctp_common_input_processing(), and sctp_process_data().
void sctp_service_queues | ( | struct sctp_tcb * | , |
struct sctp_association * | |||
) |
void sctp_set_rwnd | ( | struct sctp_tcb * | stcb, |
struct sctp_association * | asoc | ||
) |
Definition at line 72 of file sctp_indata.c.
References sctp_association::my_rwnd, and sctp_calc_rwnd().
Referenced by sctp_process_a_data_chunk(), sctp_process_data(), and sctp_send_sack().
void sctp_slide_mapping_arrays | ( | struct sctp_tcb * | stcb | ) |
Definition at line 2395 of file sctp_indata.c.
References sctp_tcb::asoc, sctp_association::cumulative_tsn, sctp_association::highest_tsn_inside_map, sctp_association::highest_tsn_inside_nr_map, sctp_association::mapping_array, sctp_association::mapping_array_base_tsn, sctp_association::mapping_array_size, sctp_association::nr_mapping_array, SCTP_BASE_SYSCTL, SCTP_CALC_TSN_TO_GAP, sctp_log_map(), SCTP_MAP_LOGGING_ENABLE, sctp_map_lookup_tab, SCTP_MAP_PREPARE_SLIDE, SCTP_MAP_SLIDE_FROM, SCTP_MAP_SLIDE_NONE, SCTP_MAP_SLIDE_RESULT, sctp_print_mapping_array(), SCTP_PRINTF, and SCTP_TSN_GT.
Referenced by sctp_handle_forward_tsn(), sctp_sack_check(), and sctp_send_sack().
struct sctp_tmit_chunk * sctp_try_advance_peer_ack_point | ( | struct sctp_tcb * | stcb, |
struct sctp_association * | asoc | ||
) |
Definition at line 3749 of file sctp_indata.c.
References sctp_association::advanced_peer_ack_point, sctp_tmit_chunk::data, sctp_tmit_chunk::flags, PR_SCTP_ENABLED, PR_SCTP_TTL_ENABLED, sctp_association::prsctp_supported, sctp_tmit_chunk::rec, SCTP_BASE_SYSCTL, SCTP_DATAGRAM_NR_ACKED, SCTP_DATAGRAM_RESEND, SCTP_FORWARD_TSN_SKIP, SCTP_FWD_TSN_CHECK, SCTP_GETTIME_TIMEVAL, SCTP_LOG_TRY_ADVANCE, sctp_misc_ints(), sctp_release_pr_sctp_chunk(), SCTP_SO_NOT_LOCKED, SCTP_TSN_GT, sctp_tmit_chunk::sent, sctp_association::sent_queue, sctp_data_chunkrec::timetodrop, and sctp_data_chunkrec::tsn.
Referenced by sctp_express_handle_sack(), sctp_handle_sack(), and sctp_t3rxt_timer().
void sctp_update_acked | ( | struct sctp_tcb * | stcb, |
struct sctp_shutdown_chunk * | cp, | ||
int * | abort_flag | ||
) |
Definition at line 5222 of file sctp_indata.c.
References sctp_tcb::asoc, sctp_shutdown_chunk::cumulative_tsn_ack, sctp_association::peers_rwnd, sctp_express_handle_sack(), and sctp_association::total_flight.
Referenced by sctp_handle_shutdown().