Pull to refresh
0
Promwad
Контрактная разработка и производство электроники

Знакомство с программным Ethernet Fast Path на отладочной плате P1020RDB

Reading time3 min
Views10K


Не смотря на то, что процессоры архитектуры ARM начинают активно завоевывать рынок систем широкополосной связи и сетевых технологий, процессоры PowerPC все еще занимают значительную долю рынка благодаря таким производителям, как Freescale.

В рамках данной статьи мы познакомимся с техническими возможностями процессора Freescale P1020 в части обработки Ethernet-траффика. А также проверим производительность IP-маршрутизации на отладочной плате P1020RDB (внешний вид см. выше).

Референс-плата (RDB) QorIQ P1020 — это многофункциональная платформа, которая может использоваться в самых разных типах устройств. Доступен 1 ГБ памяти DDR3 SDRAM (без буферизации), а также 16 Мб NOR flash и 32 Мб NAND 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 используется для ускорения пропускной способности:
  1. IPv4 Firewall + NAT / NAPT Forwarding
  2. IPv6 Firewall Forwarding
  3. IPv4 + IPv6 IPSec (ESP & AH) Forwarding
  4. Поддержка 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])  

Для тестирования пропускной способности будем использовать сетевой анализатор:


Сетевой анализатор

Настойка тестового сценария


Тестировать производительность будем на типовой задаче 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


Выводы:
Application Specific Fastpath на P1020RDB работает, т.е. при выполнении IP forwarding на скорости 956,569 Мбит/с (кадр 1500 байт) загрузка процессора была на уровне 2% (по top).

Стоит отметить, что при обработке траффика с помощью ASF он не проходит через стек Linux, это можно видеть по отсутствию активности на интерфейсе при запуске tcpdump.

[!?] Спасибо за внимание! Вопросы и комментарии приветствуются. На них будет отвечать программист дизайн-центра электроники Promwad.
Tags:
Hubs:
+10
Comments7

Articles

Change theme settings

Information

Website
promwad.com
Registered
Founded
Employees
101–200 employees
Location
Литва
Representative
Alexandra Goncharik