TAS
TCP Acceleration as an OS Service
Data Fields
connection Struct Reference

#include <internal.h>

Collaboration diagram for connection:
Collaboration graph
[legend]

Data Fields

struct connectionht_next
 
struct nicif_completion comp
 
uint32_t flow_id
 
uint32_t fn_core
 
uint32_t flags
 
uint16_t flow_group
 
struct connection_cc_dctcp_win dctcp_win
 
struct connection_cc_timely timely
 
struct connection_cc_dctcp_rate dctcp_rate
 
Application interface
uint64_t opaque
 
struct app_contextctx
 
struct app_contextnew_ctx
 
struct connectionapp_next
 
uint32_t db_id
 
Data buffers
struct packetmem_handlerx_handle
 
struct packetmem_handletx_handle
 
uint8_t * rx_buf
 
uint8_t * tx_buf
 
uint32_t rx_len
 
uint32_t tx_len
 
Address information
uint64_t remote_mac
 
uint32_t remote_ip
 
uint32_t local_ip
 
uint16_t remote_port
 
uint16_t local_port
 
Connection state
enum connection_status status
 
uint32_t remote_seq
 
uint32_t local_seq
 
uint32_t syn_ts
 
Timeouts
uint32_t timeout
 
struct timeout to
 
int to_attempts
 
int to_armed
 
Congestion control
uint32_t cc_last_ts
 
uint32_t cc_rtt
 
uint16_t cc_last_drops
 
uint16_t cc_last_acks
 
uint32_t cc_last_ackb
 
uint32_t cc_last_ecnb
 
uint32_t cc_rate
 
uint32_t cc_rexmits
 
union {
   struct connection_cc_dctcp_win   dctcp_win
 
   struct connection_cc_timely   timely
 
