Date: Mon, 29 Mar 2004 11:12:24 +0300 From: Ruslan Ermilov <ru@FreeBSD.org> To: "Jacob S. Barrett" <jbarrett@amduat.net> Cc: freebsd-net@FreeBSD.org Subject: Re: Disabling VLAN_HWTAGGING Message-ID: <20040329081224.GC70021@ip.net.ua> In-Reply-To: <200403270848.37996.jbarrett@amduat.net> References: <200403251118.40718.jbarrett@amduat.net> <20040327074205.GA32984@ip.net.ua> <200403270753.53476.jbarrett@amduat.net> <200403270848.37996.jbarrett@amduat.net>
next in thread | previous in thread | raw e-mail | index | archive | help
--i7F3eY7HS/tUJxUd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Mar 27, 2004 at 08:48:37AM -0800, Jacob S. Barrett wrote: > On Saturday 27 March 2004 07:53 am, Jacob S. Barrett wrote: > > Well with a new "correct" MAC that pings go back and forth just fine no= w.=20 > > I will back out all my changes and see if they still work with the hard= ware > > tagging/detagging enabled. >=20 > OK, with the hardware support re-enabled the frame now enters the driver.= It=20 > is detected as VLAN frame and sent to VLAN_INPUT_TAG. The frame is then= =20 > delivered via lower hook to the ng_vlan where it doesn't match the vlan t= ag=20 > so it goes out the nomatch hook. I guess with the VLAN tag stripped from= the=20 > frame that ng_vlan can't match it. Is this the expected behavior with=20 > ng_vlan? I can just comment out the VLAN stripping line in the driver if= it=20 > is the expected behavior. That isn't a big deal really. >=20 No, this is not of course expected. Can you add some debug printfs in the ng_vlan.c:ng_vlan_rcvdata() and see if it ever receives the VLAN tag, and if so, print its value (perhaps the tag is entered by a driver in a network byte order). > I haven't done a whole lot with the network interface drivers other than = a few=20 > minor fixes here and there, but would it be hard to add some sort of flag= to=20 > enable/disable the tag stripping via ifconfig? I was thinking that could= be=20 > down through a "linkx" flag right? If the driver got the say "link1" it= =20 > would down the interface, set clear the stripping config bits, and then r= e-up=20 > the interface. Or would this be better handled by a sysctl option? Does= =20 > that sound safe and do-able? >=20 Well, for IP/TCP/UDP checksumming, it's possible to switch the corresponding bit in the interface's enabled capabilities field. OTOH, switching VLAN stripping on/off requires reprogramming of the hardware. Generally, if the hardware supports IP/TCP/UDP checksumming and or VLAN tag removal/insertion, it's better to use it. We'd better find the root of the problem and fix it. ;) Cheers, --=20 Ruslan Ermilov ru@FreeBSD.org FreeBSD committer --i7F3eY7HS/tUJxUd Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (FreeBSD) iD8DBQFAZ9poUkv4P6juNwoRAoh/AJ9cjaW4Kw8N0rx0OaZOSl7z1cYNMACfQM7C VNQoigAaEV7HB4JWaR/PCuU= =E3Ey -----END PGP SIGNATURE----- --i7F3eY7HS/tUJxUd--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040329081224.GC70021>