当数据帧通过第一步数据帧的进入策略,第二步数据帧的交换策略,通过这两步骤,此时数据帧带着VLAN tag到达指定的目的端口,在这里数据将被保留tag,还原tag或者去掉tag,然后从物理端口发送出去,直达对方ECU的物理PHY芯片。这里的保留tag,还原tag和去掉tag,其实就是各种的egress策略,实际应用情况还要复杂一些,接下来的文章将对各种情况进行分类讨论。

基于端口的(Port-based VLANs)的发出策略

  1. 当关闭进入Port的802.1Q Mode 或者 通过本系列《二》文章可知,即使某进入端口被划分了VLAN,但是也可以手动关闭802.1Q Mode,此时VLAN交换策略基于此Port offset 0x06 维护的一张 VLANTable,所以到达的目的接口位置取决于这张VLANTable。
  2. 此时的端口发出策略取决于发出端口的寄存器0x04,bit(13-12)。而在VTU中,无论此输出端口被划分的VLAN是哪个,在那个VLAN中的策略是怎样的(untagged,tagged或unmodified),都不会对发出策略产生影响。
  3. 通过此寄存器可以配置tagged,untagged,unmodified,几种模式。结合进入策略中的PVID更新,PVID=1,进入帧本身带tag,ForceDefaultPVID几种情况,可能会有不同的发出结果。下表进行了汇总。

port default vlan 10执行不了 port-based vlan_寄存器

  1. 从上图中可以看出,PVID=1时,无论是出口的发出策略如何设置,都是按照不带tag进行发出。如果PVID为客户手动去设置,则会对数据帧产生影响。
  2. 在关闭802.1Q Mode时,即使进入本身带有VLAN tag,交换机也按照无VLAN进行处理,所以此时如果PVID被手动设置的话,并且发出策略为tagged, 会有双VLAN tag的数据包发出。
  3. 带tag和不带tag的发出策略很好理解,也就是从此端口发出时,是不是继续保持VLAN tag。如何理解unmodified,这里是相对进入口数据帧来说的,如果进入的数据帧本身是不带tag的,那么unmodified指的就是在出口处保持这种不带tag的状态。如果进入的数据帧本身是带tag的,那么unmodified指的就是在出口处保持这种带tag的状态,包括vlan tag ID也是保持一致的。