1 #ifndef SRC_DRIVERS_INFINIBAND_FLEXBOOT_NODNIC_FLEXBOOT_NODNIC_H_ 2 #define SRC_DRIVERS_INFINIBAND_FLEXBOOT_NODNIC_FLEXBOOT_NODNIC_H_ 35 #define NODNIC_IRQ_ENABLED 37 #define FLEXBOOT_NODNIC_MAX_PORTS 2 38 #define FLEXBOOT_NODNIC_PORT_BASE 1 40 #define FLEXBOOT_NODNIC_OPCODE_SEND 0xa 41 #define FLEXBOOT_NODNIC_HCA_BAR PCI_BASE_ADDRESS_0 //BAR 0 42 #define FLEXBOOT_NODNIC_PAGE_SHIFT 12 43 #define FLEXBOOT_NODNIC_PAGE_SIZE (1 << FLEXBOOT_NODNIC_PAGE_SHIFT) 44 #define FLEXBOOT_NODNIC_PAGE_MASK (FLEXBOOT_NODNIC_PAGE_SIZE - 1) 45 #define EN_DEFAULT_ADMIN_MTU 1522 171 unsigned long wqe_idx
void flexboot_nodnic_remove(struct pci_device *pci)
nodnic_cq * nodnic_completion_queue
mlx_status(* fill_send_wqe[5])(struct ib_device *ibdev, struct ib_queue_pair *qp, struct ib_address_vector *av, struct io_buffer *iobuf, struct nodnic_send_wqbb *wqbb, unsigned long wqe_idx)
mlx_size(* get_cqe_size)()
#define FLEXBOOT_NODNIC_MAX_PORTS
struct ib_device * ibdev
Infiniband device.
void flexboot_nodnic_eth_irq(struct net_device *netdev, int enable)
nodnic_device_priv device_priv
nodnic device
void(* state_change)(struct flexboot_nodnic *flexboot_nodnic, struct flexboot_nodnic_port *port, int link_up)
Port state changed.
struct pci_device * pci
PCI device.
u16 port_mask
Port masking.
mlx_status(* cqe_set_owner)(void *cq, unsigned int num_cqes)
struct ib_completion_queue * eth_cq
Ethernet completion queue.
int flexboot_nodnic_is_supported(struct pci_device *pci)
int init_mlx_utils(mlx_utils **utils, struct pci_device *pci)
struct net_device * netdev
Network device.
static struct net_device * netdev
mlx_status(* tx_uar_send_doorbell_fn)(struct ib_device *ibdev, struct nodnic_send_wqbb *wqbb)
void * priv_data
device private data
struct ib_queue_pair * eth_qp
Ethernet queue pair.
mlx_status(* fill_completion)(void *cqe, struct cqe_data *cqe_data)
A flexboot_nodnic device.
mlx_status(* register_dev)(struct flexboot_nodnic *flexboot_nodnic, struct flexboot_nodnic_port *port)
Register port.
void free_mlx_utils(mlx_utils **utils)
void(* unregister_dev)(struct flexboot_nodnic *flexboot_nodnic, struct flexboot_nodnic_port *port)
Unregister port.
An Infiniband Completion Queue.
mlx_uint32 vendor_err_syndrome
A flexboot_nodnic port type.
An Infiniband Queue Pair.
Network device management.
nodnic_port_priv port_priv
nodic port
struct arbelprm_qp_db_record qp
struct flexboot_nodnic_port port[FLEXBOOT_NODNIC_MAX_PORTS]
flexboot_nodnic ports
An Infiniband Address Vector.
struct flexboot_nodnic_callbacks * callbacks
nic specific data
nodnic_qp * nodnic_queue_pair
struct flexboot_nodnic_port_type * type
Port type.
int flexboot_nodnic_probe(struct pci_device *pci, struct flexboot_nodnic_callbacks *callbacks, void *drv_priv)
void flexboot_nodnic_copy_mac(uint8_t mac_addr[], uint32_t low_byte, uint16_t high_byte)
void(* irq)(struct net_device *netdev, int enable)
FILE_LICENCE(GPL2_OR_LATER)
unsigned int open_count
Device open request counter.
A flexboot nodnic queue pair.