linux/drivers/net/ethernet/mellanox/mlx4
Yevgeny Petrilin 6d19993788 net/mlx4_en: Re-design multicast attachments flow
Currently, for every change in the net device multicast list, the driver
detaches all the addresses from the HW device, and then attaches the
updated list. This behavior is wrong from two aspects: first, it causes
a load of firmware commands and second, there is period of time where
the correct addresses are not attached, which turned into packet loss.

To improve - a copy of the multicast list is saved by the driver. For
every change in the multicast list, the multicast list copy is used
to find the delta between those two lists and add or remove multicast
addresses as needed.

Reported-by: Shawn Bohrer <sbohrer@rgmadvisors.com>
Cc: Shawn Bohrer <sbohrer@rgmadvisors.com>
Signed-off-by: Hadar Hen Zion <hadarh@mellanox.co.il>
Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
2012-07-07 16:23:05 -07:00
..
alloc.c mlx4_core: Change bitmap allocator to work in round-robin fashion 2012-05-14 13:44:38 -07:00
catas.c mlx4_core: adjust catas operation for SRIOV mode 2011-12-13 13:56:08 -05:00
cmd.c net/mlx4_core: Fixes for VF / Guest startup flow 2012-05-31 18:18:16 -04:00
cq.c mlx4_core: removed function index from vf. 2012-01-22 15:08:43 -05:00
en_cq.c mlx4_en: Moving to Interrupts for TX completions 2012-04-23 22:34:02 -04:00
en_dcb_nl.c drivers/net: fix unresolved 64bit math in mellanox/mlx4/en_dcb_nl.c 2012-04-16 02:12:11 -04:00
en_ethtool.c mlx4_en: Added Ethtool support for TX Interrupt coalescing 2012-04-23 22:34:02 -04:00
en_main.c net/mlx4_en: Fix improper use of "port" parameter in mlx4_en_event 2012-05-31 18:18:16 -04:00
en_netdev.c net/mlx4_en: Re-design multicast attachments flow 2012-07-07 16:23:05 -07:00
en_port.c mlx4: Ethernet port management modifications 2011-12-13 13:56:07 -05:00
en_port.h net/mlx4_core: set port QoS attributes 2012-04-05 05:08:03 -04:00
en_resources.c net/mlx4_en: Force user priority by QP attribute 2012-04-05 05:08:03 -04:00
en_rx.c net/mlx4_en: Force user priority by QP attribute 2012-04-05 05:08:03 -04:00
en_selftest.c mlx4_core: Add "native" argument to mlx4_cmd and its callers (where needed) 2011-12-13 13:56:05 -05:00
en_tx.c net/mlx4_en: num cores tx rings for every UP 2012-05-17 16:17:50 -04:00
eq.c net/mlx4_core: Fix the slave_id out-of-range test in mlx4_eq_int 2012-05-31 18:18:15 -04:00
fw.c net/mlx4_core: Fix obscure mlx4_cmd_box parameter in QUERY_DEV_CAP 2012-05-31 18:18:16 -04:00
fw.h mlx4_core: Add second capabilities flags field 2012-05-08 11:54:32 -07:00
icm.c mlx4_core: Add "native" argument to mlx4_cmd and its callers (where needed) 2011-12-13 13:56:05 -05:00
icm.h
intf.c mlx4_core: adjust catas operation for SRIOV mode 2011-12-13 13:56:08 -05:00
Kconfig net/mlx4_en: DCB QoS support 2012-04-05 05:08:04 -04:00
main.c mlx4: set maximal number of default RSS queues 2012-07-05 03:06:44 -07:00
Makefile net/mlx4_en: DCB QoS support 2012-04-05 05:08:04 -04:00
mcg.c net/mlx4: Address build warnings on set but not used variables 2012-05-16 00:56:58 -04:00
mlx4_en.h net/mlx4_en: Re-design multicast attachments flow 2012-07-07 16:23:05 -07:00
mlx4.h net/mlx4_core: Change resource tracking ID to be 64 bit 2012-07-07 16:23:05 -07:00
mr.c net/mlx4_core: Change SYNC_TPT to be native (not wrapped) 2012-05-16 00:56:58 -04:00
pd.c net/mlx4_core: Add XRC domains and counters to resource tracker 2012-05-16 00:56:59 -04:00
port.c mlx4_core: Fix setting VL_cap in mlx4_SET_PORT wrapper flow 2012-06-06 10:07:54 -07:00
profile.c net/mlx4_core: Fix number of EQs used in ICM initialisation 2012-05-31 18:18:16 -04:00
qp.c mlx4_core: remove buggy sched_queue masking 2012-03-06 14:43:50 -05:00
reset.c
resource_tracker.c net/mlx4_core: Change resource tracking ID to be 64 bit 2012-07-07 16:23:05 -07:00
sense.c mlx4_core: Add "native" argument to mlx4_cmd and its callers (where needed) 2011-12-13 13:56:05 -05:00
srq.c mlx4_core: removed function index from vf. 2012-01-22 15:08:43 -05:00