@@ -1487,116 +1487,6 @@ static void test_unix_redir(struct test_sockmap_listen *skel, struct bpf_map *ma
1487
1487
unix_skb_redir_to_connected (skel , map , sotype );
1488
1488
}
1489
1489
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
-
1600
1490
static void test_reuseport (struct test_sockmap_listen * skel ,
1601
1491
struct bpf_map * map , int family , int sotype )
1602
1492
{
@@ -1882,14 +1772,12 @@ void serial_test_sockmap_listen(void)
1882
1772
run_tests (skel , skel -> maps .sock_map , AF_INET6 );
1883
1773
test_unix_redir (skel , skel -> maps .sock_map , SOCK_DGRAM );
1884
1774
test_unix_redir (skel , skel -> maps .sock_map , SOCK_STREAM );
1885
- test_vsock_redir (skel , skel -> maps .sock_map );
1886
1775
1887
1776
skel -> bss -> test_sockmap = false;
1888
1777
run_tests (skel , skel -> maps .sock_hash , AF_INET );
1889
1778
run_tests (skel , skel -> maps .sock_hash , AF_INET6 );
1890
1779
test_unix_redir (skel , skel -> maps .sock_hash , SOCK_DGRAM );
1891
1780
test_unix_redir (skel , skel -> maps .sock_hash , SOCK_STREAM );
1892
- test_vsock_redir (skel , skel -> maps .sock_hash );
1893
1781
1894
1782
test_sockmap_listen__destroy (skel );
1895
1783
}
0 commit comments