Date: Tue, 05 Nov 2002 21:01:55 -0800 From: "Jacob S. Barrett" <jbarrett@amduat.net> To: freebsd-net@FreeBSD.ORG Subject: Re: VLAN tag byte swap and chop problem?? Message-ID: <3DC8A243.4070603@amduat.net> In-Reply-To: <3DC7F88B.8090602@amduat.net> References: <3DC7F88B.8090602@amduat.net> <3DC875A5.8010408@amduat.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Well I think I fixed it. It works for my card atleast. I am not sure the of the correct route to get this checked and corrected in the main source tree. Seems like such a simple fix but it may only work for the chipset that I have, 82543, so someone should check on other chipsets. 2020,2021c2020,2021 < VLAN_INPUT_TAG(eh, adapter->fmp, < current_desc->special); --- > VLAN_INPUT_TAG(eh, adapter->fmp, > ntohs(current_desc->special)); Jacob S. Barrett wrote: > Well it is a bug in the em driver. It works fine on the fxp device. I > am trying to debug and patch myself, but I am not familiar with the > driver code so it is slow going. If anyone has any pointers on where > exactly to focus or anything at all please let me know. > > For the short term I have worked around this by setting the vlan ids to > values that are the same when the fist nibble is masked and the bytes > are swapped. For example 0, 257, 517 an 1028. > > -Jake > > Jacob S. Barrett wrote: > > > I am not sure if I am doing something completely wrong of if I have > > found some sort of bug here, but I thought I would toss it out to see if > > anyone else has ever seen this. > > > > I have two ports on my switch configured for vlan id 5. Port 1 is > > untagged and port 2 is tagged. The machine A is on port 1 and machine B > > is on port 2. Machine B's card is configure with multiple vlan nodes > > attached to it, including vlan id 5. I couldn't ping B from A so I > > attached tcpdump to the parent interface on B to see what was happening. > > So here is the strange part. The arp request from A to find B says > > that it is on vlan 1280. So I set the vlan id on the switch to 1280 and > > tcpdump says 5. So, id 0x0005 on the switch becomes 0x0500 on the host > > and 0x0500 on the switch becomes 0x0005 on the host. So I thought maybe > > a byte order problem until I tried setting the id on the switch to 18. > > So the id on the switch was 0x0012 and tcpdump reported it on vlan > > 0x0200. Trying other vlan IDs shows the same behavior. The id on the > > framed that is delivered is byte swapped with the first nibble chopped > > off. > > > > 0x0005 -> 0x0500 > > 0x0500 -> 0x0005 > > 0x0002 -> 0x0200 > > 0x0200 -> 0x0002 > > 0x0012 -> 0x0200 > > > > Here is my tcpdump from machine B (.1). Machine be is attempting to > > ping machine A (.2). It shows the frame leaving as vlan 2 (0x0020) > > (correct) and the reply coming back from A on vlan 512 (0x0200). > > > > 11:35:16.982435 802.1Q vlan#2 P0 arp who-has 10.126.0.2 > > (2e:2f:30:31:32:33) tell 10.126.0.1 > > 11:35:16.982593 802.1Q vlan#512 P0 arp reply 10.126.0.2 is-at > > 0:90:27:f4:3c:9f > > 11:35:17.992434 802.1Q vlan#2 P0 arp who-has 10.126.0.2 > > (2e:2f:30:31:32:33) tell 10.126.0.1 > > 11:35:17.992604 802.1Q vlan#512 P0 arp reply 10.126.0.2 is-at > > 0:90:27:f4:3c:9f > > 11:35:19.002467 802.1Q vlan#2 P0 arp who-has 10.126.0.2 > > (2e:2f:30:31:32:33) tell 10.126.0.1 > > 11:35:19.002627 802.1Q vlan#512 P0 arp reply 10.126.0.2 is-at > > 0:90:27:f4:3c:9f > > > > So does anyone have any ideas? I am assuming this is either a > > configuration issue on my part with my boxes or a bug in the vlan code > > for if_em. I doubt that it is a problem with the switch firmware since > > this came from a production site where vlans were used extensively. > > Also, it correctly transmits the frame on the ports tagged for that > > vlan. My guess is that it is in the if_em driver somewhere. If anyone > > wants to tackle this let me know. > > > > Hardware Involved: > > (1) Extreme Networks Summit 4 > > (2) HP LPr Dual PIII 600MHz > > (1) Intel Pro 10/100B/100+ Ethernet > > (2) Intel(R) PRO/1000 > > > > -Jake > > > -- Jacob S. Barrett jbarrett@amduat.net www.amduat.net "I don't suffer from insanity, I enjoy every minute of it." To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DC8A243.4070603>