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

Implementation of System ports initialization, Interface & Neighbor Synchronization... #1431

Merged
merged 30 commits into from
Jan 17, 2021

Conversation

minionatwork
Copy link
Contributor

This PR includes implementation of System ports initialization & orchestration, Interface & Neighbor Synchronization using GLOBAL_APP_DB, Inband Interface Configuration.

HLD: sonic-net/SONiC#639
Dependency PR's
(sonic-swss-common): sonic-net/sonic-swss-common#380
(sonic-sairedis): sonic-net/sonic-sairedis#657

@ghost
Copy link

ghost commented Sep 10, 2020

CLA assistant check
All CLA requirements met.

orchagent/intfsorch.cpp Outdated Show resolved Hide resolved
orchagent/neighorch.cpp Outdated Show resolved Hide resolved
orchagent/neighorch.cpp Outdated Show resolved Hide resolved
orchagent/neighorch.cpp Outdated Show resolved Hide resolved
orchagent/neighorch.cpp Outdated Show resolved Hide resolved
cfgmgr/intfmgr.cpp Outdated Show resolved Hide resolved
orchagent/neighorch.h Outdated Show resolved Hide resolved
orchagent/main.cpp Outdated Show resolved Hide resolved
orchagent/main.cpp Outdated Show resolved Hide resolved
Copy link
Collaborator

@prsunny prsunny left a comment

Choose a reason for hiding this comment

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

As comments for NeighOrch

orchagent/neighorch.cpp Outdated Show resolved Hide resolved
vedganes and others added 2 commits October 1, 2020 10:39
Signed-off-by: vedganes <[email protected]>

Kernel programming of static neigh and full mask static route for
system neighbors is moved to nbrmgr since orchagent should not own
kernel objects to avoid complication in warmboot reconciliation
The orchagent programms only SAI object for the system neighbors
and signals the completion of SAI programming by setting mac address
in SYSTE_NEIGH table of STATE_DB. Nbrmgr subscribes to these state
entries to program kernel entries corresponding to the system neighs
ngoc-do added a commit to ngoc-do/sonic-swss that referenced this pull request Oct 7, 2020
This code is to add support for fabric asic or NPU with fabric port
enabled. What it does includes:

1. Create FabricOrchDaemon for fabric asic
2. Create FabricPortsOrch to manage fabric ports
3. Fabric port and queue stats are collected via FlexCounters

The code is waiting for sonic-net#1431
to start fabric flow for fabric asic or NPU with enabled fabric ports.
orchagent/main.cpp Outdated Show resolved Hide resolved
orchagent/main.cpp Outdated Show resolved Hide resolved
@vganesan-nokia
Copy link
Contributor

vs test fails because of sonic-sairedis PR sonic-net/sonic-sairedis#737, which introduced the fabric port creation in voq switch create. It seems we create fabric port for both NPU asic and fabric asic. But in this PR #1431 we do not have support to supply fabric port lane mapping in line cards in vs tests (test_virtual_chassis.py). Without fabriclanemap.ini info switch create fails and orchagent crashes.

To fix this:
(1) We need the sonic-buildimage PR sonic-net/sonic-buildimage#6185 and some changes in sonic-swss/tests to get fabric port lane mapping file or
(2) Temporarily comment out fabric port creation code for now to enable merging PR #1431

@lguohan, @ngoc-do, @eswaranb any other suggestions to address this?

@ngoc-do
Copy link
Contributor

ngoc-do commented Jan 16, 2021

vs test fails because of sonic-sairedis PR Azure/sonic-sairedis#737, which introduced the fabric port creation in voq switch create. It seems we create fabric port for both NPU asic and fabric asic. But in this PR #1431 we do not have support to supply fabric port lane mapping in line cards in vs tests (test_virtual_chassis.py). Without fabriclanemap.ini info switch create fails and orchagent crashes.

To fix this:
(1) We need the sonic-buildimage PR Azure/sonic-buildimage#6185 and some changes in sonic-swss/tests to get fabric port lane mapping file or
(2) Temporarily comment out fabric port creation code for now to enable merging PR #1431

@lguohan, @ngoc-do, @eswaranb any other suggestions to address this?

