@@ -1487,116 +1487,6 @@ static void test_unix_redir(struct test_sockmap_listen *skel, struct bpf_map *ma
14871487 unix_skb_redir_to_connected (skel , map , sotype );
14881488}
14891489
1490- /* Returns two connected loopback vsock sockets */
1491- static int vsock_socketpair_connectible (int sotype , int * v0 , int * v1 )
1492- {
1493- return create_pair (AF_VSOCK , sotype | SOCK_NONBLOCK , v0 , v1 );
1494- }
1495-
1496- static void vsock_unix_redir_connectible (int sock_mapfd , int verd_mapfd ,
1497- enum redir_mode mode , int sotype )
1498- {
1499- const char * log_prefix = redir_mode_str (mode );
1500- char a = 'a' , b = 'b' ;
1501- int u0 , u1 , v0 , v1 ;
1502- int sfd [2 ];
1503- unsigned int pass ;
1504- int err , n ;
1505- u32 key ;
1506-
1507- zero_verdict_count (verd_mapfd );
1508-
1509- if (socketpair (AF_UNIX , SOCK_STREAM | SOCK_NONBLOCK , 0 , sfd ))
1510- return ;
1511-
1512- u0 = sfd [0 ];
1513- u1 = sfd [1 ];
1514-
1515- err = vsock_socketpair_connectible (sotype , & v0 , & v1 );
1516- if (err ) {
1517- FAIL ("vsock_socketpair_connectible() failed" );
1518- goto close_uds ;
1519- }
1520-
1521- err = add_to_sockmap (sock_mapfd , u0 , v0 );
1522- if (err ) {
1523- FAIL ("add_to_sockmap failed" );
1524- goto close_vsock ;
1525- }
1526-
1527- n = write (v1 , & a , sizeof (a ));
1528- if (n < 0 )
1529- FAIL_ERRNO ("%s: write" , log_prefix );
1530- if (n == 0 )
1531- FAIL ("%s: incomplete write" , log_prefix );
1532- if (n < 1 )
1533- goto out ;
1534-
1535- n = xrecv_nonblock (mode == REDIR_INGRESS ? u0 : u1 , & b , sizeof (b ), 0 );
1536- if (n < 0 )
1537- FAIL ("%s: recv() err, errno=%d" , log_prefix , errno );
1538- if (n == 0 )
1539- FAIL ("%s: incomplete recv" , log_prefix );
1540- if (b != a )
1541- FAIL ("%s: vsock socket map failed, %c != %c" , log_prefix , a , b );
1542-
1543- key = SK_PASS ;
1544- err = xbpf_map_lookup_elem (verd_mapfd , & key , & pass );
1545- if (err )
1546- goto out ;
1547- if (pass != 1 )
1548- FAIL ("%s: want pass count 1, have %d" , log_prefix , pass );
1549- out :
1550- key = 0 ;
1551- bpf_map_delete_elem (sock_mapfd , & key );
1552- key = 1 ;
1553- bpf_map_delete_elem (sock_mapfd , & key );
1554-
1555- close_vsock :
1556- close (v0 );
1557- close (v1 );
1558-
1559- close_uds :
1560- close (u0 );
1561- close (u1 );
1562- }
1563-
1564- static void vsock_unix_skb_redir_connectible (struct test_sockmap_listen * skel ,
1565- struct bpf_map * inner_map ,
1566- int sotype )
1567- {
1568- int verdict = bpf_program__fd (skel -> progs .prog_skb_verdict );
1569- int verdict_map = bpf_map__fd (skel -> maps .verdict_map );
1570- int sock_map = bpf_map__fd (inner_map );
1571- int err ;
1572-
1573- err = xbpf_prog_attach (verdict , sock_map , BPF_SK_SKB_VERDICT , 0 );
1574- if (err )
1575- return ;
1576-
1577- skel -> bss -> test_ingress = false;
1578- vsock_unix_redir_connectible (sock_map , verdict_map , REDIR_EGRESS , sotype );
1579- skel -> bss -> test_ingress = true;
1580- vsock_unix_redir_connectible (sock_map , verdict_map , REDIR_INGRESS , sotype );
1581-
1582- xbpf_prog_detach2 (verdict , sock_map , BPF_SK_SKB_VERDICT );
1583- }
1584-
1585- static void test_vsock_redir (struct test_sockmap_listen * skel , struct bpf_map * map )
1586- {
1587- const char * family_name , * map_name ;
1588- char s [MAX_TEST_NAME ];
1589-
1590- family_name = family_str (AF_VSOCK );
1591- map_name = map_type_str (map );
1592- snprintf (s , sizeof (s ), "%s %s %s" , map_name , family_name , __func__ );
1593- if (!test__start_subtest (s ))
1594- return ;
1595-
1596- vsock_unix_skb_redir_connectible (skel , map , SOCK_STREAM );
1597- vsock_unix_skb_redir_connectible (skel , map , SOCK_SEQPACKET );
1598- }
1599-
16001490static void test_reuseport (struct test_sockmap_listen * skel ,
16011491 struct bpf_map * map , int family , int sotype )
16021492{
@@ -1882,14 +1772,12 @@ void serial_test_sockmap_listen(void)
18821772 run_tests (skel , skel -> maps .sock_map , AF_INET6 );
18831773 test_unix_redir (skel , skel -> maps .sock_map , SOCK_DGRAM );
18841774 test_unix_redir (skel , skel -> maps .sock_map , SOCK_STREAM );
1885- test_vsock_redir (skel , skel -> maps .sock_map );
18861775
18871776 skel -> bss -> test_sockmap = false;
18881777 run_tests (skel , skel -> maps .sock_hash , AF_INET );
18891778 run_tests (skel , skel -> maps .sock_hash , AF_INET6 );
18901779 test_unix_redir (skel , skel -> maps .sock_hash , SOCK_DGRAM );
18911780 test_unix_redir (skel , skel -> maps .sock_hash , SOCK_STREAM );
1892- test_vsock_redir (skel , skel -> maps .sock_hash );
18931781
18941782 test_sockmap_listen__destroy (skel );
18951783}
0 commit comments