明确启用 UDP 端口的 GRO

明确启用 UDP 端口的 GRO

我正在用 Python 实现一个简单的套接字应用程序,我需要它在启用 GRO 的情况下接收 UDP 数据包。我已检查只有 Python 服务正在运行,并且 GRO 已通过以下方式启用

eththool -k eth0 | egrep 'generic'

它显示 GSO 和 GRO 都已启用。

另外,我使用 scapy 发送类似下面的 UDP 包。它们故意没有有效载荷。

send(IP(dst="123.456.789.123")/UDP(dport=5000),count=10)

这是我迄今为止用 Python 编写的

import socket, select

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 0)

s.bind(('123.456.789.123',5000))

while True:
  result = select.select([s],[],[])
  output = result[0][0].recv(512)
  print (output)

因此,每次发送数据包时,都会打印出数据包的有效负载(仅用于监控目的)。它的工作原理是使用

netstat -tulpen

它显示端口正在运行,为 UDP 开放。

现在我想强制在此端口启用 GRO,我该怎么做?有支持执行此类操作吗?

我正在运行内核版本为 5.0 的 Linux Ubuntu

相关内容