
我正在用 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