- struct kib_peer *ibc_peer; /* owning peer */
- struct list_head ibc_list; /* stash on peer's conn list */
- struct list_head ibc_sched_list; /* schedule for attention */
- __u64 ibc_incarnation; /* which instance of the peer */
- atomic_t ibc_refcount; /* # users */
- int ibc_state; /* what's happening */
- int ibc_nsends_posted; /* # uncompleted sends */
- int ibc_credits; /* # credits I have */
- int ibc_outstanding_credits; /* # credits to return */
- int ibc_reserved_credits;/* # ACK/DONE msg credits */
- int ibc_comms_error; /* set on comms error */
- int ibc_nrx:8; /* receive buffers owned */
- int ibc_scheduled:1; /* scheduled for attention */
- int ibc_ready:1; /* CQ callback fired */
- unsigned long ibc_last_send; /* time of last send */
- struct list_head ibc_early_rxs; /* rxs completed before ESTABLISHED */
- struct list_head ibc_tx_queue; /* sends that need a credit */
- struct list_head ibc_tx_queue_nocred;/* sends that don't need a credit */
- struct list_head ibc_tx_queue_rsrvd; /* sends that need to reserve an ACK/DONE msg */
- struct list_head ibc_active_txs; /* active tx awaiting completion */
- spinlock_t ibc_lock; /* serialise */
- kib_rx_t *ibc_rxs; /* the rx descs */
- kib_pages_t *ibc_rx_pages; /* premapped rx msg pages */
-
- struct rdma_cm_id *ibc_cmid; /* CM id */
- struct ib_cq *ibc_cq; /* completion queue */
-
- kib_connvars_t *ibc_connvars; /* in-progress connection state */
+ /* scheduler information */
+ struct kib_sched_info *ibc_sched;
+ /* owning peer */
+ struct kib_peer *ibc_peer;
+ /* HCA bound on */
+ kib_hca_dev_t *ibc_hdev;
+ /* stash on peer's conn list */
+ struct list_head ibc_list;
+ /* schedule for attention */
+ struct list_head ibc_sched_list;
+ /* version of connection */
+ __u16 ibc_version;
+ /* reconnect later */
+ __u16 ibc_reconnect:1;
+ /* which instance of the peer */
+ __u64 ibc_incarnation;
+ /* # users */
+ atomic_t ibc_refcount;
+ /* what's happening */
+ int ibc_state;
+ /* # uncompleted sends */
+ int ibc_nsends_posted;
+ /* # uncompleted NOOPs */
+ int ibc_noops_posted;
+ /* # credits I have */
+ int ibc_credits;
+ /* # credits to return */
+ int ibc_outstanding_credits;
+ /* # ACK/DONE msg credits */
+ int ibc_reserved_credits;
+ /* set on comms error */
+ int ibc_comms_error;
+ /* connections queue depth */
+ __u16 ibc_queue_depth;
+ /* connections max frags */
+ __u16 ibc_max_frags;
+ /* receive buffers owned */
+ unsigned int ibc_nrx:16;
+ /* scheduled for attention */
+ unsigned int ibc_scheduled:1;
+ /* CQ callback fired */
+ unsigned int ibc_ready:1;
+ /* time of last send */
+ unsigned long ibc_last_send;
+ /** link chain for kiblnd_check_conns only */
+ struct list_head ibc_connd_list;
+ /** rxs completed before ESTABLISHED */
+ struct list_head ibc_early_rxs;
+ /** IBLND_MSG_NOOPs for IBLND_MSG_VERSION_1 */
+ struct list_head ibc_tx_noops;
+ /* sends that need a credit */
+ struct list_head ibc_tx_queue;
+ /* sends that don't need a credit */
+ struct list_head ibc_tx_queue_nocred;
+ /* sends that need to reserve an ACK/DONE msg */
+ struct list_head ibc_tx_queue_rsrvd;
+ /* active tx awaiting completion */
+ struct list_head ibc_active_txs;
+ /* serialise */
+ spinlock_t ibc_lock;
+ /* the rx descs */
+ kib_rx_t *ibc_rxs;
+ /* premapped rx msg pages */
+ kib_pages_t *ibc_rx_pages;
+
+ /* CM id */
+ struct rdma_cm_id *ibc_cmid;
+ /* completion queue */
+ struct ib_cq *ibc_cq;
+
+ /* in-progress connection state */
+ kib_connvars_t *ibc_connvars;