It looks like I was incorrect about the fact that the IP header fields are not accessible. After correcting my code, I am now able to access the IP header fields.
Thanks, -Raghu Gyambavantha. From: Raghu Gyambavantha <[email protected]<mailto:[email protected]>> Date: Thursday, December 29, 2016 at 3:01 PM To: "[email protected]<mailto:[email protected]>" <[email protected]<mailto:[email protected]>> Subject: attaching ebpf program to a TCP listen socket. This seems more of a Linux question than BPF, so please let me know if I need to take this to a different forum. I'm relatively new to eBPF and was trying to use an eBPF program on tcp listen sockets using SO_ATTACH_REUSEPORT_EBPF socket option. I'm mainly trying to select an appropriate listen socket based on some packet data. Based on experimentation, I found out that the eBPF program attached as a SOCKET_FITLER on a TCP socket does not have access to any of the IP or TCP header information, even when the application is run as root. Is that true or am I not doing something correctly? If it is true, are there any technical (security) reasons why read access to those fields is not permitted? Also, is there a way for the eBPF program to find out where a particular socket exists in the list of sockets? This seems useful considering that the location of the socket in the list could change. Note: the documentation says - when a socket FD is closed, it is removed from the reuseport group and the last socket in the group will be moved to the closed socket's position? Thanks, --- Raghu Gyambavantha
_______________________________________________ iovisor-dev mailing list [email protected] https://lists.iovisor.org/mailman/listinfo/iovisor-dev
