zoukankan      html  css  js  c++  java
  • 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/
  • 相关阅读:
    docker入门
    IAR屏蔽警告的方法
    在MDK 中忽略(suppress) 某一个警告
    stm32 F40x CCM数据区的使用
    如何理解Stand SPI Dual SPI 和Quad SPI??
    stm32F1在sram中调试运行代码
    stm32低功耗的一点总结
    C语言中__attribute__ ((at())绝对定位的应用
    系统栈和任务栈——freertos
    软件模拟spi的注意事项
  • 原文地址:https://www.cnblogs.com/dream397/p/12803836.html
Copyright © 2011-2022 走看看