The redesign of UDP flows required (or at least, suggested) a new batch of prelininary changes that don't rely on the core of the flow table rework. David Gibson (11): util: sock_l4() determine protocol from epoll type rather than the reverse flow: Add flow_sidx_valid() helper udp: Pass full epoll reference through more of sock handler path udp: Rename IOV and mmsghdr arrays udp: Unify udp[46]_mh_splice udp: Unify udp[46]_l2_iov udp: Don't repeatedly initialise udp[46]_eth_hdr udp: Move some more of sock_handler tasks into sub-functions udp: Consolidate datagram batching contrib: Add program to document and test assumptions about SO_REUSEADDR contrib: Test behaviour of zero length datagram recv()s contrib/udp-behaviour/.gitignore | 2 + contrib/udp-behaviour/Makefile | 45 +++ contrib/udp-behaviour/common.c | 66 ++++ contrib/udp-behaviour/common.h | 47 +++ contrib/udp-behaviour/recv-zero.c | 74 +++++ contrib/udp-behaviour/reuseaddr-priority.c | 240 ++++++++++++++ epoll_type.h | 41 +++ flow.h | 11 + flow_table.h | 2 +- icmp.c | 2 +- passt.h | 32 -- tcp.c | 17 +- udp.c | 361 ++++++++++----------- util.c | 48 +-- util.h | 3 +- 15 files changed, 735 insertions(+), 256 deletions(-) create mode 100644 contrib/udp-behaviour/.gitignore create mode 100644 contrib/udp-behaviour/Makefile create mode 100644 contrib/udp-behaviour/common.c create mode 100644 contrib/udp-behaviour/common.h create mode 100644 contrib/udp-behaviour/recv-zero.c create mode 100644 contrib/udp-behaviour/reuseaddr-priority.c create mode 100644 epoll_type.h -- 2.45.2