sonic-mgmt
sonic-mgmt copied to clipboard
[Test Gap] A VLAN interface should stay up when all of its member ports are operationally down
Description of PR
Summary:
Fixes #14790
When all member ports of a VLAN are down, the VLAN interface should still remain operationally up. The added test file (test_vlan_ports_down.py) performs the following steps:
Setup: Brings down all member ports of a VLAN interface.
- Asserts that the VLAN interface is operationally Up.
- Asserts that the VLAN interface's IPv4 and IPv6 subnets are advertised to the T1 neighbors.
- Asserts that IPv4 decapsulation feature works for the VLAN interface.
Tear-down: Starts up all member ports of the VLAN interface.
Type of change
- [ ] Bug fix
- [ ] Testbed and Framework(new/improvement)
- [x] Test case(new/improvement)
Back port request
- [ ] 202012
- [ ] 202205
- [ ] 202305
- [ ] 202311
- [ ] 202405
Approach
What is the motivation for this PR?
When all member ports of a VLAN are down, the VLAN interface should still remain operationally up.
How did you do it?
We select a VLAN and then bring all of its member ports down. Then we assert all 3 conditions mentioned in the summary.
How did you verify/test it?
Ran the test on a virtual T0 switch (with Broadcom ASIC).
Any platform specific information?
N/A
Supported testbed topology if it's a new test case?
T0
The pre-commit check detected issues in the files touched by this pull request. The pre-commit check is a mandatory check, please fix detected issues.
Detailed pre-commit check results:
trim trailing whitespace.................................................Passed
fix end of files.........................................................Passed
check yaml...............................................................Passed
check for added large files..............................................Passed
check python ast.........................................................Passed
flake8...................................................................Failed
- hook id: flake8
- exit code: 1
tests/vlan/test_vlan_ports_down.py:17:1: E302 expected 2 blank lines, found 1
tests/vlan/test_vlan_ports_down.py:32:18: E261 at least two spaces before inline comment
tests/vlan/test_vlan_ports_down.py:37:1: E302 expected 2 blank lines, found 1
tests/vlan/test_vlan_ports_down.py:51:1: E302 expected 2 blank lines, found 1
tests/vlan/test_vlan_ports_down.py:75:9: E722 do not use bare 'except'
tests/vlan/test_vlan_ports_down.py:83:9: E722 do not use bare 'except'
flake8...............................................(no files to check)Skipped
check conditional mark sort..............................................Passed
To run the pre-commit checks locally, you can follow below steps:
- Ensure that default python is python3. In sonic-mgmt docker container, default python is python2. You can run the check by activating the python3 virtual environment in sonic-mgmt docker container or outside of sonic-mgmt docker container.
- Ensure that the
pre-commitpackage is installed:
sudo pip install pre-commit
- Go to repository root folder
- Install the pre-commit hooks:
pre-commit install
- Use pre-commit to check staged file:
pre-commit
- Alternatively, you can check committed files using:
pre-commit run --from-ref <commit_id> --to-ref <commit_id>
/azp run Azure.sonic-mgmt
Azure Pipelines successfully started running 1 pipeline(s).
/azp run Azure.sonic-mgmt
Commenter does not have sufficient privileges for PR 15244 in repo sonic-net/sonic-mgmt
/azp run
Azure Pipelines successfully started running 1 pipeline(s).