You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
grpc client implementation for active-active dualtor (sonic-net#248)
This PR is to support the gRPC interaction with to the SoC/Nic-Simulator for link manager state machine ActiveActiveStateMachine to work if the port is configured as active-active cable type.
It supports the RPC's support for SONiC by creating channels/stubs when a cable is pulled in as well as when the ycabled is initialized from supervisord. The logic to treat a cable/port as "active-active" comes from minigraph/config_db and then this PR has the logic to take care of serving RPC's as requested by other daemons.
It does the RPC call when an appropriate request lands the ycabled as described below
The following Tables are served by ycabled for gRPC RPC by listening to changes in app DB request from linkmgr/orchagent and corresponding results are written to state DB.
HW_MUX_CABLE_TABLE
HW_MUX_TABLE_TABLE_PEER
This PR also adds logic to listening to the forwarding state command table and get the response back from gRPC and write to forwarding state response
FORWARDING_STATE_COMMAND -> FORWARDING_STATE_RESPONSE
for getting the forwarding state request/response using gRPC
This PR also has logic for gRPC library build using build_ext extension. The proto definition is present in
proto/proto_out/
The setup.py changes make sure that gRPC libs are generated correctly.
the corresponding gRPC libs are generated in proto_out directory in python packages directory and are imported by ycabled
Motivation and Context
DualToR active-active support for gRPC interface to support the state machine
How Has This Been Tested?
Unit-Tests and deploying changes on a DualToR testbed
0 commit comments