rdma: add support for MAC changes
[vpp.git] / src / plugins / rdma / rdma.h
index 860ddab..c7df6f7 100644 (file)
 #include <vlib/log.h>
 
 #define foreach_rdma_device_flags \
-  _(0, INITIALIZED, "initialized") \
-  _(1, ERROR, "error") \
-  _(2, ADMIN_UP, "admin-up") \
-  _(3, VA_DMA, "vaddr-dma") \
-  _(4, LINK_UP, "link-up") \
-  _(5, SHARED_TXQ_LOCK, "shared-txq-lock") \
-  _(6, ELOG, "elog") \
+  _(0, ERROR, "error") \
+  _(1, ADMIN_UP, "admin-up") \
+  _(2, LINK_UP, "link-up") \
+  _(3, PROMISC, "promiscuous")
 
 enum
 {
@@ -43,7 +40,7 @@ typedef struct
   u32 size;
   u32 n_enq;
   struct ibv_cq *cq;
-  struct ibv_qp *qp;
+  struct ibv_wq *wq;
 } rdma_rxq_t;
 
 typedef struct
@@ -71,12 +68,15 @@ typedef struct
   rdma_rxq_t *rxqs;
   rdma_txq_t *txqs;
 
-  u8 hwaddr[6];
+  u8 *name;
+  mac_address_t hwaddr;
   vlib_pci_addr_t pci_addr;
 
   struct ibv_context *ctx;
   struct ibv_pd *pd;
   struct ibv_mr *mr;
+  struct ibv_qp *rx_qp;
+  struct ibv_rwq_ind_table *rx_rwq_ind_tbl;
   struct ibv_flow *flow_ucast;
   struct ibv_flow *flow_mcast;
 
@@ -95,6 +95,10 @@ extern rdma_main_t rdma_main;
 typedef struct
 {
   u8 *ifname;
+  u8 *name;
+  u32 rxq_size;
+  u32 txq_size;
+  u32 rxq_num;
 
   /* return */
   int rv;