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
[EMAIL PROTECTED]
www.amduat.net

"I don't suffer from insanity, I enjoy every minute of it."


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-net" in the body of the message

Reply via email to