タグ: Netfilter Flow Offloading

OpenWrtとoffloading

OpenWrtを取り巻くoffloading事情がだいぶ複雑化してきたため、自分用も兼ねてメモ。

現状OpenWrtで実装、あるいは動きがあるoffloading実装については、個人的に把握しているのは以下の3種。正式名称はちゃんと把握してないので、その辺は勘弁。

Netfilter Flow Offloading
  • The netfilter.org project によるオフロード実装。
  • ソフトウェア実装であり、特定ハードウェアに依存しないため全targetで利用可能
  • Kernel 4.14リリースよりも少々後で実装されたものの、メンテナによりOpenWrtのKernel 4.14へbackportされたため、OpenWrtにおいてはKernel 4.14から利用可能。Kernel 4.9.y以前では動作しない。
  • (以下 “Netfilter Offloading”)
MT7621 Hardware NAT Offloading
  • MediaTek MT7621用に実装されたHardware NAT Offloading実装
  • コミットはここ
  • デュアルコアのMT7621A, シングルコアのMT7621Sいずれでも利用可能。
  • (以下 “MT7621 HWNAT”)
Qualcomm FastPath
  • Qualcommが公開したコードを基にOpenWrtへの移植が進められているオフロード実装。
  • これもソフトウェア実装であり、特定ハードウェアに依存しないため全targetで利用可能。ただし、Qualcomm Atheros/Atheros系SoCでの伸びが特に大きい傾向にある。
  • OpenWrt Forum(旧LEDE Project Forum)において、HW NAT実装のスレッド内でとあるユーザーの提案をきっかけにSFEのスレッドが立てられ議論が進められた。
  • 途中OpenWrtとLEDEの統合前にlede-project/sourceにおいてSFEのPRがオープンされたが、SQMやその他色々との相性が悪いという報告が寄せられ、解決しないままOpenWrtとLEDE-Projectの再統合を迎えた。これに伴い、lede-project/sourceのPR一斉クローズ時に閉じられた。以降、openwrt/openwrtではPRがオープンされていない。
  • (Shortcut Forwarding Engine, 以下 “SFE”)

動作環境

Netfilter Offloading MT7621 HWNAT SFE
ALL ramips/mt7621 ALL
Kernel 4.14以上 kernel 4.14以上 Kernel 4.4.y, 4.9.y
Kernel 4.9以前では利用不可 ramipsは現在Kernel 4.14サポートのみ 把握している範囲ではKernel 4.14に対応するバージョンは無し
自前で野良パッチ適用してのビルドが必要

速度

手元で雑に計測した結果とForum等での情報。

Netfilter Offloading MT7621 HWNAT SFE
AR7242:
 約240Mbps -> 約445Mbps
QCA9557:
 約350Mbps -> 約715Mbps
MT7621S:
 約660Mbps -> 約800~900Mbps
AR7161:
 326Mbps -> 633Mbps
AR9344:
 ? -> 約915Mbps
(2件ともOpenWrt Forumのスレッドより)