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

LACP: rollback vlan setting, fix perf endpoints generation #361

Merged
merged 4 commits into from
Mar 12, 2024

Conversation

enhaut
Copy link
Member

@enhaut enhaut commented Feb 16, 2024

Description

This MR includes:

  • fix for rollbacking VLAN settings on Dell switches - Assigning port to a channel group has side effect of disconnecting
    it from all the VLANS. Those are not automatically restored after
    removing port from channel group.

  • perf endpoint generation fix - UDP over LACP requires lots of parallel perf processes. However, due to
    generating IP perf endpoints by doing a product on source and dest IPs
    recipe generated A WAY more processes (all IPs+ports to all IPS+ports)
    than expected.

(see commit messages for further explanation)

Tests

Rollback tests:

  • manually verified on switch side
  • LACP recipes interleaved with VLAN testsJ:8926338

Endpoints generation fix:

  • J:8932918 just a functional test of UDP test, without changes the recipe got aborted due to machine freeze

Reviews

@jtluka

…ntent

Raw response object is more useful for calling method as it provides wider
range of functionality. The `response.content` are just bytes of response
content.
Assigning port to a channel group has side effect of disconnecting
it from all the VLANS. Those are not automatically restored after
removing port from channel group.
And therefore, we need to gather port's VLANs and restore connections
during switch deconfiguration.
Endpoint rework changes from LNST-project#318
changed the way of generating IP enndpoints pairs from zipping 2 IP lists
(dest IPs and source IPs) to generating them by taking a product of those
2 lists.

Custom combination function allows developer to specify custom function
for generating IP pairs, so e.g. instead of doing a product we can use zip
or something more sophisticated.
…l IPs

UDP over LACP requires lots of parallel perf processes. However, due to
generating IP perf endpoints by doing a product on source and dest IPs
recipe generated A WAY more processes (all IPs+ports to all IPS+ports)
than expected.

Using a zip instead of product generates exactly `perf_parellel_processes`
processes:
```python
>src_ips = [192.168.1.1, 192.168.1.2]
>dst_ips = [10.0.0.1, 10.0.0.2]
>
>list(zip(src_ips, dst_ips))
[(192.168.1.1, 10.0.0.1), (192.168.1.2, 10.0.0.2)]
```
Hashing mode `layer2+3` identifies egress interface by dest IP+MAC. And
therefore, source IP has no effect on that so we are good with just
1 source IP - 1 destination IP.
@enhaut enhaut marked this pull request as draft February 16, 2024 15:42
@enhaut enhaut marked this pull request as ready for review March 6, 2024 09:19
@enhaut
Copy link
Member Author

enhaut commented Mar 6, 2024

Approach discussed with dell support, there is no other way of assigning multiple ports to VLANs nor getting VLAN ports with just a single HTTP request.

So this can be merged.

Copy link
Collaborator

@olichtne olichtne left a comment

Choose a reason for hiding this comment

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

looks good to me.

@olichtne olichtne merged commit 257e530 into LNST-project:master Mar 12, 2024
3 checks passed
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