FreeBSD kernel IPv4 code
sctp_timer.c File Reference
#include <sys/cdefs.h>
#include <netinet/sctp_os.h>
#include <netinet/sctp_pcb.h>
#include <netinet/sctp_var.h>
#include <netinet/sctp_sysctl.h>
#include <netinet/sctp_timer.h>
#include <netinet/sctputil.h>
#include <netinet/sctp_output.h>
#include <netinet/sctp_header.h>
#include <netinet/sctp_indata.h>
#include <netinet/sctp_asconf.h>
#include <netinet/sctp_input.h>
#include <netinet/sctp.h>
#include <netinet/sctp_uio.h>
Include dependency graph for sctp_timer.c:

Go to the source code of this file.

Macros

#define _IP_VHL
 

Functions

 __FBSDID ("$FreeBSD$")
 
void sctp_audit_retranmission_queue (struct sctp_association *asoc)
 
static int sctp_threshold_management (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net, uint16_t threshold)
 
struct sctp_netssctp_find_alternate_net (struct sctp_tcb *stcb, struct sctp_nets *net, int mode)
 
static void sctp_backoff_on_timeout (struct sctp_tcb *stcb, struct sctp_nets *net, int win_probe, int num_marked, int num_abandoned)
 
static void sctp_recover_sent_list (struct sctp_tcb *stcb)
 
static int sctp_mark_all_for_resend (struct sctp_tcb *stcb, struct sctp_nets *net, struct sctp_nets *alt, int window_probe, int *num_marked, int *num_abandoned)
 
int sctp_t3rxt_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net)
 
int sctp_t1init_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net)
 
int sctp_cookie_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net SCTP_UNUSED)
 
int sctp_strreset_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb)
 
int sctp_asconf_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net)
 
void sctp_delete_prim_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb)
 
int sctp_shutdown_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net)
 
int sctp_shutdownack_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net)
 
static void sctp_audit_stream_queues_for_size (struct sctp_inpcb *inp, struct sctp_tcb *stcb)
 
int sctp_heartbeat_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net)
 
void sctp_pathmtu_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb, struct sctp_nets *net)
 
void sctp_autoclose_timer (struct sctp_inpcb *inp, struct sctp_tcb *stcb)
 

Macro Definition Documentation

◆ _IP_VHL

#define _IP_VHL

Definition at line 38 of file sctp_timer.c.

Function Documentation

◆ __FBSDID()

__FBSDID ( "$FreeBSD$"  )

◆ sctp_asconf_timer()

◆ sctp_audit_retranmission_queue()

◆ sctp_audit_stream_queues_for_size()

◆ sctp_autoclose_timer()

◆ sctp_backoff_on_timeout()

static void sctp_backoff_on_timeout ( struct sctp_tcb stcb,
struct sctp_nets net,
int  win_probe,
int  num_marked,
int  num_abandoned 
)
static

◆ sctp_cookie_timer()

◆ sctp_delete_prim_timer()

◆ sctp_find_alternate_net()

◆ sctp_heartbeat_timer()

◆ sctp_mark_all_for_resend()

static int sctp_mark_all_for_resend ( struct sctp_tcb stcb,
struct sctp_nets net,
struct sctp_nets alt,
int  window_probe,
int *  num_marked,
int *  num_abandoned 
)
static

Definition at line 487 of file sctp_timer.c.

References sctp_tcb::asoc, sctp_tmit_chunk::book_size, CHUNK_FLAGS_FRAGMENT_OK, sctp_tmit_chunk::chunk_id, sctp_data_chunkrec::chunk_was_revoked, sctp_association::control_send_queue, sctp_nets::cwnd, sctp_tmit_chunk::data, sctp_tmit_chunk::do_rtt, sctp_data_chunkrec::doing_fast_retransmit, sctp_nets::fast_retran_ip, sctp_data_chunkrec::fast_retran_tsn, sctp_tmit_chunk::flags, sctp_nets::flight_size, chk_id::id, sctp_association::last_acked_seq, sctp_nets::lastsa, sctp_nets::lastsv, sctp_nets::marked_retrans, sctp_association::marked_retrans, sctp_association::nets, sctp_tmit_chunk::no_fr_allowed, sctp_association::peers_rwnd, PR_SCTP_RTX_ENABLED, PR_SCTP_TTL_ENABLED, sctp_association::prsctp_supported, sctp_tmit_chunk::rec, sctp_nets::ref_count, sctp_nets::rto_needed, SCTP_BASE_SYSCTL, sctp_association::sctp_cmt_on_off, SCTP_DATAGRAM_ACKED, SCTP_DATAGRAM_RESEND, SCTP_DEBUG_TIMER1, SCTP_DEBUG_TIMER4, SCTP_ECN_ECHO, SCTP_FLIGHT_LOG_DOWN_RSND_TO, SCTP_FLIGHT_LOG_UP, SCTP_FLIGHT_LOGGING_ENABLE, sctp_flight_size_decrease, sctp_flight_size_increase, SCTP_FR_CWND_REPORT, SCTP_FR_LOGGING_ENABLE, SCTP_FR_T3_MARK_TIME, SCTP_FR_T3_MARKED, SCTP_FR_T3_STOPPED, SCTP_FR_T3_TIMEOUT, sctp_free_remote_addr, SCTP_GETTIME_TIMEVAL, sctp_log_fr(), sctp_misc_ints(), SCTP_PRINTF, sctp_recover_sent_list(), sctp_release_pr_sctp_chunk(), SCTP_RTT_SHIFT, SCTP_SO_NOT_LOCKED, SCTP_STAT_INCR, sctp_total_flight_decrease, sctp_total_flight_increase, SCTP_TSN_GE, sctp_ucount_incr, SCTPDBG, 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_retran_cnt, sctp_tmit_chunk::sent_rcv_time, sctp_tmit_chunk::snd_count, sctp_data_chunkrec::timetodrop, sctp_association::total_flight, sctp_association::total_flight_count, sctp_data_chunkrec::tsn, and sctp_tmit_chunk::whoTo.

