- 论坛徽章:
- 7
|
1 不会。ETH0.1设备只负责2个功能,接收从EHT0设备上的带TAG1的包,去TAG.从上层发送的包加TAG.加TAG去TAG的功能实际称呼好象叫VLAN隧道. VLAN的详细确切概念可以看 PERLMAN的 网络互连 一书
2 桥只管按MAC地址,带TAG的叫隧道包,他不能做分辨. 所以问题与桥没关系,只是VLAN虚拟设备设计的问题.
代码显示,不会加而是直接透传发送.
int vlan_dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct net_device_stats *stats = vlan_dev_get_stats(dev);
struct vlan_ethhdr *veth = (struct vlan_ethhdr *)(skb->data);
/* Handle non-VLAN frames if they are sent to us, for example by DHCP.
*
* NOTE: THIS ASSUMES DIX ETHERNET, SPECIFICALLY NOT SUPPORTING
* OTHER THINGS LIKE FDDI/TokenRing/802.3 SNAPs...
*/
if (veth->h_vlan_proto != __constant_htons(ETH_P_8021Q)) {
int orig_headroom = skb_headroom(skb);
unsigned short veth_TCI; |
|