summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/nes/nes_verbs.h
diff options
context:
space:
mode:
authorFaisal Latif <faisal.latif@intel.com>2011-09-25 20:34:00 -0500
committerRoland Dreier <roland@purestorage.com>2011-10-10 10:54:47 -0700
commit0f0bee8bbc2b3e49baa703118041f99db9ef41a1 (patch)
tree3a4598c74f2dcab76fcf8a6cb3d533f8582bf613 /drivers/infiniband/hw/nes/nes_verbs.h
parent6224c7eeff586e9dbf51b872d7e0bae291fa00ed (diff)
downloadlinux-0f0bee8bbc2b3e49baa703118041f99db9ef41a1.tar.gz
linux-0f0bee8bbc2b3e49baa703118041f99db9ef41a1.tar.bz2
linux-0f0bee8bbc2b3e49baa703118041f99db9ef41a1.zip
RDMA/nes: Support for Packed And Unaligned fpdus
Support for Packed and Unaligned (PAU) FPDUs is needed for interoperability between NES and non-NES nodes. When the NES hardware detects a PAU frame, it will pass it to the driver to process the frame. NES driver creates a new frame for each FPDU and forwards it to the hardware to be sent to its associated qp. Signed-off-by: Tatyana Nikolova <Tatyana.E.Nikolova@intel.com> Signed-off-by: Faisal Latif <Faisal.Latif@intel.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/nes/nes_verbs.h')
-rw-r--r--drivers/infiniband/hw/nes/nes_verbs.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/nes/nes_verbs.h b/drivers/infiniband/hw/nes/nes_verbs.h
index 2df9993e0cac..280057353343 100644
--- a/drivers/infiniband/hw/nes/nes_verbs.h
+++ b/drivers/infiniband/hw/nes/nes_verbs.h
@@ -154,6 +154,7 @@ struct nes_qp {
u32 mmap_sq_db_index;
u32 mmap_rq_db_index;
spinlock_t lock;
+ spinlock_t pau_lock;
struct nes_qp_context *nesqp_context;
dma_addr_t nesqp_context_pbase;
void *pbl_vbase;
@@ -161,6 +162,8 @@ struct nes_qp {
struct page *page;
struct timer_list terminate_timer;
enum ib_event_type terminate_eventtype;
+ struct sk_buff_head pau_list;
+ u32 pau_rcv_nxt;
u16 active_conn:1;
u16 skip_lsmm:1;
u16 user_mode:1;
@@ -168,7 +171,8 @@ struct nes_qp {
u16 flush_issued:1;
u16 destroyed:1;
u16 sig_all:1;
- u16 rsvd:9;
+ u16 pau_mode:1;
+ u16 rsvd:8;
u16 private_data_len;
u16 term_sq_flush_code;
u16 term_rq_flush_code;
@@ -176,5 +180,8 @@ struct nes_qp {
u8 hw_tcp_state;
u8 term_flags;
u8 sq_kmapped;
+ u8 pau_busy;
+ u8 pau_pending;
+ u8 pau_state;
};
#endif /* NES_VERBS_H */