Не смотря на то, что процессоры архитектуры 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 рассчитан на наиболее распространенные приложения для передачи данных.

Основные области применения

  • IPv4 Firewall + NAT / NAPT Forwarding
  • IPv6 Firewall Forwarding
  • IPv4 + IPv6 IPSec (ESP & AH) Forwarding
  • Поддержка QoS

Схема реализации 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

Настройка сетевого анализатора:

  • Порт 1 настраивается в режим передачи UDP-потока на скорости 1 Гбит/с
  • Порт 2 настраивается в режим петли (Mirror mode)

Запускаем тест пропускной способности.

Пропускная способность (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 — крупнейший независимый дизайн-центр электроники в Восточной Европе, разрабатывает серийные устройства на заказ. Основные специализации: потребительская электроника, телекоммуникации, автоэлектроника, автоматизация, медиа и развлечения.

 

Запросить образцы, средства разработки или техническую поддержку