30 likes | 230 Views
dst mac. src mac. etype. struct ethhdr { unsigned char h_dest[ETH_ALEN]; unsigned char h_source[ETH_ALEN]; __be16 h_proto; }. dst mac. src mac. proto. TCI. etype. struct vlan_ethhdr {
E N D
dst mac src mac etype struct ethhdr { unsigned char h_dest[ETH_ALEN]; unsigned char h_source[ETH_ALEN]; __be16 h_proto; } dst mac src mac proto TCI etype struct vlan_ethhdr { unsigned char h_dest[ETH_ALEN]; unsigned char h_source[ETH_ALEN]; __be16 h_vlan_proto; //0x8100 __be16 h_vlan_TCI; 1-12 VID unsigned short h_vlan_encapsulated_proto; };
process_backlog dev->poll dev->poll skb->dev skb->input_dev netif_receive_skb ip_recv vlan_skb_recv remove vlan header
VLAN ID vlan_group real device vlan device 0 vlan_skb_recv vlan device 1 ... ... VLAN ID vlan private