FreeBSD kernel CXGBE device code
|
Go to the source code of this file.
Data Structures | |
struct | conn_params |
struct | ofld_tx_sdesc |
struct | ppod_region |
struct | ppod_reservation |
struct | pageset |
struct | ddp_buffer |
struct | ddp_pcb |
struct | toepcb |
struct | synq_entry |
struct | listen_ctx |
struct | tcb_histent |
struct | tom_data |
Macros | |
#define | LISTEN_HASH_SIZE 32 |
#define | MIN_RCV_WND (24 * 1024U) |
#define | MAX_RCV_WND ((1U << 27) - 1) |
#define | DDP_RSVD_WIN (16 * 1024U) |
#define | SB_DDP_INDICATE SB_IN_TOE /* soreceive must respond to indicate */ |
#define | USE_DDP_RX_FLOW_CONTROL |
#define | PPOD_SZ(n) ((n) * sizeof(struct pagepod)) |
#define | PPOD_SIZE (PPOD_SZ(1)) |
#define | PS_PPODS_WRITTEN 0x0001 /* Page pods written to the card. */ |
#define | DDP_LOCK(toep) mtx_lock(&(toep)->ddp.lock) |
#define | DDP_UNLOCK(toep) mtx_unlock(&(toep)->ddp.lock) |
#define | DDP_ASSERT_LOCKED(toep) mtx_assert(&(toep)->ddp.lock, MA_OWNED) |
#define | LCTX_RPL_PENDING 1 /* waiting for a CPL_PASS_OPEN_RPL */ |
#define | TE_RPL_PENDING 1 |
#define | TE_ACTIVE 2 |
#define | TS_RTO (1 << 0) |
#define | TS_DUPACKS (1 << 1) |
#define | TS_FASTREXMT (1 << 2) |
#define | TS_SND_BACKLOGGED (1 << 3) |
#define | TS_CWND_LIMITED (1 << 4) |
#define | TS_ECN_ECE (1 << 5) |
#define | TS_ECN_CWR (1 << 6) |
#define | TS_RESERVED (1 << 7) /* Unused. */ |
#define | CXGBE_ISO_TYPE(flags) ((flags) & 0x3) |
#define | CXGBE_ISO_F 0x4 |
Enumerations | |
enum | { TPF_ATTACHED = (1 << 0) , TPF_FLOWC_WR_SENT = (1 << 1) , TPF_TX_DATA_SENT = (1 << 2) , TPF_TX_SUSPENDED = (1 << 3) , TPF_SEND_FIN = (1 << 4) , TPF_FIN_SENT = (1 << 5) , TPF_ABORT_SHUTDOWN = (1 << 6) , TPF_CPL_PENDING = (1 << 7) , TPF_SYNQE = (1 << 8) , TPF_SYNQE_EXPANDED = (1 << 9) , TPF_FORCE_CREDITS = (1 << 10) , TPF_KTLS = (1 << 11) , TPF_INITIALIZED = (1 << 12) , TPF_TLS_RECEIVE = (1 << 13) , TPF_TLS_ESTABLISHED = (1 << 14) , TPF_WAITING_FOR_FINAL = (1<< 15) } |
enum | { DDP_OK = (1 << 0) , DDP_SC_REQ = (1 << 1) , DDP_ON = (1 << 2) , DDP_BUF0_ACTIVE = (1 << 3) , DDP_BUF1_ACTIVE = (1 << 4) , DDP_TASK_ACTIVE = (1 << 5) , DDP_DEAD = (1 << 6) } |
Functions | |
TAILQ_HEAD (pagesetq, pageset) | |
static int | ulp_mode (struct toepcb *toep) |
static struct tom_data * | tod_td (struct toedev *tod) |
static struct adapter * | td_adapter (struct tom_data *td) |
static void | set_mbuf_raw_wr (struct mbuf *m, bool raw) |
static bool | mbuf_raw_wr (struct mbuf *m) |
static void | set_mbuf_ulp_submode (struct mbuf *m, uint8_t ulp_submode) |
static uint8_t | mbuf_ulp_submode (struct mbuf *m) |
static void | set_mbuf_iscsi_iso (struct mbuf *m, bool iso) |
static bool | mbuf_iscsi_iso (struct mbuf *m) |
static void | set_mbuf_iscsi_iso_flags (struct mbuf *m, uint8_t flags) |
static uint8_t | mbuf_iscsi_iso_flags (struct mbuf *m) |
static void | set_mbuf_iscsi_iso_mss (struct mbuf *m, uint16_t mss) |
static uint16_t | mbuf_iscsi_iso_mss (struct mbuf *m) |
struct toepcb * | alloc_toepcb (struct vi_info *, int) |
int | init_toepcb (struct vi_info *, struct toepcb *) |
struct toepcb * | hold_toepcb (struct toepcb *) |
void | free_toepcb (struct toepcb *) |
void | offload_socket (struct socket *, struct toepcb *) |
void | restore_so_proto (struct socket *, bool) |
void | undo_offload_socket (struct socket *) |
void | final_cpl_received (struct toepcb *) |
void | insert_tid (struct adapter *, int, void *, int) |
void * | lookup_tid (struct adapter *, int) |
void | update_tid (struct adapter *, int, void *) |
void | remove_tid (struct adapter *, int, int) |
u_long | select_rcv_wnd (struct socket *) |
int | select_rcv_wscale (void) |
void | init_conn_params (struct vi_info *, struct offload_settings *, struct in_conninfo *, struct socket *, const struct tcp_options *, int16_t, struct conn_params *cp) |
__be64 | calc_options0 (struct vi_info *, struct conn_params *) |
__be32 | calc_options2 (struct vi_info *, struct conn_params *) |
uint64_t | select_ntuple (struct vi_info *, struct l2t_entry *) |
int | negative_advice (int) |
int | add_tid_to_history (struct adapter *, u_int) |
void | t4_init_connect_cpl_handlers (void) |
void | t4_uninit_connect_cpl_handlers (void) |
int | t4_connect (struct toedev *, struct socket *, struct nhop_object *, struct sockaddr *) |
void | act_open_failure_cleanup (struct adapter *, u_int, u_int) |
void | t4_init_listen_cpl_handlers (void) |
void | t4_uninit_listen_cpl_handlers (void) |
int | t4_listen_start (struct toedev *, struct tcpcb *) |
int | t4_listen_stop (struct toedev *, struct tcpcb *) |
void | t4_syncache_added (struct toedev *, void *) |
void | t4_syncache_removed (struct toedev *, void *) |
int | t4_syncache_respond (struct toedev *, void *, struct mbuf *) |
int | do_abort_req_synqe (struct sge_iq *, const struct rss_header *, struct mbuf *) |
int | do_abort_rpl_synqe (struct sge_iq *, const struct rss_header *, struct mbuf *) |
void | t4_offload_socket (struct toedev *, void *, struct socket *) |
void | synack_failure_cleanup (struct adapter *, int) |
void | aiotx_init_toep (struct toepcb *) |
int | t4_aio_queue_aiotx (struct socket *, struct kaiocb *) |
void | t4_init_cpl_io_handlers (void) |
void | t4_uninit_cpl_io_handlers (void) |
void | send_abort_rpl (struct adapter *, struct sge_ofld_txq *, int, int) |
void | send_flowc_wr (struct toepcb *, struct tcpcb *) |
void | send_reset (struct adapter *, struct toepcb *, uint32_t) |
int | send_rx_credits (struct adapter *, struct toepcb *, int) |
void | send_rx_modulate (struct adapter *, struct toepcb *) |
void | make_established (struct toepcb *, uint32_t, uint32_t, uint16_t) |
int | t4_close_conn (struct adapter *, struct toepcb *) |
void | t4_rcvd (struct toedev *, struct tcpcb *) |
void | t4_rcvd_locked (struct toedev *, struct tcpcb *) |
int | t4_tod_output (struct toedev *, struct tcpcb *) |
int | t4_send_fin (struct toedev *, struct tcpcb *) |
int | t4_send_rst (struct toedev *, struct tcpcb *) |
void | t4_set_tcb_field (struct adapter *, struct sge_wrq *, struct toepcb *, uint16_t, uint64_t, uint64_t, int, int) |
void | t4_push_frames (struct adapter *, struct toepcb *, int) |
void | t4_push_pdus (struct adapter *, struct toepcb *, int) |
int | t4_init_ppod_region (struct ppod_region *, struct t4_range *, u_int, const char *) |
void | t4_free_ppod_region (struct ppod_region *) |
int | t4_alloc_page_pods_for_ps (struct ppod_region *, struct pageset *) |
int | t4_alloc_page_pods_for_bio (struct ppod_region *, struct bio *, struct ppod_reservation *) |
int | t4_alloc_page_pods_for_buf (struct ppod_region *, vm_offset_t, int, struct ppod_reservation *) |
int | t4_alloc_page_pods_for_sgl (struct ppod_region *, struct ctl_sg_entry *, int, struct ppod_reservation *) |
int | t4_write_page_pods_for_ps (struct adapter *, struct sge_wrq *, int, struct pageset *) |
int | t4_write_page_pods_for_bio (struct adapter *, struct toepcb *, struct ppod_reservation *, struct bio *, struct mbufq *) |
int | t4_write_page_pods_for_buf (struct adapter *, struct toepcb *, struct ppod_reservation *, vm_offset_t, int, struct mbufq *) |
int | t4_write_page_pods_for_sgl (struct adapter *, struct toepcb *, struct ppod_reservation *, struct ctl_sg_entry *, int, int, struct mbufq *) |
void | t4_free_page_pods (struct ppod_reservation *) |
int | t4_soreceive_ddp (struct socket *, struct sockaddr **, struct uio *, struct mbuf **, struct mbuf **, int *) |
int | t4_aio_queue_ddp (struct socket *, struct kaiocb *) |
void | t4_ddp_mod_load (void) |
void | t4_ddp_mod_unload (void) |
void | ddp_assert_empty (struct toepcb *) |
void | ddp_init_toep (struct toepcb *) |
void | ddp_uninit_toep (struct toepcb *) |
void | ddp_queue_toep (struct toepcb *) |
void | release_ddp_resources (struct toepcb *toep) |
void | handle_ddp_close (struct toepcb *, struct tcpcb *, uint32_t) |
void | handle_ddp_indicate (struct toepcb *) |
void | insert_ddp_data (struct toepcb *, uint32_t) |
const struct offload_settings * | lookup_offload_policy (struct adapter *, int, struct mbuf *, uint16_t, struct inpcb *) |
bool | can_tls_offload (struct adapter *) |
void | do_rx_data_tls (const struct cpl_rx_data *, struct toepcb *, struct mbuf *) |
void | t4_push_ktls (struct adapter *, struct toepcb *, int) |
void | t4_tls_mod_load (void) |
void | t4_tls_mod_unload (void) |
void | tls_detach (struct toepcb *) |
void | tls_establish (struct toepcb *) |
void | tls_init_toep (struct toepcb *) |
void | tls_stop_handshake_timer (struct toepcb *) |
int | tls_tx_key (struct toepcb *) |
void | tls_uninit_toep (struct toepcb *) |
int | tls_alloc_ktls (struct toepcb *, struct ktls_session *, int) |
#define DDP_ASSERT_LOCKED | ( | toep | ) | mtx_assert(&(toep)->ddp.lock, MA_OWNED) |
#define LCTX_RPL_PENDING 1 /* waiting for a CPL_PASS_OPEN_RPL */ |
#define PS_PPODS_WRITTEN 0x0001 /* Page pods written to the card. */ |
#define SB_DDP_INDICATE SB_IN_TOE /* soreceive must respond to indicate */ |
anonymous enum |
anonymous enum |
void act_open_failure_cleanup | ( | struct adapter * | , |
u_int | , | ||
u_int | |||
) |
int add_tid_to_history | ( | struct adapter * | , |
u_int | |||
) |
void aiotx_init_toep | ( | struct toepcb * | ) |
__be64 calc_options0 | ( | struct vi_info * | , |
struct conn_params * | |||
) |
__be32 calc_options2 | ( | struct vi_info * | , |
struct conn_params * | |||
) |
void ddp_assert_empty | ( | struct toepcb * | ) |
void ddp_init_toep | ( | struct toepcb * | ) |
void ddp_queue_toep | ( | struct toepcb * | ) |
void ddp_uninit_toep | ( | struct toepcb * | ) |
int do_abort_req_synqe | ( | struct sge_iq * | , |
const struct rss_header * | , | ||
struct mbuf * | |||
) |
int do_abort_rpl_synqe | ( | struct sge_iq * | , |
const struct rss_header * | , | ||
struct mbuf * | |||
) |
void do_rx_data_tls | ( | const struct cpl_rx_data * | , |
struct toepcb * | , | ||
struct mbuf * | |||
) |
void final_cpl_received | ( | struct toepcb * | ) |
void free_toepcb | ( | struct toepcb * | ) |
void handle_ddp_close | ( | struct toepcb * | , |
struct tcpcb * | , | ||
uint32_t | |||
) |
void handle_ddp_indicate | ( | struct toepcb * | ) |
void init_conn_params | ( | struct vi_info * | , |
struct offload_settings * | , | ||
struct in_conninfo * | , | ||
struct socket * | , | ||
const struct tcp_options * | , | ||
int16_t | , | ||
struct conn_params * | cp | ||
) |
void insert_ddp_data | ( | struct toepcb * | , |
uint32_t | |||
) |
void insert_tid | ( | struct adapter * | , |
int | , | ||
void * | , | ||
int | |||
) |
const struct offload_settings * lookup_offload_policy | ( | struct adapter * | , |
int | , | ||
struct mbuf * | , | ||
uint16_t | , | ||
struct inpcb * | |||
) |
void * lookup_tid | ( | struct adapter * | , |
int | |||
) |
void make_established | ( | struct toepcb * | , |
uint32_t | , | ||
uint32_t | , | ||
uint16_t | |||
) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
int negative_advice | ( | int | ) |
void offload_socket | ( | struct socket * | , |
struct toepcb * | |||
) |
void release_ddp_resources | ( | struct toepcb * | toep | ) |
void remove_tid | ( | struct adapter * | , |
int | , | ||
int | |||
) |
void restore_so_proto | ( | struct socket * | , |
bool | |||
) |
u_long select_rcv_wnd | ( | struct socket * | ) |
int select_rcv_wscale | ( | void | ) |
void send_abort_rpl | ( | struct adapter * | , |
struct sge_ofld_txq * | , | ||
int | , | ||
int | |||
) |
void send_flowc_wr | ( | struct toepcb * | , |
struct tcpcb * | |||
) |
|
inlinestatic |
|
inlinestatic |
Definition at line 388 of file t4_tom.h.
References adapter::flags.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void synack_failure_cleanup | ( | struct adapter * | , |
int | |||
) |
int t4_aio_queue_aiotx | ( | struct socket * | , |
struct kaiocb * | |||
) |
int t4_aio_queue_ddp | ( | struct socket * | , |
struct kaiocb * | |||
) |
int t4_alloc_page_pods_for_bio | ( | struct ppod_region * | , |
struct bio * | , | ||
struct ppod_reservation * | |||
) |
int t4_alloc_page_pods_for_buf | ( | struct ppod_region * | , |
vm_offset_t | , | ||
int | , | ||
struct ppod_reservation * | |||
) |
int t4_alloc_page_pods_for_ps | ( | struct ppod_region * | , |
struct pageset * | |||
) |
int t4_alloc_page_pods_for_sgl | ( | struct ppod_region * | , |
struct ctl_sg_entry * | , | ||
int | , | ||
struct ppod_reservation * | |||
) |
int t4_connect | ( | struct toedev * | , |
struct socket * | , | ||
struct nhop_object * | , | ||
struct sockaddr * | |||
) |
void t4_ddp_mod_load | ( | void | ) |
void t4_ddp_mod_unload | ( | void | ) |
void t4_free_page_pods | ( | struct ppod_reservation * | ) |
void t4_free_ppod_region | ( | struct ppod_region * | ) |
void t4_init_connect_cpl_handlers | ( | void | ) |
void t4_init_cpl_io_handlers | ( | void | ) |
void t4_init_listen_cpl_handlers | ( | void | ) |
int t4_init_ppod_region | ( | struct ppod_region * | , |
struct t4_range * | , | ||
u_int | , | ||
const char * | |||
) |
int t4_listen_start | ( | struct toedev * | , |
struct tcpcb * | |||
) |
int t4_listen_stop | ( | struct toedev * | , |
struct tcpcb * | |||
) |
void t4_offload_socket | ( | struct toedev * | , |
void * | , | ||
struct socket * | |||
) |
void t4_rcvd | ( | struct toedev * | , |
struct tcpcb * | |||
) |
void t4_rcvd_locked | ( | struct toedev * | , |
struct tcpcb * | |||
) |
int t4_send_fin | ( | struct toedev * | , |
struct tcpcb * | |||
) |
int t4_send_rst | ( | struct toedev * | , |
struct tcpcb * | |||
) |
void t4_set_tcb_field | ( | struct adapter * | , |
struct sge_wrq * | , | ||
struct toepcb * | , | ||
uint16_t | , | ||
uint64_t | , | ||
uint64_t | , | ||
int | , | ||
int | |||
) |
int t4_soreceive_ddp | ( | struct socket * | , |
struct sockaddr ** | , | ||
struct uio * | , | ||
struct mbuf ** | , | ||
struct mbuf ** | , | ||
int * | |||
) |
void t4_syncache_added | ( | struct toedev * | , |
void * | |||
) |
void t4_syncache_removed | ( | struct toedev * | , |
void * | |||
) |
int t4_syncache_respond | ( | struct toedev * | , |
void * | , | ||
struct mbuf * | |||
) |
void t4_tls_mod_load | ( | void | ) |
void t4_tls_mod_unload | ( | void | ) |
int t4_tod_output | ( | struct toedev * | , |
struct tcpcb * | |||
) |
void t4_uninit_connect_cpl_handlers | ( | void | ) |
void t4_uninit_cpl_io_handlers | ( | void | ) |
void t4_uninit_listen_cpl_handlers | ( | void | ) |
int t4_write_page_pods_for_bio | ( | struct adapter * | , |
struct toepcb * | , | ||
struct ppod_reservation * | , | ||
struct bio * | , | ||
struct mbufq * | |||
) |
int t4_write_page_pods_for_buf | ( | struct adapter * | , |
struct toepcb * | , | ||
struct ppod_reservation * | , | ||
vm_offset_t | , | ||
int | , | ||
struct mbufq * | |||
) |
int t4_write_page_pods_for_sgl | ( | struct adapter * | , |
struct toepcb * | , | ||
struct ppod_reservation * | , | ||
struct ctl_sg_entry * | , | ||
int | , | ||
int | , | ||
struct mbufq * | |||
) |
TAILQ_HEAD | ( | pagesetq | , |
pageset | |||
) |
Definition at line 329 of file t4_tom.h.
References tom_data::tod.
int tls_alloc_ktls | ( | struct toepcb * | , |
struct ktls_session * | , | ||
int | |||
) |
void tls_detach | ( | struct toepcb * | ) |
void tls_establish | ( | struct toepcb * | ) |
void tls_init_toep | ( | struct toepcb * | ) |
void tls_stop_handshake_timer | ( | struct toepcb * | ) |
int tls_tx_key | ( | struct toepcb * | ) |
void tls_uninit_toep | ( | struct toepcb * | ) |
|
inlinestatic |
Definition at line 322 of file t4_tom.h.
References tom_data::tod.
|
inlinestatic |
Definition at line 226 of file t4_tom.h.
References toepcb::params, and conn_params::ulp_mode.
void undo_offload_socket | ( | struct socket * | ) |
void update_tid | ( | struct adapter * | , |
int | , | ||
void * | |||
) |