sonic-net / sonic-mgmt

Configuration management examples for SONiC
Other
176 stars 700 forks source link

[action] [PR:11818] [Fix] IP pre configuration fixture on the interface for BGP cases #13532

Closed mssonicbld closed 2 months ago

mssonicbld commented 2 months ago

Description of PR

Summary: This PR includes a readme file for the bgp snappi cases that describes about the pytest markers used in the testcases and includes a ipv4/ipv6 pre-configuraition fixture for the interface , if the configuration is missing. Fixes # (issue) https://github.com/sonic-net/sonic-mgmt/issues/11709

Type of change

Back port request

Approach

What is the motivation for this PR?

For easier understanding of the pytest markers for user and improve the pass rate of the bgp snappi cases

How did you do it?

Added a fixture that pre configures the interfaces before the start of the test with ipv4 and ipv6 address.

How did you verify/test it?

Added the run output in the description

Any platform specific information?

Supported testbed topology if it's a new test case?

Documentation

Output

AzDevOps@6105354dad99:~/sonic-mgmt/tests$ py.test --inventory ../ansible/snappi-sonic --host-pattern sonic-s6100-dut --testbed vms-snappi-sonic --testbed_file ../ansible/testbed.csv --show-capture=stdout --log-cli-level info --showlocals -ra --allow_recover --skip_sanity --disable_loganalyzer snappi_tests/bgp/test_bgp_local_link_failover.py /usr/local/lib/python2.7/dist-packages/ansible/parsing/vault/init.py:44: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release. from cryptography.exceptions import InvalidSignature ============================================================================= test session starts ============================================================================= platform linux2 -- Python 2.7.18, pytest-4.6.11, py-1.11.0, pluggy-0.13.1 ansible: 2.8.20 rootdir: /var/AzDevOps/sonic-mgmt/tests, inifile: pytest.ini plugins: allure-pytest-2.8.22, celery-4.4.7, ansible-2.2.4, forked-1.3.0, html-1.22.1, metadata-1.11.0, repeat-0.9.1, xdist-1.28.0 collecting 1 item ----------------------------------------------------------------------------- live log collection ----------------------------------------------------------------------------- 22:14:34 init.pytest_collection_modifyitems L0582 INFO | Available basic facts that can be used in conditional skip: { "topo_type": "ptf", "testbed": "vms-snappi-sonic", "topo_name": "ptf64" }

