ixl: fix multicast filters handling
Summary:
Hardware supports up to 128 entries of multicast filters. If there is more,
filters should be removed and multicast promiscuous enabled. In case
user deletes the multicast address and overall count is less than 128,
multicast promiscuous mode should be disabled and all the filters
reapplied into the HW.
Currently driver only enables multicast promiscuous mode and deletes
the entries without any information to the user and it's not capable of
reapplying the filters once count is less than 128.
Address that by:
- Add logging
- Add logic in case multicast promiscuous is enabled and user lowers
the number of multicast entries to <128.
- Fix a bug where driver removes different MAC entries along with the one
that's being deleted by the user.
Reviewers: Intel Networking, erj
Reviewed By: Intel Networking, erj
Subscribers: imp, ae
Differential Revision: https://reviews.freebsd.org/D40860