Page MenuHomeFreeBSD

ifconfig: introduce `ifconfig_context` to store current global state.
ClosedPublic

Authored by melifaro on May 23 2023, 5:07 PM.
Tags
None
Referenced Files
Unknown Object (File)
Feb 18 2024, 8:29 AM
Unknown Object (File)
Jan 29 2024, 7:36 AM
Unknown Object (File)
Jan 27 2024, 9:28 AM
Unknown Object (File)
Dec 22 2023, 11:18 PM
Unknown Object (File)
Dec 12 2023, 8:07 PM
Unknown Object (File)
Dec 7 2023, 1:48 PM
Unknown Object (File)
Dec 3 2023, 9:58 PM
Unknown Object (File)
Nov 20 2023, 7:07 PM
Subscribers

Details

Summary

The structure consists of all current context - arguments,
open sockets, current family and so on.

Pass this structure as a first argument to most of the af_ menthods.
This allows to propagate and update shared data without using
global variables.

The diff is pretty large, but de-facto mechanical. All changes
except the structure setup in ifconfig[_netlink].c are one-line
mechanical changes.

Test Plan
if_ovpn/if_ovpn_c:tcp  ->  passed  [0.002s]
if_bridge_test:bridge_transmit_ipv4_unicast  ->  passed  [2.155s]
if_bridge_test:delete_with_members  ->  passed  [0.045s]
if_bridge_test:gif  ->  passed  [0.107s]
if_bridge_test:inherit_mac  ->  passed  [0.057s]
if_bridge_test:mac_conflict  ->  passed  [2.176s]
if_bridge_test:mtu  ->  passed  [0.101s]
if_bridge_test:span  ->  passed  [6.643s]
if_bridge_test:static  ->  passed  [0.100s]
if_bridge_test:stp  ->  passed  [5.179s]
if_bridge_test:stp_validation  ->  passed  [24.182s]
if_bridge_test:stp_vlan  ->  passed  [5.210s]
if_bridge_test:vlan  ->  passed  [1.186s]
if_clone_test:epair_destroy_race  ->  passed  [2.006s]
if_clone_test:epair_ipv6_up_stress  ->  passed  [10.047s]
if_clone_test:epair_stress  ->  passed  [10.026s]
if_clone_test:epair_up_stress  ->  passed  [10.023s]
if_clone_test:faith_ipv6_up_stress  ->  passed  [10.031s]
if_clone_test:faith_stress  ->  passed  [10.057s]
if_clone_test:faith_up_stress  ->  passed  [10.034s]
if_clone_test:gif_ipv6_up_stress  ->  passed  [10.037s]
if_clone_test:gif_stress  ->  passed  [10.025s]
if_clone_test:gif_up_stress  ->  passed  [10.022s]
if_clone_test:lo_ipv6_up_stress  ->  passed  [10.017s]
if_clone_test:lo_stress  ->  passed  [10.116s]
if_clone_test:lo_up_stress  ->  passed  [10.020s]
if_clone_test:tap_ipv6_up_stress  ->  skipped: Quickly panics: if_delmulti_locked: inconsistent ifp 0xfffff80150e44000  [0.009s]
if_clone_test:tap_stress  ->  passed  [10.033s]
if_clone_test:tap_up_stress  ->  passed  [10.021s]
if_clone_test:tun_ipv6_up_stress  ->  passed  [10.024s]
if_clone_test:tun_stress  ->  passed  [10.111s]
if_clone_test:tun_up_stress  ->  passed  [10.019s]
if_clone_test:vlan_ipv6_up_stress  ->  passed  [10.024s]
if_clone_test:vlan_stress  ->  passed  [10.023s]
if_clone_test:vlan_up_stress  ->  passed  [10.026s]
if_clone_test:vmnet_ipv6_up_stress  ->  passed  [10.030s]
if_clone_test:vmnet_stress  ->  passed  [10.025s]
if_clone_test:vmnet_up_stress  ->  passed  [10.026s]
if_epair:params  ->  passed  [0.018s]
if_epair_test:pcp  ->  passed  [0.045s]
if_gif:basic  ->  passed  [0.070s]
if_lagg_test:create  ->  passed  [0.060s]
if_lagg_test:create_destroy_stress  ->  skipped: Skipping this test because it easily panics the machine  [0.009s]
if_lagg_test:lacp_linkstate_destroy_stress  ->  passed  [60.075s]
if_lagg_test:set_ether  ->  passed  [0.061s]
if_lagg_test:status_stress  ->  passed  [60.038s]
if_lagg_test:up_destroy_stress  ->  skipped: Skipping this test because it panics the machine fairly often  [0.010s]
if_lagg_test:updown  ->  expected_failure: PR 226144 Upping a lagg interrface should automatically up its children: atf-check failed; see the output of the test for details  [0.034s]
if_lagg_test:witness  ->  failed: Lock-order reversals involving if_lagg.c detected  [0.057s]
if_stf:6rd  ->  passed  [0.074s]
if_stf:6rd_peer  ->  passed  [0.112s]
if_stf:6to4  ->  passed  [0.071s]
if_tun_test:235704  ->  passed  [0.027s]
if_tun_test:basic  ->  passed  [0.074s]
if_vlan:basic  ->  passed  [11.101s]
if_vlan:bpf_pcp  ->  passed  [26.297s]
if_vlan:qinq_deep  ->  passed  [0.073s]
if_vlan:qinq_dot  ->  passed  [0.071s]
if_vlan:qinq_legacy  ->  passed  [0.074s]
if_vlan:qinq_setflags  ->  passed  [0.029s]
if_vlan:qinq_simple  ->  passed  [0.066s]
if_wg:wg_basic  ->  passed  [0.061s]
if_wg:wg_key_peerdev_makeshared  ->  passed  [0.030s]
if_wg:wg_key_peerdev_shared  ->  passed  [0.037s]
if_wg:wg_vnet_parent_routing  ->  passed  [0.116s]
if_ovpn/if_ovpn:4in4  ->  passed  [14.200s]
if_ovpn/if_ovpn:4in6  ->  passed  [12.239s]
if_ovpn/if_ovpn:4mapped  ->  passed  [12.175s]
if_ovpn/if_ovpn:6in4  ->  passed  [12.174s]
if_ovpn/if_ovpn:6in6  ->  passed  [14.364s]
if_ovpn/if_ovpn:chacha  ->  passed  [12.216s]
if_ovpn/if_ovpn:explicit_exit  ->  passed  [17.395s]
if_ovpn/if_ovpn:gcm_128  ->  passed  [12.346s]
if_ovpn/if_ovpn:multi_client  ->  passed  [20.611s]
if_ovpn/if_ovpn:ra  ->  passed  [23.467s]
if_ovpn/if_ovpn:route_to  ->  skipped: This test requires pf  [0.023s]
if_ovpn/if_ovpn:timeout_client  ->  passed  [32.485s]
routing/test_routing_l3.py:TestIfOps::test_change_prefix_route[inet6]  ->  passed  [0.370s]
routing/test_routing_l3.py:TestIfOps::test_change_prefix_route[inet]  ->  passed  [0.391s]
routing/test_routing_l3.py:TestIfOps::test_change_prefix_route_same_iface[inet6]  ->  skipped: /usr/tests/sys/net/routing/test_routing_l3.py:88: AssertionError  [0.392s]
routing/test_routing_l3.py:TestIfOps::test_change_prefix_route_same_iface[inet]  ->  passed  [0.399s]
routing/test_routing_l3.py:TestRouteCornerCase1::test_add_direct_route_p2p_wo_ifa[inet6]  ->  passed  [0.349s]
routing/test_routing_l3.py:TestRouteCornerCase1::test_add_direct_route_p2p_wo_ifa[inet]  ->  passed  [0.345s]
routing/test_rtsock_l3:rtm_add_v4_gu_ifa_ordered_success  ->  passed  [0.125s]
routing/test_rtsock_l3:rtm_add_v4_gw_direct_success  ->  passed  [0.124s]
routing/test_rtsock_l3:rtm_add_v4_no_rtf_host_success  ->  passed  [0.122s]
routing/test_rtsock_l3:rtm_add_v4_temporal1_success  ->  passed  [0.160s]
routing/test_rtsock_l3:rtm_add_v6_gu_gw_gu_direct_success  ->  passed  [0.125s]
routing/test_rtsock_l3:rtm_add_v6_gu_ifa_hostroute_success  ->  passed  [0.124s]
routing/test_rtsock_l3:rtm_add_v6_gu_ifa_ordered_success  ->  passed  [0.116s]
routing/test_rtsock_l3:rtm_add_v6_gu_ifa_prefixroute_success  ->  passed  [0.116s]
routing/test_rtsock_l3:rtm_add_v6_temporal1_success  ->  passed  [0.126s]
routing/test_rtsock_l3:rtm_change_v4_flags_success  ->  passed  [0.126s]
routing/test_rtsock_l3:rtm_change_v4_gw_success  ->  passed  [0.125s]
routing/test_rtsock_l3:rtm_change_v4_mtu_success  ->  passed  [0.120s]
routing/test_rtsock_l3:rtm_change_v6_flags_success  ->  passed  [0.116s]
routing/test_rtsock_l3:rtm_change_v6_gw_success  ->  passed  [0.119s]
routing/test_rtsock_l3:rtm_change_v6_mtu_success  ->  passed  [0.121s]
routing/test_rtsock_l3:rtm_del_v4_gu_ifa_prefixroute_success  ->  passed  [0.130s]
routing/test_rtsock_l3:rtm_del_v4_prefix_nogw_success  ->  passed  [0.119s]
routing/test_rtsock_l3:rtm_del_v6_gu_ifa_hostroute_success  ->  passed  [0.124s]
routing/test_rtsock_l3:rtm_del_v6_gu_ifa_prefixroute_success  ->  passed  [0.121s]
routing/test_rtsock_l3:rtm_del_v6_gu_prefix_nogw_success  ->  passed  [0.015s]
routing/test_rtsock_l3:rtm_get_v4_empty_dst_failure  ->  passed  [0.002s]
routing/test_rtsock_l3:rtm_get_v4_exact_success  ->  passed  [0.111s]
routing/test_rtsock_l3:rtm_get_v4_hostbits_success  ->  passed  [0.119s]
routing/test_rtsock_l3:rtm_get_v4_lpm_success  ->  passed  [0.120s]
routing/test_rtsock_lladdr:rtm_add_v4_gu_lle_success  ->  passed  [0.121s]
routing/test_rtsock_lladdr:rtm_add_v6_gu_lle_success  ->  passed  [0.113s]
routing/test_rtsock_lladdr:rtm_add_v6_ll_lle_success  ->  passed  [0.113s]
routing/test_rtsock_lladdr:rtm_del_v4_gu_lle_success  ->  passed  [0.118s]
routing/test_rtsock_lladdr:rtm_del_v6_gu_lle_success  ->  passed  [0.119s]
routing/test_rtsock_lladdr:rtm_del_v6_ll_lle_success  ->  passed  [0.121s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[change_new_weight1]  ->  passed  [0.336s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[change_new_weight2]  ->  passed  [0.363s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[change_new_weight3]  ->  passed  [0.337s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[change_same_weight1]  ->  passed  [0.348s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[change_same_weight2]  ->  passed  [0.369s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[correctness1]  ->  passed  [0.346s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[correctness2]  ->  passed  [0.341s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[transition_multi]  ->  passed  [0.355s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[transition_single1]  ->  passed  [0.355s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[transition_single2]  ->  passed  [0.387s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[weight1]  ->  passed  [0.324s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[weight2]  ->  passed  [0.359s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4[weight3_max]  ->  passed  [0.396s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4_add_same_eexist  ->  passed  [0.338s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4_add_zero_weight  ->  passed  [0.315s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4_change_unknown_esrch  ->  passed  [0.300s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4_del_unknown_esrch  ->  passed  [0.329s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath4_getroute  ->  passed  [0.350s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[change_new_weight1]  ->  passed  [0.356s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[change_new_weight2]  ->  passed  [0.362s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[change_new_weight3]  ->  passed  [0.350s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[change_same_weight1]  ->  passed  [0.383s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[change_same_weight2]  ->  passed  [0.513s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[correctness1]  ->  passed  [0.429s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[correctness2]  ->  passed  [0.375s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[transition_multi]  ->  passed  [0.344s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[transition_single1]  ->  passed  [0.356s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[transition_single2]  ->  passed  [0.367s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[weight1]  ->  passed  [0.310s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[weight2]  ->  passed  [0.352s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[weight3_max0]  ->  passed  [0.374s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6[weight3_max1]  ->  passed  [0.575s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6_add_same_eexist  ->  passed  [0.362s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6_change_unknown_esrch  ->  passed  [0.331s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6_del_unknown_esrch  ->  passed  [0.339s]
routing/test_rtsock_multipath.py:TestRtmMultipath::test_rtm_multipath6_getroute  ->  passed  [0.349s]
routing/test_rtsock_ops:socket_rtsock_openclose  ->  passed  [0.003s]

Results file id is usr_tests_sys_net.20230523-165612-272654
Results saved to /home/melifaro/.kyua/store/results.usr_tests_sys_net.20230523-165612-272654.db

149/150 passed (1 failed)
arp:arp_add_success  ->  passed  [0.047s]
arp:arp_del_success  ->  passed  [1.039s]
arp:pending_delete_if  ->  passed  [1.677s]
carp:basic_v4  ->  passed  [5.286s]
carp:basic_v6  ->  passed  [5.382s]
carp:nd6_ns_source_mac  ->  passed  [18.638s]
carp:negative_demotion  ->  passed  [6.333s]
carp:switch  ->  passed  [0.031s]
carp:unicast_ll_v6  ->  passed  [5.394s]
carp:unicast_v4  ->  passed  [5.449s]
carp:unicast_v6  ->  passed  [5.473s]
carp.py:TestCarp::test_source_mac  ->  failed: /usr/tests/atf_python/sys/net/vnet.py:294: ValueError  [1.497s]
divert:ipdivert_ip_input_local_success  ->  skipped: ipdivert module is not loaded  [0.014s]
divert:ipdivert_ip_output_remote_success  ->  skipped: ipdivert module is not loaded  [0.011s]
fibs:fibs_ifroutes1_success  ->  passed  [0.039s]
fibs_test:arpresolve_checks_interface_fib  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:default_route_with_multiple_fibs_on_same_subnet  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:default_route_with_multiple_fibs_on_same_subnet_inet6  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:loopback_and_network_routes_on_nondefault_fib  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:loopback_and_network_routes_on_nondefault_fib_inet6  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:same_ip_multiple_ifaces  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:same_ip_multiple_ifaces_fib0  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:same_ip_multiple_ifaces_inet6  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:slaac_on_nondefault_fib6  ->  skipped: Required configuration property 'allow_sysctl_side_effects' not defined  [0.001s]
fibs_test:subnet_route_with_multiple_fibs_on_same_subnet  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:subnet_route_with_multiple_fibs_on_same_subnet_inet6  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:udp_dontroute  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
fibs_test:udp_dontroute6  ->  skipped: Required configuration property 'fibs' not defined  [0.001s]
forward:fwd_ip_icmp_gw_fast_success  ->  passed  [1.287s]
forward:fwd_ip_icmp_gw_slow_success  ->  passed  [1.370s]
forward:fwd_ip_icmp_iface_fast_success  ->  passed  [1.443s]
forward:fwd_ip_icmp_iface_slow_success  ->  passed  [1.506s]
ip_reass_test:ip_reass__large_fragment  ->  passed  [0.013s]
ip_reass_test:ip_reass__multiple_last_fragments  ->  passed  [0.028s]
ip_reass_test:ip_reass__zero_length_fragment  ->  passed  [0.013s]
lpm:lpm_test1_success  ->  passed  [0.150s]
lpm:lpm_test2_success  ->  passed  [0.176s]
output:output_raw_flowid_mpath_success  ->  failed: Balancing failure: 1: 25 2: 10  [0.305s]
output:output_raw_success  ->  passed  [0.075s]
output:output_tcp_flowid_mpath_success  ->  passed  [1.365s]
output:output_tcp_setup_success  ->  passed  [0.134s]
output:output_udp_flowid_mpath_success  ->  passed  [8.213s]
output:output_udp_setup_success  ->  passed  [1.292s]
redirect:valid_redirect  ->  passed  [1.472s]
so_reuseport_lb_test:basic_ipv4  ->  passed  [0.540s]
so_reuseport_lb_test:basic_ipv6  ->  passed  [0.573s]
socket_afinet:socket_afinet  ->  passed  [0.002s]
socket_afinet:socket_afinet_bind_ok  ->  passed  [0.002s]
socket_afinet:socket_afinet_bind_zero  ->  passed  [0.002s]
socket_afinet:socket_afinet_poll_no_rdhup  ->  passed  [0.002s]
socket_afinet:socket_afinet_poll_rdhup  ->  passed  [0.002s]
tcp_connect_port_test:basic_ipv4  ->  skipped: Required configuration property 'allow_sysctl_side_effects' not defined  [0.001s]
tcp_connect_port_test:basic_ipv6  ->  skipped: Required configuration property 'allow_sysctl_side_effects' not defined  [0.001s]
tcp_md5_getsockopt:tcp_md5_getsockopt_v4  ->  skipped: Test requires the tcpmd5 kernel module to be loaded  [0.001s]
tcp_md5_getsockopt:tcp_md5_getsockopt_v6  ->  skipped: Test requires the tcpmd5 kernel module to be loaded  [0.002s]
libalias/1_instance:1_singleinit  ->  passed  [0.002s]
libalias/1_instance:2_destroynull  ->  expected_failure: Code expects valid pointer.  [0.002s]
libalias/1_instance:3_multiinit  ->  passed  [0.006s]
libalias/1_instance:4_multiinstance  ->  passed  [0.051s]
libalias/2_natout:1_simplemasq  ->  passed  [0.002s]
libalias/2_natout:2_unregistered  ->  passed  [0.002s]
libalias/2_natout:3_cgn  ->  passed  [0.002s]
libalias/2_natout:4_udp  ->  passed  [0.002s]
libalias/2_natout:5_sameport  ->  passed  [0.002s]
libalias/2_natout:6_cleartable  ->  passed  [0.002s]
libalias/2_natout:7_stress  ->  passed  [0.054s]
libalias/2_natout:8_portrange  ->  passed  [0.002s]
libalias/3_natin:1_portforward  ->  passed  [0.002s]
libalias/3_natin:2_portoverlap  ->  passed  [0.002s]
libalias/3_natin:3_redirectany  ->  passed  [0.002s]
libalias/3_natin:4_redirectaddr  ->  passed  [0.002s]
libalias/3_natin:5_lsnat  ->  passed  [0.002s]
libalias/3_natin:6_oneshot  ->  passed  [0.002s]
tcp6_v4mapped_bind_test:v4mapped  ->  skipped: Required configuration property 'allow_sysctl_side_effects' not defined  [0.001s]

Results file id is usr_tests_sys_netinet.20230523-170730-115458
Results saved to /home/melifaro/.kyua/store/results.usr_tests_sys_netinet.20230523-170730-115458.db

72/74 passed (2 failed)
divert:ipdivert_ip6_output_remote_success  ->  skipped: ipdivert module is not loaded  [0.014s]
exthdr:exthdr  ->  passed  [104.675s]
fibs6:fibs6_ifroutes1_success  ->  passed  [1.528s]
forward6:fwd_ip6_gu_icmp_gw_gu_fast_success  ->  passed  [2.790s]
forward6:fwd_ip6_gu_icmp_gw_gu_slow_success  ->  passed  [3.041s]
forward6:fwd_ip6_gu_icmp_gw_ll_fast_success  ->  passed  [2.842s]
forward6:fwd_ip6_gu_icmp_gw_ll_slow_success  ->  passed  [3.584s]
forward6:fwd_ip6_gu_icmp_iface_fast_success  ->  passed  [3.095s]
forward6:fwd_ip6_gu_icmp_iface_slow_success  ->  passed  [3.371s]
lpm6:lpm6_test1_success  ->  passed  [2.196s]
lpm6:lpm6_test2_success  ->  passed  [2.233s]
mld:mldraw01  ->  passed  [4.343s]
ndp:ndp_add_gu_success  ->  passed  [1.638s]
ndp:ndp_del_gu_success  ->  passed  [2.312s]
output6:output6_raw_flowid_mpath_success  ->  passed  [1.684s]
output6:output6_raw_success  ->  passed  [1.661s]
output6:output6_tcp_flowid_mpath_success  ->  passed  [2.558s]
output6:output6_tcp_setup_success  ->  passed  [1.382s]
output6:output6_udp_flowid_mpath_success  ->  passed  [4.544s]
output6:output6_udp_setup_success  ->  passed  [2.807s]
proxy_ndp:pndp_add_gu_success  ->  passed  [1.782s]
proxy_ndp:pndp_del_gu_success  ->  passed  [5.061s]
proxy_ndp:pndp_ifdestroy_success  ->  passed  [2.126s]
proxy_ndp:pndp_neighbor_advert  ->  passed  [3.737s]
redirect:valid_redirect  ->  passed  [3.340s]
scapyi386:scapyi386  ->  passed  [4.356s]
test_ip6_output.py:TestIP6Output::test_output6_base  ->  passed  [0.471s]
test_ip6_output.py:TestIP6Output::test_output6_nhop  ->  passed  [0.496s]
test_ip6_output.py:TestIP6Output::test_output6_pktinfo[empty]  ->  passed  [0.511s]
test_ip6_output.py:TestIP6Output::test_output6_pktinfo[ifsame]  ->  passed  [0.509s]
test_ip6_output.py:TestIP6Output::test_output6_pktinfo[ipandif]  ->  passed  [0.484s]
test_ip6_output.py:TestIP6Output::test_output6_pktinfo[iponly1]  ->  passed  [0.504s]
test_ip6_output.py:TestIP6Output::test_output6_pktinfo[nolocalip]  ->  passed  [0.496s]
test_ip6_output.py:TestIP6OutputLL::test_output6_linklocal  ->  passed  [0.496s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_tcp[gu-no_sav]  ->  passed  [0.357s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_tcp[gu-sav]  ->  passed  [0.372s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_tcp[ll-no_sav]  ->  passed  [0.383s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_tcp[ll-sav]  ->  passed  [0.356s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_tcp[lo-no_sav]  ->  passed  [0.311s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_tcp[lo-sav]  ->  passed  [0.362s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_udp[gu-no_sav]  ->  passed  [0.346s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_udp[gu-sav]  ->  passed  [0.334s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_udp[ll-no_sav]  ->  passed  [0.311s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_udp[ll-sav]  ->  passed  [0.327s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_udp[lo-no_sav]  ->  passed  [0.334s]
test_ip6_output.py:TestIP6OutputLoopback::test_output6_self_udp[lo-sav]  ->  passed  [0.354s]
test_ip6_output.py:TestIP6OutputMulticast::test_output6_multicast[ff02]  ->  passed  [0.478s]
test_ip6_output.py:TestIP6OutputMulticast::test_output6_multicast[ff05]  ->  passed  [0.509s]
test_ip6_output.py:TestIP6OutputMulticast::test_output6_multicast[ff08]  ->  passed  [0.496s]
test_ip6_output.py:TestIP6OutputMulticast::test_output6_multicast[ff0e]  ->  passed  [0.514s]
test_ip6_output.py:TestIP6OutputNhopLL::test_output6_nhop_linklocal  ->  passed  [0.519s]
test_ip6_output.py:TestIP6OutputScope::test_output6_linklocal_scope[gu_to_ll]  ->  passed  [0.510s]
test_ip6_output.py:TestIP6OutputScope::test_output6_linklocal_scope[ll_differentif1]  ->  passed  [0.548s]
test_ip6_output.py:TestIP6OutputScope::test_output6_linklocal_scope[ll_differentif2]  ->  passed  [0.489s]
test_ip6_output.py:TestIP6OutputScope::test_output6_linklocal_scope[same]  ->  passed  [0.527s]
frag6/frag6_01:frag6_01  ->  skipped: Sending IPv6 Jumbograms needs 1 kernel changes and BPF fixes  [0.011s]
frag6/frag6_02:frag6_02  ->  passed  [4.662s]
frag6/frag6_03:frag6_03  ->  passed  [4.726s]
frag6/frag6_04:frag6_04  ->  passed  [4.441s]
frag6/frag6_05:frag6_05_0  ->  passed  [79.593s]
frag6/frag6_05:frag6_05_1  ->  passed  [79.741s]
frag6/frag6_06:frag6_06_0  ->  passed  [4.719s]
frag6/frag6_07:frag6_07  ->  passed  [80.800s]
frag6/frag6_08:frag6_08  ->  passed  [80.832s]
frag6/frag6_09:frag6_09  ->  passed  [79.451s]
frag6/frag6_10:frag6_10  ->  passed  [79.542s]
frag6/frag6_11:frag6_11  ->  passed  [79.456s]
frag6/frag6_12:frag6_12  ->  passed  [79.372s]
frag6/frag6_13:frag6_13  ->  passed  [79.464s]
frag6/frag6_14:frag6_14  ->  passed  [79.461s]
frag6/frag6_15:frag6_15  ->  passed  [4.877s]
frag6/frag6_16:frag6_16  ->  passed  [5.084s]
frag6/frag6_17:frag6_17  ->  passed  [6.399s]
frag6/frag6_18:frag6_18  ->  passed  [5.396s]
frag6/frag6_19:frag6_19  ->  passed  [5.146s]
frag6/frag6_20:frag6_20  ->  passed  [79.410s]

Results file id is usr_tests_sys_netinet6.20230523-170856-953186
Results saved to /home/melifaro/.kyua/store/results.usr_tests_sys_netinet6.20230523-170856-953186.db

76/76 passed (0 failed)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 51643
Build 48534: arc lint + arc unit

Event Timeline

carp and std bits LGTM.

sbin/ifconfig/carp.c
79

Presumably we'll want lifh (the libifconfig handle) in the if_ctx? Perhaps as a next step.

sbin/ifconfig/ifstf.c
74

Would it be worth passing if_ctx into do_cmd, so we can ioctl_ctx()?

melifaro added inline comments.
sbin/ifconfig/carp.c
79

Yep, we do. I'm trying to keep this diff as simple as possible, boiling it down to the the parameter replacing only.

LGTP, for carp/stf anyway.

This revision is now accepted and ready to land.May 23 2023, 8:46 PM