------------------------------------------------------------------------------- live log setup -------------------------------------------------------------------------------- 22:14:34 init.set_default L0054 INFO | Completeness level not set during test execution. Setting to default level: CompletenessLevel.basic 22:14:34 init.check_test_completeness L0152 INFO | Test has no defined levels. Continue without test completeness checks 22:14:41 ptfhost_utils.run_icmp_responder_session L0239 INFO | Skip running icmp_responder at session level, it is only for dualtor testbed with active-active mux ports. 22:14:41 conftest.creds_on_dut L0704 INFO | dut sonic-s6100-dut belongs to groups [u'snappi-sonic', u'sonic', u'sonic_dell64_40', 'fanout'] 22:14:41 conftest.creds_on_dut L0728 INFO | skip empty var file ../ansible/group_vars/all/corefile_uploader.yml 22:14:41 conftest.creds_on_dut L0728 INFO | skip empty var file ../ansible/group_vars/all/env.yml 22:14:42 conftest.nbrhosts L0521 INFO | No VMs exist for this topology: ptf64 22:14:42 conftest.core_dump_and_config_check L2032 INFO | Collecting core dumps before test on sonic-s6100-dut 22:14:42 conftest.core_dump_and_config_check L2041 INFO | Collecting running config before test on sonic-s6100-dut 22:14:47 init.sanity_check L0125 INFO | Skip sanity check according to command line argument 22:14:47 conftest.generate_params_dut_hostname L1108 INFO | Using DUTs ['sonic-s6100-dut'] in testbed 'vms-snappi-sonic' 22:14:47 conftest.rand_one_dut_hostname L0378 INFO | Randomly select dut sonic-s6100-dut for testing 22:14:47 init._fixture_generator_decorator L0081 INFO | -------------------- fixture enable_packet_aging_after_test setup starts -------------------- 22:14:47 init._fixture_generator_decorator L0085 INFO | -------------------- fixture enable_packet_aging_after_test setup ends -------------------- 22:14:47 init._fixture_generator_decorator L0081 INFO | -------------------- fixture rand_lossless_prio setup starts -------------------- 22:14:47 init._fixture_generator_decorator L0085 INFO | -------------------- fixture rand_lossless_prio setup ends -------------------- 22:14:47 init._fixture_generator_decorator L0081 INFO | -------------------- fixture rand_lossy_prio setup starts -------------------- 22:14:47 init._fixture_generator_decorator L0085 INFO | -------------------- fixture rand_lossy_prio setup ends -------------------- 22:14:47 init._fixture_generator_decorator L0081 INFO | -------------------- fixture start_pfcwd_after_test setup starts -------------------- 22:14:47 init._fixture_generator_decorator L0085 INFO | -------------------- fixture start_pfcwd_after_test setup ends -------------------- 22:14:47 init._fixture_func_decorator L0069 INFO | -------------------- fixture snappi_api_serv_ip setup starts -------------------- 22:14:47 init._fixture_func_decorator L0076 INFO | -------------------- fixture snappi_api_serv_ip setup ends -------------------- 22:14:47 init._fixture_func_decorator L0069 INFO | -------------------- fixture snappi_api_serv_port setup starts -------------------- 22:14:47 init._fixture_func_decorator L0076 INFO | -------------------- fixture snappi_api_serv_port setup ends -------------------- 22:14:47 init._fixture_generator_decorator L0081 INFO | -------------------- fixture cvg_api setup starts -------------------- 22:14:47 init._fixture_generator_decorator L0085 INFO | -------------------- fixture cvg_api setup ends -------------------- 22:14:47 init._fixture_func_decorator L0069 INFO | -------------------- fixture tgen_ports setup starts -------------------- 22:14:49 snappi_fixtures.pre_configure_dut_interf L0555 INFO | Pre-Configuring Dut: sonic-s6100-dut with port Ethernet12 with IP 23.1.1.1/8 22:14:50 snappi_fixtures.pre_configure_dut_interf L0564 INFO | Pre-Configuring Dut: sonic-s6100-dut with port Ethernet12 with IPv6 2003:1::1/16 22:14:52 snappi_fixtures.pre_configure_dut_interf L0555 INFO | Pre-Configuring Dut: sonic-s6100-dut with port Ethernet0 with IP 20.1.1.1/8 22:14:53 snappi_fixtures.pre_configure_dut_interf L0564 INFO | Pre-Configuring Dut: sonic-s6100-dut with port Ethernet0 with IPv6 2000:1::1/16 22:14:55 snappi_fixtures.pre_configure_dut_interf L0555 INFO | Pre-Configuring Dut: sonic-s6100-dut with port Ethernet8 with IP 22.1.1.1/8 22:14:56 snappi_fixtures.pre_configure_dut_interf L0564 INFO | Pre-Configuring Dut: sonic-s6100-dut with port Ethernet8 with IPv6 2002:1::1/16 22:14:58 snappi_fixtures.pre_configure_dut_interf L0555 INFO | Pre-Configuring Dut: sonic-s6100-dut with port Ethernet4 with IP 21.1.1.1/8 22:14:59 snappi_fixtures.pre_configure_dut_interf L0564 INFO | Pre-Configuring Dut: sonic-s6100-dut with port Ethernet4 with IPv6 2001:1::1/16 22:15:00 snappi_fixtures.tgen_ports L0521 INFO | [{'ip': u'23.1.1.2', 'card_id': '6', 'peer_port': 'Ethernet12', 'prefix': 8, 'location': '10.36.78.53;6;4', 'ipv6': u'2003:1::2', 'ipv6_prefix': 16, 'port_id': '4', 'peer_ip': u'23.1.1.1', 'speed': 'speed_100_gbps', 'peer_device': 'sonic-s6100-dut', 'peer_ipv6': u'2003:1::1'}, {'ip': u'20.1.1.2', 'card_id': '6', 'peer_port': 'Ethernet0', 'prefix': 8, 'location': '10.36.78.53;6;1', 'ipv6': u'2000:1::2', 'ipv6_prefix': 16, 'port_id': '1', 'peer_ip': u'20.1.1.1', 'speed': 'speed_100_gbps', 'peer_device': 'sonic-s6100-dut', 'peer_ipv6': u'2000:1::1'}, {'ip': u'22.1.1.2', 'card_id': '6', 'peer_port': 'Ethernet8', 'prefix': 8, 'location': '10.36.78.53;6;3', 'ipv6': u'2002:1::2', 'ipv6_prefix': 16, 'port_id': '3', 'peer_ip': u'22.1.1.1', 'speed': 'speed_100_gbps', 'peer_device': 'sonic-s6100-dut', 'peer_ipv6': u'2002:1::1'}, {'ip': u'21.1.1.2', 'card_id': '6', 'peer_port': 'Ethernet4', 'prefix': 8, 'location': '10.36.78.53;6;2', 'ipv6': u'2001:1::2', 'ipv6_prefix': 16, 'port_id': '2', 'peer_ip': u'21.1.1.1', 'speed': 'speed_100_gbps', 'peer_device': 'sonic-s6100-dut', 'peer_ipv6': u'2001:1::1'}] 22:15:00 init._fixture_func_decorator L0076 INFO | -------------------- fixture tgen_ports setup ends -------------------- 22:15:00 init._fixture_generator_decorator L0081 INFO | -------------------- fixture snappi_api setup starts -------------------- 22:15:00 init._fixture_generator_decorator L0085 INFO | -------------------- fixture snappi_api setup ends -------------------- 22:15:00 init.loganalyzer L0045 INFO | Log analyzer is disabled -------------------------------------------------------------------------------- live log call -------------------------------------------------------------------------------- 22:15:03 bgp_convergence_helper.duthost_bgp_confi L0235 INFO | Removing configured IP and IPv6 Address from Ethernet12 22:15:06 bgp_convergence_helper.duthost_bgp_confi L0235 INFO | Removing configured IP and IPv6 Address from Ethernet0 22:15:09 bgp_convergence_helper.duthost_bgp_confi L0235 INFO | Removing configured IP and IPv6 Address from Ethernet8 22:15:12 bgp_convergence_helper.duthost_bgp_confi L0248 INFO | Configuring Ethernet12 to PortChannel1 with IPs 23.1.1.1,2003:1::1 22:15:16 bgp_convergence_helper.duthost_bgp_confi L0248 INFO | Configuring Ethernet0 to PortChannel2 with IPs 20.1.1.1,2000:1::1 22:15:20 bgp_convergence_helper.duthost_bgp_confi L0248 INFO | Configuring Ethernet8 to PortChannel3 with IPs 22.1.1.1,2002:1::1 22:15:26 bgp_convergence_helper.duthost_bgp_confi L0274 INFO | Configuring BGP v4 Neighbor 20.1.1.2 22:15:27 bgp_convergence_helper.duthost_bgp_confi L0274 INFO | Configuring BGP v4 Neighbor 22.1.1.2 22:18:29 connection._warn L0246 WARNING| Verification of certificates is disabled 22:18:29 connection._info L0243 INFO | Determining the platform and rest_port using the 10.36.77.63 address... 22:18:29 connection._warn L0246 WARNING| Unable to connect to http://10.36.77.63:11009. 22:18:29 connection._info L0243 INFO | Connection established to https://10.36.77.63:11009 on windows 22:18:29 connection._info L0243 INFO | Using IxNetwork api server version 9.30.2212.5 22:18:29 connection._info L0243 INFO | User info IxNetwork/ST-REG-VM/8010 22:18:29 snappi_api.info L1132 INFO | snappi-0.9.1 22:18:29 snappi_api.info L1132 INFO | snappi_ixnetwork-0.9.1 22:18:29 snappi_api.info L1132 INFO | ixnetwork_restpy-1.0.64 22:18:29 snappi_api.info L1132 INFO | Config validation 0.005s 22:18:32 snappi_api.info L1132 INFO | Ports configuration 0.051s 22:18:32 snappi_api.info L1132 INFO | Captures configuration 0.030s 22:18:41 snappi_api.info L1132 INFO | Location hosts ready [10.36.78.53] 2.057s 22:18:41 snappi_api.info L1132 INFO | Speed conversion is not require for (port.name, speed) : [('Test_Port_1', u'novusHundredGigNonFanOut'), ('Test_Port_2', u'novusHundredGigNonFanOut'), ('Test_Port_3', u'novusHundredGigNonFanOut')] 22:18:41 snappi_api.info L1132 INFO | Aggregation mode speed change 0.263s 22:18:41 snappi_api.info L1132 INFO | Location configuration 8.528s 22:18:41 snappi_api.info L1132 INFO | Layer1 configuration 0.068s 22:18:43 snappi_api.info L1132 INFO | Lag Configuration 1.562s 22:18:43 snappi_api.info L1132 INFO | Lag Ethernet Configuration 0.209s 22:18:44 snappi_api.info L1132 INFO | Lag Protocol Configuration 1.051s 22:18:44 snappi_api.info L1132 INFO | Convert device config : 0.130s 22:18:44 snappi_api.info L1132 INFO | Create IxNetwork device config : 0.001s 22:18:45 snappi_api.info L1132 INFO | Push IxNetwork device config : 1.006s 22:18:45 snappi_api.info L1132 INFO | Devices configuration 1.146s 22:18:46 snappi_api.info L1132 INFO | Flows configuration 1.254s 22:18:47 snappi_api.info L1132 INFO | Start interfaces 0.453s 22:18:47 bgp_convergence_helper.get_convergence_f L0478 INFO | Starting all protocols ... 22:19:13 snappi_api.info L1132 INFO | Setting protocol state 26.074s 22:19:13 utilities.wait L0102 INFO | Pause 30 seconds, reason: For Protocols To start 22:19:43 bgp_convergence_helper.get_avg_dpdp_conv L0493 INFO | |---- Test_Port_2 Link Flap Iteration : 1 ----| 22:19:43 bgp_convergence_helper.get_avg_dpdp_conv L0496 INFO | Starting Traffic 22:19:46 snappi_api.info L1132 INFO | Flows generate/apply 2.594s 22:19:59 snappi_api.info L1132 INFO | Flows clear statistics 13.623s 22:19:59 snappi_api.info L1132 INFO | Captures start 0.000s 22:20:02 snappi_api.info L1132 INFO | Flows start 2.419s 22:20:02 utilities.wait L0102 INFO | Pause 30 seconds, reason: For Traffic To start 22:20:32 bgp_convergence_helper.get_avg_dpdp_conv L0505 INFO | Simulating Link Failure on Test_Port_2 link 22:20:32 snappi_api.info L1132 INFO | Link State operation 0.010s 22:20:32 utilities.wait L0102 INFO | Pause 30 seconds, reason: For Link to go down 22:20:46 bgp_convergence_helper.get_avg_dpdp_conv L0518 INFO | Traffic has converged after link flap 22:21:07 bgp_convergence_helper.get_avg_dpdp_conv L0525 INFO | CP/DP Convergence Time (ms): 113.984 22:21:07 bgp_convergence_helper.get_avg_dpdp_conv L0531 INFO | Simulating Link Up on Test_Port_2 at the end of iteration 1 22:21:08 snappi_api.info L1132 INFO | Link State operation 0.008s 22:21:13 snappi_api.info L1132 INFO | Flows stop 5.549s 22:21:13 utilities.wait L0102 INFO | Pause 20 seconds, reason: For Traffic To Stop 22:21:33 bgp_convergence_helper.get_avg_dpdp_conv L0493 INFO | |---- Test_Port_3 Link Flap Iteration : 1 ----| 22:21:33 bgp_convergence_helper.get_avg_dpdp_conv L0496 INFO | Starting Traffic 22:21:44 snappi_api.info L1132 INFO | Flows clear statistics 10.458s 22:21:44 snappi_api.info L1132 INFO | Captures start 0.000s 22:21:47 snappi_api.info L1132 INFO | Flows start 2.736s 22:21:47 utilities.wait L0102 INFO | Pause 30 seconds, reason: For Traffic To start 22:22:17 bgp_convergence_helper.get_avg_dpdp_conv L0505 INFO | Simulating Link Failure on Test_Port_3 link 22:22:17 snappi_api.info L1132 INFO | Link State operation 0.017s 22:22:17 utilities.wait L0102 INFO | Pause 30 seconds, reason: For Link to go down 22:22:47 bgp_convergence_helper.get_avg_dpdp_conv L0518 INFO | Traffic has converged after link flap 22:22:55 bgp_convergence_helper.get_avg_dpdp_conv L0525 INFO | CP/DP Convergence Time (ms): 256.841 22:22:55 bgp_convergence_helper.get_avg_dpdp_conv L0531 INFO | Simulating Link Up on Test_Port_3 at the end of iteration 1 22:22:55 snappi_api.info L1132 INFO | Link State operation 0.009s 22:23:01 snappi_api.info L1132 INFO | Flows stop 5.266s 22:23:01 utilities.wait L0102 INFO | Pause 20 seconds, reason: For Traffic To Stop 22:23:21 bgp_convergence_helper.get_convergence_f L0553 INFO | +--------------------------+--------------+-----------------+--------------+------------------+---------------------------------------------+ | Event Name | Route Type | No. of Routes | Iterations | Delta Frames | Avg Calculated Data Convergence Time (ms) | |--------------------------+--------------+-----------------+--------------+------------------+---------------------------------------------| | Test_Port_2 Link Failure | IPv4 | 1000 | 1 | 630754 | 113 | | Test_Port_3 Link Failure | IPv4 | 1000 | 1 | 1.50566e+06 | 256 | +--------------------------+--------------+-----------------+--------------+------------------+---------------------------------------------+ 22:23:55 bgp_convergence_helper.cleanup_config L0994 INFO | Wait until all critical services are fully started 22:24:14 bgp_convergence_helper.cleanup_config L0997 INFO | Convergence Test Completed PASSED [100%] ------------------------------------------------------------------------------ live log teardown ------------------------------------------------------------------------------ 22:24:14 init._fixture_generator_decorator L0093 INFO | -------------------- fixture snappi_api teardown starts -------------------- 22:24:14 init._fixture_generator_decorator L0102 INFO | -------------------- fixture snappi_api teardown ends -------------------- 22:24:14 init._fixture_generator_decorator L0093 INFO | -------------------- fixture cvg_api teardown starts -------------------- 22:24:14 init._fixture_generator_decorator L0102 INFO | -------------------- fixture cvg_api teardown ends -------------------- 22:24:14 init._fixture_generator_decorator L0093 INFO | -------------------- fixture start_pfcwd_after_test teardown starts -------------------- 22:24:17 init._fixture_generator_decorator L0102 INFO | -------------------- fixture start_pfcwd_after_test teardown ends -------------------- 22:24:17 init._fixture_generator_decorator L0093 INFO | -------------------- fixture rand_lossy_prio teardown starts -------------------- 22:24:17 init._fixture_generator_decorator L0102 INFO | -------------------- fixture rand_lossy_prio teardown ends -------------------- 22:24:17 init._fixture_generator_decorator L0093 INFO | -------------------- fixture rand_lossless_prio teardown starts -------------------- 22:24:17 init._fixture_generator_decorator L0102 INFO | -------------------- fixture rand_lossless_prio teardown ends -------------------- 22:24:17 init._fixture_generator_decorator L0093 INFO | -------------------- fixture enable_packet_aging_after_test teardown starts -------------------- 22:24:33 init._fixture_generator_decorator L0102 INFO | -------------------- fixture enable_packet_aging_after_test teardown ends -------------------- 22:24:34 conftest.core_dump_and_config_check L2069 INFO | Collecting core dumps after test on sonic-s6100-dut 22:24:35 conftest.core_dump_and_config_check L2086 INFO | Collecting running config after test on sonic-s6100-dut 22:24:36 conftest.core_dump_and_config_check L2211 WARNING| Core dump or config check failed for test_bgp_local_link_failover.py, results: {"core_dump_check": {"new_core_dumps": {"sonic-s6100-dut": []}, "pass": true}, "config_db_check": {"cur_only_config": {"sonic-s6100-dut": {"null": {"INTERFACE": {"Ethernet8": {}, "Ethernet0|2000:1::1/16": {}, "Ethernet0": {}, "Ethernet4": {}, "Ethernet12|23.1.1.1/8": {}, "Ethernet12|2003:1::1/16": {}, "Ethernet8|2002:1::1/16": {}, "Ethernet4|2001:1::1/16": {}, "Ethernet8|22.1.1.1/8": {}, "Ethernet4|21.1.1.1/8": {}, "Ethernet0|20.1.1.1/8": {}, "Ethernet12": {}}}}}, "inconsistent_config": {"sonic-s6100-dut": {"null": {}}}, "pre_only_config": {"sonic-s6100-dut": {"null": {"VLAN_MEMBER": {"Vlan2|Ethernet8": {"tagging_mode": "untagged"}, "Vlan2|Ethernet0": {"tagging_mode": "untagged"}, "Vlan2|Ethernet12": {"tagging_mode": "untagged"}, "Vlan2|Ethernet4": {"tagging_mode": "untagged"}}}}}, "pass": false}}

