NetSim Source Code Help
Loading...
Searching...
No Matches
TCP.h File Reference
#include "TCB.h"
Include dependency graph for TCP.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  stru_tcp_metrics
 
struct  stru_socket_addr
 
struct  stru_TCP_Socket
 
struct  stru_TCP_device_var
 

Macros

#define isTCPConfigured(d)   (DEVICE_TRXLayer(d) && DEVICE_TRXLayer(d)->isTCP)
 
#define isTCPControl(p)   (p->nControlDataType/100 == TX_PROTOCOL_TCP)
 
#define TCP_DupThresh   3
 
#define GET_TCP_VARIANT(d)   (GET_TCP_DEV_VAR(d)->tcpVariant)
 

Typedefs

typedef struct stru_TCP_Socket NETSIM_SOCKET
 
typedef struct stru_TCP_SocketPNETSIM_SOCKET
 
typedef enum enum_tcpstate TCP_CONNECTION_STATE
 
typedef enum enum_tcp_variant TCPVARIANT
 
typedef enum enum_tcp_ack_type TCPACKTYPE
 
typedef struct stru_tcp_metrics TCP_METRICS
 
typedef struct stru_tcp_metricsPTCP_METRICS
 
typedef struct stru_socket_addr SOCKETADDRESS
 
typedef struct stru_socket_addrPSOCKETADDRESS
 
typedef struct stru_TCP_device_var TCP_DEV_VAR
 
typedef struct stru_TCP_device_varPTCP_DEV_VAR
 

Enumerations

enum  enum_tcpstate {
  TCPCONNECTION_CLOSED , TCPCONNECTION_LISTEN , TCPCONNECTION_SYN_SENT , TCPCONNECTION_SYN_RECEIVED ,
  TCPCONNECTION_ESTABLISHED , TCPCONNECTION_FIN_WAIT_1 , TCPCONNECTION_FIN_WAIT_2 , TCPCONNECTION_CLOSE_WAIT ,
  TCPCONNECTION_CLOSING , TCPCONNECTION_LAST_ACK , TCPCONNECTION_TIME_WAIT
}
 
enum  enum_tcp_variant {
  TCPVariant_OLDTAHOE , TCPVariant_TAHOE , TCPVariant_RENO , TCPVariant_NEWRENO ,
  TCPVariant_BIC , TCPVariant_CUBIC
}
 
enum  enum_tcp_ack_type { TCPACKTYPE_UNDELAYED , TCPACKTYPE_DELAYED }
 

Functions

static PTCP_DEV_VAR GET_TCP_DEV_VAR (NETSIM_ID d)
 
void add_to_socket_list (NETSIM_ID devId, PNETSIM_SOCKET s)
 
PNETSIM_SOCKET find_socket (NETSIM_ID devId, NETSIM_IPAddress srcIP, NETSIM_IPAddress destIP, UINT16 srcPort, UINT16 destPort)
 
PNETSIM_SOCKET find_socket_at_source (NetSim_PACKET *packet)
 
PNETSIM_SOCKET find_socket_at_dest (NetSim_PACKET *packet)
 
PNETSIM_SOCKET tcp_create_socket ()
 
void tcp_bind (PNETSIM_SOCKET s, PSOCKETADDRESS addr)
 
void tcp_listen (PNETSIM_SOCKET s, void(*listen_callback)(PNETSIM_SOCKET, NetSim_PACKET *))
 
void tcp_connect (PNETSIM_SOCKET s, PSOCKETADDRESS localAddr, PSOCKETADDRESS remoteAddr)
 
PNETSIM_SOCKET tcp_accept (PNETSIM_SOCKET s, NetSim_PACKET *p)
 
void close_all_socket (NETSIM_ID devId)
 
void tcp_close (PNETSIM_SOCKET s)
 
void tcp_close_socket (PNETSIM_SOCKET s, NETSIM_ID devId)
 
void tcp_active_open (PNETSIM_SOCKET s)
 
void tcp_passive_open (PNETSIM_SOCKET s, PNETSIM_SOCKET ls)
 
double get_RTT (PTCB tcb, UINT ackNo)
 
