diff --git a/gtests/net/packetdrill/tests/bsd/fast_retransmit/fr-4pkt-sack-bsd.pkt b/gtests/net/packetdrill/tests/bsd/tcp/fast_retransmit/fr-4pkt-sack-bsd.pkt similarity index 100% rename from gtests/net/packetdrill/tests/bsd/fast_retransmit/fr-4pkt-sack-bsd.pkt rename to gtests/net/packetdrill/tests/bsd/tcp/fast_retransmit/fr-4pkt-sack-bsd.pkt diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-recv.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-recv.pkt new file mode 100644 index 0000000000000000000000000000000000000000..ebdefdf7e2a1e59802737347d871f85d1fb8a096 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-recv.pkt @@ -0,0 +1,53 @@ + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 fcntl(3, F_GETFL) = 0x2 (flags O_RDWR) ++0.000 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0 +// ++0.100 sendto(3, ..., 1000, 0, ..., ...) = 1000 ++0.000 > udplite(1000, 0) +// ++0.000 getsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [0], [4]) = 0 ++0.000 < udplite(1280, 0) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 ++0.000 < udplite(1280, 1288) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 ++0.000 < udplite(1280, 8) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [8], 4) = 0 ++0.000 getsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [8], [4]) = 0 ++0.000 < udplite(1280, 8) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 +// ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [10], 4) = 0 ++0.000 < udplite(1280, 0) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 ++0.000 < udplite(1280, 1) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 2) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 3) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 4) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 5) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 6) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 7) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 8) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 9) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.000 < udplite(1280, 10) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1280 ++0.000 < udplite(0, 0) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 0 ++0.000 < udplite(0, 8) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 0 ++0.000 < udplite(1, 0) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1 ++0.000 < udplite(1, 9) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = 1 ++0.000 < udplite(1, 10) ++0.100 recvfrom(3, ..., 1280, 0, ..., ...) = -1 EWOULDBLOCK (Operation would block) ++0.100 close(3) = 0 diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-send.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-send.pkt new file mode 100644 index 0000000000000000000000000000000000000000..ea3ba2408bc533b2f3a4d22723afe62a596421bc --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-send.pkt @@ -0,0 +1,14 @@ + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [8], 4) = 0 ++0.000 sendto(3, ..., 1, 0, ..., ...) = 1 ++0.000 > udplite(1, 8) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [508], 4) = 0 ++0.100 sendto(3, ..., 1000, 0, ..., ...) = 1000 ++0.000 > udplite(1000, 508) ++0.100 sendto(3, ..., 499, 0, ..., ...) = 499 ++0.000 > udplite(499, 0) ++0.100 sendto(3, ..., 500, 0, ..., ...) = 500 ++0.000 > udplite(500, 0) ++0.100 sendto(3, ..., 501, 0, ..., ...) = 501 ++0.000 > udplite(501, 508) ++0.100 close(3) = 0 diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-sockopt.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-sockopt.pkt new file mode 100644 index 0000000000000000000000000000000000000000..8cebe26f19d3ec463e7013447ad8ae9db04881f3 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-cscov-sockopt.pkt @@ -0,0 +1,29 @@ + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [-1], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [0], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [1], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [2], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [3], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [4], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [5], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [6], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [7], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [8], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [65535], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [65536], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, [4294967295], 4) = -1 (Invalid parameter) +// ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [-1], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [0], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [1], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [2], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [3], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [4], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [5], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [6], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [7], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [8], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [65535], 4) = 0 ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [65536], 4) = -1 EINVAL (Invalid parameter) ++0.000 setsockopt(3, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, [4294967295], 4) = -1 (Invalid parameter) ++0.000 close(3) = 0 diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-port-unreachable.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-port-unreachable.pkt new file mode 100644 index 0000000000000000000000000000000000000000..9ca4cf66a9f8f09a2284bdb0d8520a566cc3cbf9 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-port-unreachable.pkt @@ -0,0 +1,14 @@ +// Test handling of incoming ICMP packets. + +// Connect the socket. + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 bind(3, ..., ...) = 0 ++0.000 connect(3, ..., ...) = 0 +// Trigger the ICMP message. ++0.050 write(3, ..., 1000) = 1000 ++0.000 > udplite(1000, 0) ++0.000 < [udplite(1000, 0)] icmp unreachable port_unreachable +// Check if applications get notified. ++0.050 write(3, ..., 1000) = -1 ECONNREFUSED (Connection refused) +// Termination of the test. ++0.000 close(3) = 0 diff --git a/gtests/net/packetdrill/tests/bsd/udplite/udplite-protocol-unreachable.pkt b/gtests/net/packetdrill/tests/bsd/udplite/udplite-protocol-unreachable.pkt new file mode 100644 index 0000000000000000000000000000000000000000..909db722207525dae2be1b7057771b03f72024b7 --- /dev/null +++ b/gtests/net/packetdrill/tests/bsd/udplite/udplite-protocol-unreachable.pkt @@ -0,0 +1,14 @@ +// Test handling of incoming ICMP packets. + +// Connect the socket. + 0.000 socket(..., SOCK_DGRAM, IPPROTO_UDPLITE) = 3 ++0.000 bind(3, ..., ...) = 0 ++0.000 connect(3, ..., ...) = 0 +// Trigger the ICMP message. ++0.050 write(3, ..., 1000) = 1000 ++0.000 > udplite(1000, 0) ++0.100 < [udplite(1000, 0)] icmp unreachable protocol_unreachable +// Check if applications get notified. ++0.050 write(3, ..., 1000) = -1 ECONNREFUSED (Connection refused) +// Termination of the test. ++0.000 close(3) = 0