============================================================================== warnings summary =============================================================================== /usr/local/lib/python2.7/dist-packages/_pytest/config/init.py:545 /usr/local/lib/python2.7/dist-packages/_pytest/config/init.py:545: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: tests.common.plugins.loganalyzer self.import_plugin(import_spec)

/usr/local/lib/python2.7/dist-packages/_pytest/config/init.py:545 /usr/local/lib/python2.7/dist-packages/_pytest/config/init.py:545: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: tests.common.plugins.sanity_check self.import_plugin(import_spec)

/usr/local/lib/python2.7/dist-packages/_pytest/config/init.py:545 /usr/local/lib/python2.7/dist-packages/_pytest/config/init.py:545: PytestAssertRewriteWarning: Module already imported so cannot be rewritten: tests.common.dualtor self.import_plugin(import_spec)

snappi_tests/bgp/test_bgp_local_link_failover.py::test_bgp_convergence_for_local_link_failover[speed_100_gbps-IPv4-1000-1-2] /usr/local/lib/python2.7/dist-packages/pytest_ansible/module_dispatcher/v28.py:81: UserWarning: provided hosts list is empty, only localhost is available warnings.warn("provided hosts list is empty, only localhost is available")

-- Docs: https://docs.pytest.org/en/latest/warnings.html --------------------------------------------------------------------------- live log sessionfinish ---------------------------------------------------------------------------- 22:24:36 init.pytest_terminal_summary L0064 INFO | Can not get Allure report URL. Please check logs ==================== 1 passed, 4 warnings in 602.90 seconds ==================== INFO:root:Can not get Allure report URL. Please check logs

mssonicbld commented 2 months ago

Original PR: https://github.com/sonic-net/sonic-mgmt/pull/11818