[VLAN] Re: newbie question on enabling vlan feature in the driver

kmk km7kumar at gmail.com
Wed Mar 14 14:03:38 PST 2007


Ben

On the arm side, in my driver, I cast skb->data to vlan_ethhdr and dumping
it
from hard_xmit and receive routines. I don't see correct h_vlan_proto value.
I see only 0x806 and 0x800 when I ping from either direction. I tried
both small packets and large packets (512, 1496).

On the PC, I used ethereal to sniff the physical interface and again I don't
see vlan tags in both ping requests/responses and in ARP queries.

/kmk

On 3/14/07, kmk <km7kumar at gmail.com> wrote:
>
> Ben,
>
> Here is ifconfig -a output from the arm board (modifying the eth driver
> for
> this board to add vlan feature). I used ping -c -s 1496 192.168.55.1 from
> the remote pc.
>
> =========================================================================
> ifconfig -a
>
> eth0      Link encap:Ethernet  HWaddr 00:60:CE:12:00:00
>           inet addr:169.254.100.2   Bcast:169.254.255.255  Mask:
> 255.255.0.0
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:32 errors:10 dropped:0 overruns:0 frame:0
>           TX packets:145 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:2612 (2.5 KiB)  TX bytes:16494 (16.1 KiB)
>           Interrupt:29
>
> eth0.2    Link encap:Ethernet  HWaddr 00:60:CE:12:00:00
>           inet addr:192.168.55.1  Bcast:192.168.55.255  Mask:255.255.255.0
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:32 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:145 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:0
>           RX bytes:2164 (2.1 KiB)  TX bytes:16494 ( 16.1 KiB)
>
> lo        Link encap:Local Loopback
>           inet addr:127.0.0.1  Mask:255.0.0.0
>           UP LOOPBACK RUNNING  MTU:16436  Metric:1
>           RX packets:81 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:81 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:0
>           RX bytes:33090 (32.3 KiB)  TX bytes:33090 ( 32.3 KiB)
>
> # cat /proc/n# cat /proc/net/vl# cat /proc/net/vlan/e# cat
> /proc/net/vlan/eth0.2
> eth0.2  VID: 2     REORDER_HDR: 1  dev->priv_flags: 1
>          total frames received           32
>           total bytes received         2164
>       Broadcast/Multicast Rcvd            0
>
>       total frames transmitted          145
>        total bytes transmitted        16494
>             total headroom inc            0
>            total encap on xmit          145
> Device: eth0
> INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
> EGRESSS priority Mappings:
> #
> ==========================================================================
>
>
> Here is the ifconfig -a output from the remote pc (e1000 with vlan
> enabled)
>
> eth0      Link encap:Ethernet  HWaddr 00:0B:DB:5C:55:B8
>           inet addr:169.254.100.1  Bcast:169.254.255.255  Mask:255.255.0.0
>           inet6 addr: fe80::20b:dbff:fe5c:55b8/64 Scope:Link
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:100
>           RX bytes:0 (0.0 b)  TX bytes:1008 (1008.0 b)
>           Base address:0xdcc0 Memory:ff6e0000-ff700000
>
> eth0.2    Link encap:Ethernet  HWaddr 00:0B:DB:5C:55:B8
>           inet addr:192.168.55.2  Bcast:192.168.55.255  Mask:255.255.255.0
>           inet6 addr: fe80::20b:dbff:fe5c:55b8/64 Scope:Link
>           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:0
>           RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)
>
> lo        Link encap:Local Loopback
>           inet addr:127.0.0.1  Mask:255.0.0.0
>           inet6 addr: ::1/128 Scope:Host
>           UP LOOPBACK RUNNING  MTU:16436  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:0
>           RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
>
> eth0.2  VID: 2     REORDER_HDR: 1  dev->priv_flags: 1
>          total frames received            2
>           total bytes received           84
>       Broadcast/Multicast Rcvd            0
>
>       total frames transmitted           12
>        total bytes transmitted         3696
>             total headroom inc            0
>            total encap on xmit            0
> Device: eth0
> INGRESS priority mappings: 0:0  1:0  2:0  3:0  4:0  5:0  6:0 7:0
> EGRESSS priority Mappings:
>
>
>
>
>
> On 3/14/07, kmk <km7kumar at gmail.com> wrote:
> >
> > Ben, I enabled vlan in the eth mac by writing to vlan1tag and adjust mtu
> > to handle
> > vlan. Now, when I ping from a remote pc which also has vlan enabled
> > interface,
> > I don't see vlan tags in the frames. Same issue if I ping the remote PC.
> > Basically,
> > I don't see vlan tag in tx/rx directions.
> >
> > /kmk
> >
> > On 3/13/07, Muthu Kumar < km7kumar at gmail.com> wrote:
> > >
> > > Ben,
> > >
> > > Thanks for your response. The mac data sheet says, when 0x8100 is
> > > written to the
> > > van1_tag register, the mac compares 13th & 14th bytes of incoming
> > > frame and, if it
> > > finds a match, it sets vlan1 bit in rx status register. However, this
> > > particular status
> > > bit is not actually exposed to driver access. The documentation could
> > > be wrong.
> > >
> > > Other than the above, no behaviour changes. In this case, I just
> > > simply ensure
> > > that the driver/chip can handle MTU + 4 bytes? No need to enable
> > > NETIF_VLAN_HW_TX/RX
> > > and related callbacks?
> > >
> > > By the way, I don't see my postings @ http://ns2.lanforge.com/pipermail/vlan/2007-March/thread.html
> > > .
> > >
> > > Thanks
> > > /kmk
> > >
> > > On 3/13/07, Muthu Kumar < km7kumar at gmail.com> wrote:
> > > >
> > > > 'm trying to enable VLAN in my eth driver. The eth mac supports
> > > > vlan processing and has a register (vlantag1) that should be written
> > > >
> > > > with 0x8100 to enable VLAN processing. Other than this, the mac does
> > > >
> > > > not have any other vlan related registers or anything else. It does
> > > > not give
> > > > any indication during rx if VLAN pkts received.
> > > >
> > > > How do I enable VLAN in my driver for such a MAC? I'm basically
> > > > confused with all the callbacks such as vlan_rx_register etc most
> > > > drivers support.
> > > >
> > > > Currently, in my driver I've enabled the features
> > > > NETIF_VLAN_HW_TX/RX
> > > > and providing the above callbacks. But I'm not sure whether these
> > > > flags
> > > > are applicable to my driver.
> > > >
> > > > what else I need to do? I'm kinda stuck here. Any help would be
> > > > highly
> > > > appreciated.
> > > >
> > > > thx
> > > > /kmk
> > >
> > >
> > >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://ns2.lanforge.com/pipermail/vlan/attachments/20070314/06b96fcd/attachment-0001.html


More information about the Vlan mailing list