1. port和vlan相关属性
port属性:
PVID: 端口的缺省vlan ID,当收到的数据包不携带vlan tag的时候,芯片会给数据包打上PVID,然后进行转发
vlan有三个重要的属性:VID,member port 和 untag port
VID : 唯一标识一个vlan
member port : vlan的成员端口,
当端口收到一个带vlan的数据包的时候,芯片会首先判断该端口是否是数据包所属vlan的成员端口,如果不是,直接丢弃,反之通过
当芯片要转发一个数据包的时候,只会把数据包转发到所属vlan的成员端口,
untag port:需要去除vlan tag的端口
当端口要发出某一数据包的时候,芯片会判断该数据包所属vlan在本端口是否是untag的,如果是,就去掉vlan tag,反之保留
2. 数据收发流程
上图中红色线条的步骤,芯片主要就是依靠vlan member port和vlan untag port完成
3. 芯片配置
下面以MTK 7628芯片为例,简述配置过程
3.1. 配置vlan的VID
7628一共有8个寄存器,用来记录VID,每个寄存器可以记录两个VID,一共可记录16个VID
每个VID 12位,VID的范围是0 - 4095
3.2. 配置vlan的member port
为1则对应port是该vlan的成员端口
3.3. 配置vlan的untag port
为1则该vlan在对应port是untag的
3.4. 配置端口的PVID