网络硬件卸载

OpenStack的Pike版本中引入了对switchdev的支持,实现了Open vSwitch硬件卸载offloading功能。本文简介一下网络硬件卸载。

网络Offload:

说起网络offload,主要是指将原本在内核网络协议栈中进行的IP分片、TCP分段、重组、checksum校验等操作,转移到网卡硬件中进行,CPU的发包路径更短,消耗更低,提高处理性能。

一开始这些offload功能都是在网卡上针对特定功能设计一个专门的电路并且带有很小的缓存,去做专门的事情。后来直接在网卡上部署一个可编程的通用的小型CPU,一般称为网络协处理器。就是现在的智能网卡。智能网卡的协处理器可以先对该数据包进行一些预处理,根据处理结果考虑是不是要把数据包发送给主机CPU,智能网卡中的offload功能一般是使用eBPF编程来实现的。

交换offload:

Linux 4.0引入了一个switchdev框架,它代表一类拥有“交换”能力芯片的多网口设备的抽象。其中每一个网口就是一个port,在switchdev框架中被注册成一个net_device。

switchdev起源于Open vSwitch项目,由Jiři Pirko在2014年9月首次提出。在2015年2月的Netdev 0.1会议上,网络开发人员决定扩展并采用switchdev作为硬件交换机芯片的通用解决方案。switchdev驱动模型出现之前,Linux需要交换机厂商的专门工具套件操作交换机,而在switchdev驱动模型之后,通用接口被实现,交换机正式纳入Linux网络设备体系,Linux可以用标准接口实现交换机的控制面和管理面。

架构:

在switchdev驱动框架下,硬件交换机设备上的每个物理端口都在内核中注册为一个net_device,就像对现有的网络接口卡(nic)所做的那样。可以使用现有的工具(如桥接、ip和iproute2)将端口绑定或桥接、隧道化或划分vlan。switchdev驱动程序的优点是这样的交换结构可以被卸载到交换机硬件上。因此,驱动程序将转发数据库(FDB)中的每个条目镜像到硬件,并监视其更改情况。

内核中switch架构图如下:

最初,switchdev支持的唯一设备是QEMU的“rocker”软件交换机。后来Mellanox和Broadcom等公司均提供了支持switchdev的交换机器。

OpenStack Pike版本中引入了对switchdev的支持,实现了Open vSwitch硬件卸载offloading功能。

OpenStack官方文档关于网络offload部分描述:

Supported Ethernet controllers:

The following manufacturers are known to work:

Mellanox ConnectX-4 NIC (VLAN Offload)

Mellanox ConnectX-4 Lx/ConnectX-5 NICs (VLAN/VXLAN Offload)

Prerequisites:

Linux Kernel >= 4.13

Open vSwitch >= 2.8

iproute >= 4.12

Mellanox NIC

WordPress支持用户以Twitter帐号登录评论

据国外媒体报道,博客网站WordPress.com今日宣布,用户今后可通过登录Twitter或Facebook账户在WordPress网站上发表评论。

分析称尽管表面看来这仅是非常小的新功能,但它同时也为WordPress博客网站提供更多的发表评论的机会。第三方评论系统如Disqus以及Echo等网站目前均允许用户通过Twitter或Facebook账户发表评论,但这一功能对于博客平台网站来说是一个巨大的进步。

WordPress高层斯科特·波尔克(Scott Berkun)在官方博客中表示,新的登录系统可以使用户在同一时间登录不同的服务网站。这对于一些想通过Twitter或Facebook账户发表评论的用户来说非常方便。

据悉,用户通过Twitter或Facebook账户发表的评论将不会在社交网站上显示。该登陆方式仅是WordPress验证用户身份的方式。WordPress将来有可能会允许用户在Facebook或Twitter上分享及发布评论。

WordPress博客用户通过Facebook及Twitter发表的评论将会通过由Automattic开发的JetPack插件进行验证。

感念师恩 教师节快乐