71 print_tcp_log(
"ERROR: %s is called for different TCP state %s. it must be %s or %s",
104 print_tcp_log(
"Connection fails for local address %s:%d, Remote address %s:%d",
190 print_tcp_log(
"Sending ack with seq=%d, Ack=%d.", seqNo, ackNo);
198 print_tcp_log(
"Sending fin-ack with seq=%d, Ack=%d.", seqNo, ackNo);
261 bool isAckAcceptable =
false;
276 isAckAcceptable =
true;
343 static bool isShowError =
true;
#define fnNetSimError(x,...)
void add_timeout_event(PNETSIM_SOCKET s, NetSim_PACKET *packet)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
void create_TCB(PNETSIM_SOCKET s)
void tcp_change_state(PNETSIM_SOCKET s, TCP_CONNECTION_STATE state)
void delete_segment_from_queue(PTCP_QUEUE queue, UINT32 ackNo)
void set_timestamp_value(PNETSIM_SOCKET s, PTCP_SEGMENT_HDR hdr, PTSopt opt)
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)
NetSim_PACKET * create_ack(PNETSIM_SOCKET s, double time, UINT32 seqno, UINT32 ackno)
void send_to_network(NetSim_PACKET *packet, PNETSIM_SOCKET s)
static PTCP_DEV_VAR GET_TCP_DEV_VAR(NETSIM_ID d)
NetSim_PACKET * create_synAck(PNETSIM_SOCKET s, double time)
NetSim_PACKET * create_rst(NetSim_PACKET *p, double time, UINT c)
@ TCPCONNECTION_SYN_RECEIVED
@ TCPCONNECTION_ESTABLISHED
void print_tcp_log(char *format,...)
void send_segment(PNETSIM_SOCKET s)
NetSim_PACKET * create_syn(PNETSIM_SOCKET s, double time)
void tcp_close_socket(PNETSIM_SOCKET s, NETSIM_ID devId)
NetSim_PACKET * create_fin(PNETSIM_SOCKET s, double time)
void resend_syn(PNETSIM_SOCKET s)
void send_ack(PNETSIM_SOCKET s, double time, UINT32 seqNo, UINT32 ackNo)
void send_rst(PNETSIM_SOCKET s, NetSim_PACKET *p, UINT c)
void rcv_SYN(PNETSIM_SOCKET s, NetSim_PACKET *syn)
void tcp_active_open(PNETSIM_SOCKET s)
void send_fin(PNETSIM_SOCKET s)
void packet_arrives_at_synsent_state(PNETSIM_SOCKET s, NetSim_PACKET *p)
void packet_arrive_at_closed_state(PNETSIM_SOCKET s, NetSim_PACKET *p)
void send_fin_ack(PNETSIM_SOCKET s, double time, UINT32 seqNo, UINT32 ackNo)
static void send_syn(PNETSIM_SOCKET s)
void process_syn(PNETSIM_SOCKET s, NetSim_PACKET *p)
void tcp_passive_open(PNETSIM_SOCKET s, PNETSIM_SOCKET ls)
void packet_arrives_at_listen_state(PNETSIM_SOCKET s, NetSim_PACKET *p)
#define fn_NetSim_Packet_FreePacket(pstruPacket)
struct stru_NetSim_Packet * pPacket
unsigned int nControlDataType
PSOCKETADDRESS remoteAddr
void(* listen_callback)(struct stru_TCP_Socket *s, NetSim_PACKET *)
char str_ip[_NETSIM_IP_LEN]
TCP_CONNECTION_STATE tcp_state
Present State of the TCP Connection.
struct stru_tcp_Transmission_Control_Block::stru_tcb_send_seq_var SND
TCP_QUEUE retransmissionQueue
struct stru_tcp_Transmission_Control_Block::stru_tcb_recv_seq_var RCV
void(* set_MSS)(PNETSIM_SOCKET s, UINT16)
struct stru_tcp_Transmission_Control_Block::stru_tcb_curr_seg_var SEG