Читаем, обсуждаем, задаем вопросы
3 Ноя
Не смотря на то, что процессоры архитектуры ARM начинают активно завоевывать рынок систем широкополосной связи и сетевых технологий, процессоры PowerPC все еще занимают значительную долю рынка благодаря таким производителям, как Freescale.
В рамках данной статьи мы познакомимся с техническими возможностями процессора Freescale QorIQ P1020 в части обработки Ethernet-траффика. А также проверим производительность IP-маршрутизации на отладочной плате P1020RDB.
Референс-плата (RDB) QorIQ P1020 — это многофункциональная платформа, которая может использоваться в самых разных типах устройств. Доступен 1 ГБ памяти DDR3 SDRAM (без буферизации), а также 16 Мб NOR FLASH и 32 Мб NAND FLASH (с возможностью загрузки с FLASH-памяти NOR или NAND). Плата поддерживает шесть гигабитных портов через SGMII PHY, RGMII PHY и встроенный 4-портовый свитч, а также 2-порта USB On-The-Go (OTG), четыре FXS-порта и один FXO-порт (через реле).
Структурная схема платы P1020RDB |
Подробнее о P1020RDB можно узнать на сайте freescale.com.
Для ускорения обработки сетевого траффика Freescale предлагает использовать технологию ASF (Application Specific Fastpath) для Linux kernel. Реализация ASF представляет собой динамически загружаемые модули ядра Linux, которые можно подключать к стеку Linux во время работы. После подключения в стек Linux пакеты перехватываются c драйвера сетевого устройства Linux (Ethernet) на модуль канала передачи данных ASF. ASF рассчитан на наиболее распространенные приложения для передачи данных.
Основные области применения
Схема реализации ASF
ASF интегрируется с различными модулями управления сетями Linux для извлечения информации для обработки данных. На рисунке ниже показано, как модуль ASF вписывается в общую систему на типовой архитектуре ПО сетевого процессора.
Программная архитектура ASF |
На плате P1020RDB установлено ПО на: QorIO-SDK-1.7-20141218-yocto.
Для работы ASF необходимо включить в ядре от Freescale соответствующую опцию:
Application Specific FastPath ( Disabled by Default ) │ Location: │ -> Device Drivers │ -> Network device support (NETDEVICES [=y])
Для тестирования пропускной способности будем использовать сетевой анализатор Metrotek BERcut-ADSL.
Настойка тестового сценария
Тестировать производительность будем на типовой задаче IP-маршрутизации согласно RFC2544 – Benchmarking Methodology for Network Interconnect Devices.
Поток данных с первого порта анализатора посылается через плату P1020RDB на второй порт. Полученный траффик отражается и посылается обратно через P1020RDB на первый порт анализатора. Таким образом, во время теста через P1020RDB протекают два разнонаправленных потока данных (Full Duplex). Для того чтобы выполнять полнодуплексную маршрутизацию 1 Гбит/с траффика, процессор должен успевать обрабатывать 2 Гбит данных в секунду.
Тестируемая конфигурация |
Конфигурация P1020RDB
Настройка адресов IPv4 и масок на интерфейсах eth0 and eth1:
ifconfig eth0 192.168.1.100 netmask 255.255.0.0 up ifconfig eth1 10.10.10.100 netmask 255.0.0.0 up
Включение маршрутизации на плате:
echo 1 > /proc/sys/net/ipv4/ip_forward
Загрузка ASF-модулей ядра:
insmod asf.ko insmod asfctrl.ko
Увеличение числа возможных потоков:
echo 140000 > /proc/sys/net/nf_conntrack_max
Установка таймаута UDP равным 9000 с (для теста производительности):
echo 9000 > /sys/asfctrl/ffp/asfctrl_ffp_udp_tmout
Установка параметров групповой обработки кадров:
ethtool -C eth0 rx-frames 12 rx-usecs 32 ethtool -C eth1 rx-frames 12 rx-usecs 32
Установка размеров Rx и Tx колец:
ethtool -G eth0 rx 32 tx 32 ethtool -G eth1 rx 32 tx 32
Назначение ядра для обработки прерываний:
echo 2 > /proc/irq/30/smp_affinity echo 1 > /proc/irq/36/smp_affinity
Выключение PTP:
echo 0 > /sys/class/net/eth0/ptp_1588 echo 0 > /sys/class/net/eth1/ptp_1588
Настройка сетевого анализатора:
Запускаем тест пропускной способности.
Пропускная способность (payload) IP-маршрутизации на P1020RDB с ASF
Размер кадра | Пропускная способность (payload), Мбит/с |
Загрузка канала, % |
---|---|---|
128 байт | 371,892 | 43 |
256 байт | 769,855 | 83 |
512 байт | 952,782 | 99 |
1024 байт | 971,034 | 99 |
1280 байт | 974,769 | 99 |
1518 байт | 977,126 | 99 |
Выводы
Application Specific Fastpath на P1020RDB работает, т.е. при выполнении IP forwarding на скорости 956,569 Мбит/с (кадр 1500 байт) загрузка процессора была на уровне 2% (по top).
Стоит отметить, что при обработке траффика с помощью ASF он не проходит через стек Linux, это можно видеть по отсутствию активности на интерфейсе при запуске tcpdump.
Источник: Инновационная компания Promwad — крупнейший независимый дизайн-центр электроники в Восточной Европе, разрабатывает серийные устройства на заказ. Основные специализации: потребительская электроника, телекоммуникации, автоэлектроника, автоматизация, медиа и развлечения.
Запросить образцы, средства разработки или техническую поддержку
Подпишись на новости! |