double calculate_RTO (double R, double *srtt, double *rtt_var)
 
void add_timeout_event (PNETSIM_SOCKET s, NetSim_PACKET *packet)
 
void handle_rto_timer ()
 
void restart_rto_timer (PNETSIM_SOCKET s)
 
void start_timewait_timer (PNETSIM_SOCKET s)
 
bool isSegmentInQueue (PTCP_QUEUE queue, NetSim_PACKET *packet)
 
void add_packet_to_queue (PTCP_QUEUE queue, NetSim_PACKET *packet, double time)
 
NetSim_PACKETget_segment_from_queue (PTCP_QUEUE queue, UINT32 seqNo)
 
NetSim_PACKETget_copy_segment_from_queue (PTCP_QUEUE queue, UINT32 seqNo, bool *isSacked)
 
NetSim_PACKETget_earliest_segment_from_queue (PTCP_QUEUE queue)
 
NetSim_PACKETget_earliest_copy_segment_from_queue (PTCP_QUEUE queue)
 
void delete_all_segment_from_queue (PTCP_QUEUE queue)
 
void delete_segment_from_queue (PTCP_QUEUE queue, UINT32 ackNo)
 
void check_segment_in_queue (PNETSIM_SOCKET s)
 
NetSim_PACKETcheck_for_other_segment_to_send_from_queue (PNETSIM_SOCKET s)
 
void send_rst (PNETSIM_SOCKET s, NetSim_PACKET *p, UINT c)
 
bool isSynPacket (NetSim_PACKET *packet)
 
bool isSynbitSet (NetSim_PACKET *packet)
 
NetSim_PACKETcreate_syn (PNETSIM_SOCKET s, double time)
 
void resend_syn (PNETSIM_SOCKET s)
 
void rcv_SYN (PNETSIM_SOCKET s, NetSim_PACKET *syn)
 
NetSim_PACKETcreate_synAck (PNETSIM_SOCKET s, double time)
 
NetSim_PACKETcreate_ack (PNETSIM_SOCKET s, double time, UINT32 seqno, UINT32 ackno)
 
void send_ack (PNETSIM_SOCKET s, double time, UINT32 seqNo, UINT32 ackNo)
 
NetSim_PACKETcreate_fin (PNETSIM_SOCKET s, double time)
 
void send_fin (PNETSIM_SOCKET s)
 
void send_fin_ack (PNETSIM_SOCKET s, double time, UINT32 seqNo, UINT32 ackNo)
 
NetSim_PACKETcreate_rst (NetSim_PACKET *p, double time, UINT c)
 
UINT32 get_seg_len (NetSim_PACKET *p)
 
void add_tcp_hdr (NetSim_PACKET *p, PNETSIM_SOCKET s)
 
void packet_arrive_at_closed_state (PNETSIM_SOCKET s, NetSim_PACKET *p)
 
void packet_arrives_at_listen_state (PNETSIM_SOCKET s, NetSim_PACKET *p)
 
void packet_arrives_at_synsent_state (PNETSIM_SOCKET s, NetSim_PACKET *p)
 
void packet_arrives_at_incoming_tcp (PNETSIM_SOCKET s, NetSim_PACKET *p)
 
void resend_segment_without_timeout (PNETSIM_SOCKET s, UINT seq)
 
void send_segment (PNETSIM_SOCKET s)
 
void resend_segment (PNETSIM_SOCKET s, NetSim_PACKET *expired)
 
void update_seq_num_on_receiving (PNETSIM_SOCKET s, NetSim_PACKET *p)
 
void tcp_change_state (PNETSIM_SOCKET s, TCP_CONNECTION_STATE state)
 
void create_TCB (PNETSIM_SOCKET s)
 
void free_tcb (PTCB tcb)
 
void delete_tcb (PNETSIM_SOCKET s)
 
void congestion_setcallback (PNETSIM_SOCKET s)
 
UINT32 get_cwnd_print (PNETSIM_SOCKET s)
 
void set_ack_type (PNETSIM_SOCKET s, PTCP_DEV_VAR tcp)
 
