1

I have a network interface that refuses to receive traffic destined for it (destination MAC is equal to the interface's configured hw address).

Here is the driver info;

# ethtool -i eth0
driver: ixgbe
version: 4.0.1-k
firmware-version: 0x80000534
expansion-rom-version:
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

As soon as I enter ifconfig eth0 promisc the interface will start receiving frames. A tcpdump shows that the destination MAC does indeed line up with the interface's configure MAC address.

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:01:02:03:04:05
          UP BROADCAST RUNNING PROMISC SLAVE MULTICAST  MTU:1508  Metric:1
          RX packets:600363 errors:0 dropped:0 overruns:0 frame:0
          TX packets:230866 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:904700278 (862.7 MiB)  TX bytes:16161664 (15.4 MiB)

Why does the interface need to be promiscuous?

4
  • 1
    Did you check if there is only one mac address ? maybe another interface on your network does have the same ip/mac address ? – Kingofkech Mar 22 '17 at 15:15
  • 3
    Please add to the question the outputs of ifconfig and/or ip link and uname -r ; do you have VLANs? – Rui F Ribeiro Mar 22 '17 at 15:18
  • There are no VLANs configured on this interface, although the traffic is VLAN tagged. – Críostóir Ó Catháin Mar 22 '17 at 15:44
  • Please do not mask the first 3 bytes of the MAC in the question, you surely have it not as 00:01:02:03:04:05? ; also try to post the ifconfig without having the interface in promisc mode. Please add also uname -r . – Rui F Ribeiro Mar 22 '17 at 16:35
2

I read through the ixgbe driver source in the search for answers.

As far as I can ascertain this driver utilizes hardware VLAn filtering (it has been suggested on some support tickets that reasons include security and performance).

This behavior is controlled via the IXGBE_VLNCTRL_VFE VLAN control flag.

The two options for successfully traversing these filters into the kernel are:

  • Enable promiscuous mode on the interface
  • Add a VLAN (e.g. using vconfig) to the interface

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.