Af Xdp Dpdk Bypass

Ingress-пайплайн: DPDK / AF_XDP Kernel Bypass и Gossip-сеть

Published: 2026-06-25 · Trading

Механика Kernel Bypass Для достижения микросекундных задержек в обработке котировок HFT-боты используют технологию обхода сетевого стека ядра Linux (Kernel Bypass).

⚡ Быстрый ответ

  • Hardware alignment and kernel bypass network ingress pipeline using ConnectX-6 NIC, F-Stack, AF_XDP, and lock-free rings.
  • Core pinning assigns specific CPU cores to network polling, Hawkes math calculation, and order execution to achieve microsecond latency.
MemIR AI Agent Summary
Hardware alignment and kernel bypass network ingress pipeline using ConnectX-6 NIC, F-Stack, AF_XDP, and lock-free rings. Core pinning assigns specific CPU cores to network polling, Hawkes math calculation, and order execution to achieve microsecond latency.

Executable Parameters

Contracts

RPC Endpoints

Constants

nic_interface: ens1f0
cpu_core_pinning: {"os_and_interrupts":0,"f_stack_network_poll":1,"hawkes_mle_math":2,"order_execution":3}
ring_buffer_type: PureCdefSpscQueue

Safety Guards

Rule Max Limit Action On Breach
packet_processing_timeout_ms 1 alert_and_reconnect
cpu_utilization_cap 100 log_health_check

Руководство по интеграции

### Механика Kernel Bypass
Для достижения микросекундных задержек в обработке котировок HFT-боты используют технологию обхода сетевого стека ядра Linux (Kernel Bypass). Сетевая карта Mellanox ConnectX-6 Dx настраивается на прямую передачу кадров Ethernet в пользовательское пространство процесса (UMEM) через сокеты `AF_XDP` в режиме Zero-Copy.

### Пайплайн обработки сетевых пакетов (Ingress Pipeline)
1. **Аппаратный Ingress (NIC)**: Сетевой адаптер считывает кадр из физического уровня и с помощью DMA перекладывает его в буфер UMEM.
2. **Десериализация (CPU Core 1)**: Процесс-воркер, использующий фреймворк F-Stack (DPDK / AF_XDP), забирает пакет из UMEM, собирает TCP-поток, расшифровывает TLS 1.3 и парсит бинарную SBE-структуру `CleanSbeMarketPayload`.
3. **Lock-Free Handoff**: Процесс выполняет `enqueue_by_reference(...)` в кольцевую очередь `PureCdefSpscQueue` (Single Producer Single Consumer). Данная очередь не использует мьютексы и синхронизируется исключительно на уровне шины процессора через когерентность кэшей MESI (кэш-линия переходит в статус Modified, о чем уведомляется ядро расчета математики).

### Core Pinning (Привязка ядер процессора)
Для исключения переключения контекста планировщика и джиттера L1/L2 кэшей, Hyper-Threading (SMT) отключается в BIOS, а потоки жестко закрепляются за физическими ядрами:
- **Core 0 (CPU 0)**: Выделено под системные прерывания Linux, SSH-сессии и фоновые демоны.
- **Core 1 (CPU 1)**: Выделено под поллинг (polling) сетевого стека F-Stack (обработка сетевых пакетов).
- **Core 2 (CPU 2)**: Выделено под модуль Hawkes MLE (расчет интенсивности потока ордеров на AVX-512).
- **Core 3 (CPU 3)**: Выделено под исполнение ордеров (order execution) и работу со стаканом.