-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
[ECMP][Multi-ASIC] Have different ECMP seed value on each ASIC #5357
Conversation
@lguohan @prsunny This PR generates different values of ECMP seed for each ASIC. After discussion within our team it was suggested to use same hash seed for all front end ASICs and another value for backend ASICs, but same value on all backend ASICs.
comments? |
lgtm, @lguohan , could you comment? |
Challenge is to determine if ASIC has ports connected to tier0 or tier2. It's possible ASIC has ports connected to both tiers. If we use same seed for front end ASICs and a different seed for backend ASICs, is there an issue with this approach. |
i think the potential issues is that the hash seed should be decided by the layer and namespace id. |
That's how it is in this PR. ECMP seed generated is different in each namespace. The concern raised was:
If this is not a concern then this PR is ready for review. |
* Calculate ECMP hash seed based on ASIC ID on multi ASIC platform. Each ASIC will have a unique ECMP hash seed value. Signed-off-by: Abhishek Dosi <abdosi@microsoft.com>
…-net#5357) * Calculate ECMP hash seed based on ASIC ID on multi ASIC platform. Each ASIC will have a unique ECMP hash seed value.
- Why I did it
Create different ECMP seed value on each ASIC to reduce probability of traffic hot spots within the multi ASIC switch.
- How I did it
Create ECMP seed value based on the name space ID.
- How to verify it
Unit tests and manual verification on multi ASIC switch.
- Which release branch to backport (provide reason below if selected)
- Description for the changelog
sonic-cfggen:
"DEVICE_METADATA': { 'localhost': {'namespace_id': ""}}"
switch.json.j2:
- A picture of a cute animal (not mandatory but encouraged)