bool send_ack_or_not (PNETSIM_SOCKET s)
 
UINT32 get_highAck (PNETSIM_SOCKET s)
 
void set_highRxt (PNETSIM_SOCKET s, UINT32 seq)
 
void set_rescueRxt (PNETSIM_SOCKET s, UINT32 seq)
 
void tcp_sack_fastRetransmit (PNETSIM_SOCKET s)
 
bool tcp_sack_lossRecoveryPhase (PNETSIM_SOCKET s)
 
bool tcp_sack_isLost (PNETSIM_SOCKET s, UINT seqNum)
 
UINT8 get_shift_count (PNETSIM_SOCKET s)
 
void set_window_scaling_option (PNETSIM_SOCKET s, PTCP_DEV_VAR tcp)
 
UINT32 window_scale_get_cwnd (PNETSIM_SOCKET s)
 
UINT16 window_scale_get_wnd (PNETSIM_SOCKET s)
 
void print_tcp_log (char *format,...)
 
void tcp_create_metrics (PNETSIM_SOCKET s)
 
TCPVARIANT get_tcp_variant_from_str (char *szVal)
 
TCPACKTYPE get_tcp_ack_type_from_str (char *szVal)
 
char * state_to_str (TCP_CONNECTION_STATE state)
 
bool isAnySegmentInQueue (PTCP_QUEUE queue)
 
void write_congestion_plot (PNETSIM_SOCKET s, NetSim_PACKET *packet)
 
void tcp_init (NETSIM_ID d)
 
NetSim_PACKETGET_PACKET_FROM_APP (bool isRemove)
 
int packet_arrive_from_application_layer ()
 
void send_to_application (PNETSIM_SOCKET s, NetSim_PACKET *p)
 
void packet_arrive_from_network_layer ()
 
void send_to_network (NetSim_PACKET *packet, PNETSIM_SOCKET s)
 

Macro Definition Documentation

◆ GET_TCP_VARIANT

#define GET_TCP_VARIANT (   d)    (GET_TCP_DEV_VAR(d)->tcpVariant)

Definition at line 173 of file TCP.h.

◆ isTCPConfigured

#define isTCPConfigured (   d)    (DEVICE_TRXLayer(d) && DEVICE_TRXLayer(d)->isTCP)

Definition at line 47 of file TCP.h.

◆ isTCPControl

#define isTCPControl (   p)    (p->nControlDataType/100 == TX_PROTOCOL_TCP)

Definition at line 48 of file TCP.h.

◆ TCP_DupThresh

#define TCP_DupThresh   3

Definition at line 51 of file TCP.h.

Typedef Documentation

◆ NETSIM_SOCKET

Definition at line 54 of file TCP.h.

◆ PNETSIM_SOCKET

typedef struct stru_TCP_Socket * PNETSIM_SOCKET

Definition at line 54 of file TCP.h.

◆ PSOCKETADDRESS

typedef struct stru_socket_addr * PSOCKETADDRESS

◆ PTCP_DEV_VAR

◆ PTCP_METRICS

typedef struct stru_tcp_metrics* PTCP_METRICS

◆ SOCKETADDRESS

◆ TCP_CONNECTION_STATE

◆ TCP_DEV_VAR

◆ TCP_METRICS

typedef struct stru_tcp_metrics TCP_METRICS

◆ TCPACKTYPE

◆ TCPVARIANT

Enumeration Type Documentation

◆ enum_tcp_ack_type

Enumerator
TCPACKTYPE_UNDELAYED 
TCPACKTYPE_DELAYED 

Definition at line 81 of file TCP.h.

◆ enum_tcp_variant

Enumerator
TCPVariant_OLDTAHOE 
TCPVariant_TAHOE 
TCPVariant_RENO 
TCPVariant_NEWRENO 
TCPVariant_BIC 
TCPVariant_CUBIC 

Definition at line 71 of file TCP.h.

◆ enum_tcpstate

