KamueeでSRv6のD-planeを作ってます a. ルータとしてより先進的なルーティング機能をサポートしたい b. ソフトウェアルータの威力をアピールしたい c. オペレータの会社としてプロアクティブな運用課題解決の準備をしたい d. 設計はイメージできていて , PoCも動く状態 2. 動機: SRv6コミュニティの活用と活性 a. 近隣知識の探求と, 情報交換. 情報は出す人に集まる . b. 他の作ってる人に役立てばハッピー . 3. 概要: 今日はKamueeでどのようにSRv6を作っているかを紹介 a. D-planeの設計と実装に関して . b. ルータとしてどのように完全対応するかのストーリー c. softwareルータとSRv6の美味しい話 d. 実例としてKamueeとして話す 既存のソフトウェアルータに対する SRv6実装の手段 背景 / 動機 / 概要 2
overview. ref:www.dpdk.org Distributions Gold Members Silver Members Associate Members Amazon, Atomic Rules, Broadcom, Cavium, Chelsio, Cisco, Intel, Marvell, Mellanox, Netcope, Netronome, NXP, Solarflar, Paravirtualization(VMware/KVM), Others Support Hardware ANS, BESS, Butterfly, DPVS, VPP, FastClick, Lagopus, MoonGen, mTCP, OPNFV, OpenDataPlane, Open vSwitch, Packet-journey, Pktgen-dpdk, PcapPlusPlus, Ruru, Seaster, SPDK, TRex, WARP, YANFF Open Source Projects consuming DPDK 6WIND, Calsoft Labs, Intel, Wind River Service/Support Calsoft Labs, Semihalf, Wind River Instructor-Led train DPDK is the Data Plane Development Kit that consists of libraries to accelerate packet processing workloads running on a wide variety of CPU architectures
approach Basics to achieve over x10 perf than linux There are some mechanisms makes network application slow, because of general purpose network stack on Linux. DPDK is set of libraries for fast packet processing. it uses some mechanizm to bypass Kernel NetStack. (UIO, pthread setaffinity, special Memory management with hugepages) 1. Memory Copy 2. Context Switch 3. Fat Network Stack 4. Kernel Scheduler 1. No Memory Copy 2. No Context Switch 3. Scratch for perf 4. Avoid K-Scheduler Linux Networking DPDK Networking Syscall is really really slow :( getuid(3) is one of the lowest overhead syscall. however, it takes about 500 clk per execute. https://gist.github.com/slankdev/bede218b67a452c982a71d886116f017
DPDK’s core consuming model Run to Completion Model & Pipeline Model FYI: Run to Completion - Kamuee - OvS-dpdk Pipeline - Lagopus - VPP • Run to Completion ◦ pros: Low latency, Utilize HW-option, ◦ cons: nic need be capable RSS, monolithic • Pipeline ◦ pros: low latency, moduler, don’t need RSS ◦ cons: high latency, can’t utilize HW-option • Scientific Comparison is nothing..? (old: M.Dobrescu et.al, RouteBricks, SOSP’09)