[vlan_proto_init]
- vlan_proc_init
- dev_add_pack
- register_netdevice_notifiler
- vlan_ioctl_set(vlan_ioctl_handler)
static struct packet_type vlan_packet_type = {
.type = __constant_htons(ETH_P_8021Q),
.func = vlan_skb_recv, /* VLAN receive method */
};
[vlan_skb_recv]
- get vlan from skb->data(vlan_hdr)
- skb->dev = __find_vlan_dev (from eth0 to eth0.10)
- __vlan_find_group
- vlan_group_get_device
- stats
- skb_pull_rcsum(skb, VLAN_HLEN); (take off vlan header)
- check dev
- vlan_get_ingress_priority
- vlan_check_reorder_header
- skb_shared
- skb_clone
- kfree_skb (user-1)
- netif_rx
阅读(2175) | 评论(0) | 转发(0) |