linux/drivers/net/ethernet/chelsio/cxgb4
Hariprasad Shenai 7829451c69 cxgb4: Add control net_device for configuring PCIe VF
Issue:
For instance, the current APIs assume a 1-to-1 mapping of Network Ports,
Physical Functions and the SR-IOV Virtual Functions of those Physical
Functions. This is not the case with our cards where any Virtual
Function can be hooked up to any Port -- or any number of Ports the
current Linux APIs also assume only 1 Network Interface/Port can be
accessed per Virtual Function.

Another issue is that these APIs assume that the Administrative Driver
is attached to the Physical Function Associated with a Virtual Function.
This is not the case with our card where all administration is performed
by a Driver which is not attached to any of the Physical Functions which
have SR-IOV PCI Capabilities.

Another consequence of these assumptions is the inability to utilize all
of the cards SR-IOV resources. For instance, our cards have SR-IOV
Capabilities on Physical Functions 0..3 and the administrative Driver
attaches to Physical Function 4. Each of the Physical Functions 0..3 can
support up to 16 Virtual Functions. With the current Linux APIs, a
2-Port card would only be able to use the Virtual Functions on Physical
Function 0..1 and not allow the Virtual Functions on Physical Functions
2..3 to be used since there are no Ports 2..3 on a 2-Port card.

Fix:
Since the control node is always the netdevice for all VF ACL commands.
Created a dummy netdevice for each Physical Function from 0 to 3 through
which one could control their VFs. The device won't be associated with
any port, since it doesn't need to transmit/receive. Its purely used
for VF management purpose only. The device will be registered only when
VF for a particular PF is configured using PCI sysfs interface and
unregistered while pci_disable_sriov() for the PF is called.

Signed-off-by: Hariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-08-14 21:16:57 -07:00
..
clip_tbl.c
clip_tbl.h
cxgb4_dcb.c cxgb4: DCB message handler needs to use correct portid to netdev mapping 2016-04-26 13:23:57 -04:00
cxgb4_dcb.h
cxgb4_debugfs.c cxgb4: Add support to enable logging of firmware mailbox commands 2016-04-29 13:41:46 -04:00
cxgb4_debugfs.h
cxgb4_ethtool.c cxgb4/cxgb4vf: Add link mode mask API to cxgb4 and cxgb4vf 2016-07-25 10:26:45 -07:00
cxgb4_fcoe.c
cxgb4_fcoe.h
cxgb4_main.c cxgb4: Add control net_device for configuring PCIe VF 2016-08-14 21:16:57 -07:00
cxgb4_uld.h cxgb4: update struct cxgb4_lld_info definition 2016-03-22 00:25:04 -07:00
cxgb4.h cxgb4/cxgb4vf: Add link mode mask API to cxgb4 and cxgb4vf 2016-07-25 10:26:45 -07:00
l2t.c cxgb4: move VLAN_NONE macro definition 2016-03-22 00:25:05 -07:00
l2t.h cxgb4: move VLAN_NONE macro definition 2016-03-22 00:25:05 -07:00
Makefile libcxgb: add library module for Chelsio drivers 2016-07-25 10:31:08 -07:00
sge.c cxgb4/cxgb4vf: Fixes regression in perf when tx vlan offload is disabled 2016-07-30 20:39:59 -07:00
t4_chip_type.h
t4_hw.c cxgb4/cxgb4vf: Add link mode mask API to cxgb4 and cxgb4vf 2016-07-25 10:26:45 -07:00
t4_hw.h cxgb4: add new routine to get adapter info 2016-04-26 13:23:56 -04:00
t4_msg.h RDMA/iw_cxgb4: set the correct FID value in DSGL commands 2016-05-13 19:38:05 -04:00
t4_pci_id_tbl.h cxgb4: Add device id of T540-BT adapter 2016-06-08 10:23:46 -07:00
t4_regs.h
t4_values.h
t4fw_api.h cxgb4/cxgb4vf: Add link mode mask API to cxgb4 and cxgb4vf 2016-07-25 10:26:45 -07:00
t4fw_version.h cxgb4: update latest firmware version supported 2016-07-05 11:53:25 -07:00