Re: Disabling VLAN_HWTAGGING

From: Ruslan Ermilov (ru_at_freebsd.org)
Date: 03/27/04

  • Next message: Mike Silbersack: "Re: sendfile returning ENOTCONN under heavy load"
    Date: Sat, 27 Mar 2004 09:42:05 +0200
    To: "Jacob S. Barrett" <jbarrett@amduat.net>
    
    
    

    On Fri, Mar 26, 2004 at 06:44:52PM -0800, Jacob S. Barrett wrote:
    > I did a little more debugging and placed some printf statements before and
    > after:
    > /*
    > * If we received a packet with a vlan tag, pass it
    > * to vlan_input() instead of ether_input().
    > */
    > if (extsts & NGE_RXEXTSTS_VLANPKT) {
    > VLAN_INPUT_TAG(ifp, m,
    > extsts & NGE_RXEXTSTS_VTCI, continue);
    > }
    >
    > What I found is that VLAN tagged frames sent to the interface never get to
    > this line at all. I figured the NIC must be droping it or something before
    > it even gets to the driver. So I commented out the following line:
    > /*
    > * Tell the chip to detect and strip VLAN tag info from
    > * received frames. The tag will be provided in the extsts
    > * field in the RX descriptors.
    > */
    > NGE_SETBIT(sc, NGE_VLAN_IP_RXCTL,
    > NGE_VIPRXCTL_TAG_DETECT_ENB|NGE_VIPRXCTL_TAG_STRIP_ENB);
    >
    >
    > Now the driver gets the frame but the conditional about is false, presumable
    > because I comment out that line which says it will detect and set the extsts.
    > It does however get delivered to the ng lower hook and therefor the ng_vlan
    > gets it. The ng_eiface tied to vlan2 replies to the arp requests. Strangely
    > though when an ICMP ping request gets to ng_eiface it ignores it.
    >
    > 02:27:16.658526 0:90:27:f4:58:1d ff:ff:ff:ff:ff:ff 0806 56: arp who-has
    > 10.2.0.1 tell 10.2.0.2
    > 02:27:16.658633 11:22:33:44:55:66 0:90:27:f4:58:1d 0806 42: arp reply 10.2.0.1
    > is-at 11:22:33:44:55:66
    > 02:27:16.659132 0:90:27:f4:58:1d 11:22:33:44:55:66 0800 98: 10.2.0.2 >
    > 10.2.0.1: icmp: echo request
    > 02:27:16.664321 0:90:27:f4:58:1d 11:22:33:44:55:66 0800 98: 10.2.0.2 >
    > 10.2.0.1: icmp: echo request
    >
    > Even more odd, I can ping from the ng_eiface interface and it makes it tagged
    > all the way out and back just fine. The ng_eiface gets the ICMP response just
    > fine.
    >
    > Does any of this make sense to you? Is there possibly something wrong with
    > the logic in that detect and stip flag? Am I just a total tool and missing
    > someting completely obvious here, because it wouldn't be the first time.
    >
    I think so. 11:22:33:44:55:66 is the wrong MAC address -- the first octet
    should be an odd number, otherwise it's treated as a broadcast/multicast.

    > Does anyone have a 1Gbit fiber NIC that they have tested in and out with VLAN
    > tagging that they could recommend.
    >
    I'm in the process of obtaining a NIC. Once I get it, I will look into the
    issue. What's the ``pciconf -lv'' and dmesg(8) outputs corresponding to your
    NIC? Also, is it plugged into the 64-bit PCI slot or not?

    Cheers,

    -- 
    Ruslan Ermilov
    ru@FreeBSD.org
    FreeBSD committer
    
    



  • Next message: Mike Silbersack: "Re: sendfile returning ENOTCONN under heavy load"