On Fri, 2023-04-21 at 17:08 -0700, [email protected] wrote: > «Внимание! Данное письмо от внешнего адресата!» > > From: Ehsan Mohandesi <[email protected]> > > Test the IPv6 network discovery feature if indicated by boardenv > file. > > Signed-off-by: Ehsan Mohandesi <[email protected]> > --- > configs/sandbox64_defconfig | 2 ++ > configs/sandbox_defconfig | 2 ++ > configs/sandbox_flattree_defconfig | 2 ++ > test/py/tests/test_net.py | 31 > ++++++++++++++++++++++++++++++- > 4 files changed, 36 insertions(+), 1 deletion(-) > > diff --git a/configs/sandbox64_defconfig > b/configs/sandbox64_defconfig > index af2c56a..be36ede 100644 > --- a/configs/sandbox64_defconfig > +++ b/configs/sandbox64_defconfig > @@ -260,3 +260,5 @@ CONFIG_FWU_MULTI_BANK_UPDATE=y > CONFIG_UNIT_TEST=y > CONFIG_UT_TIME=y > CONFIG_UT_DM=y > +CONFIG_IPV6=y > +CONFIG_IPV6_ROUTER_DISCOVERY=y > diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig > index ca95b2c..0673c69 100644 > --- a/configs/sandbox_defconfig > +++ b/configs/sandbox_defconfig > @@ -341,3 +341,5 @@ CONFIG_UNIT_TEST=y > CONFIG_UT_TIME=y > CONFIG_UT_DM=y > CONFIG_CMD_2048=y > +CONFIG_IPV6=y > +CONFIG_IPV6_ROUTER_DISCOVERY=y > diff --git a/configs/sandbox_flattree_defconfig > b/configs/sandbox_flattree_defconfig > index e9fcc5b..d6c8dd2 100644 > --- a/configs/sandbox_flattree_defconfig > +++ b/configs/sandbox_flattree_defconfig > @@ -229,3 +229,5 @@ CONFIG_EFI_CAPSULE_FIRMWARE_FIT=y > CONFIG_UNIT_TEST=y > CONFIG_UT_TIME=y > CONFIG_UT_DM=y > +CONFIG_IPV6=y > +CONFIG_IPV6_ROUTER_DISCOVERY=y > diff --git a/test/py/tests/test_net.py b/test/py/tests/test_net.py > index 9ca6743..f85071d 100644 > --- a/test/py/tests/test_net.py > +++ b/test/py/tests/test_net.py > @@ -9,7 +9,7 @@ import u_boot_utils > > """ > Note: This test relies on boardenv_* containing configuration values > to define > -which the network environment available for testing. Without this, > this test > +which network environment is available for testing. Without this, > this test > will be automatically skipped. > > For example: > @@ -55,6 +55,11 @@ env__net_nfs_readable_file = { > 'size': 5058624, > 'crc32': 'c2244b26', > } > + > +# True if a router advertisement service is connected to the > network, and should > +# be tested. If router advertisement testing is not possible or > desired, this > +variable may be omitted or set to False. > +env__router_on_net = True > """ > > net_set_up = False > @@ -126,6 +131,30 @@ def test_net_ping(u_boot_console): > output = u_boot_console.run_command('ping $serverip') > assert 'is alive' in output > > [email protected]('IPV6_ROUTER_DISCOVERY') > +def test_net_network_discovery(u_boot_console): > + """Test the network discovery feature of IPv6. > + > + An IPv6 network command (ping6 in this case) is run to make U- > Boot send a > + router solicitation packet, receive a router advertisement > message, and > + parse it. > + A router advertisement service needs to be running for this test > to succeed. > + U-Boot receives the RA, processes it, and if successful, assigns > the gateway > + IP and prefix length. > + The configuration is provided by the boardenv_* file; see the > comment at > + the beginning of this file. > + """ > + > + router_on_net = > u_boot_console.config.env.get('env__router_on_net', False) > + if not router_on_net: > + pytest.skip('No router on network') > + > + fake_host_ip = 'fe80::215:5dff:fef6:2ec6' > + output = u_boot_console.run_command('ping6 ' + fake_host_ip) > + assert 'ROUTER SOLICITATION 1' in output > + assert 'Set gatewayip6:' in output > + assert '0000:0000:0000:0000:0000:0000:0000:0000' not in output > + > @pytest.mark.buildconfigspec('cmd_net') > def test_net_tftpboot(u_boot_console): > """Test the tftpboot command. > -- > 1.8.3.1 > >
Reviewed-by: Viacheslav Mitrofanov <[email protected]>

