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
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
struct arbelprm_qp_db_record qp
#define FLEXBOOT_NODNIC_MAX_PORTS
void flexboot_nodnic_eth_irq(struct net_device *netdev, int enable)
int init_mlx_utils(mlx_utils **utils, struct pci_device *pci)
int flexboot_nodnic_is_supported(struct pci_device *pci)
int flexboot_nodnic_probe(struct pci_device *pci, struct flexboot_nodnic_callbacks *callbacks, void *drv_priv)
void flexboot_nodnic_remove(struct pci_device *pci)
void flexboot_nodnic_copy_mac(uint8_t mac_addr[], uint32_t low_byte, uint16_t high_byte)
@ FLEXBOOT_NODNIC_PROT_FCOE
@ FLEXBOOT_NODNIC_PROT_ETH
@ FLEXBOOT_NODNIC_PROT_IB_IPV6
@ FLEXBOOT_NODNIC_PROT_IB_IPV4
void free_mlx_utils(mlx_utils **utils)
static struct net_device * netdev
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
struct _nodnic_device_priv nodnic_device_priv
struct _nodnic_port_priv nodnic_port_priv
struct _nodnic_qp nodnic_qp
struct _nodnic_cq nodnic_cq
Network device management.
mlx_uint32 vendor_err_syndrome
mlx_status(* tx_uar_send_doorbell_fn)(struct ib_device *ibdev, struct nodnic_send_wqbb *wqbb)
mlx_size(* get_cqe_size)()
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_status(* fill_completion)(void *cqe, struct cqe_data *cqe_data)
void(* irq)(struct net_device *netdev, int enable)
mlx_status(* cqe_set_owner)(void *cq, unsigned int num_cqes)
nodnic_cq * nodnic_completion_queue
A flexboot_nodnic port type.
mlx_status(* register_dev)(struct flexboot_nodnic *flexboot_nodnic, struct flexboot_nodnic_port *port)
Register port.
void(* state_change)(struct flexboot_nodnic *flexboot_nodnic, struct flexboot_nodnic_port *port, int link_up)
Port state changed.
void(* unregister_dev)(struct flexboot_nodnic *flexboot_nodnic, struct flexboot_nodnic_port *port)
Unregister port.
nodnic_port_priv port_priv
nodic port
struct ib_completion_queue * eth_cq
Ethernet completion queue.
struct flexboot_nodnic_port_type * type
Port type.
struct ib_queue_pair * eth_qp
Ethernet queue pair.
struct ib_device * ibdev
Infiniband device.
struct net_device * netdev
Network device.
A flexboot nodnic queue pair.
nodnic_qp * nodnic_queue_pair
A flexboot_nodnic device.
nodnic_device_priv device_priv
nodnic device
void * priv_data
device private data
unsigned int open_count
Device open request counter.
struct pci_device * pci
PCI device.
struct flexboot_nodnic_callbacks * callbacks
nic specific data
struct flexboot_nodnic_port port[FLEXBOOT_NODNIC_MAX_PORTS]
flexboot_nodnic ports
u16 port_mask
Port masking.
An Infiniband Address Vector.
An Infiniband Completion Queue.
An Infiniband Queue Pair.