}
 }
 
-static int udp_socketpair(int family, int *s, int *c)
+static int inet_socketpair(int family, int type, int *s, int *c)
 {
        struct sockaddr_storage addr;
        socklen_t len;
        int p0, c0;
        int err;
 
-       p0 = socket_loopback(family, SOCK_DGRAM | SOCK_NONBLOCK);
+       p0 = socket_loopback(family, type | SOCK_NONBLOCK);
        if (p0 < 0)
                return p0;
 
        if (err)
                goto close_peer0;
 
-       c0 = xsocket(family, SOCK_DGRAM | SOCK_NONBLOCK, 0);
+       c0 = xsocket(family, type | SOCK_NONBLOCK, 0);
        if (c0 < 0) {
                err = c0;
                goto close_peer0;
 
        zero_verdict_count(verd_mapfd);
 
-       err = udp_socketpair(family, &p0, &c0);
+       err = inet_socketpair(family, SOCK_DGRAM, &p0, &c0);
        if (err)
                return;
-       err = udp_socketpair(family, &p1, &c1);
+       err = inet_socketpair(family, SOCK_DGRAM, &p1, &c1);
        if (err)
                goto close_cli0;
 
        udp_skb_redir_to_connected(skel, map, family);
 }
 
-static void udp_unix_redir_to_connected(int family, int sock_mapfd,
+static void inet_unix_redir_to_connected(int family, int type, int sock_mapfd,
                                        int verd_mapfd, enum redir_mode mode)
 {
        const char *log_prefix = redir_mode_str(mode);
                return;
        c0 = sfd[0], p0 = sfd[1];
 
-       err = udp_socketpair(family, &p1, &c1);
+       err = inet_socketpair(family, SOCK_DGRAM, &p1, &c1);
        if (err)
                goto close;
 
                return;
 
        skel->bss->test_ingress = false;
-       udp_unix_redir_to_connected(family, sock_map, verdict_map, REDIR_EGRESS);
+       inet_unix_redir_to_connected(family, SOCK_DGRAM, sock_map, verdict_map,
+                                   REDIR_EGRESS);
        skel->bss->test_ingress = true;
-       udp_unix_redir_to_connected(family, sock_map, verdict_map, REDIR_INGRESS);
+       inet_unix_redir_to_connected(family, SOCK_DGRAM, sock_map, verdict_map,
+                                   REDIR_INGRESS);
 
        xbpf_prog_detach2(verdict, sock_map, BPF_SK_SKB_VERDICT);
 }
 
-static void unix_udp_redir_to_connected(int family, int sock_mapfd,
+static void unix_inet_redir_to_connected(int family, int type, int sock_mapfd,
                                        int verd_mapfd, enum redir_mode mode)
 {
        const char *log_prefix = redir_mode_str(mode);
 
        zero_verdict_count(verd_mapfd);
 
-       err = udp_socketpair(family, &p0, &c0);
+       err = inet_socketpair(family, SOCK_DGRAM, &p0, &c0);
        if (err)
                return;
 
                return;
 
        skel->bss->test_ingress = false;
-       unix_udp_redir_to_connected(family, sock_map, verdict_map, REDIR_EGRESS);
+       unix_inet_redir_to_connected(family, SOCK_DGRAM, sock_map, verdict_map,
+                                    REDIR_EGRESS);
        skel->bss->test_ingress = true;
-       unix_udp_redir_to_connected(family, sock_map, verdict_map, REDIR_INGRESS);
+       unix_inet_redir_to_connected(family, SOCK_DGRAM, sock_map, verdict_map,
+                                    REDIR_INGRESS);
 
        xbpf_prog_detach2(verdict, sock_map, BPF_SK_SKB_VERDICT);
 }