Enumerator
TCPCONNECTION_CLOSED 
TCPCONNECTION_LISTEN 
TCPCONNECTION_SYN_SENT 
TCPCONNECTION_SYN_RECEIVED 
TCPCONNECTION_ESTABLISHED 
TCPCONNECTION_FIN_WAIT_1 
TCPCONNECTION_FIN_WAIT_2 
TCPCONNECTION_CLOSE_WAIT 
TCPCONNECTION_CLOSING 
TCPCONNECTION_LAST_ACK 
TCPCONNECTION_TIME_WAIT 

Definition at line 56 of file TCP.h.

Function Documentation

◆ add_packet_to_queue()

void add_packet_to_queue ( PTCP_QUEUE  queue,
NetSim_PACKET packet,
double  time 
)

Definition at line 164 of file TCB.c.

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

◆ add_tcp_hdr()

void add_tcp_hdr ( NetSim_PACKET p,
PNETSIM_SOCKET  s 
)

Definition at line 341 of file TCP_Packet.c.

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

◆ add_timeout_event()

void add_timeout_event ( PNETSIM_SOCKET  s,
NetSim_PACKET packet 
)

Definition at line 63 of file RTO.c.

Here is the caller graph for this function:

◆ add_to_socket_list()

void add_to_socket_list ( NETSIM_ID  devId,
PNETSIM_SOCKET  s 
)

Definition at line 94 of file TCP_Socket.c.

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

◆ calculate_RTO()

double calculate_RTO ( double  R,
double *  srtt,
double *  rtt_var 
)

Definition at line 35 of file RTO.c.

Here is the caller graph for this function:

◆ check_for_other_segment_to_send_from_queue()

NetSim_PACKET * check_for_other_segment_to_send_from_queue ( PNETSIM_SOCKET  s)

Definition at line 388 of file TCB.c.

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

◆ check_segment_in_queue()

void check_segment_in_queue ( PNETSIM_SOCKET  s)

Definition at line 410 of file TCB.c.

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

◆ close_all_socket()

void close_all_socket ( NETSIM_ID  devId)

Definition at line 275 of file TCP_Socket.c.

Here is the call graph for this function:

◆ congestion_setcallback()

void congestion_setcallback ( PNETSIM_SOCKET  s)

Definition at line 853 of file Congestion.c.

Here is the caller graph for this function:

◆ create_ack()

NetSim_PACKET * create_ack ( PNETSIM_SOCKET  s,
double  time,
UINT32  seqno,
UINT32  ackno 
)

Definition at line 297 of file TCP_Packet.c.

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

◆ create_fin()

NetSim_PACKET * create_fin ( PNETSIM_SOCKET  s,
double  time 
)

Definition at line 322 of file TCP_Packet.c.

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

◆ create_rst()

NetSim_PACKET * create_rst ( NetSim_PACKET p,
double  time,
UINT  c 
)

Definition at line 254 of file TCP_Packet.c.

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

◆ create_syn()

NetSim_PACKET * create_syn ( PNETSIM_SOCKET  s,
double  time 
)

Definition at line 194 of file TCP_Packet.c.

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

◆ create_synAck()

NetSim_PACKET * create_synAck ( PNETSIM_SOCKET  s,
double  time 
)

Definition at line 223 of file TCP_Packet.c.

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

◆ create_TCB()

void create_TCB ( PNETSIM_SOCKET  s)

Definition at line 90 of file TCB.c.

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

◆ delete_all_segment_from_queue()

void delete_all_segment_from_queue ( PTCP_QUEUE  queue)

Definition at line 353 of file TCB.c.

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

◆ delete_segment_from_queue()

void delete_segment_from_queue ( PTCP_QUEUE  queue,
UINT32  ackNo 
)

Definition at line 316 of file TCB.c.

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

◆ delete_tcb()

void delete_tcb ( PNETSIM_SOCKET  s)

Definition at line 132 of file TCB.c.

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

◆ find_socket()

PNETSIM_SOCKET find_socket ( NETSIM_ID  devId,
NETSIM_IPAddress  srcIP,
NETSIM_IPAddress  destIP,
UINT16  srcPort,
UINT16  destPort 
)

Definition at line 117 of file TCP_Socket.c.

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

◆ find_socket_at_dest()

PNETSIM_SOCKET find_socket_at_dest ( NetSim_PACKET packet)

