tcp_socket_data Struct Reference
[Transmission Control Protocol (TCP) Service]

TCP socket specific data. More...

#include <tcp.h>

Collaboration diagram for tcp_socket_data:
Collaboration graph
[legend]

Data Fields

tcp_socket_state_t state
 TCP socket state.
size_t data_fragment_size
 Data fragment size.
device_id_t device_id
 Device identifier.
int backlog
 Listening backlog.
int listening_socket_id
 Segment size.
size_t treshold
 Treshold size in bytes.
size_t window
 Window size in bytes.
suseconds_t timeout
 Acknowledgement timeout.
uint32_t acknowledged
 Last acknowledged byte.
uint32_t next_incoming
 Next incoming sequence number.
uint32_t fin_incoming
 Incoming FIN.
uint32_t next_outgoing
 Next outgoing sequence number.
uint32_t last_outgoing
 Last outgoing sequence number.
uint32_t fin_outgoing
 Outgoing FIN.
uint32_t expected
 Expected sequence number by the remote host.
int expected_count
 Expected sequence number counter.
packet_t incoming
 Incoming packet queue.
packet_t outgoing
 Outgoing packet queue.
ip_pseudo_header_ref pseudo_header
 IP pseudo header.
size_t headerlen
 IP pseudo header length.
struct sockaddraddr
 Remote host address.
socklen_t addrlen
 Remote host address length.
uint16_t dest_port
 Remote host port.
socket_cores_ref local_sockets
 Parent local sockets.
fibril_rwlock_t * local_lock
 Local sockets safety lock.
tcp_operation_t operation
 Pending operation data.
int timeout_count
 Timeouts in a row counter.

Detailed Description

TCP socket specific data.


Field Documentation

Last acknowledged byte.

Referenced by tcp_refresh_socket_data().

Listening backlog.

The maximal number of connected but not yet accepted sockets.

Referenced by tcp_listen_message(), and tcp_process_syn_received().

Expected sequence number by the remote host.

The sequence number the other host expects. The notification is sent only upon a packet reecival.

Referenced by tcp_get_packets_to_send(), tcp_process_acknowledgement(), and tcp_refresh_socket_data().

Expected sequence number counter.

Counts the number of received notifications for the same sequence number.

Referenced by tcp_process_acknowledgement().

Incoming FIN.

Referenced by tcp_process_established().

Outgoing FIN.

Referenced by tcp_process_acknowledgement(), and tcp_queue_prepare_packet().

Incoming packet queue.

Packets are buffered until received in the right order. The packets are excluded after successfully read. Packets are sorted by their starting byte. Packets metric is set as their data length.

Referenced by tcp_process_established().

Last outgoing sequence number.

Referenced by tcp_get_packets_to_send(), tcp_process_established(), and tcp_refresh_socket_data().

Segment size.

Parent listening socket identifier. Set if this socket is an accepted one.

Referenced by tcp_process_listen(), and tcp_process_syn_received().

fibril_rwlock_t* tcp_socket_data::local_lock

Local sockets safety lock.

May be locked for writing while holding the global lock for reading when changing the local sockets only. The global lock may to be locked only before locking the local lock. The global lock may be locked more weakly than the local lock. The global lock may be released before releasing the local lock.

See also:
tcp_globals:lock

Referenced by tcp_close_message(), tcp_connect_core(), tcp_process_client_messages(), tcp_process_established(), tcp_process_listen(), tcp_process_packet(), tcp_process_syn_received(), tcp_process_syn_sent(), tcp_release_after_timeout(), tcp_retransmit_packet(), tcp_send_message(), and tcp_timeout().

Outgoing packet queue.

Packets are buffered until acknowledged by the remote host in the right order. The packets are excluded after acknowledged. Packets are sorted by their starting byte. Packets metric is set as their data length.

Referenced by tcp_get_packets_to_send(), tcp_process_acknowledgement(), tcp_queue_packet(), and tcp_retransmit_packet().

Acknowledgement timeout.

Referenced by tcp_refresh_socket_data(), and tcp_send_prepare_packet().

Timeouts in a row counter.

If TCP_MAX_TIMEOUTS is reached, the connection is lost.

Referenced by tcp_process_packet(), and tcp_timeout().


The documentation for this struct was generated from the following file:

Generated on Thu Mar 11 20:48:30 2010 for Networking and TCP/IP stack for HelenOS system by  doxygen 1.6.1