|
AquilaOS documentation
How it works, and its code
|
A connection (its control block, or PCB). More...
#include <tcp.h>
Data Fields | |
| int | state |
| uint32_t | laddr |
| uint32_t | raddr |
| uint16_t | lport |
| uint16_t | rport |
| struct tcp_pcb * | next |
| struct hashmap_node * | hnode |
| uint32_t | iss |
| uint32_t | snd_una |
| uint32_t | snd_nxt |
| uint32_t | snd_max |
| uint32_t | snd_wnd |
| uint32_t | snd_wl1 |
| uint32_t | snd_wl2 |
| uint16_t | mss |
| struct ringbuf * | sndbuf |
| int | fin_queued |
| uint32_t | irs |
| uint32_t | rcv_nxt |
| uint32_t | rcv_adv |
| struct ringbuf * | rcvbuf |
| struct netbuf * | ooo |
| int | fin_received |
| uint64_t | srtt |
| uint64_t | rttvar |
| uint64_t | rto |
| int | rtt_timing |
| uint32_t | rtt_seq |
| uint64_t | rtt_start |
| int | retries |
| int | persist |
| uint32_t | cwnd |
| uint32_t | ssthresh |
| int | dupacks |
| int | in_recovery |
| uint32_t | recover |
| int | ack_pending |
| int | nodelay |
| int | keepalive |
| int | keep_probes |
| int | reuseaddr |
| struct callout | rexmt |
| struct callout | dack |
| struct callout | timer2 |
| struct tcp_pcb * | parent |
| struct tcp_pcb * | accept_head |
| struct tcp_pcb * | accept_tail |
| struct tcp_pcb * | accept_next |
| int | backlog |
| int | qlen |
| int | detached |
| int | connected |
| int | error |
| int | shut_rd |
| uint64_t | rcvtimeo |
| uint64_t | sndtimeo |
| struct waitq | wait |
A connection (its control block, or PCB).
It may outlive its socket, to send what is left, or in TIME_WAIT, and it has no socket until it is accepted.
| struct tcp_pcb* tcp_pcb::accept_head |
Definition at line 119 of file tcp.h.
Referenced by socket_tcp_accept(), socket_tcp_can_read(), socket_tcp_shutdown(), tcp_established(), and unlink_parent().
| struct tcp_pcb * tcp_pcb::accept_next |
Definition at line 119 of file tcp.h.
Referenced by tcp_established(), and unlink_parent().
| struct tcp_pcb * tcp_pcb::accept_tail |
Definition at line 119 of file tcp.h.
Referenced by tcp_established(), and unlink_parent().
| int tcp_pcb::ack_pending |
Definition at line 105 of file tcp.h.
Referenced by segment(), and tcp_dack().
| int tcp_pcb::backlog |
Definition at line 120 of file tcp.h.
Referenced by listen_input(), and socket_tcp_listen().
| int tcp_pcb::connected |
Definition at line 123 of file tcp.h.
Referenced by socket_tcp_can_read(), socket_tcp_can_write(), socket_tcp_connect(), socket_tcp_recv(), socket_tcp_send(), and tcp_established().
| uint32_t tcp_pcb::cwnd |
Definition at line 100 of file tcp.h.
Referenced by ack_input(), retransmit_first(), rexmt_timeout(), tcp_established(), and tcp_output().
| struct callout tcp_pcb::dack |
Definition at line 112 of file tcp.h.
Referenced by segment(), tcp_closed(), tcp_dack(), and tcp_pcb_free().
| int tcp_pcb::detached |
Definition at line 122 of file tcp.h.
Referenced by segment_input(), socket_tcp_shutdown(), tcp_closed(), and tcp_fin_wait_2().
| int tcp_pcb::dupacks |
Definition at line 101 of file tcp.h.
Referenced by ack_input(), and rexmt_timeout().
| int tcp_pcb::error |
Definition at line 124 of file tcp.h.
Referenced by socket_tcp_can_read(), socket_tcp_can_write(), socket_tcp_connect(), socket_tcp_getsockopt(), socket_tcp_recv(), socket_tcp_send(), and tcp_drop().
| int tcp_pcb::fin_queued |
Definition at line 82 of file tcp.h.
Referenced by ack_input(), can_send(), send_fin(), and tcp_output().
| int tcp_pcb::fin_received |
Definition at line 89 of file tcp.h.
Referenced by fin_input(), socket_tcp_can_read(), and socket_tcp_recv().
| struct hashmap_node* tcp_pcb::hnode |
Definition at line 74 of file tcp.h.
Referenced by tcp_closed(), tcp_insert(), and tcp_pcb_free().
| int tcp_pcb::in_recovery |
Definition at line 102 of file tcp.h.
Referenced by ack_input(), and rexmt_timeout().
| uint32_t tcp_pcb::irs |
Definition at line 86 of file tcp.h.
Referenced by listen_input(), and syn_sent_input().
| uint32_t tcp_pcb::iss |
Definition at line 78 of file tcp.h.
Referenced by listen_input(), socket_tcp_connect(), syn_sent_input(), and tcp_send_syn().
| int tcp_pcb::keep_probes |
Definition at line 108 of file tcp.h.
Referenced by keepalive_timeout(), and tcp_keepalive_reset().
| int tcp_pcb::keepalive |
Definition at line 107 of file tcp.h.
Referenced by keepalive_timeout(), listen_input(), socket_tcp_getsockopt(), socket_tcp_setsockopt(), and tcp_keepalive_reset().
| uint32_t tcp_pcb::laddr |
Definition at line 70 of file tcp.h.
Referenced by bind_port(), key_eq(), listen_input(), segment(), socket_tcp_connect(), socket_tcp_getname(), tcp_insert(), tcp_iss(), and tcp_listener().
| uint16_t tcp_pcb::lport |
Definition at line 71 of file tcp.h.
Referenced by bind_port(), key_eq(), listen_input(), segment(), socket_tcp_bind(), socket_tcp_connect(), socket_tcp_getname(), socket_tcp_listen(), tcp_insert(), tcp_iss(), and tcp_listener().
| uint16_t tcp_pcb::mss |
Definition at line 80 of file tcp.h.
Referenced by ack_input(), retransmit_first(), rexmt_timeout(), socket_tcp_getsockopt(), tcp_established(), tcp_output(), tcp_pcb_new(), and tcp_rcv_window().
| struct tcp_pcb* tcp_pcb::next |
Definition at line 73 of file tcp.h.
Referenced by bind_port(), port_used(), socket_tcp_shutdown(), tcp_listener(), tcp_pcb_free(), and tcp_pcb_new().
| int tcp_pcb::nodelay |
Definition at line 106 of file tcp.h.
Referenced by listen_input(), retransmit_first(), socket_tcp_getsockopt(), socket_tcp_setsockopt(), and tcp_output().
| struct netbuf* tcp_pcb::ooo |
Definition at line 88 of file tcp.h.
Referenced by ooo_drain(), ooo_insert(), ooo_purge(), segment_input(), socket_tcp_shutdown(), and tcp_pcb_free().
| struct tcp_pcb* tcp_pcb::parent |
Definition at line 118 of file tcp.h.
Referenced by listen_input(), tcp_closed(), tcp_established(), and unlink_parent().
| int tcp_pcb::persist |
Definition at line 97 of file tcp.h.
Referenced by ack_input(), rexmt_timeout(), and tcp_output().
| int tcp_pcb::qlen |
Definition at line 120 of file tcp.h.
Referenced by listen_input(), and unlink_parent().
| uint32_t tcp_pcb::raddr |
Definition at line 70 of file tcp.h.
Referenced by key_eq(), listen_input(), our_mss(), segment(), set_mss(), socket_tcp_accept(), socket_tcp_connect(), socket_tcp_getname(), socket_tcp_recv(), tcp_insert(), and tcp_iss().
| uint32_t tcp_pcb::rcv_adv |
Definition at line 86 of file tcp.h.
Referenced by segment(), segment_input(), tcp_rcv_window(), and window_update().
| uint32_t tcp_pcb::rcv_nxt |
Definition at line 86 of file tcp.h.
Referenced by acceptable(), fin_input(), listen_input(), ooo_drain(), segment(), segment_input(), syn_sent_input(), tcp_rcv_window(), and window_update().
| struct ringbuf* tcp_pcb::rcvbuf |
Definition at line 87 of file tcp.h.
Referenced by ooo_drain(), segment_input(), socket_tcp_can_read(), socket_tcp_ioctl(), socket_tcp_recv(), socket_tcp_shutdown(), tcp_pcb_free(), tcp_pcb_new(), and tcp_rcv_window().
| uint64_t tcp_pcb::rcvtimeo |
Definition at line 126 of file tcp.h.
Referenced by socket_tcp_accept(), socket_tcp_getsockopt(), socket_tcp_recv(), and socket_tcp_setsockopt().
| uint32_t tcp_pcb::recover |
Definition at line 103 of file tcp.h.
Referenced by ack_input().
| int tcp_pcb::retries |
Definition at line 96 of file tcp.h.
Referenced by ack_input(), rexmt_timeout(), segment_input(), socket_tcp_connect(), syn_sent_input(), and tcp_send_syn().
| int tcp_pcb::reuseaddr |
Definition at line 109 of file tcp.h.
Referenced by bind_port(), port_used(), socket_tcp_getsockopt(), and socket_tcp_setsockopt().
| struct callout tcp_pcb::rexmt |
Definition at line 111 of file tcp.h.
Referenced by ack_input(), rexmt_timeout(), segment_input(), syn_sent_input(), tcp_closed(), tcp_output(), tcp_pcb_free(), tcp_rexmt_start(), and tcp_time_wait().
| uint16_t tcp_pcb::rport |
Definition at line 71 of file tcp.h.
Referenced by key_eq(), listen_input(), segment(), socket_tcp_accept(), socket_tcp_connect(), socket_tcp_getname(), socket_tcp_recv(), tcp_insert(), and tcp_iss().
| uint64_t tcp_pcb::rto |
Definition at line 92 of file tcp.h.
Referenced by rexmt_timeout(), tcp_output(), tcp_pcb_new(), tcp_rexmt_start(), and tcp_rtt_update().
| uint32_t tcp_pcb::rtt_seq |
Definition at line 94 of file tcp.h.
Referenced by rtt_sample(), tcp_output(), and tcp_send_syn().
| uint64_t tcp_pcb::rtt_start |
Definition at line 95 of file tcp.h.
Referenced by tcp_output(), and tcp_send_syn().
| int tcp_pcb::rtt_timing |
Definition at line 93 of file tcp.h.
Referenced by retransmit_first(), rexmt_timeout(), rtt_sample(), tcp_output(), and tcp_send_syn().
| uint64_t tcp_pcb::rttvar |
Definition at line 92 of file tcp.h.
Referenced by tcp_rtt_update().
| int tcp_pcb::shut_rd |
Definition at line 125 of file tcp.h.
Referenced by socket_tcp_can_read(), socket_tcp_recv(), and socket_tcp_shut().
| uint32_t tcp_pcb::snd_max |
Definition at line 78 of file tcp.h.
Referenced by ack_input(), rexmt_timeout(), segment_input(), syn_sent_input(), tcp_established(), tcp_output(), and tcp_send_syn().
| uint32_t tcp_pcb::snd_nxt |
Definition at line 78 of file tcp.h.
Referenced by ack_input(), retransmit_first(), rexmt_timeout(), tcp_established(), tcp_output(), tcp_send_ack(), tcp_send_rst(), and tcp_send_syn().
| uint32_t tcp_pcb::snd_una |
Definition at line 78 of file tcp.h.
Referenced by ack_input(), listen_input(), retransmit_first(), rexmt_timeout(), segment_input(), socket_tcp_connect(), syn_sent_input(), tcp_established(), tcp_output(), and tcp_send_keepalive().
| uint32_t tcp_pcb::snd_wl1 |
Definition at line 79 of file tcp.h.
Referenced by ack_input(), listen_input(), segment_input(), and syn_sent_input().
| uint32_t tcp_pcb::snd_wl2 |
Definition at line 79 of file tcp.h.
Referenced by ack_input(), segment_input(), and syn_sent_input().
| uint32_t tcp_pcb::snd_wnd |
Definition at line 79 of file tcp.h.
Referenced by ack_input(), listen_input(), rexmt_timeout(), segment_input(), syn_sent_input(), and tcp_output().
| struct ringbuf* tcp_pcb::sndbuf |
Definition at line 81 of file tcp.h.
Referenced by ack_input(), rexmt_timeout(), segment(), socket_tcp_can_write(), socket_tcp_send(), tcp_output(), tcp_pcb_free(), and tcp_pcb_new().
| uint64_t tcp_pcb::sndtimeo |
Definition at line 126 of file tcp.h.
Referenced by socket_tcp_getsockopt(), socket_tcp_send(), and socket_tcp_setsockopt().
| uint64_t tcp_pcb::srtt |
Definition at line 92 of file tcp.h.
Referenced by tcp_rtt_update().
| uint32_t tcp_pcb::ssthresh |
Definition at line 100 of file tcp.h.
Referenced by ack_input(), rexmt_timeout(), and tcp_pcb_new().
| int tcp_pcb::state |
Definition at line 67 of file tcp.h.
Referenced by ack_input(), can_send(), fin_input(), keepalive_timeout(), listen_input(), rexmt_timeout(), segment_input(), send_fin(), sending(), socket_tcp_accept(), socket_tcp_bind(), socket_tcp_can_read(), socket_tcp_connect(), socket_tcp_getname(), socket_tcp_getsockopt(), socket_tcp_listen(), socket_tcp_recv(), socket_tcp_send(), socket_tcp_shut(), socket_tcp_shutdown(), syn_sent_input(), tcp_closed(), tcp_established(), tcp_input(), tcp_keepalive_reset(), tcp_pcb_new(), tcp_send_syn(), tcp_time_wait(), and window_update().
| struct callout tcp_pcb::timer2 |
Definition at line 113 of file tcp.h.
Referenced by keepalive_timeout(), tcp_closed(), tcp_fin_wait_2(), tcp_keepalive_reset(), tcp_pcb_free(), and tcp_time_wait().
| struct waitq tcp_pcb::wait |
Definition at line 127 of file tcp.h.
Referenced by socket_tcp_accept(), socket_tcp_connect(), socket_tcp_recv(), socket_tcp_send(), socket_tcp_wait_queue(), and tcp_wakeup().