Referenced by sctp_t3rxt_timer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sctp_pathmtu_timer()

◆ sctp_recover_sent_list()

◆ sctp_shutdown_timer()

int sctp_shutdown_timer ( struct sctp_inpcb inp,
struct sctp_tcb stcb,
struct sctp_nets net 
)

Definition at line 1301 of file sctp_timer.c.

References sctp_tcb::asoc, sctp_association::max_send_times, sctp_backoff_on_timeout(), sctp_find_alternate_net(), sctp_send_shutdown(), sctp_threshold_management(), sctp_timer_start(), and SCTP_TIMER_TYPE_SHUTDOWN.

Referenced by sctp_timeout_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sctp_shutdownack_timer()

int sctp_shutdownack_timer ( struct sctp_inpcb inp,
struct sctp_tcb stcb,
struct sctp_nets net 
)

Definition at line 1324 of file sctp_timer.c.

References sctp_tcb::asoc, sctp_association::max_send_times, sctp_backoff_on_timeout(), sctp_find_alternate_net(), sctp_send_shutdown_ack(), sctp_threshold_management(), sctp_timer_start(), and SCTP_TIMER_TYPE_SHUTDOWNACK.

Referenced by sctp_timeout_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sctp_strreset_timer()

◆ sctp_t1init_timer()

◆ sctp_t3rxt_timer()

int sctp_t3rxt_timer ( struct sctp_inpcb inp,
struct sctp_tcb stcb,
struct sctp_nets net 
)

Definition at line 816 of file sctp_timer.c.

References sctp_net_route::_s_addr, sctp_association::advanced_peer_ack_point, sctp_association::alternate, sctp_tcb::asoc, sctp_association::cc_functions, sctp_nets::cwnd, sctp_nets::dest_state, sctp_nets::failure_threshold, sctp_nets::fast_retran_loss_recovery, sctp_association::fast_retran_loss_recovery, sctp_nets::find_pseudo_cumack, sctp_nets::find_rtx_pseudo_cumack, sctp_nets::flight_size, sctp_association::last_acked_seq, sctp_nets::last_sent_time, sctp_association::max_send_times, sctp_nets::mtu, sctp_association::nets, sctp_association::peers_rwnd, sctp_nets::pf_threshold, sctp_association::primary_destination, sctp_association::prsctp_supported, sctp_nets::ref_count, sctp_nets::ro, sctp_nets::RTO, sctp_association::sat_t3_loss_recovery, sctp_association::sat_t3_recovery_tsn, SCTP_ADDR_PF, SCTP_ADDR_REACHABLE, sctp_backoff_on_timeout(), SCTP_BASE_SYSCTL, sctp_association::sctp_cmt_on_off, SCTP_CWND_LOG_FROM_RTX, SCTP_CWND_LOG_FROM_T3, SCTP_CWND_LOGGING_ENABLE, SCTP_CWND_MONITOR_ENABLE, sctp_cc_functions::sctp_cwnd_new_transmission_begins, sctp_tcb::sctp_ep, sctp_find_alternate_net(), SCTP_FR_LOGGING_ENABLE, SCTP_FR_T3_TIMEOUT, sctp_free_ifa(), sctp_free_remote_addr, SCTP_GET_STATE, SCTP_GETTIME_TIMEVAL, sctp_log_cwnd(), sctp_log_fr(), sctp_mark_all_for_resend(), sctp_move_chunks_from_net(), sctp_send_hb(), SCTP_SO_NOT_LOCKED, SCTP_STAT_INCR, SCTP_STATE_COOKIE_ECHOED, sctp_threshold_management(), sctp_timer_start(), SCTP_TIMER_TYPE_SEND, sctp_try_advance_peer_ack_point(), SCTP_TSN_GT, send_forward_tsn(), sctp_association::sending_seq, sctp_nets::src_addr_selected, sctp_association::total_flight, and sctp_tmit_chunk::whoTo.

Referenced by sctp_assoc_immediate_retrans(), and sctp_timeout_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sctp_threshold_management()