49 return "Syn-received";
197 queue->
queue = ninfo;
209 queue->
queue = ninfo;
350 return queue->
size > 0;
void congestion_setcallback(PNETSIM_SOCKET s)
void set_ack_type(PNETSIM_SOCKET s, PTCP_DEV_VAR tcp)
#define fnNetSimError(x,...)
double calculate_RTO(double R, double *srtt, double *rtt_var)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
bool isAnySegmentInQueue(PTCP_QUEUE queue)
void update_seq_num_on_receiving(PNETSIM_SOCKET s, NetSim_PACKET *p)
void create_TCB(PNETSIM_SOCKET s)
void delete_all_segment_from_queue(PTCP_QUEUE queue)
void tcp_change_state(PNETSIM_SOCKET s, TCP_CONNECTION_STATE state)
static void free_queue(PTCP_QUEUE queue)
NetSim_PACKET * check_for_other_segment_to_send_from_queue(PNETSIM_SOCKET s)
bool isSegmentInQueue(PTCP_QUEUE queue, NetSim_PACKET *packet)
void delete_segment_from_queue(PTCP_QUEUE queue, UINT32 ackNo)
NetSim_PACKET * get_copy_segment_from_queue(PTCP_QUEUE queue, UINT32 seqNo, bool *isSacked)
NetSim_PACKET * get_earliest_segment_from_queue(PTCP_QUEUE queue)
void check_segment_in_queue(PNETSIM_SOCKET s)
static void set_timestamp_option(PNETSIM_SOCKET s, PTCP_DEV_VAR t)
NetSim_PACKET * get_earliest_copy_segment_from_queue(PTCP_QUEUE queue)
UINT32 calculate_initial_seq_num(double time)
static void setSackPermitted(PNETSIM_SOCKET s, PTCP_DEV_VAR t)
UINT32 get_seg_len(NetSim_PACKET *p)
double get_RTT(PTCB tcb, UINT ackNo)
void set_timestamp_value(PNETSIM_SOCKET s, PTCP_SEGMENT_HDR hdr, PTSopt opt)
static void set_tcp_variant(PNETSIM_SOCKET s, PTCP_DEV_VAR t)
void delete_tcb(PNETSIM_SOCKET s)
NetSim_PACKET * get_segment_from_queue(PTCP_QUEUE queue, UINT32 seqNo)
char * state_to_str(TCP_CONNECTION_STATE state)
void add_packet_to_queue(PTCP_QUEUE queue, NetSim_PACKET *packet, double time)
struct stru_tcp_queue_info * PQueueInfo
struct stru_tcp_Transmission_Control_Block * PTCB
void set_window_scaling_option(PNETSIM_SOCKET s, PTCP_DEV_VAR tcp)
static PTCP_DEV_VAR GET_TCP_DEV_VAR(NETSIM_ID d)
@ TCPCONNECTION_FIN_WAIT_2
@ TCPCONNECTION_SYN_RECEIVED
@ TCPCONNECTION_TIME_WAIT
@ TCPCONNECTION_CLOSE_WAIT
@ TCPCONNECTION_FIN_WAIT_1
@ TCPCONNECTION_ESTABLISHED
void print_tcp_log(char *format,...)
enum enum_tcpstate TCP_CONNECTION_STATE
#define fn_NetSim_Packet_CopyPacket(pstruPacket)
#define fn_NetSim_Packet_FreePacket(pstruPacket)
struct stru_NetSim_Packet * pstruNextPacket
struct stru_NetSim_Packet_TransportLayer * pstruTransportData
void(* init_congestionalgo)(PNETSIM_SOCKET)
TCP_CONNECTION_STATE tcp_state
Present State of the TCP Connection.
struct stru_tcp_Transmission_Control_Block::stru_tcb_send_seq_var SND
UINT32(* get_RCVWND)(PNETSIM_SOCKET)
TCP_QUEUE retransmissionQueue
TCP_QUEUE outOfOrderSegment
struct stru_tcp_Transmission_Control_Block::stru_tcb_recv_seq_var RCV
UINT16(* get_WND)(PNETSIM_SOCKET)
TCP_CONNECTION_STATE tcp_prev_state
Present State of the Connection.
struct stru_tcp_Transmission_Control_Block::stru_tcb_curr_seg_var SEG
struct stru_tcp_queue_info * next