Hi Navdeep,

I think I have found a driver bug. Earlier today I set up the switch I'm using so that two of the ports mirror the traffic on one of the other ports. We are planning on using a similar setup to allow packet tracing without stressing the boxes our application is running on any more then they are already.

I connected both ports to one of our cxgbe cards, My intention was to use tcpdump to check that my switch config was doing what I thought it should. I ran

ifconfig cxl? promisc -vlanhwtag up

on both interfaces, this is what the interfaces looked like

cxl0: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500
options=ec07ab<RXCSUM,TXCSUM,VLAN_MTU,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    ether 00:07:43:33:8a:20
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: Ethernet 10Gbase-Twinax <full-duplex>
    status: active
vcxl0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=ec07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    ether 00:07:43:33:8a:22
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: Ethernet 10Gbase-Twinax <full-duplex>
    status: active
cxl1: flags=28943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,PPROMISC> metric 0 mtu 1500
options=ec07ab<RXCSUM,TXCSUM,VLAN_MTU,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    ether 00:07:43:33:8a:28
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: Ethernet 10Gbase-Twinax <full-duplex>
    status: active
vcxl1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=ec07bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO,LINKSTATE,RXCSUM_IPV6,TXCSUM_IPV6>
    ether 00:07:43:33:8a:2a
    nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
    media: Ethernet 10Gbase-Twinax <full-duplex>
    status: active

The interesting thing is, a tcpdump on cxl0 showed all the traffic I expected to see, while tcpdump on cxl1 showed only broadcast traffic. After playing with the switch config to make sure the difference was not on the switch I pulled both patch cables out and into another server with the same card. On the second server I could use tcpdump and see all the traffic I expected on either interface.

Then back on the original server, I reloaded the device driver and tried again. Now I got only broadcast on cxl0 and cxl1. Then finally I got all the traffic to show up by doing

ifconfig cxl1 -promisc
ifconfig cxl1 promisc

It would appearer to me that the card can get into a state where ifconfig reports that it is in promiscuous mode when it is not.


Joe Jones

On 24/03/17 16:44, Navdeep Parhar wrote:
On Fri, Mar 24, 2017 at 6:40 AM, Joe Jones <j...@stream-technologies.com> wrote:
Hello Navdeep,

...

We were using our own MACs, we can fix the problem by using the mac from the
vcxl interface. Should we not be able to capture all traffic on the
interface regardless of what destination MAC it has.
You should, but you'll need to put vcxl<n> in promiscous mode for
that.  The command that you posted had cxl<n> in promiscuous mode.  As
I said earlier they share the wire but operate as independent network
interfaces otherwise.

Regards,
Navdeep

_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to