Трансформация VLAN-тегов

В СКАТ начиная с версии 7.4 добавлена поддержка трансформации VLAN-тегов. Режим трансформации похож на режим подмены, но количество VLAN-тегов в пакете абонента может не совпадать с количеством, заданным в параметре bras_vlan_subst. Примеры:

bras_vlan_terminate=3
bras_vlan_subst=1071

Для такого режима:

если входящий пакет не имеет VLAN-тегов - ему будет добавлен VLAN=1071

если входящий пакет имеет один VLAN-тег - его значение будет заменено на VLAN=1071

если входящий пакет имеет два VLAN-тега (QinQ) - один будет отрезан, для второго будет указан VLAN=1071

bras_vlan_terminate=3
bras_vlan_subst=1071.65

Для такого режима:

если входящий пакет не имеет VLAN-тегов или имеет только один - ему будет добавлен QinQ outerVLAN=1071, innerVLAN=65

если входящий пакет имеет два VLAN-тега (QinQ) - их значения будут изменены на outerVLAN=1071 и innerVLAN=65

При оригинации применяются обратные правила.

legacy pf_ring-версия СКАТ, CentOS 6: следует учитывать, что режимы добавления/удаления VLAN-тегов для СКАТ весьма накладны в случае изменения размера пакета (то есть удаления/добавления VLAN-тегов), что может значительно сказаться на общей производительности СКАТ.
DPDK-версия СКАТ на CentOS 8 практически лишена этого недостатка, - снижения производительности fastDPI практически не происходит благодаря оптимизациям при обработке пакета