   struct connection_cc_dctcp_rate   dctcp_rate
 
cc
 
uint32_t cnt_tx_pending
 
uint32_t ts_tx_pending
 
struct connectioncc_next
 

Detailed Description

TCP connection state

Definition at line 416 of file internal.h.

Field Documentation

◆ app_next

struct connection* connection::app_next

Link list pointer for application connections.

Definition at line 428 of file internal.h.

Referenced by appif_accept_conn().

◆ cc

union { ... } connection::cc

Data for CC algorithm.

Referenced by cc_conn_remove().

◆ cc_last_ackb

uint32_t connection::cc_last_ackb

Acknowledged bytes

Definition at line 508 of file internal.h.

◆ cc_last_acks

uint16_t connection::cc_last_acks

Number of ACKs received

Definition at line 506 of file internal.h.

◆ cc_last_drops

uint16_t connection::cc_last_drops

Number of dropped segments

Definition at line 504 of file internal.h.

◆ cc_last_ecnb

uint32_t connection::cc_last_ecnb

Number of ACKd bytes with ECN marks

Definition at line 510 of file internal.h.

◆ cc_last_ts

uint32_t connection::cc_last_ts

Timestamp when control loop ran last

Definition at line 500 of file internal.h.

Referenced by cc_conn_init(), and cc_conn_remove().

◆ cc_next

struct connection* connection::cc_next

Linked list for CC connection list.

Definition at line 530 of file internal.h.

Referenced by cc_conn_init(), and cc_conn_remove().

◆ cc_rate

uint32_t connection::cc_rate

Congestion rate limit.

Definition at line 513 of file internal.h.

Referenced by cc_conn_remove(), and tcp_timeout().

◆ cc_rexmits

uint32_t connection::cc_rexmits

Had retransmits.

Definition at line 515 of file internal.h.

Referenced by cc_conn_init(), and cc_conn_remove().

◆ cc_rtt

uint32_t connection::cc_rtt

Last rtt estimate

Definition at line 502 of file internal.h.

Referenced by cc_conn_init(), and cc_conn_remove().

◆ cnt_tx_pending

uint32_t connection::cnt_tx_pending

#control intervals with data in tx buffer but no ACKs

Definition at line 526 of file internal.h.

Referenced by cc_conn_remove(), tcp_accept(), and tcp_open().

◆ comp

struct nicif_completion connection::comp

Asynchronous completion information.

Definition at line 536 of file internal.h.

Referenced by tcp_open(), tcp_poll(), and tcp_timeout().

◆ ctx

struct app_context* connection::ctx

Application context this connection is assigned to.

Definition at line 424 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_closed(), appif_conn_opened(), tcp_accept(), and tcp_open().

◆ db_id

uint32_t connection::db_id

Doorbell id.

Definition at line 430 of file internal.h.

Referenced by tcp_accept(), tcp_open(), and tcp_timeout().

◆ dctcp_rate

struct connection_cc_dctcp_rate connection::dctcp_rate

Rate-based dctcp

Definition at line 523 of file internal.h.

Referenced by cc_conn_remove().

◆ dctcp_win

struct connection_cc_dctcp_win connection::dctcp_win

Window-based dctcp

Definition at line 519 of file internal.h.

Referenced by cc_conn_remove().

◆ flags

uint32_t connection::flags

Flags: see nicif_connection_flags

Definition at line 542 of file internal.h.

Referenced by tcp_accept(), tcp_open(), and tcp_timeout().

◆ flow_group

uint16_t connection::flow_group

Flow group (RSS bucket for steering).

Definition at line 544 of file internal.h.

Referenced by cc_conn_remove(), and tcp_timeout().

◆ flow_id

uint32_t connection::flow_id

NIC flow state ID.

Definition at line 538 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_opened(), cc_conn_remove(), tcp_close(), and tcp_timeout().

◆ fn_core

uint32_t connection::fn_core

FlexNIC emulator core.

Definition at line 540 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_opened(), and tcp_timeout().

◆ ht_next

struct connection* connection::ht_next

Linked list in hash table.

Definition at line 534 of file internal.h.

Referenced by tcp_accept(), and tcp_timeout().

◆ local_ip

uint32_t connection::local_ip

Local IP to be used.

Definition at line 460 of file internal.h.

Referenced by tcp_open(), and tcp_timeout().

◆ local_port

uint16_t connection::local_port

Local port number.

Definition at line 464 of file internal.h.

Referenced by appif_conn_opened(), tcp_accept(), tcp_open(), and tcp_timeout().

◆ local_seq

uint32_t connection::local_seq

Local sequence number.

Definition at line 476 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_opened(), tcp_close(), tcp_open(), and tcp_timeout().

◆ new_ctx

struct app_context* connection::new_ctx

New application context if connection should be moved.

Definition at line 426 of file internal.h.

◆ opaque

uint64_t connection::opaque

Application-specified opaque value for connection.

Definition at line 422 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_closed(), appif_conn_opened(), tcp_accept(), tcp_open(), and tcp_timeout().

◆ remote_ip

uint32_t connection::remote_ip

Peer IP address.

Definition at line 458 of file internal.h.

Referenced by appif_accept_conn(), tcp_open(), and tcp_timeout().

◆ remote_mac

uint64_t connection::remote_mac

Peer MAC address for connection.

Definition at line 456 of file internal.h.

Referenced by tcp_open(), and tcp_timeout().

◆ remote_port

uint16_t connection::remote_port

Peer port number.

Definition at line 462 of file internal.h.

Referenced by appif_accept_conn(), tcp_open(), and tcp_timeout().

◆ remote_seq

uint32_t connection::remote_seq

Peer sequence number.

Definition at line 474 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_opened(), tcp_close(), tcp_open(), and tcp_timeout().

◆ rx_buf

uint8_t* connection::rx_buf

Receive buffer pointer.

Definition at line 442 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_opened(), and tcp_timeout().

◆ rx_handle

struct packetmem_handle* connection::rx_handle

Memory manager handle for receive buffer.

Definition at line 438 of file internal.h.

Referenced by tcp_timeout().

◆ rx_len

uint32_t connection::rx_len

Receive buffer size.

Definition at line 446 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_opened(), and tcp_timeout().

◆ status

enum connection_status connection::status

Current connection state machine state.

Definition at line 472 of file internal.h.

Referenced by tcp_accept(), tcp_close(), tcp_destroy(), tcp_open(), tcp_poll(), and tcp_timeout().

◆ syn_ts

uint32_t connection::syn_ts

Timestamp received with SYN/SYN-ACK packet

Definition at line 478 of file internal.h.

Referenced by tcp_timeout().

◆ timely

struct connection_cc_timely connection::timely

TIMELY

Definition at line 521 of file internal.h.

Referenced by cc_conn_remove().

◆ timeout

uint32_t connection::timeout

Timeout in microseconds (used for handshake).

Definition at line 486 of file internal.h.

Referenced by tcp_timeout().

◆ to

struct timeout connection::to

Timeout object.

Definition at line 488 of file internal.h.

Referenced by tcp_close(), and tcp_timeout().

◆ to_armed

int connection::to_armed

1 if timeout is currently armed.

Definition at line 492 of file internal.h.

Referenced by tcp_close(), and tcp_timeout().

◆ to_attempts

int connection::to_attempts

Number of times timout triggered.

Definition at line 490 of file internal.h.

Referenced by tcp_timeout().

◆ ts_tx_pending

uint32_t connection::ts_tx_pending

Timestamp when flow was first not moving

Definition at line 528 of file internal.h.

Referenced by cc_conn_remove().

◆ tx_buf

uint8_t* connection::tx_buf

Transmit buffer pointer.

Definition at line 444 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_opened(), and tcp_timeout().

◆ tx_handle

struct packetmem_handle* connection::tx_handle

Memory manager handle for transmit buffer.

Definition at line 440 of file internal.h.

Referenced by tcp_timeout().

◆ tx_len

uint32_t connection::tx_len

Transmit buffer size.

Definition at line 448 of file internal.h.

Referenced by appif_accept_conn(), appif_conn_opened(), cc_conn_remove(), and tcp_timeout().


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