switchdev

Linux 4.0的switchdev
一切坏消息在Linux 4.0内核中终结。
       Linux 4.0引入了一个switchdev框架,它代表一类拥有“交换”能力芯片的多网口设备的抽象。其中每一个网口就是一个port,在switchdev框架中被注册成一个net_device。除此之外,内核中自带了一个rocker driver,演示了一个实际的设备驱动的实现。整个switchdev的示意图如下所示:

 

注意,理想化的实现中,OpenFlow控制器可以直接将流表注入到设备中,从而指导设备直接进行数据包交换。流表的内容超级复杂,不是本文的目标,但是相信在后一个内核版本中会出现相关的Document。
       采用了硬件交换模块的Linux BOX和原来的截然不同了,它更像是一个高端的专业网络设备,类似Cisco那样的。它看起来就是下面的样子:

 

References:

[1] Hardware offloading BOF at netdev0.1:

https://netdevconf.org/0.1/sessions/10.html
[2] switchdev BOF:

https://netdevconf.org/1.1/bof-switchdev-roopa-prabhu-shrijeet-mukherjee.html
[3] netlink API:

http://man7.org/linux/man-pages/man7/netlink.7.html
[4] support for 25G/50G/100G speed

https://patchwork.ozlabs.org/patch/625047/
[5] ethtool: Support for FEC encoding control

https://patchwork.ozlabs.org/patch/850494/
[6] Fix ipv6 address flush on ifdown of an interface:

https://patchwork.ozlabs.org/patch/587543/
[7] Make ipv6 route notifications similar to ipv4:

https://patchwork.ozlabs.org/patch/723301/
[8] Ecmp hash L4 support:

https://patchwork.ozlabs.org/patch/739829/
[9] VRF: https://cumulusnetworks.com/blog/vrf-for-linux/

[10] PBR: Support for policy routing match extensions, Bug fixes and cleanups

https://patchwork.ozlabs.org/patch/878911/
[11] scaling routing with new API:

https://lwn.net/Articles/763950/
[12] devlink api for switch ASICS:

https://lwn.net/Articles/674867/
[13] IP multicast: Improve hash scalability:

https://patchwork.ozlabs.org/patch/714498/
[14 ] IP multicast: Support for all PIM msgs

https://patchwork.ozlabs.org/patch/689275/
[15] E-VPN: Neighbour subsystem updates for E-VPN BGP distributed remote entries:

https://patchwork.ozlabs.org/patch/903868/
[16] E-VPN: Arp-ND suppression support:

https://patchwork.ozlabs.org/cover/822906/  
[17] https://www.netdevconf.org/2.2/slides/prabhu-linuxbridge-tutorial.pdf

[18] FRR : Free range routing (FRR): https://frrouting.org/

[19] Vxlan: Enhancements to support single vxlan device for scale

https://patchwork.ozlabs.org/patch/722362/
Netlink api enhancements
https://patchwork.ozlabs.org/patch/730096/
[20] sampling:

https://blog.sflow.com/2017/07/linux-411-kernel-extends-packet.html
[21 ] Linux bridge backup ports for faster convergence:

https://patchwork.ozlabs.org/cover/947461/
[21] MPLS in the kernel:

https://netdevconf.org/1.1/tutorial-deploying-mpls-linux-roopa-prabhu.html
[22] MPLS GRE: http://patchwork.ozlabs.org/patch/636253/

[23] ip monitor to monitor kernel networking events:

http://man7.org/linux/man-pages/man8/ip-monitor.8.html
[24] fib tracepoints + bridge fdb tracepoints:

http://patchwork.ozlabs.org/patch/807267/

  

netfilter.org        Packet filtering, NAT and packet mangling for Linux
===========================================================================
DISCLAIMER: people.netfilter.org hosts homepages and files of individual
netfilter.org developers.  They are often experimental in nature, so please
use with caution.
===========================================================================
[ICO]    Name    Last modified    Size    Description
[PARENTDIR]    Parent Directory         -     
[   ]    Hardware-accelerating-Linux-network-functions.pdf    2015-03-23 14:20    5.5M     
[   ]    IPQ806x-Hardware-acceleration_v2.pdf    2015-03-27 12:56    2.6M     
[   ]    MLAG-on-Linux-Lessons-Learned.pdf    2015-03-27 12:58    5.4M     
[   ]    Networking-in-Containers-and-Container-Clusters..>    2015-03-27 13:33    70M     
[   ]    bandewar-IPvlan-presentation-Netdev01.pdf    2015-03-27 11:55    2.3M     
[   ]    duyck-fib-trie.pdf    2015-03-27 11:55    2.1M     
[   ]    fastabend-netdev0.1-slides_v3.pdf    2015-03-27 12:08    5.2M     
[   ]    feldman-Rocker.pdf    2015-03-27 12:39    63M     
[   ]    gospodarek-Evolution-Not-Revolution.pdf    2015-03-27 12:43    27M     
[   ]    hadi-salim-TC-act-arch-slides.pdf    2015-03-27 12:46    13M     
[   ]    hadi-salim-dj-DTCCA-slides.pdf    2015-03-27 12:44    3.5M     
[   ]    hadi-salim-netdev01-closing.pdf    2015-03-27 12:44    710K     
[   ]    herbert-UDP-Encapsulation-Linux.pdf    2015-03-27 12:53    41M     
[   ]    hunt-netfilter-bof.pdf    2015-03-27 12:56    16M     
[   ]    mihai-budiu-netdev01-p4-demo.pdf    2015-03-27 12:57    3.9M     
[   ]    mihai-budiu-netdev01-p4.pdf    2015-03-27 12:57    1.8M     
[   ]    miller-Ottawa2015-Keynote.pdf    2015-03-27 12:57    609K     
[   ]    mukherjee-BOF-agenda.pdf    2015-03-27 12:59    1.5M     
[   ]    netdev01_bof_8021ad_makita_150212.pdf    2015-03-27 12:59    4.6M     
[   ]    netdev_tutorial_bridge_makita_150213.pdf    2015-03-27 13:04    21M     
[   ]    nftables-netdev-2015.pdf    2015-03-27 13:33    1.9M     
[   ]    octavian-mptcp-netdev-final.pdf    2015-03-27 13:35    14M     
[   ]    ondrej-zajicek-slides-netdev01.pdf    2015-03-27 13:36    1.6M     
[   ]    pirko-ovstc-slides.pdf    2015-03-27 13:36    529K     
[   ]    pirko-switchdev-slides.pdf    2015-03-27 13:36    1.2M     
[   ]    prabhu-kok-hardware_acceleration_tutorial_netde..>    2015-03-27 13:37    5.5M     
[   ]    prabhu-linux_ipv4_ipv6_inconsistencies_talk_sli..>    2015-03-27 13:38    3.4M     
[   ]    prabhu-rtnetlink_dump_filtering_in_kernel_talk_..>    2015-03-27 13:38    2.4M     
[   ]    sane-ocp-sai-status.pdf    2015-03-27 13:38    184K     
[   ]    sowa-perf-analytics.pdf    2015-03-27 13:39    6.6M     
[   ]    winter-cycling-tutorial.pdf    2015-03-17 11:30    394K     
http://people.netfilter.org/pablo/netdev0.1/slides/
原文地址:https://www.cnblogs.com/dream397/p/12803836.html