Younger Wang wrote:
Hi,

I expect to see [Ether header][tag 4000][tag 201][payload] in hub_QinQ,
but in fact it was [ether header][tag 201][tag 4000][payload].

I inserted the hub because I wanted to sniffer in the segment. It should
not cause any problem, should it?

probably not.. that is what the 'tee' node is for though.


The system I run is based on vimage_7-20080228.tgz
(http://imunes.tel.fer.hr/virtnet/), on FreeBSD Release 7, with ng_vlan
module modified to support changing ethertype. My modification was made
for release 7 however. Yes, the difference between vimage source and
release 7 could be the cause. I will check it during the weekend.

ok that shouldn't make a difference..

on thing is that the vlan header is removed very early
(just before the packet is handed to netgraph) and replaced
by a packet tag (metadata) is is added back on (at the front)
before transmission so that may be related how the headers
swap position.

it is possible that the vlan node converts the tag back to a header.


I'm not sure exactly where it gets added back but it may be worth
looking to see if the vlan type does so...



Big thanks!

BR
Younger Wang

-----Original Message-----
From: Julian Elischer [mailto:[EMAIL PROTECTED] Sent: Friday, August 08, 2008 5:12 PM
To: Younger Wang
Subject: Re: (Netgraph problem) Inner tag and outer tag swapped

Younger Wang wrote:
Hi,

fxp0 is connected to a trunk port. Frames tagged with VID=201 arrives
at
fxp0 from a switch trunk port, I expect it will be captured at
hub_QinQ,
with outer tag = 4000, and inner tag = 201. But in fact, it was
received
with the outer and inner tags reversed.

is this what you think is on the wire?


[ether header][tag 201][tag 4000][payload]

But if I inject the same frame on hub_c4000, the frame is received at
hub_QinQ as expected (inner tag = 201, outer tag = 4000). I am really
confused. Has anyone seen the same problem? Big thanks.

Here is my netgraph setup:

ngctl mkpeer fxp0: hub lower physical

ngctl name fxp0:lower hub_c4000

looking at your config.. I see:


[hub]
   down0
    |
   downstream
[vlan]
   vlan4000
    |
   up
[hub]        <--- why do you need this?
   physical
    |
   lower
[ether]


what version of FreeBSD?
some changes were made in vlan handling in the late6/7 timeframe.


ngctl mkpeer hub_c4000: vlan up vlan4000

ngctl name hub_c4000:up vlan_QinQ

ngctl mkpeer vlan_QinQ: hub downstream down0

ngctl name vlan_QinQ:downstream hub_QinQ

ngctl msg vlan_QinQ: addfilter { vlan=4000 hook="vlan4000" }

BR

Younger Wang

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to