Доклад Васина Вячеслава (ЦПИКС) на семинаре Консорциума университетов по изучению и развитию передовых технологий в сфере компьютерных сетей. 20 октября 2016 года
2. Реализация:
EZchip NP Chip
Indigo
ARCCN Микрокод для NP
Oftest
Tests SDN App1
RUNOS controller
SDN App2
ARCCN NP HAL адаптер
OpenFlow Agent
OF Switch
ARCCN
CLI
Разработка
ЦПИКС
в рамках
проекта
МОН
Разработка
ЦПИКС
3. Характеристики платформы NP-4 (EZchip)
3
• Сетевой процессор производительностью 100 Гб/с, 180 миллионов пакетов в секунду
• Иерархическая система очередизации пакетов. Поддержка WFQ c приоритетной очередью.
• Поддержка WRED, Shaping (CIR, PIR), Per flow metering, marking, policing для миллионов потоков.
• L2-4 switching/routing. Поиск по шаблону вплоть до 80 байт.
Модуль управления :
2x10Гб/с (SFP+)
2х10/100/1000 Мб/с (SFP)
1 RS-232 console
Сетевые интерфейсные
модули (4 шт) :
2x10Гб/с (SFP+)
или
8x1Гб/с (SFP)
Высота 1.5U
Монтаж в стойку 19”
4. Характеристики платформы NP-5 (EZchip)
4
• Сетевой процессор производительностью до 240 Гб/с, 500 миллионов пакетов в секунду
• 5-уровневая иерархическая система очередизации. Поддержка WFQ c приоритетной очередью.
• Поддержка WRED, Shaping (CIR, PIR), Per flow metering, marking, policing для миллионов потоков.
• L2-4 switching/routing. Сбор статистики по потокам, программируемые пороги. 512М счетчиков.
Модуль управления:
4x10/1Гб/с
1х1Гб/с
1 RS-232 console
Сетевые интерфейсы:
44x10Гб/с
или
11x40Гб/с QSFP+
или
4х100ГБ/с
Высота 1.5U
Монтаж в стойку 19”
5. Характеристики платформы NP-5 (EZchip)
NP-5 – 500MHz (EZchip)
Task Optimized Processors (processing/lookup)
Unified memory 12GB DDR3 800MHz (Micron)
• Frame size from 16B to 16KB
• Up to 16GB frame memory (for 24GB DRAM)
Internal TCAM – 2.5Mbit
• 365M lookups per second
External TCAM - 40Mbit, 300MHz (Broadcom)
• 20B/40B/60B/80B key lookups
Integrated Search Engine (table, hash, tree, TCAM)
48 bytes keys for hash
18 bytes keys for trees
80 bytes keys for TCAM
Up to 16GB lookup tables headroom
NP-5 Sub-system
6. Характеристики:
OS: Linux 2.6 GCC ver. 4.2.1;
CPU: Freescale MPC8543 (792 МГц)
Mem: DDR2 667MHz 512 МБ;
HDD: SDD 256 МБ;
EEPROM: 2 КБ.
Интерфейсы:
- мост PCI (66 МГц) – PCI-express;
- Ethernet порт – 10/100/1000 Мб/с.
- RS-232 (для управления)
Аппаратные особенности Host CPU NP-4 (NP-5)
Решаемые задачи:
- взаимодействие с контроллером
- интерфейс администратора
- изменение настроек коммутатора
- мониторинг и управление
Карта расширения, выполняющая функции
блока управления
7. Стадии обработки данных в NP:
Ресивер
интерфейса
Ethernet
TOPparse
TOPparse
TOPparse
TOPsearchI
TOPparse
TOPresolve
TOPparse
TOPsearch II
TOPparse
TOPmodify
Ресивер
интерфейса
Ethernet
TMTM
Ресивер
интерфейса
Ethernet
Трансмитер
интерфейса
Ethernet
TOPparse
TOPlearn
loopback
loopback
9. Проблематика выбора и организации таблиц OpenFlow коммутатора
Несколько последовательно опрашиваемых
таблиц, реализованных с помощью TCAM
Возможность маскирования всех
нужных полей
Возможность реализации любой
политики приложений клиентов
TCAM - дорогостоящий ресурс.
TCAM имеет высокое энергопотребление.
10. Проблематика выбора и организации таблиц OpenFlow коммутатора
Несколько разнородных таблиц оптимизированных
под выполнение конкретной задачи в сети клиента.
Возможность реализовывать таблицы с
миллионами записей
Сложность в адаптации приложений под текущую
структуру и архитектуру взаимодействия таблиц
Сложности с потоками требующими проверку
маскированных полей
11. Последовательный тракт обработки данных
TCAM table
80 bytes
MATCH
По всем
полям
OpenFlow
v1.3
кроме IPv6
L2 Hash table
ACTION
Change VID
Change VL-PCP
PUSH VLAN
POP VLAN
GROUP
OUT port
OUT queue
MATCH
INPORT
DMAC
E-TYPE
Vlan ID
L3 Hash table
MATCH
SIP
DIP
IP Proto
SPORT
DPORT
ACTION
Change SPORT
Change DPORT
Change DSCP
Change TTL
Change DIP
Change SIP
GROUP
OUT port
OUT queue
Инструкции
Инструкции
Инструкции (write action)
Инструкции (goto table)
Тип таблицы Размерность ключа поиска Размерность таблицы
Внутренний TCAM от 160 до 640 бит 2.5 Mbit
Внешний TCAM от 80 до 640 бит 40 Mbit
Hash от 8 до 384 бит до 16 Млн записей
Tree от 8 до 144 бит до 4 Млн записей
FastIP от 8 до 144 бит до 8 Млн записей
12. TCAM table
Параллельный тракт обработки данных
L2 Hash table
L3 Hash table
ACTION
Change VID
Change VL-
PCP
PUSH VLAN
POP VLAN
GROUP
OUT port
OUT queue
MATCH
INPORT
DMAC
E-TYPE
Vlan ID
MATCH
SIP
DIP
IP Proto
SPORT
DPORT
ACTION
Change SPORT
Change DPORT
Change DSCP
Change TTL
Change DIP
Change SIP
GROUP
OUT port
OUT queue
MATCH
INPORT
SMAC
DMAC
Vlan ID+PCP
SIP
DIP
TOS
ACTION
Change SMAC
Change DMAC
Change VID
PUSH VLAN
POP VLAN
Change VL-
PCP
Change DIP
Change SIP
Change DSCP
Change TTL
GROUP
OUT port
OUT queue
Инструкции
Параллельный поиск
Инструкции
Тип таблицы Размерность ключа поиска Размерность таблицы
Внутренний TCAM от 52 до 208 бит 50 Kbit
Внешний TCAM от 80 до 640 бит 40 Mbit
Hash от 8 до 384 бит до 1 Млн записей
Tree от 8 до 144 бит до 2 Млн записей
FastIP от 8 до 144 бит до 4 Млн записей
14. Примеры
При использовании параллельного тракта обработки получаем:
- минимизацию задержки на обработку пакета для задач L2 коммутации
- минимизацию задержки на обработку пакета для задач сетевой трансляции (NAT)
- более эффективное использование ресурсов платформы ввиду большего
количества TOPsearch (1024) по сравнению с TOPresolve (96) и TOPmodify(64)
- Возможность снизить требование к количеству записей в TCAM путем организации
достаточного количества таблиц разных типов, покрывающих потребности
наиболее часто используемых в сети приложений
При использовании последовательного тракта обработки получаем:
- Более эффективный поиск при использовании маскируемых полей, а также за счет
просмотра единственной таблицы
- Более эффективное использование ресурсов при решении задач требующих
анализа большого количества полей, так как при этом результат достигается за счет
просмотра только 1 таблицы
- Более очевидный и понятный алгоритм обработки потоков с помощью
последовательности OF таблиц.
- Возможность реализации Apply Action и использование результатов обработки
пакета предыдущей таблицей.
15. Ryu/OFTEST v1.3
• Basic
-echo
-feature request
-default drop
-output exact
-packet in
-packet out
• Matching fields
-ipv4
-arp
-ethernet
-vlan
-mpls
-in port
• Group
-groups op.
-buckets (indirect/select/all)
• Action sets
-change fields
-pop or push Vlan / MPLS
-instruction set
• Role request
-Permissions for
slave / equal / master controllers
Тесты
Модель OpenFlow коммутатор
OpenFlow агент
OpenFlow протокол
OFtest Управляющий интерфейс
Интерфейсы передачи данных
Сетевые интерфейсы
Нагрузочное тестирование
• Подтверждается 10G производительность на пакетах от 64 до
1500 байт, в том числе при поиске по нескольким таблицам, в
том числе при изменении IP/TCP/UDP (свыше 10 Mpps)
• До 530 Flowmod в секунду для TCAM таблицы (зависит от
последовательности приоритетов добавляемых записей)
• Порядка 4000 Flowmod в секунду для Hash таблиц
(независимо от количества записей в таблице)
• Порядка 1000 PACKET_IN в секунду.
• Порядка 2500 PACKET_OUT в секунду.
Weighted fair queuing (WFQ) - Взвешенная справедливая очередь — механизм планирования пакетных потоков данных с различными приоритетами. Его целью является регулировать использование одного канала передачи данных несколькими конкурирующими потоками.
Weighted random early detection (WRED) /Взвешенное Произвольное Раннее Обнаружение/ — алгоритмо для управления переполнением очередей маршрутизаторов, с возможностями предотвращения перегрузок за счет упреждающего сброса пакетов
Shaping— придание трафику формы — ограничение пропускной способности канала/потока за счет буферизации избыточных пакетов.
Committed Information Rate (CIR) — гарантированная полоса пропускания виртуального канала
Peak Information Rate (PIR) — максимально допустимая полоса пропускания виртуального канала
Per Flow Metering – учет количества переданных пакетов и байт для каждого потока данных.
Marking - маркировка пакетов в соответствии с определяемой политикой с целью упрощения последующей идентификации данного набора пакетов.
Policing— придание трафику формы — ограничение пропускной способности канала/потока за счет сброса избыточных пакетов.
5-уровней – Interface/port/subport/classes_users/flow
WFQ – 8 очередей.
Weighted fair queuing (WFQ) - Взвешенная справедливая очередь — механизм планирования пакетных потоков данных с различными приоритетами. Его целью является регулировать использование одного канала передачи данных несколькими конкурирующими потоками.
Weighted random early detection (WRED) /Взвешенное Произвольное Раннее Обнаружение/ — алгоритмо для управления переполнением очередей маршрутизаторов, с возможностями предотвращения перегрузок за счет упреждающего сброса пакетов
Shaping— придание трафику формы — ограничение пропускной способности канала/потока за счет буферизации избыточных пакетов.
Committed Information Rate (CIR) — гарантированная полоса пропускания виртуального канала
Peak Information Rate (PIR) — максимально допустимая полоса пропускания виртуального канала
Per Flow Metering – учет количества переданных пакетов и байт для каждого потока данных.
Marking - маркировка пакетов в соответствии с определяемой политикой с целью упрощения последующей идентификации данного набора пакетов.
Policing— придание трафику формы — ограничение пропускной способности канала/потока за счет сброса избыточных пакетов.
What about NP-5 evaluation system?
As I understood, NP-5 evaluation system has 40Mbit TCAM.
[MM>] Yes
So we can get: 40Mbits / 80 bytes = 62500 records?
[MM>] Yes
Does NP-5 TCAM controller also support TCAM algorithmic extension to external DRAM?
[MM>] No. Only TCAM + Tree. Used for IP (LPM lookups). Not free wild card rules.
How many records maximum may be in the FlowTable of OpenFlow switch based on
NP-5 evaluation system?
[MM>] Limited by external TCAM of 40Mb as per key size. Max is 1M x 5B key.
В основе архитектуры сетевых процессоров EZchip NP-5 лежит сеть гетерогенных микропроцессоров, оптимизированных для обработки сетевых пакетов. Микропроцессоры относятся к нескольким классам, представители каждого из классов ориентированы на выполнение ограниченного набора действий по разбору заголовков сетевых пакетов, классификации сетевых пакетов, преобразованию, управлению потоками. Каждый экземпляр микропроцессора обладает выделенным набором ячеек памяти и подключен к ограниченному набору шин данных, необходимыми для выполнения определенной специфичной задачи.
Обмен данными (контекстами обработки) между экземплярами разных классов осуществляется через контексты обработки процессов – записи в ОП, ограниченные в объёме и структуре.
Планирование операций обмена контекстами осуществляется вспомогательными компонентами NP-5 и сокрыто от разработчика. Пути взаимодействия (структура логической коммутационной среды) между микропроцессорами предопределена и не подлежит модификации, накладывает ограничения на возможности микропроцессоров по передаче контекстов обработки пакетов между экземплярами разных классов микропроцессоров.
Функциональные элементы NP-5
NP-5 основан на 5-ти стадийной обработке пакетов:
стадия 1 – набор процессоров TOPparse;
стадия 2 – набор процессоров TOPsearch I;
стадия 3 – набор процессоров TOPresolve;
стадия 4 – набор процессоров TOPsearch II;
стадия 5 – набор процессоров TOPmodify.
Каждая стадия обработки реализуется набором однотипных процессоров, работающих параллельно и независимо в рамках одной группы.
Выделяется 4 типа (класса) процессоров: TOPparse, TOPsearch, TOPresolve и TOPmodify. Каждый класс обладает своим набором специфичных команд, каждый экземпляр снабжён набором независимых регистров, блоками выделенной памяти.
TOPsearch разбит на 2 группы: TOPsearch I и TOPsearch II. Группы отличаются количеством процессоров в группе, TOPsearch II имеет ряд дополнительных ограничений по сравнению с TOPsearch I.
Взаимодействие процессоров выстроено по принципу конвейера, т.е. выходные данные одного процессора служат входными данными для следующего. TOPparse, TOPresolve и TOPmodify имеют возможность сбросить пакет, с освобождением всех выделенных для него ресурсов, или отправить пакет в начало конвейера через специальный механизм Loopback.
TOPlearn – это специальный процессор, применяемый для обновления данных в структурах в общей памяти. Этот процессор не участвует в конвейерной обработке пакетов, а получает сообщения от TOPsearch, TOPresolve и TOPmodify содержащие команду, ключ, результат и операцию которую необходимо произвести.
Основной тракт обработки данных логически представим в виде конвейера, включающего в свой состав следующие стадии:
Стадия 1. Приём входящего пакета.
Стадия 2. Формирование дескриптора пакета по заголовочным данным пакета.
Стадия 3. Классификация пакета по данным дескриптора пакета с задействованием параметрической информации из таблиц потоков.
Стадия 4. Выборка параметрической информации микропрограммы обработки данных пакета, L1-маршрутизации и приоритета выдачи пакета в канал.
Стадия 5. Преобразование заголовочных данных пакета с учётом параметров преобразования (выполнение микропрограммы преобразования).
Стадия 6. Постановка пакета в одну или более очередь отправки с учётом параметров L1-маршрутизации и приоритета выдачи пакета.
Стадия 7. Извлечение данных пакета из очереди и отправка результирующего пакета в канал(ы).
При этом фазы 2 – 6, по сути, оперируют только над подмножеством заголовочных данных пакета, а данные тела (полезной нагрузки) пакета необходимы только на этапе выдачи пакета в канал (7-ая стадия). По результатам отработки 5 стадии пакет может быть направлен на повторную классификацию путём помещения модифицированных заголовочных данных на вход 2-ой стадии. Подмножество заголовочных данных (дескриптор пакета) представляют интерес только с точки зрения задачи классификации, решаемой на 3-ей стадии. Вместе с тем, сами заголовочные данные пакета подлежат модификации, строго говоря, безотносительно их принадлежности к подмножеству данных, входящих в состав дескриптора. Модификация заголовочных данных пакета реализуется на 5-ой стадии.