Skip to content

[sonic-vpp]: Enable sub_port_interfaces tests on t1-lag-vpp - #26693

Open
lunyue-ms wants to merge 1 commit into
sonic-net:masterfrom
lunyue-ms:lunyue/vpp-enable-subport-tests
Open

[sonic-vpp]: Enable sub_port_interfaces tests on t1-lag-vpp#26693
lunyue-ms wants to merge 1 commit into
sonic-net:masterfrom
lunyue-ms:lunyue/vpp-enable-subport-tests

Conversation

@lunyue-ms

@lunyue-ms lunyue-ms commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Description of PR

Summary: Enable the sub_port_interfaces tests on the t1-lag-vpp test set.

The sub-port data plane on sonic-vpp is now functional, so this PR stops skipping these modules and starts actually running them.

Two things were blocking them:

  1. .azure-pipelines/pr_test_scripts.yaml — the t1-lag-vpp test set had no sub_port_interfaces entry at all, so Elastictest never collected the modules. This adds the same two scripts the t1-lag test set already runs.

  2. tests_mark_conditions_sonic_vpp.yamltest_show_subinterface.py was skipped as a whole module, and test_sub_port_interfaces.py had all eight class-level cases marked Failed/Errored: To be included, for asic_type == vpp. Every one of those cases passes now, so the vpp-specific skips are dropped entirely.

test_sub_port_l2_forwarding.py is deliberately left untouched: it carries pytestmark = [pytest.mark.topology("t0")], so it can never run on a t1 testbed regardless of the conditional marks, and it is not added to the t1-lag-vpp test set.

Type of change

  • Bug fix
  • Testbed and Framework (new/improvement)
  • New Test case
  • Test case improvement

Back port request

  • 202012
  • 202205
  • 202305
  • 202311
  • 202405
  • 202411
  • 202505

Approach

What is the motivation for this PR?

The sub-port fixes in the two dependency PRs below make the whole sub_port_interfaces suite work on sonic-vpp, but nothing in CI exercises it. This wires the suite into the t1-lag-vpp test set so regressions get caught.

How did you do it?

Added the two scripts to the t1-lag-vpp set and removed the now-stale vpp skips.

How did you verify/test it?

Run on a vms-kvm-vpp-t1-lag KVM testbed, with an image containing both dependency PRs:

module collected passed skipped failed
test_sub_port_interfaces.py 32 29 3 0
test_show_subinterface.py 2 1 1 0

The 4 remaining skips all come from the platform-agnostic tests_mark_conditions.yaml and apply to every platform, not just vpp — all four have reason "Not supported port type":

test_untagged_packet_not_routed[port_in_lag]
test_routing_between_sub_ports_unaffected_by_sub_ports_removal[port_in_lag-same-*]
test_routing_between_sub_ports_unaffected_by_sub_ports_removal[port_in_lag-different-*]
test_show_subinterface.py::test_subinterface_status[port_in_lag]

The two SVI variants of test_routing_between_sub_ports_and_port were each run on their own before being unskipped (313s and 401s), then both together (451s); all runs passed. test_show_subinterface.py was likewise run twice with identical results.

Any platform specific information?

sonic-vpp only. This PR depends on:

Without both of those in the image under test, several of the newly enabled cases will fail.

Documentation

No documentation change needed.

Copilot AI review requested due to automatic review settings July 30, 2026 10:04
@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@github-actions

Copy link
Copy Markdown

@StormLiangMS @wangxin @yxieca A user wants to merge changes to the conditional mark files into master. Please review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enables execution of the sub_port_interfaces test module on the sonic-vpp virtual switch (asic_type == vpp) in the t1-lag-vpp CI test set by adding the tests to the pipeline collection list and narrowing VPP-specific conditional skips from a blanket module skip to only the known SVI-path failures.

Changes:

  • Add sub_port_interfaces/test_show_subinterface.py and sub_port_interfaces/test_sub_port_interfaces.py to the t1-lag-vpp test set so Elastictest collects them.
  • Replace the prior blanket VPP skips for test_sub_port_interfaces.py with two targeted skips for the *-svi* parameter variants of test_routing_between_sub_ports_and_port.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
tests/common/plugins/conditional_mark/tests_mark_conditions_sonic_vpp.yaml Removes broad VPP skips for the sub-port interfaces module and keeps only two specific SVI-variant skips.
.azure-pipelines/pr_test_scripts.yaml Adds sub-port interface test scripts to the t1-lag-vpp CI test selection list.

