@@ -2015,7 +2015,55 @@ static void test_check_ttl(int sock_c, int sock_s, int sock_p,
20152015 zassert_equal (ret , 0 , "close failed" );
20162016}
20172017
2018- ZTEST (net_socket_udp , test_31_v4_mcast_ttl )
2018+ ZTEST (net_socket_udp , test_31_v4_ttl )
2019+ {
2020+ int ret ;
2021+ int client_sock ;
2022+ int server_sock ;
2023+ int packet_sock ;
2024+ int ttl , verify ;
2025+ socklen_t optlen ;
2026+ struct sockaddr_in client_addr ;
2027+ struct sockaddr_in server_addr ;
2028+
2029+ Z_TEST_SKIP_IFNDEF (CONFIG_NET_SOCKETS_PACKET );
2030+
2031+ prepare_sock_udp_v4 (MY_IPV4_ADDR , CLIENT_PORT , & client_sock , & client_addr );
2032+ prepare_sock_udp_v4 (MY_IPV4_ADDR , SERVER_PORT , & server_sock , & server_addr );
2033+
2034+ packet_sock = socket (AF_PACKET , SOCK_RAW , ETH_P_ALL );
2035+ zassert_true (packet_sock >= 0 , "Cannot create packet socket (%d)" , - errno );
2036+
2037+ ret = bind_socket (packet_sock , lo0 );
2038+ zassert_equal (ret , 0 , "packet socket bind failed" );
2039+
2040+ zassert_not_null (lo0 -> config .ip .ipv4 ,
2041+ "Interface %d (%p) no IPv4 configured" ,
2042+ net_if_get_by_iface (lo0 ), lo0 );
2043+
2044+ ttl = 16 ;
2045+ net_if_ipv4_set_ttl (lo0 , ttl );
2046+ verify = net_if_ipv4_get_ttl (lo0 );
2047+ zassert_equal (verify , ttl , "Different TTLs (%d vs %d)" , ttl , verify );
2048+
2049+ ttl = 128 ;
2050+ ret = setsockopt (client_sock , IPPROTO_IP , IP_TTL , & ttl , sizeof (ttl ));
2051+ zassert_equal (ret , 0 , "Cannot set unicast TTL (%d)" , - errno );
2052+
2053+ optlen = sizeof (verify );
2054+ ret = getsockopt (client_sock , IPPROTO_IP , IP_TTL , & verify , & optlen );
2055+ zassert_equal (ret , 0 , "Cannot get unicast TTL (%d)" , - errno );
2056+ zassert_equal (verify , ttl , "Different unicast TTL (%d vs %d)" ,
2057+ ttl , verify );
2058+
2059+ test_check_ttl (client_sock , server_sock , packet_sock ,
2060+ (struct sockaddr * )& client_addr , sizeof (client_addr ),
2061+ (struct sockaddr * )& server_addr , sizeof (server_addr ),
2062+ (struct sockaddr * )& server_addr , sizeof (server_addr ),
2063+ AF_INET , ttl , 0 );
2064+ }
2065+
2066+ ZTEST (net_socket_udp , test_32_v4_mcast_ttl )
20192067{
20202068 int ret ;
20212069 int client_sock ;
0 commit comments