I have found and fixed the reason for the first packet going missing; it is due to 'reverse path filtering', and this can be turned off with for device in /proc/sys/net/ipv4/conf/* do echo 0 >${device}/rp_filter done in the test case run script. So https://github.com/tjcw/bpf-examples/tree/tjcw-integration-0.3/AF_XDP-filter is ready for review and integration. Chris Ward, IBM