Oh, that's right. Sorry, sonic-net/sonic-sairedis#737 is blocking you now.

Yes, to fix it, seems option 2 is faster for you. I made this sonic-net/sonic-sairedis#769. Hope it will remove the blocker. Of course, we won't merge sonic-net/sonic-buildimage#6185 until this PR merges.

rlhui pushed a commit to sonic-net/sonic-sairedis that referenced this pull request Jan 16, 2021
@rlhui
Copy link
Contributor

rlhui commented Jan 16, 2021

retest vs please

1 similar comment
@vganesan-nokia
Copy link
Contributor

retest vs please

@vganesan-nokia
Copy link
Contributor

vs test fails because of sonic-sairedis PR Azure/sonic-sairedis#737, which introduced the fabric port creation in voq switch create. It seems we create fabric port for both NPU asic and fabric asic. But in this PR #1431 we do not have support to supply fabric port lane mapping in line cards in vs tests (test_virtual_chassis.py). Without fabriclanemap.ini info switch create fails and orchagent crashes.
To fix this:
(1) We need the sonic-buildimage PR Azure/sonic-buildimage#6185 and some changes in sonic-swss/tests to get fabric port lane mapping file or
(2) Temporarily comment out fabric port creation code for now to enable merging PR #1431
@lguohan, @ngoc-do, @eswaranb any other suggestions to address this?

Oh, that's right. Sorry, Azure/sonic-sairedis#737 is blocking you now.

Yes, to fix it, seems option 2 is faster for you. I made this Azure/sonic-sairedis#769. Hope it will remove the blocker. Of course, we won't merge Azure/sonic-buildimage#6185 until this PR merges.

Thanks for fixing

@rlhui rlhui merged commit 1acf60e into sonic-net:master Jan 17, 2021
ngoc-do added a commit to ngoc-do/sonic-swss that referenced this pull request Feb 8, 2021
This code is to add support for fabric asic or NPU with fabric port
enabled. What it does includes:

1. Create FabricOrchDaemon for fabric asic
2. Create FabricPortsOrch to manage fabric ports
3. Fabric port and queue stats are collected via FlexCounters

