@@ -310,6 +310,8 @@ enum TritonOptionId {
310
310
OPTION_GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS,
311
311
OPTION_GRPC_ARG_HTTP2_MAX_PING_STRIKES,
312
312
OPTION_GRPC_RESTRICTED_PROTOCOL,
313
+ OPTION_GRPC_ARG_MAX_CONNECTION_AGE_MS,
314
+ OPTION_GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS,
313
315
#endif // TRITON_ENABLE_GRPC
314
316
#if defined(TRITON_ENABLE_SAGEMAKER)
315
317
OPTION_ALLOW_SAGEMAKER,
@@ -568,6 +570,16 @@ TritonParser::SetupOptions()
568
570
" Maximum number of bad pings that the server will tolerate before "
569
571
" sending an HTTP2 GOAWAY frame and closing the transport. Setting it to "
570
572
" 0 allows the server to accept any number of bad pings. Default is 2." });
573
+ grpc_options_.push_back (
574
+ {OPTION_GRPC_ARG_MAX_CONNECTION_AGE_MS, " grpc-max-connection-age" ,
575
+ Option::ArgInt,
576
+ " Maximum time that a channel may exist in milliseconds. "
577
+ " Default is INT_MAX (infinite)." });
578
+ grpc_options_.push_back (
579
+ {OPTION_GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS, " grpc-max-connection-age-grace" ,
580
+ Option::ArgInt,
581
+ " Grace period after the channel reaches its max age. "
582
+ " Default is INT_MAX (infinite)." });
571
583
grpc_options_.push_back (
572
584
{OPTION_GRPC_RESTRICTED_PROTOCOL, " grpc-restricted-protocol" ,
573
585
" <string>:<string>=<string>" ,
@@ -1436,6 +1448,14 @@ TritonParser::Parse(int argc, char** argv)
1436
1448
lgrpc_options.keep_alive_ .http2_max_ping_strikes_ =
1437
1449
ParseOption<int >(optarg );
1438
1450
break ;
1451
+ case OPTION_GRPC_ARG_MAX_CONNECTION_AGE_MS:
1452
+ lgrpc_options.keep_alive_ .max_connection_age_ms_ =
1453
+ ParseOption<int >(optarg );
1454
+ break ;
1455
+ case OPTION_GRPC_ARG_MAX_CONNECTION_AGE_GRACE_MS:
1456
+ lgrpc_options.keep_alive_ .max_connection_age_grace_ms_ =
1457
+ ParseOption<int >(optarg );
1458
+ break ;
1439
1459
case OPTION_GRPC_RESTRICTED_PROTOCOL: {
1440
1460
ParseRestrictedFeatureOption (
1441
1461
optarg , long_options[option_index].name ,
0 commit comments