33#define SOCKET_LIST_ALLOC() (PSOCKET_LIST)list_alloc(sizeof(SOCKET_LIST),offsetof(SOCKET_LIST,ele))
34#define SOCKET_LIST_NEXT(sl) (PSOCKET_LIST)LIST_NEXT(sl)
137 return psl ? psl->
s : NULL;
144 memset(&s, 0,
sizeof s);
152 return psl ? psl->
s : NULL;
191 print_tcp_log(
"Closing socket with local addr %s:%d, Remote addr %s:%d\n",
249 print_tcp_log(
"\nDevice %d, Time %0.2lf: creating socket with local addr %s:%d, Remote addr %s:%d",
253 localsocketAddr->
port,
255 remotesocketAddr->
port);
257 localSocket->
localAddr = localsocketAddr;
NETSIM_IPAddress IP_COPY(NETSIM_IPAddress ip)
#define IP_COMPARE(ip1, ip2)
#define LIST_ADD_LAST(ls, mem)
#define LIST_FREE(ls, mem)
NETSIM_ID get_first_dest_from_packet(NetSim_PACKET *packet)
#define DEVICE_NWADDRESS(DeviceId, InterfaceId)
ptrSOCKETINTERFACE fn_NetSim_Socket_GetSocketInterface(NETSIM_ID deviceId, APPLICATION_LAYER_PROTOCOL appProtocol, TRANSPORT_LAYER_PROTOCOL trxProtocol, UINT16 localPort, UINT16 remotePort)
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
bool isAnySegmentInQueue(PTCP_QUEUE queue)
void create_TCB(PNETSIM_SOCKET s)
void tcp_change_state(PNETSIM_SOCKET s, TCP_CONNECTION_STATE state)
void rcv_SYN(PNETSIM_SOCKET s, NetSim_PACKET *syn)
static PTCP_DEV_VAR GET_TCP_DEV_VAR(NETSIM_ID d)
void tcp_active_open(PNETSIM_SOCKET s)
void send_fin(PNETSIM_SOCKET s)
@ TCPCONNECTION_FIN_WAIT_1
void print_tcp_log(char *format,...)
bool isSynPacket(NetSim_PACKET *packet)
struct stru_socket_addr * PSOCKETADDRESS
void tcp_create_metrics(PNETSIM_SOCKET s)
void tcp_passive_open(PNETSIM_SOCKET s, PNETSIM_SOCKET ls)
PSOCKETADDRESS anySocketAddr
void tcp_close(PNETSIM_SOCKET s)
PNETSIM_SOCKET tcp_accept(PNETSIM_SOCKET s, NetSim_PACKET *p)
void add_to_socket_list(NETSIM_ID devId, PNETSIM_SOCKET s)
void remove_from_socket_list(NETSIM_ID devId, PNETSIM_SOCKET s)
static bool compare_socket(PNETSIM_SOCKET s1, PNETSIM_SOCKET s2)
void tcp_connect(PNETSIM_SOCKET s, PSOCKETADDRESS localAddr, PSOCKETADDRESS remoteAddr)
PNETSIM_SOCKET find_socket(NETSIM_ID devId, NETSIM_IPAddress srcIP, NETSIM_IPAddress destIP, UINT16 srcPort, UINT16 destPort)
struct stru_socket_list SOCKET_LIST
struct stru_socket_list * PSOCKET_LIST
PNETSIM_SOCKET find_socket_at_dest(NetSim_PACKET *packet)
#define SOCKET_LIST_NEXT(sl)
PNETSIM_SOCKET get_Remotesocket(NETSIM_ID d, PSOCKETADDRESS addr)
void tcp_bind(PNETSIM_SOCKET s, PSOCKETADDRESS addr)
void tcp_listen(PNETSIM_SOCKET s, void(*listen_callback)(PNETSIM_SOCKET, NetSim_PACKET *))
static bool compare_socketaddr(PSOCKETADDRESS sa1, PSOCKETADDRESS sa2)
#define SOCKET_LIST_ALLOC()
PNETSIM_SOCKET find_socket_at_source(NetSim_PACKET *packet)
static PSOCKET_LIST find_socket_list(NETSIM_ID devid, PNETSIM_SOCKET s)
void tcp_close_socket(PNETSIM_SOCKET s, NETSIM_ID devId)
void close_all_socket(NETSIM_ID devId)
PNETSIM_SOCKET tcp_create_socket()
NETSIM_IPAddress szDestIP
NETSIM_IPAddress szSourceIP
unsigned short int nSourcePort
unsigned short int nDestinationPort
struct stru_NetSim_Packet_NetworkLayer * pstruNetworkData
struct stru_NetSim_Packet_TransportLayer * pstruTransportData
PSOCKETADDRESS remoteAddr
void(* listen_callback)(struct stru_TCP_Socket *s, NetSim_PACKET *)
char str_ip[_NETSIM_IP_LEN]
TCP_QUEUE retransmissionQueue