Definition at line 164 of file TCP_Socket.c.

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

◆ find_socket_at_source()

PNETSIM_SOCKET find_socket_at_source ( NetSim_PACKET packet)

Definition at line 155 of file TCP_Socket.c.

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

◆ free_tcb()

void free_tcb ( PTCB  tcb)

Definition at line 126 of file TCB.c.

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

◆ get_copy_segment_from_queue()

NetSim_PACKET * get_copy_segment_from_queue ( PTCP_QUEUE  queue,
UINT32  seqNo,
bool *  isSacked 
)

Definition at line 285 of file TCB.c.

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

◆ get_cwnd_print()

UINT32 get_cwnd_print ( PNETSIM_SOCKET  s)

Definition at line 200 of file Congestion.c.

Here is the caller graph for this function:

◆ get_earliest_copy_segment_from_queue()

NetSim_PACKET * get_earliest_copy_segment_from_queue ( PTCP_QUEUE  queue)

Definition at line 273 of file TCB.c.

◆ get_earliest_segment_from_queue()

NetSim_PACKET * get_earliest_segment_from_queue ( PTCP_QUEUE  queue)

Definition at line 258 of file TCB.c.

◆ get_highAck()

UINT32 get_highAck ( PNETSIM_SOCKET  s)

Definition at line 23 of file SACK.c.

Here is the caller graph for this function:

◆ GET_PACKET_FROM_APP()

NetSim_PACKET * GET_PACKET_FROM_APP ( bool  isRemove)
Here is the caller graph for this function:

◆ get_RTT()

double get_RTT ( PTCB  tcb,
UINT  ackNo 
)

Definition at line 372 of file TCB.c.

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

◆ get_seg_len()

UINT32 get_seg_len ( NetSim_PACKET p)

Definition at line 307 of file TCB.c.

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

◆ get_segment_from_queue()

NetSim_PACKET * get_segment_from_queue ( PTCP_QUEUE  queue,
UINT32  seqNo 
)

Definition at line 229 of file TCB.c.

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

◆ get_shift_count()

UINT8 get_shift_count ( PNETSIM_SOCKET  s)

Definition at line 35 of file WindowScale.c.

◆ get_tcp_ack_type_from_str()

TCPACKTYPE get_tcp_ack_type_from_str ( char *  szVal)

Definition at line 236 of file TCP.c.

◆ GET_TCP_DEV_VAR()

static PTCP_DEV_VAR GET_TCP_DEV_VAR ( NETSIM_ID  d)
static

Definition at line 167 of file TCP.h.

Here is the caller graph for this function:

◆ get_tcp_variant_from_str()

TCPVARIANT get_tcp_variant_from_str ( char *  szVal)

Definition at line 217 of file TCP.c.

◆ handle_rto_timer()

void handle_rto_timer ( )

Definition at line 101 of file RTO.c.

Here is the caller graph for this function:

◆ isAnySegmentInQueue()

bool isAnySegmentInQueue ( PTCP_QUEUE  queue)

Definition at line 348 of file TCB.c.

Here is the caller graph for this function:

◆ isSegmentInQueue()

bool isSegmentInQueue ( PTCP_QUEUE  queue,
NetSim_PACKET packet 
)

Definition at line 214 of file TCB.c.

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

◆ isSynbitSet()

bool isSynbitSet ( NetSim_PACKET packet)

Definition at line 38 of file TCP_Packet.c.

Here is the call graph for this function:

◆ isSynPacket()

bool isSynPacket ( NetSim_PACKET packet)

Definition at line 28 of file TCP_Packet.c.

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

◆ packet_arrive_at_closed_state()

void packet_arrive_at_closed_state ( PNETSIM_SOCKET  s,
NetSim_PACKET p 
)

Definition at line 206 of file TCP_Connection.c.

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

◆ packet_arrive_from_application_layer()

int packet_arrive_from_application_layer ( )

Definition at line 76 of file TCP_ApplicationInterface.c.

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

◆ packet_arrive_from_network_layer()

void packet_arrive_from_network_layer ( )

