Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Fix] Adjust MEF E-Line tests to also consider failover_path flows #144

Merged
merged 1 commit into from
Aug 12, 2022

Conversation

italovalcy
Copy link
Collaborator

@italovalcy italovalcy commented Aug 11, 2022

This PR is related to kytos-ng/mef_eline#175

Description of the change

With the introduction of the failover path on fully dynamic EVCs (those in which dynamic_backup_path = True and not primary_path and not backup_path), the number of flows in the flow table grew a bit. Thus, some end-to-end tests had to be adjusted accordingly.

The basic idea of the failover path is described in EP029, but below is the important part that impacts this PR:

Let's take Topology 1 as the first example. Suppose that the best path will be set up to S - X - W - D. The maximum disjoint path (to be used as a failover path) will be set up to S - Z - W - I - D. The following OpenFlow rules will be created before a link failure:

OpenFlow rules for the primary path:

  • h1 -> S -> X -> W -> D -> h2
  • h2 -> D -> W -> X -> S -> h1

OpenFlow rules for the failover path:

  • S -> Z -> W -> I -> D -> h2
  • D -> I -> W -> Z -> S -> h1

The takeaway from the above description is basically: switches that are UNIs will have an extra flow for the failover path (the egress flow, which is pre-installed -- just for information: during a failure, the ingress flow will be then installed); switches that are in the path will have two extra flows for the failover path (the entire path is pre-installed).

In summary, this PR adjusts the tests that create fully dynamic EVCs to consider the aforementioned extra flows.

Results of the execution of the end-to-end tests (together with MEF E-Line's failover branch) can be seen below:

tests/test_e2e_01_kytos_startup.py ..                                    [  1%]
tests/test_e2e_05_topology.py ..................                         [ 10%]
tests/test_e2e_10_mef_eline.py .........X.......x....x.....              [ 24%]
tests/test_e2e_11_mef_eline.py .....                                     [ 26%]
tests/test_e2e_12_mef_eline.py .....xx.                                  [ 30%]
tests/test_e2e_13_mef_eline.py .....xxXx......xxXx.XXxX.xxxx..x......... [ 51%]
...                                                                      [ 52%]
tests/test_e2e_14_mef_eline.py x                                         [ 53%]
tests/test_e2e_15_maintenance.py ........................                [ 65%]
tests/test_e2e_20_flow_manager.py ................                       [ 73%]
tests/test_e2e_21_flow_manager.py ..                                     [ 74%]
tests/test_e2e_22_flow_manager.py ...............                        [ 81%]
tests/test_e2e_23_flow_manager.py X......................                [ 93%]
tests/test_e2e_30_of_lldp.py ....                                        [ 95%]
tests/test_e2e_31_of_lldp.py ...                                         [ 96%]
tests/test_e2e_32_of_lldp.py ...                                         [ 98%]
tests/test_e2e_40_sdntrace.py X.x                                        [100%]

==== 173 passed, 18 xfailed, 8 xpassed, 732 warnings in 10604.21s (2:56:44) ====

Copy link
Member

@viniarck viniarck left a comment

Choose a reason for hiding this comment

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

LGTM. The description and comments were helpful to follow along. Great to have e2e coverage for this too.

Base automatically changed from feature/sdntrace-tests to master August 12, 2022 14:27
@italovalcy italovalcy merged commit 0fd87c8 into master Aug 12, 2022
@italovalcy italovalcy deleted the feature/eline_failover branch August 12, 2022 14:28
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.

2 participants