The VLAN tag is moved from frame to the field skb->vlan_tci by the input netdev. In your case, if vlan_tci is always equal to 0, I think your driver do not support the VLAN, or you need to enable it. You can have more information from netdev mailing list. Cedric Voncken > -----Message d'origine----- > De : linux-wireless-owner@xxxxxxxxxxxxxxx [mailto:linux-wireless- > owner@xxxxxxxxxxxxxxx] De la part de Dani Camps > Envoyé : vendredi 17 janvier 2014 17:27 > À : linux-wireless@xxxxxxxxxxxxxxx > Objet : Read VLAN Tag in mac80211 > > > > Dear all, > > I am having trouble reading a VLAN tag inside mac80211. I believe the tag is > in the packet because I can see it in wireshark. This is a simple test code that > I am using in tx.c: > > #include <linux/if_vlan.h> > > ... > unsigned short TCI; > unsigned short id; > ... > > // Checking if VLAN tag is present > if(vlan_tx_tag_present(skb)){ > TCI = vlan_tx_tag_get (skb); > id = TCI & VLAN_VID_MASK; > printk ("VLAN detection: Detected frame with VLAN ID = %x \n", id); > } > else{ > printk ("VLAN detection: No VLAN Tag detected but skb->vlan_tci is > %x \n", skb->vlan_tci); > } > > The previous code always fails to enter the VLAN present case, and goes to > the else condition printing a skb->vlan_tci value of zero, whereas I can see in > wireshark a frame with a VLAN tag and VLAN ID=1. > > Can anyone help me figure out what I am missing here? > > Best Regards > > Daniel > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the > body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at > http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html