The code is waiting for sonic-net#1431
to start fabric flow for fabric asic or NPU with enabled fabric ports.
DavidZagury pushed a commit to DavidZagury/sonic-swss that referenced this pull request Mar 4, 2021
…ynchronization... (sonic-net#1431)

This PR includes implementation of System ports initialization & orchestration, Interface & Neighbor Synchronization using GLOBAL_APP_DB, Inband Interface Configuration.

HLD: sonic-net/SONiC#639
Dependency PR's
(sonic-swss-common): sonic-net/sonic-swss-common#380
(sonic-sairedis): sonic-net/sonic-sairedis#657

* [voq] Redis instance for global app db
* [voq] System port init and orchestration
* [voq] Router interface for system ports, global app db sync
* [voq] Inband interface config
* [voq] System port neighbors

Kernel programming of static neigh and full mask static route for
system neighbors is moved to nbrmgr since orchagent should not own
kernel objects to avoid complication in warmboot reconciliation
The orchagent programs only SAI object for the system neighbors
and signals the completion of SAI programming by setting mac address
in SYSTE_NEIGH table of STATE_DB. Nbrmgr subscribes to these state
entries to program kernel entries corresponding to the system neighs

* [swss]VS tests for VOQ system ports

The following tests are added as part of virtual chassis tests
- VOQ switch objects verification
- System port object syncing with chassis app db by checking presence of
system port RIFs in chassis app db in supervisor card
- Creation of system port RIF record creation in ASIC_DB
Following changes are done for the above tests:
- SYSTEM_PORT table is added in default_config.json of line cards. These
are loaded as part of config_db loading
- Core and Port index mapping file is added in line card directories.

- use dvs_database.py lib to connect to redis databases instead of using raw connection via swsscommon DBConnectors.
- call dvs apis to get access to databases for the local redis instances. 

- Default handling for speed of the system port is removed in addSystemPorts()
- Comment added to clarify types of rif-s synced to chassis app db
- vs tests: connection to chassis app dp uses chassis app db id defined
in dvs lib instead of using the id from swsscommon

Using the chassis app db id from swsscommon instead of chassis app db id from dvd lib . This is to avoid python
lgtm alert and test failure.

Co-authored-by: vedganes <[email protected]>
Co-authored-by: vganesan-nokia <[email protected]>
ngoc-do added a commit to ngoc-do/sonic-swss that referenced this pull request Apr 2, 2021
This code is to add support for fabric asic or NPU with fabric port
enabled. What it does includes:

1. Create FabricOrchDaemon for fabric asic
2. Create FabricPortsOrch to manage fabric ports
3. Fabric port and queue stats are collected via FlexCounters

The code is waiting for sonic-net#1431
to start fabric flow for fabric asic or NPU with enabled fabric ports.
ngoc-do added a commit to ngoc-do/sonic-swss that referenced this pull request Apr 28, 2021
This code is to add support for fabric asic or NPU with fabric port
enabled. What it does includes:

1. Create FabricOrchDaemon for fabric asic
2. Create FabricPortsOrch to manage fabric ports
3. Fabric port and queue stats are collected via FlexCounters

The code is waiting for sonic-net#1431
to start fabric flow for fabric asic or NPU with enabled fabric ports.
raphaelt-nvidia pushed a commit to raphaelt-nvidia/sonic-swss that referenced this pull request Oct 5, 2021
…ynchronization... (sonic-net#1431)

This PR includes implementation of System ports initialization & orchestration, Interface & Neighbor Synchronization using GLOBAL_APP_DB, Inband Interface Configuration.

HLD: sonic-net/SONiC#639
Dependency PR's
(sonic-swss-common): sonic-net/sonic-swss-common#380
(sonic-sairedis): sonic-net/sonic-sairedis#657

* [voq] Redis instance for global app db
* [voq] System port init and orchestration
* [voq] Router interface for system ports, global app db sync
* [voq] Inband interface config
* [voq] System port neighbors

Kernel programming of static neigh and full mask static route for
system neighbors is moved to nbrmgr since orchagent should not own
kernel objects to avoid complication in warmboot reconciliation
The orchagent programs only SAI object for the system neighbors
and signals the completion of SAI programming by setting mac address
in SYSTE_NEIGH table of STATE_DB. Nbrmgr subscribes to these state
entries to program kernel entries corresponding to the system neighs

* [swss]VS tests for VOQ system ports

The following tests are added as part of virtual chassis tests
- VOQ switch objects verification
- System port object syncing with chassis app db by checking presence of
system port RIFs in chassis app db in supervisor card
- Creation of system port RIF record creation in ASIC_DB
Following changes are done for the above tests:
- SYSTEM_PORT table is added in default_config.json of line cards. These
are loaded as part of config_db loading
- Core and Port index mapping file is added in line card directories.

- use dvs_database.py lib to connect to redis databases instead of using raw connection via swsscommon DBConnectors.
- call dvs apis to get access to databases for the local redis instances. 

- Default handling for speed of the system port is removed in addSystemPorts()
- Comment added to clarify types of rif-s synced to chassis app db
- vs tests: connection to chassis app dp uses chassis app db id defined
in dvs lib instead of using the id from swsscommon

Using the chassis app db id from swsscommon instead of chassis app db id from dvd lib . This is to avoid python
lgtm alert and test failure.

Co-authored-by: vedganes <[email protected]>
Co-authored-by: vganesan-nokia <[email protected]>
EdenGri pushed a commit to EdenGri/sonic-swss that referenced this pull request Feb 28, 2022
…ins (sonic-net#1431)

#### What I did

Config files do not belong under `<platform>/plugins/` directory. That directory is intended for (now-deprecated) platform-related Python plugins. The directory will be removed in the near future.

#### How I did it

Look for udevprefix.conf file directly under the respective platform directory instead.
Also clean up and reorganize imports

NOTE: When this submodule is updated in sonic-buildimage, related files will need to be updated. Currently only platform/broadcom/sonic-platform-modules-cel/haliburton/script/udev_prefix.sh
pettershao-ragilenetworks pushed a commit to pettershao-ragilenetworks/sonic-sairedis that referenced this pull request Nov 18, 2022
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.