2012-06-26 67 views
0

我在1Gbit/sec网络上测试netlink过滤应用程序:我有用户空间函数向netlink socket发送判定结果;另一个用户空间例程对来自netlink套接字的标记数据包和一些自定义过滤器函数执行异步读取。对于大于300 Mbps的比特率,我看到netlink套接字读取错误“没有可用的缓冲区空间”。我把它当作netlink缓冲区溢出。 有人可以推荐一种方法来提高高速网络的netlink吞吐量吗?我的内核版本是2.6.38。netfilter速度限制

+0

这个“没有可用的缓冲区空间”消息是从哪个函数报告的? – caf

+0

我不认为netlink套接字是专为高性能数据包处理而设计的。 – ugoren

+0

哪个功能是从这个“无缓冲空间可用”消息报告?\ n – user270398

回答

0

在内核与用户空间之间存在套接字。通过套接字数据包上传到用户空间。套接字缓冲区已满,所以你得到一个错误。您可以定义套接字缓冲区大小并增加它(这是通过netlink完成的)