网络虚拟服务提供商 (VSP) 在 VMQ 接收队列上设置 VMQ 接收筛选器。 此类筛选器包括一组网络标头字段测试。 网络适配器硬件对传入数据包中的标头字段执行这些测试,以确定数据包的接收队列分配。 在队列上设置的每个筛选器都具有网络适配器的唯一筛选器标识符。 也就是说,筛选器标识符不会在网络适配器管理的不同队列上重复。
VMQ 接口在筛选器测试中使用媒体访问控制 (MAC) 标头中的字段。 在 MAC 标头中,VMQ 筛选器测试使用虚拟局域网(VLAN)标识符和目标 MAC 地址字段。
可以在接收筛选器中指定多个字段测试。 所有测试都必须通过,以匹配筛选器的条件,并将数据包分配给接收队列。 VMQ 筛选器对等于指定值的字段进行测试。 例如,目标 MAC 地址等于指定的地址。
可以在接收队列上设置多个筛选器。 如果队列上的任何筛选器匹配(即通过了该筛选器的所有检查),则网络适配器会将数据包分配给该接收队列。
下图显示了如何执行筛选器测试,以及筛选器如何确定队列分配。
在上图中,对目标地址(DA)进行了测试(与 A 和 B 比较)。 此外,还会测试 VLAN 标识符(与 2 和 3 相比)。 AND 操作表示 DA 和 VLAN 标识符必须等于指定值,才能匹配筛选器。 或运算表明,队列中的任何筛选器只要匹配成功,就会导致网络数据包被分配到该队列。
下图显示了筛选器和队列如何影响接收数据流。
如果传入数据包与队列上的筛选器匹配,则会将其分配给该队列。 否则,数据包将被测试到下一个队列的筛选器,依次进行。 如果任何队列上没有筛选器匹配项,则网络适配器会将数据包分配给默认队列。