
私は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を実行しています