Definition at line 61 of file TCP_NetworkInterface.c.

Here is the call graph for this function:

◆ packet_arrives_at_incoming_tcp()

void packet_arrives_at_incoming_tcp ( PNETSIM_SOCKET  s,
NetSim_PACKET p 
)

Definition at line 427 of file TCP_Incoming.c.

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

◆ packet_arrives_at_listen_state()

void packet_arrives_at_listen_state ( PNETSIM_SOCKET  s,
NetSim_PACKET p 
)

Definition at line 231 of file TCP_Connection.c.

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

◆ packet_arrives_at_synsent_state()

void packet_arrives_at_synsent_state ( PNETSIM_SOCKET  s,
NetSim_PACKET p 
)

Definition at line 259 of file TCP_Connection.c.

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

◆ print_tcp_log()

void print_tcp_log ( char *  format,
  ... 
)
Here is the caller graph for this function:

◆ rcv_SYN()

void rcv_SYN ( PNETSIM_SOCKET  s,
NetSim_PACKET syn 
)

Definition at line 136 of file TCP_Connection.c.

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

◆ resend_segment()

void resend_segment ( PNETSIM_SOCKET  s,
NetSim_PACKET expired 
)

Definition at line 64 of file TCP_Outgoing.c.

Here is the call graph for this function:

◆ resend_segment_without_timeout()

void resend_segment_without_timeout ( PNETSIM_SOCKET  s,
UINT  seq 
)

Definition at line 79 of file TCP_Outgoing.c.

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

◆ resend_syn()

void resend_syn ( PNETSIM_SOCKET  s)

Definition at line 64 of file TCP_Connection.c.

Here is the call graph for this function:

◆ restart_rto_timer()

void restart_rto_timer ( PNETSIM_SOCKET  s)

Definition at line 152 of file RTO.c.

Here is the caller graph for this function:

◆ send_ack()

void send_ack ( PNETSIM_SOCKET  s,
double  time,
UINT32  seqNo,
UINT32  ackNo 
)

Definition at line 188 of file TCP_Connection.c.

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

◆ send_ack_or_not()

bool send_ack_or_not ( PNETSIM_SOCKET  s)

Definition at line 24 of file DelayedAck.c.

Here is the caller graph for this function:

◆ send_fin()

void send_fin ( PNETSIM_SOCKET  s)

Definition at line 341 of file TCP_Connection.c.

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

◆ send_fin_ack()

void send_fin_ack ( PNETSIM_SOCKET  s,
double  time,
UINT32  seqNo,
UINT32  ackNo 
)

Definition at line 196 of file TCP_Connection.c.

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

◆ send_rst()

void send_rst ( PNETSIM_SOCKET  s,
NetSim_PACKET p,
UINT  c 
)

Definition at line 181 of file TCP_Connection.c.

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

◆ send_segment()

void send_segment ( PNETSIM_SOCKET  s)

Definition at line 18 of file TCP_Outgoing.c.

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

◆ send_to_application()

void send_to_application ( PNETSIM_SOCKET  s,
NetSim_PACKET p 
)

Definition at line 147 of file TCP_ApplicationInterface.c.

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

◆ send_to_network()

void send_to_network ( NetSim_PACKET packet,
PNETSIM_SOCKET  s 
)

Definition at line 19 of file TCP_NetworkInterface.c.

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

◆ set_ack_type()

void set_ack_type ( PNETSIM_SOCKET  s,
PTCP_DEV_VAR  tcp 
)

Definition at line 17 of file DelayedAck.c.

Here is the caller graph for this function:

◆ set_highRxt()

void set_highRxt ( PNETSIM_SOCKET  s,
UINT32  seq 
)

Definition at line 38 of file SACK.c.

Here is the caller graph for this function:

◆ set_rescueRxt()

void set_rescueRxt ( PNETSIM_SOCKET  s,
UINT32  seq 
)

Definition at line 48 of file SACK.c.

Here is the caller graph for this function:

◆ set_window_scaling_option()

void set_window_scaling_option ( PNETSIM_SOCKET  s,
PTCP_DEV_VAR  tcp 
)