@lunyue-ms
lunyue-ms force-pushed the lunyue/vpp-enable-subport-tests branch from 787b722 to 83e7210 Compare July 30, 2026 23:59
Copilot AI review requested due to automatic review settings July 30, 2026 23:59
@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

tests/common/plugins/conditional_mark/tests_mark_conditions_sonic_vpp.yaml:559

  • The PR description says sub_port_interfaces/test_show_subinterface.py “remain[s] skipped, unchanged” on sonic-vpp, but this VPP conditional marks file no longer contains a skip for that module (the previous sub_port_interfaces/test_show_subinterface.py entry was removed). As a result, adding it to the t1-lag-vpp test set will start executing those tests on VPP.

If the intent is to keep it skipped on VPP, re-add the module-level skip entry here (or update the PR description if the intent changed).

#######################################
#####        Subport Interfaces   #####
#######################################
sub_port_interfaces/test_sub_port_interfaces.py::TestSubPorts::test_routing_between_sub_ports_and_port[port-svi:
  skip:

The sub-port data plane on sonic-vpp is now functional, so stop skipping
these modules and start running them in the t1-lag-vpp test set.

What changed
------------
1. .azure-pipelines/pr_test_scripts.yaml

   The t1-lag-vpp test set had no sub_port_interfaces entry at all, so the
   modules were never collected by Elastictest. Add the same two scripts the
   t1-lag test set already runs.

2. tests_mark_conditions_sonic_vpp.yaml

   test_show_subinterface.py was skipped as a whole module, and
   test_sub_port_interfaces.py had all eight class-level cases marked
   "Failed/Errored: To be included", for asic_type == vpp. Every one of those
   cases passes now, so drop the vpp-specific skips entirely.

   test_sub_port_l2_forwarding.py is left untouched. It carries
   pytestmark = [pytest.mark.topology("t0")], so it can never run on a t1
   testbed regardless of the conditional marks, and it is not added to the
   t1-lag-vpp test set.

Verification
------------
Run on the vms-kvm-vpp-t1-lag KVM testbed:

  test_sub_port_interfaces.py   32 collected: 29 passed, 3 skipped, 0 failed
  test_show_subinterface.py      2 collected:  1 passed, 1 skipped, 0 failed

The 4 remaining skips all come from the platform-agnostic
tests_mark_conditions.yaml and apply to every platform, not just vpp:

  test_untagged_packet_not_routed[port_in_lag]                        "Not supported port type"
  test_routing_between_sub_ports_unaffected_by_sub_ports_removal[port_in_lag-same-*]     same
  test_routing_between_sub_ports_unaffected_by_sub_ports_removal[port_in_lag-different-*] same
  test_show_subinterface.py::test_subinterface_status[port_in_lag]    same

The two SVI variants of test_routing_between_sub_ports_and_port were run
three times on their own before being unskipped (313s, 401s, and 451s for
both together); all runs passed. test_show_subinterface.py was likewise run
twice with identical results.

Depends on
----------
- sonic-net/sonic-sairedis#1907  (sub-port RIF/IP programming for LAG members)
- sonic-net/sonic-platform-vpp#267 (glean redirect node for sub-port ARP)

Without both of those in the image under test, several of the newly enabled
cases will fail.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6c4e1533-56e4-4d1d-8c98-9b000f07a580
Signed-off-by: Lun Yue <17232861+lunyue-ms@users.noreply.github.com>
@lunyue-ms
lunyue-ms force-pushed the lunyue/vpp-enable-subport-tests branch from 83e7210 to 75fd09e Compare July 31, 2026 01:14
Copilot AI review requested due to automatic review settings July 31, 2026 01:14
@mssonicbld

Copy link
Copy Markdown
Collaborator

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

tests/common/plugins/conditional_mark/tests_mark_conditions_sonic_vpp.yaml:560

  • PR description says the blanket vpp skips for sub_port_interfaces were replaced with two narrowly-scoped SVI skips, but this file currently has no vpp-specific skip for the known-failing test_routing_between_sub_ports_and_port SVI variants. If those variants still fail on vpp (as described), they will now be enabled and can break the t1-lag-vpp CI run; please add the two vpp-only skips here using the conditional_mark prefix-matching style used elsewhere (omit closing ] to match all remaining params).
#######################################
#####        Subport Interfaces   #####
#######################################
sub_port_interfaces/test_sub_port_l2_forwarding.py:
  skip:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants