Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
grpc client implementation for active-active dualtor (#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
- Loading branch information