{"id":4411,"date":"2019-11-06T23:38:01","date_gmt":"2019-11-07T04:38:01","guid":{"rendered":"https:\/\/blogs.n1zyy.com\/n1zyy\/?p=4411"},"modified":"2019-11-06T23:38:01","modified_gmt":"2019-11-07T04:38:01","slug":"low-overhead-linux-networking","status":"publish","type":"post","link":"https:\/\/blogs.n1zyy.com\/n1zyy\/2019\/11\/06\/low-overhead-linux-networking\/","title":{"rendered":"Low-Overhead Linux Networking"},"content":{"rendered":"<p>I want to do more posts here that are quick roundups of interesting things I&#8217;ve read, rather than rambling commentary.<\/p>\n<ul>\n<li><strong><a href=\"https:\/\/www.dpdk.org\/\">DPDK<\/a>, the Data Plane Development Kit<\/strong>, permits a userspace application in Linux or BSD to bypass the kernel and directly interact with a network card. Handling interrupts to pass data from a 100 Gbps network card through the kernel apparently performs poorly.<\/li>\n<li><strong><a href=\"https:\/\/blog.selectel.com\/introduction-dpdk-architecture-principles\/\">Selectel&#8217;s &#8220;Introduction to DPDK: Architecture and Principles&#8221;<\/a><\/strong> looks like a detailed walkthrough of how it works. (I only skimmed it on the train tonight though.)<\/li>\n<li><strong><a href=\"https:\/\/fd.io\/\">FD.io<\/a><\/strong> is a Linux Foundation project implementing a software dataplane employing vector packet processing (VPP). Its <strong><a href=\"https:\/\/wiki.fd.io\/view\/VPP\/What_is_VPP%3F\">What is VPP?<\/a> page<\/strong> is a good intro.<\/li>\n<li><strong><a href=\"https:\/\/opendev.org\/x\/networking-vpp\">networking-vpp<\/a><\/strong> brings support to OpenStack networking.<\/li>\n<li><strong><a href=\"https:\/\/ligato.io\/\">Ligato<\/a><\/strong> and <strong><a href=\"https:\/\/contivpp.io\/\">Contiv-VPP<\/a><\/strong> bring VPP to Kubernetes (et al.)<\/li>\n<li>I&#8217;ve run up against mentions of <strong><a href=\"https:\/\/en.wikipedia.org\/wiki\/YANG\">YANG<\/a><\/strong>, which is &#8220;Yet Another Next Generation&#8221; DSL for modeling network data.<\/li>\n<li><strong><a href=\"https:\/\/superuser.openstack.org\/articles\/vpp-vswitchvrouter-openstack\/\">Intro to networking-vector packet processing<\/a><\/strong> is based on a 2018 FOSDEM talk. The Youtube video really helped things &#8220;click&#8221; for me.<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>I want to do more posts here that are quick roundups of interesting things I&#8217;ve read, rather than rambling commentary. DPDK, the Data Plane Development Kit, permits a userspace application in Linux or BSD to bypass the kernel and directly &hellip; <a href=\"https:\/\/blogs.n1zyy.com\/n1zyy\/2019\/11\/06\/low-overhead-linux-networking\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-4411","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/posts\/4411","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/comments?post=4411"}],"version-history":[{"count":0,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/posts\/4411\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/media?parent=4411"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/categories?post=4411"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.n1zyy.com\/n1zyy\/wp-json\/wp\/v2\/tags?post=4411"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}