97 if (h->
SeqNum == lastSeq + len)
103 else if (i < maxData - 1)
118 else if (i < maxData)
174 UINT check = seqNum + SMSS;
180 for (i = 0; i < 4; i++)
201 for (s1 = highAck; s1 < highData; s1 += SMSS)
248 if (seq + l <= s->tcb->SND.WND + s->
tcb->
SND.
UNA)
299 for (i = 0; i <
c; i++)
333 while (wnd >= mss + pipe)
339 if (nextSeg < highData)
static UINT get_max_sack_data(PTCP_SEGMENT_HDR hdr)
bool tcp_sack_lossRecoveryPhase(PNETSIM_SOCKET s)
UINT32 get_highAck(PNETSIM_SOCKET s)
void tcp_sack_fastRetransmit(PNETSIM_SOCKET s)
static UINT32 get_rescueRxt(PNETSIM_SOCKET s)
static UINT32 get_highRxt(PNETSIM_SOCKET s)
UINT32 tcp_sack_nextSeg(PNETSIM_SOCKET s)
void set_rescueRxt(PNETSIM_SOCKET s, UINT32 seq)
void tcp_sack_setPipe(PNETSIM_SOCKET s)
void set_recoveryPoint(PNETSIM_SOCKET s, UINT32 val)
void set_sack_option(PNETSIM_SOCKET s, PTCP_SEGMENT_HDR hdr, double time)
void receive_sack_option(PNETSIM_SOCKET s, PTCP_SEGMENT_HDR hdr)
void set_highRxt(PNETSIM_SOCKET s, UINT32 seq)
static UINT32 get_highData(PNETSIM_SOCKET s)
static void update_scoreboard(PNETSIM_SOCKET s, UINT left, UINT right, UINT index)
bool tcp_sack_isLost(PNETSIM_SOCKET s, UINT seqNum)
UINT32 get_pipe(PNETSIM_SOCKET s)
UINT32 get_recoveryPoint(PNETSIM_SOCKET s)
static void update_sack_flag(PNETSIM_SOCKET s, UINT32 left, UINT32 right)
NetSim_PACKET * fn_NetSim_Socket_GetPacketFromInterface(ptrSOCKETINTERFACE s, int moveFlag)
UINT32 get_seg_len(NetSim_PACKET *p)
void resend_segment_without_timeout(PNETSIM_SOCKET s, UINT seq)
void send_segment(PNETSIM_SOCKET s)
struct stru_NetSim_Packet_AppLayer * pstruAppData
struct stru_tcp_Transmission_Control_Block::stru_sack_scoreboard prevScoreboard
struct stru_tcp_Transmission_Control_Block::stru_tcb_send_seq_var SND
UINT16(* get_MSS)(PNETSIM_SOCKET)
TCP_QUEUE retransmissionQueue
TCP_QUEUE outOfOrderSegment
UINT16(* get_WND)(PNETSIM_SOCKET)
struct stru_tcp_Transmission_Control_Block::stru_sack_scoreboard scoreboard
struct stru_tcp_Transmission_Control_Block::stru_tcb_curr_seg_var SEG
struct stru_tcp_queue_info * next