e1000: Fix up HW vlan ops
- Don't reset the entire adapter for vlan changes, fix up the problems
- Add some functions for vlan filter (vfta) manipulation
- Don't muck with the vfta if we aren't doing HW vlan filtering
- Disable interrupts when manipulating vfta on lem(4)-class NICs
- On the I350 there is a specification update (2.4.20) in which the
suggested workaround is to write to the vfta 10 times (if at first you
don't succeed, try, try again). Our shared code has the goods, use it
- Increase a VF's frame receive size in the case of vlans
From the referenced PR, this reduced vlan configuration from minutes
to seconds with hundreds or thousands of vlans and prevents wedging the
adapter with needless adapter reinitialization for each vlan ID.
PR: 230996
Reviewed by: markj
Tested by: Ozkan KIRIK <ozkan.kirik@gmail.com>
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D30002