// Test inet_diag for AF_INET6 sockets with IPv6 traffic. // We use the "ss" socket statistics tool, which uses inet_diag sockets. // We use the default tcptest local IP address for IPv6. // Options (command line arguments in script file) to force IPv6. --ip_version=ipv6 --mtu=1520 // Establish a connection. 0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3 +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0 +0 bind(3, ..., ...) = 0 +0 listen(3, 1) = 0 +0 < S 0:0(0) win 32792 +0 > S. 0:0(0) ack 1 +0 `ss -6 -n state SYN-RECV | grep fd3d:fa7b:d17d::1:8080 > /dev/null` +0 < . 1:1(0) ack 1 win 32890 +0 accept(3, ..., ...) = 4 // first, use inet_diag with no filter: +0 `ss -6 -n | grep :8080 | grep fd3d:fa7b:d17d::1:8080 > /dev/null` // then try filters, which use a different code path: +0 `ss -6 -n --options --extended --info '( sport = :8080 )' | grep fd3d:fa7b:d17d::1:8080 > /dev/null` +0 `ss -6 -n --options --extended --info '( sport = :8080 )' src fd3d:fa7b:d17d::1/128 | grep fd3d:fa7b:d17d::1:8080 > /dev/null`