基于virtio-user的新exception path方案

在DPDK使用环境中,物理网卡收到的包都绕开内核,直接到达DPDK应用中。但是,有些时候,用户希望把某些包(如控制报文)放到内核网络协议栈进行处理,这个路径在DPDK中被称作exception path。 现有方案 现有的exception path方案主要有三个: 1. KNI,作为目前DPDK用户使用的主要方案,其通过内核模块构造了一个虚拟网络接口,并且通过FIFO队列和用户态的DPDK应用交换数据包。该方案的缺点是KNI内核模块无法upstream,维护代价较大。详情请参见: http:/... 继续阅读

VFD大揭秘,一定有你想知道的

什么是VFD? VFD 的全称是Virtual Function Daemon。在网络虚拟化(NFV)环境下,VFD被用来配置网卡上的虚拟端口。 VFD 由AT &T 公司开发,具有开源软件许可Apache License, Version 2.0, 2016年4月在GitHub上发布。(https://github.com/att/vfd) VFD的相关背景 要说明VFD的由来,得先回顾一下网络功能虚拟化(NFV)的背景。 在经典的NFV架构中,虚拟交换机(vSwitch)是整个架构的... 继续阅读

DPDK中的memcpy性能优化及思考

内存拷贝(memcpy)这个操作看似简单,但长期以来存在很多关于其优化的讨论,各种编程语言库也都有对应实现,而对于memcpy性能评估测试的讨论就更多了。        那么如下的memcpy实现到底有什么问题? [crayon-5fcb1d7fb666d915456451/]         很简单,首先,这看起来太简单,不够高端,气势上就先输了;同时,代码没有使用Vector指令,没有指令级并行,没有做地址对齐处理,最终性能完全依赖于编译器的优化——然而这些并没有什么问题,在某些应用场景中这... 继续阅读

基于DPDK的虚拟网络包代理(broker)

1、虚拟网络包代理的商业需求     网络需要较好地分析与可视化最好的客户体验和投资回报率,这一点NPB(Network Packet Broker)可以做到,涵盖服务质量性能、工具和应用性能、安全。 但是,对于网卡出现的越来越偏向软件的需求(vEPC:virtual Evolved Packet Core,CORD等),物理NPB不足以或无法高效地完成,涉及到对网络流编程/重新编程、分析业务流程这两个方面。 2、虚拟网络包代理支持以下功能     基于以上的商业需求,我们需要开发一个可以支持以... 继续阅读

从PCRE到Hyperscan

        Hyperscan作为高性能的正则表达式匹配库,使用者通常乐意将其与传统的正则表达式匹配库进行比较。“为什么要用Hyperscan?”“使用Hyperscan对我有怎样的好处?”本文以一款广泛使用的传统的正则表达式匹配库PCRE为例,说明Hyperscan与PCRE的差异与优势。 PCRE简介         PCRE是Perl Compatible Regular Expressions的简称,是一款十分流行的用C语言编写的正则表达式匹配库,其灵感来源于Perl语言中的正则表达... 继续阅读