Hi All, We're happy to announce the 2.0 release of the Google version of the packetdrill network testing tool.
The code may be found at the packetdrill-v2.0 tag in the Google packetdrill github repo: https://github.com/google/packetdrill The commit is here: https://github.com/google/packetdrill/commit/9a0ade62b7c8e3a19854b5855178dc3bb9d7f453 The 2.0 commit message, summarizing features and contributors, is included below for a quick overview. cheers, neal --- net-test: packetdrill: merge Google packetdrill changes through April 2018 This commit merges into Google's public packetdrill repository the majority of the packetdrill tool changes made at Google in the period 2013-2018 (after the initial open source release of packetdrill). Major features added in this commit include: + support for testing: + cmsg data + TCP send timestamping + TCP timestamping opt stats (TCP_NLA_BUSY and friends) + TCP zero-copy (e.g. see --send_omit_free) + TCP MD5 options + TCP urgent pointer field + experimental and RFC-compliant TCP Fast Open options + ICMP sockets + the IPv4 or IPv6 TOS field + IPv6 flow labels + in IPv6-only environments + wider system call support: + epoll system calls (epoll_create(), epoll_ctl(), epoll_wait()) + pipe() + splice() + cap_set() + optional final clean-up commands for destructor-like tear-down commands that are basically always executed at termination, whether scripts fail or succeed + improved Python support: + exporting symbolic names for tcpi_state values + exporting recent additions to Linux struct tcp_info + exporting TCP_CC_INFO for Vegas, DCTCP, BBR + exporting SO_MEMINFO + the ability to test shared libraries that support the sockets API, rather than just the kernel sockets API (see packetdrill.h) + preprocessor-style symbol definitions, e.g. -Dfoo=bar + support for random local IP addresses Willem de Bruijn spearheaded this effort to upstream this batch of changes, and put in a huge amount of work to make this happen. I would like to thank him for all his work on this. I would also like to thank the following Googlers for their contributions over the years to the packetdrill code base, which are reflected in this patch: Wei Wang Maciej Żenczykowski Yuchung Cheng Eric Dumazet Soheil Hassas Yeganeh Dimitris Michailidis Willem de Bruijn Yaogong Wang Eric Salo Chonggang Li Priyaranjan Jha Andreas Terzis Xiao Jia Mike Maloney Barath Raghavan Yousuk Seung Nandita Dukkipati Michael Davidson Hsiao-keng Jerry Chu Greg Thelen Chema Gonzalez Luigi Rizzo Kevin Athey Jeff Grafton Francis Y. Yan Fabien Duchene Bill Sommerfeld Anatol Pomazau This commit has been verified to build cleanly with the default gcc compiler on the following Linux distributions: Debian 8 Debian 9 Red Hat Enterprise Linux 7.4 Ubuntu 14.04 Ubuntu 17.10 This commit has not been tested on or ported to any BSD variants, due to lack of time among members of our team. We are happy to accept patches to get it to compile/run on popular BSD variants.