// We short circuit here and do not bother with an allocation if there is no chance we will retry.
// response code), we want to give them a chance to retry as normal requests even though the retry
std::pair<uint32_t, bool> RetryStateImpl::parseRetryGrpcOn(absl::string_view retry_grpc_on_header) {
for (const auto& retry_on : StringUtil::splitToken(retry_grpc_on_header, ",", false, true)) {
RetryStatus RetryStateImpl::shouldRetry(RetryDecision would_retry, DoRetryCallback callback) {
// The request has exhausted the number of retries allotted to it by the retry policy configured
// Yes, we will retry based on the headers - try to parse a rate limited reset interval from the
return shouldRetry(retry_decision, [disable_http3, callback]() { callback(disable_http3); });
return (retry_on_ & RetryPolicy::RETRY_ON_ENVOY_RATE_LIMITED) ? RetryDecision::RetryWithBackoff
absl::optional<Grpc::Status::GrpcStatus> status = Grpc::Common::getGrpcStatus(response_headers);