On Wed, Jun 22, 2022 at 10:42 PM -07, John Fastabend wrote: > Jakub Sitnicki wrote: >> Cover the scenario when we cannot insert a socket into the sockmap, because >> it has it is using ULP. Failed insert should not have any effect on the ULP >> state. This is a regression test. >> >> Signed-off-by: Jakub Sitnicki <jakub@xxxxxxxxxxxxxx> >> --- > > Thanks, looks good. One small nit. > >> >> +#include <netinet/tcp.h> >> #include "test_progs.h" >> >> #define MAX_TEST_NAME 80 >> @@ -92,9 +93,78 @@ static void test_sockmap_ktls_disconnect_after_delete(int family, int map) >> close(srv); >> } >> >> +static void test_sockmap_ktls_update_fails_when_sock_has_ulp(int family, int map) >> +{ >> + struct sockaddr_storage addr = {}; >> + socklen_t len = sizeof(addr); >> + struct sockaddr_in6 *v6; >> + struct sockaddr_in *v4; >> + int err, s, zero = 0; >> + >> + s = socket(family, SOCK_STREAM, 0); >> + if (!ASSERT_GE(s, 0, "socket")) >> + return; >> + >> + switch (family) { >> + case AF_INET: >> + v4 = (struct sockaddr_in *)&addr; >> + v4->sin_family = AF_INET; >> + break; >> + case AF_INET6: >> + v6 = (struct sockaddr_in6 *)&addr; >> + v6->sin6_family = AF_INET6; >>k+ break; >> + default: >> + PRINT_FAIL("unsupported socket family %d", family); > > Probably want goto close here right? Ah, thanks. Sent v2. I hope we can borrow a trick from systemd's book and adapt __attribute__((cleanup(f))) in the future. [...]