diff --git a/envoy/extensions/filters/http/rate_limit_quota/v3/rate_limit_quota.proto b/envoy/extensions/filters/http/rate_limit_quota/v3/rate_limit_quota.proto index 93dded43..57b8bdec 100644 --- a/envoy/extensions/filters/http/rate_limit_quota/v3/rate_limit_quota.proto +++ b/envoy/extensions/filters/http/rate_limit_quota/v3/rate_limit_quota.proto @@ -202,8 +202,7 @@ message RateLimitQuotaBucketSettings { // ` // message. // - // If the field is not set, the ``ExpiredAssignmentBehavior`` time is **not limited**: - // it applies to the bucket until replaced by an ``active`` assignment. + // If not set, defaults to zero, and the bucket is abandoned immediately. google.protobuf.Duration expired_assignment_behavior_timeout = 1 [(validate.rules).duration = {gt {}}]; @@ -389,6 +388,12 @@ message RateLimitQuotaBucketSettings { // // After sending the initial report, the data plane is to continue reporting the bucket usage with // the internal specified in this field. + // + // If for any reason RLQS client doesn't receive the initial assignment for the reported bucket, + // the data plane will eventually consider the bucket abandoned and stop sending the usage + // reports. This is explained in more details at :ref:`Rate Limit Quota Service (RLQS) + // `. + // // [#comment: 100000000 nanoseconds = 0.1 seconds] google.protobuf.Duration reporting_interval = 2 [(validate.rules).duration = { required: true diff --git a/envoy/service/rate_limit_quota/v3/rlqs.proto b/envoy/service/rate_limit_quota/v3/rlqs.proto index 84ba4497..b8fa2cd8 100644 --- a/envoy/service/rate_limit_quota/v3/rlqs.proto +++ b/envoy/service/rate_limit_quota/v3/rlqs.proto @@ -43,6 +43,14 @@ option (xds.annotations.v3.file_status).work_in_progress = true; // ` // it. // +// If for any reason the RLQS client doesn't receive the initial assignment for the reported bucket, +// in order to prevent memory exhaustion, the data plane will limit the time such bucket +// is retained. The exact time to wait for the initial assignment is chosen by the filter, +// and may vary based on the implementation. +// Once the duration ends, the data plane will stop reporting bucket usage, reject any enqueued +// requests, and purge the bucket from the memory. Subsequent requests matched into the bucket +// will re-initialize the bucket in the "no assignment" state, restarting the reports. +// // Refer to Rate Limit Quota :ref:`configuration overview ` // for further details.