
저는 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를 실행하고 있습니다.