Definition at line 40 of file WindowScale.c.

Here is the caller graph for this function:

◆ start_timewait_timer()

void start_timewait_timer ( PNETSIM_SOCKET  s)

Definition at line 246 of file TCP.c.

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

◆ state_to_str()

char * state_to_str ( TCP_CONNECTION_STATE  state)

Definition at line 28 of file TCB.c.

Here is the caller graph for this function:

◆ tcp_accept()

PNETSIM_SOCKET tcp_accept ( PNETSIM_SOCKET  s,
NetSim_PACKET p 
)

Definition at line 231 of file TCP_Socket.c.

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

◆ tcp_active_open()

void tcp_active_open ( PNETSIM_SOCKET  s)

Definition at line 32 of file TCP_Connection.c.

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

◆ tcp_bind()

void tcp_bind ( PNETSIM_SOCKET  s,
PSOCKETADDRESS  addr 
)

Definition at line 216 of file TCP_Socket.c.

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

◆ tcp_change_state()

void tcp_change_state ( PNETSIM_SOCKET  s,
TCP_CONNECTION_STATE  state 
)

Definition at line 138 of file TCB.c.

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

◆ tcp_close()

void tcp_close ( PNETSIM_SOCKET  s)

Definition at line 286 of file TCP_Socket.c.

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

◆ tcp_close_socket()

void tcp_close_socket ( PNETSIM_SOCKET  s,
NETSIM_ID  devId 
)

Definition at line 187 of file TCP_Socket.c.

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

◆ tcp_connect()

void tcp_connect ( PNETSIM_SOCKET  s,
PSOCKETADDRESS  localAddr,
PSOCKETADDRESS  remoteAddr 
)

Definition at line 206 of file TCP_Socket.c.

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

◆ tcp_create_metrics()

void tcp_create_metrics ( PNETSIM_SOCKET  s)
Here is the caller graph for this function:

◆ tcp_create_socket()

PNETSIM_SOCKET tcp_create_socket ( )

Definition at line 180 of file TCP_Socket.c.

Here is the caller graph for this function:

◆ tcp_init()

void tcp_init ( NETSIM_ID  d)

Definition at line 46 of file TCP_ApplicationInterface.c.

Here is the call graph for this function:

◆ tcp_listen()

void tcp_listen ( PNETSIM_SOCKET  s,
void(*)(PNETSIM_SOCKET, NetSim_PACKET *)  listen_callback 
)

Definition at line 224 of file TCP_Socket.c.

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

◆ tcp_passive_open()

void tcp_passive_open ( PNETSIM_SOCKET  s,
PNETSIM_SOCKET  ls 
)

Definition at line 40 of file TCP_Connection.c.

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

◆ tcp_sack_fastRetransmit()

void tcp_sack_fastRetransmit ( PNETSIM_SOCKET  s)

Definition at line 312 of file SACK.c.

Here is the call graph for this function:

◆ tcp_sack_isLost()

bool tcp_sack_isLost ( PNETSIM_SOCKET  s,
UINT  seqNum 
)

Definition at line 170 of file SACK.c.

Here is the caller graph for this function:

◆ tcp_sack_lossRecoveryPhase()

bool tcp_sack_lossRecoveryPhase ( PNETSIM_SOCKET  s)

Definition at line 321 of file SACK.c.

Here is the call graph for this function:

◆ update_seq_num_on_receiving()

void update_seq_num_on_receiving ( PNETSIM_SOCKET  s,
NetSim_PACKET p 
)

Definition at line 358 of file TCB.c.

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

◆ window_scale_get_cwnd()

UINT32 window_scale_get_cwnd ( PNETSIM_SOCKET  s)

Definition at line 50 of file WindowScale.c.

Here is the caller graph for this function:

◆ window_scale_get_wnd()

UINT16 window_scale_get_wnd ( PNETSIM_SOCKET  s)

Definition at line 63 of file WindowScale.c.

Here is the caller graph for this function:

◆ write_congestion_plot()

void write_congestion_plot ( PNETSIM_SOCKET  s,
NetSim_PACKET packet 
)

Definition at line 276 of file TCP.c.

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