Skip to content

Commit

Permalink
[orchagent] Add zmq sync mode flag (sonic-net#1505)
Browse files Browse the repository at this point in the history
Added support for zmq synchronous mode flag, passed from command line to sairedis
  • Loading branch information
kcudnik authored and daall committed Dec 7, 2020
1 parent 58e27fa commit 7b18463
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions orchagent/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ bool gSwssRecord = true;
bool gLogRotate = false;
bool gSaiRedisLogRotate = false;
bool gSyncMode = false;
sai_redis_communication_mode_t gRedisCommunicationMode = SAI_REDIS_COMMUNICATION_MODE_REDIS_ASYNC;
char *gAsicInstance = NULL;

extern bool gIsNatSupported;
Expand All @@ -64,7 +65,7 @@ string gRecordFile;

void usage()
{
cout << "usage: orchagent [-h] [-r record_type] [-d record_location] [-b batch_size] [-m MAC] [-i INST_ID] [-s]" << endl;
cout << "usage: orchagent [-h] [-r record_type] [-d record_location] [-b batch_size] [-m MAC] [-i INST_ID] [-s] [-z mode]" << endl;
cout << " -h: display this message" << endl;
cout << " -r record_type: record orchagent logs with type (default 3)" << endl;
cout << " 0: do not record logs" << endl;
Expand All @@ -75,7 +76,8 @@ void usage()
cout << " -b batch_size: set consumer table pop operation batch size (default 128)" << endl;
cout << " -m MAC: set switch MAC address" << endl;
cout << " -i INST_ID: set the ASIC instance_id in multi-asic platform" << endl;
cout << " -s: enable synchronous mode" << endl;
cout << " -s: enable synchronous mode (depreacated, use -z)" << endl;
cout << " -z: redis communication mode (redis_async|redis_sync|zmq_sync), default: redis_async" << endl;
}

void sighup_handler(int signo)
Expand Down Expand Up @@ -160,7 +162,7 @@ int main(int argc, char **argv)

string record_location = ".";

while ((opt = getopt(argc, argv, "b:m:r:d:i:hs")) != -1)
while ((opt = getopt(argc, argv, "b:m:r:d:i:hsz:")) != -1)
{
switch (opt)
{
Expand Down Expand Up @@ -213,6 +215,9 @@ int main(int argc, char **argv)
gSyncMode = true;
SWSS_LOG_NOTICE("Enabling synchronous mode");
break;
case 'z':
sai_deserialize_redis_communication_mode(optarg, gRedisCommunicationMode);
break;

default: /* '?' */
exit(EXIT_FAILURE);
Expand Down Expand Up @@ -272,12 +277,16 @@ int main(int argc, char **argv)
// when g_syncMode is set to true here, create_switch will wait the response from syncd
if (gSyncMode)
{
attr.id = SAI_REDIS_SWITCH_ATTR_SYNC_MODE;
attr.value.booldata = true;
SWSS_LOG_WARN("sync mode is depreacated, use -z param");

sai_switch_api->set_switch_attribute(gSwitchId, &attr);
gRedisCommunicationMode = SAI_REDIS_COMMUNICATION_MODE_REDIS_SYNC;
}

attr.id = SAI_REDIS_SWITCH_ATTR_REDIS_COMMUNICATION_MODE;
attr.value.s32 = gRedisCommunicationMode;

sai_switch_api->set_switch_attribute(gSwitchId, &attr);

if (gAsicInstance)
{
attr.id = SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO;
Expand Down

0 comments on commit 7b18463

Please sign in to comment.