Commit Graph

1905 Commits

Author SHA1 Message Date
Michael Lumish
088436d01c [xds] Implement gRFC A101 (#41051)
This includes two major changes:

 1. An additional credentials option `sni_override` with the type `optional<string>`. If `nullopt`, it has no effect, and if set to the empty string it disables sending SNI entirely. Otherwise, the specified string will be sent.
 2. The implementation of [gRFC A101](https://github.com/grpc/proposal/blob/master/A101-SNI-setting-and-SNI-SAN-validation.md) using that new option. This includes options to set SNI and to validate SAN values against the set SNI value.

Closes #41051

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41051 from murgatroid99:xds_sni_support 6a1f8667dedc19947532720495b2932889236a12
PiperOrigin-RevId: 855765736
2026-01-13 09:48:39 -08:00
Alisha Nanda
d3afb84946 Rename HttpConnectHandshaker to HttpConnectClientHandshaker in preparation for adding a HttpConnectServerHandshaker.
PiperOrigin-RevId: 852382782
2026-01-05 11:24:22 -08:00
Mark D. Roth
dabda5fea8 [xDS] update version of xDS protos (#41242)
This temporarily disables the bzlmod version consistency check, because the new version of the xDS protos winds up pulling in a lot of upgraded dependencies that will take some work to get working.

Closes #41242

PiperOrigin-RevId: 852345420
2026-01-05 10:03:24 -08:00
Tanvi Jagtap - Google LLC
d7509f9913 [PH2][BUILD][Trivial] Build files (#41301)
[PH2][BUILD][Trivial] Build files

Closes #41301

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41301 from tanvi-jagtap:ph2_more_files 8b396d0f4b5cbb7559eebc4612cecb4ce0506361
PiperOrigin-RevId: 848476035
2025-12-24 01:34:53 -08:00
Michael Lumish
522dbbbb25 [Release] Bump version to 1.79.0-dev (on master branch) (#41291)
Change was **not** created by the release automation script, because it doesn't handle a +2 version bump. See go/grpc-release

Closes #41291

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41291 from murgatroid99:v1.79.0-dev_bump 9a9bf54e5a891459390792dc9d547bdc17b7dd4d
PiperOrigin-RevId: 848168598
2025-12-23 07:26:31 -08:00
Tanvi Jagtap - Google LLC
560e95a3f4 [PH2][Trivial][BUILD] Adding new files (#41286)
[PH2][Trivial][BUILD] Adding new files

Closes #41286

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41286 from tanvi-jagtap:new_files_01 81fcc2e4244b07758454e89c70ec666254e56e80
PiperOrigin-RevId: 847787819
2025-12-22 09:14:16 -08:00
Craig Tiller
4944adfc14 Add call inspection to channelz
Add a new config to enable active call inspection with channelz, disabled by default. Plumb through promise_based_filter, call-v3.

PiperOrigin-RevId: 837614415
2025-11-27 14:28:08 -08:00
siddharth nohria
c4b87395ce Server Wide Max Outstanding Streams: Add Build changes (#41076)
Allow servers to set max outstanding streams limit per server. This pull request only adds the BUILD changes required for this. The core logic will follow in a later PR.

Closes #41076

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41076 from siddharthnohria:max_outstanding_streams 392d962fc78be66c075952977bc3a28f2298b7ce
PiperOrigin-RevId: 833196338
2025-11-17 00:16:50 -08:00
Tanvi Jagtap - Google LLC
05f4eda5a3 [PH2][BUILD] Adding new file for IncomingMetadataTracker (#41058)
[PH2][BUILD] Adding new file for IncomingMetadataTracker

Closes #41058

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/41058 from tanvi-jagtap:new_files 6c0da18b7c8980d6ab133cb8e543e6ad13e5d69d
PiperOrigin-RevId: 832130354
2025-11-13 20:43:14 -08:00
Mark D. Roth
ccd635ea24 [client channel] refactor v1 call buffering code (#40945)
This refactors the call buffering code for the v1 stack, which avoids some repetition between the resolver queue and the LB pick queue.  This code will also be used in the future in the subchannel as part of implementing the MAX_CONCURRENT_STREAMS design.

As part of this, I also eliminated the subclassing in the v1 client channel implementation, which has not been necessary since the v2 code was removed.

Closes #40945

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40945 from markdroth:call_buffer_v1_refactoring 0a471be6ed862c3cc3225644fb2a3e1456e60fbf
PiperOrigin-RevId: 829566551
2025-11-07 13:57:35 -08:00
ac-patel
1e315f3ff2 [PH2] Add goaway dependency to client transport (#40845)
Closes #40845

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40845 from ac-patel:goaway1 ab7c3165a249be4d00aec602a01b858ebdebe0c6
PiperOrigin-RevId: 816099297
2025-10-07 01:49:01 -07:00
Sergii Tkachenko
02d82e4094 [Release] Bump version to 1.77.0-dev (on master branch) (#40796)
Change was created by the release automation script. See go/grpc-release.

Closes #40796

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40796 from sergiitk:bump_dev_version_202509291139 e7aa910253d1706a72822da986b8b8e7bc87931d
PiperOrigin-RevId: 812961524
2025-09-29 15:16:18 -07:00
Craig Tiller
e5062bcce8 [resource-quota] Revert #39125 (#40768)
Closes #40768

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40768 from ctiller:rollback 37692d6a818e080c25063991fe867837b22ff0a6
PiperOrigin-RevId: 811517736
2025-09-25 15:10:38 -07:00
siddharth nohria
aed2f7989f [Resource Quota] Add Server wide Stream Quota (#39125)
Add Stream quota, to allow users to set server wide max_outstanding_streams, in addition to the per-connection limit.

Closes #39125

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39125 from siddharthnohria:max_outstanding_streams 32ae21514d5321a76b41b8445d16753a095914f8
PiperOrigin-RevId: 807985441
2025-09-16 22:20:22 -07:00
ac-patel
f8f43c37d7 [PH2] Move Stream structure out of the client transport for reusability (#40707)
Closes #40707

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40707 from ac-patel:stream 9a32dab5edc1b5f3b0683c345a954cbb54871f89
PiperOrigin-RevId: 807623211
2025-09-16 03:31:00 -07:00
Adam Heller
f5ffef4d6b [test] Add PostMortem dumps on CHECK failures in test builds (#39945)
See `grpc_check.h`. This code  redefines the abseil `CHECK*` macros using custom gRPC macros when building tests. In `bazel test ...` builds, on check failure, `PostMortemEmit()` will dump state to the log before crashing.

Caveat: to prevent circular dependencies, code that `postmortem` relies on cannot use the custom gRPC CHECK macros. This is not much code, ~50 source files. grep for the `absl/log:check` bazel dependency.

Closes #39945

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39945 from drfloob:grpc_check ca8e46718f2021e0df79aa67a3a0b0c751b3ce44
PiperOrigin-RevId: 807452496
2025-09-15 17:43:19 -07:00
siddharth nohria
af9837c932 [Core] Resource Tracking (#40698)
Introduce a centralized Resource Tracking mechanism in gRPC core, to provide a centralized way to access job-level resources.

There are multiple features in gRPC which can benefit from having better visibility into the job-level resource usage.
* Debuggability: Knowing that the Client / Server was experiencing high CPU usage at the time of some request can serve as a valuable insight for debugging poor latencies / failures.

* Load Shedding: gRPC’s ResourceQuota currently depends upon users defining limits, and only track gRPC channel-level usage. Configuring this can be difficult at times, especially if the application level usage for different requests varies significantly. In addition, visibility into Container memory usage can allow us to enable ResourceQuota by default in the future.

Closes #40698

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40698 from siddharthnohria:container-memory b058a0ed7ef801fdd0be2bfc04e1a481f0908a5d
PiperOrigin-RevId: 807142322
2025-09-15 02:02:24 -07:00
Tanvi Jagtap - Google LLC
1ae418664f [PH2] Adding new files (#40635)
[PH2] Adding new files

Closes #40635

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40635 from tanvi-jagtap:flow_control_minimal d13e4573cb626d7bf1d1acbcc0d77833e35abf99
PiperOrigin-RevId: 804261771
2025-09-07 21:55:15 -07:00
Craig Tiller
34611992c3 Convert ztrace to proto
PiperOrigin-RevId: 802878974
2025-09-03 23:40:59 -07:00
Pawan Bhardwaj
fd1d6e0911 [xDS] Matcher API implementation (#39877)
Proto : https://github.com/cncf/xds/blob/main/xds/type/matcher/v3/matcher.proto
Will follow up with  more concrete classes as per usage. Added some basic to test e2e parse

Closes #39877

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39877 from pawbhard:matcher e87d7ce6584c32a71a5610781d16e46cb78841d6
PiperOrigin-RevId: 802661365
2025-09-03 12:31:55 -07:00
Craig Tiller
30f993b1e8 Migrate Resource Quota telemetry to a dedicated InstrumentDomain.
Roll forward of a prior change, this change includes fixes and also memory reclamation support for orphaned domain storage.

PiperOrigin-RevId: 802204833
2025-09-02 10:44:54 -07:00
Tanvi Jagtap - Google LLC
ba39efcdf8 [PH2][Settings][Refactor] Move out a class into a separate file (#40559)
[PH2][Settings][Refactor] Move out a class into a separate file

Closes #40559

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40559 from tanvi-jagtap:new_build_changes b65e26c235d7b6b981b0a1bf234894831b9bf48f
PiperOrigin-RevId: 800294338
2025-08-27 21:35:48 -07:00
apolcyn
73c0f8ac9c [release] Bump dev version on to 1.76.0-dev (#40484)
As title

Closes #40484

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40484 from apolcyn:bump_dev_version_202508191952 e788be57e9dc7f5e8316bee4baadec26fba3f6e6
PiperOrigin-RevId: 798331971
2025-08-22 14:01:19 -07:00
Craig Tiller
fcf69fba84 Automated rollback of commit 56976b0b3c.
PiperOrigin-RevId: 796900113
2025-08-19 09:13:22 -07:00
Craig Tiller
56976b0b3c Migrate Resource Quota telemetry to a dedicated InstrumentDomain.
This change introduces a new `ResourceQuotaDomain` and registers Resource Quota related counters (`rq_calls_dropped`, `rq_calls_rejected`, `rq_connections_dropped`) within this domain. Each `MemoryQuota` now holds a reference to a `ResourceQuotaDomain` Storage instance, allowing these metrics to be tracked per resource quota. The usage sites in `chttp2_transport.cc` and `parsing.cc` are updated to use the new per-quota telemetry storage. The old global stats definitions for these counters are removed.

Introduce gauges also, and use them to report current memory pressure.

PiperOrigin-RevId: 796613444
2025-08-18 16:08:16 -07:00
ac-patel
509f9fb676 [PH2] WritePath Integration (#40404)
Integrate stream data queue and List of writable streams for PH2 client

Closes #40404

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40404 from ac-patel:streamq7 b67dbe8440a0c56f7649bdaca4592f3d7436b7ef
PiperOrigin-RevId: 795330822
2025-08-14 21:37:43 -07:00
AJ Heller
ff8461db74 Begin moving gRPC socket_mutator files out of the iomgr folder
PiperOrigin-RevId: 792247693
2025-08-07 11:51:02 -07:00
Hannah Shi
c26420d425 [ObjC] cfsocket listener implementation (#40097)
1. update cfstream endpoint to open accepted socket
2. add cfsocket listener
3. enabled event engine server test in mac and ios
4. fix an issue cfstream endpoint not releasing streams
5. endpoint config is not supported
5. unix and vsock are not supported
6. e2e tests and samples will be added later

Closes #40097

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40097 from HannahShiSFB:cfstream-server bb504c91cb5ea23d55a1093848391fc31d9a1924
PiperOrigin-RevId: 789089100
2025-07-30 16:33:02 -07:00
Vignesh Babu
d5927d0a32 Reland https://github.com/grpc/grpc/pull/40231
PiperOrigin-RevId: 787189929
2025-07-25 11:58:23 -07:00
Vignesh Babu
ebaea6e992 Reland https://github.com/grpc/grpc/pull/40179
PiperOrigin-RevId: 787145814
2025-07-25 09:51:13 -07:00
Gregory Cooke
783e053680 Spiffe xds (#40279)
Roll forward after rollback of #39708 with the change to move `JsonLoader` impls from the `spiffe_utils.h` to `spiffe_utils.cc`. There was potential to cause a linker issue with the impls in the header.

Closes #40279

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40279 from gtcooke94:spiffe_xds 66fce6de7a546d4cb638d79cacdd0f18718e52b4
PiperOrigin-RevId: 786762336
2025-07-24 10:56:46 -07:00
Craig Tiller
c675ef8859 Automated rollback of commit a9796dbe6f.
PiperOrigin-RevId: 786454401
2025-07-24 15:15:36 +00:00
Craig Tiller
ccb51eaa23 [latent_see] Add always on latent-see, and a service to drive it (#39781)
Change up latent-see so that it's an always-on thing.

Most of the testing code we've got so far should be updated to use `grpc_core::latent_see::Collect()` - there's a JSON exporter there, and I plan to implement a Fuchsia Trace Format one eventually too (much more compact trace representaton!).

Also added is a service (visibility protected!) that we'll be able to share with partners to allow collecting this data from real systems. That part is strictly opt-in for the moment.

Closes #39781

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39781 from ctiller:nicety b2e855d9279ee4724961f479ba5c714c823e48a2
PiperOrigin-RevId: 786425381
2025-07-23 14:33:32 -07:00
gRPC Team Bot
a9796dbe6f Rollback channelz v2tov1 related changes due to multiple breakages
PiperOrigin-RevId: 786098574
2025-07-22 19:55:52 -07:00
Craig Tiller
f8a881fa6c Reland channelz v2tov1 features
Includes:
- An experiment for the v1 service, start using only the v2 api from channelz, and downgrade using the conversion library.
- An experiment to move the C APIs that wrapped languages can use to implement channelz v1.
PiperOrigin-RevId: 786039931
2025-07-22 19:54:03 -07:00
Gregory Cooke
3af3e09105 Automated rollback of commit 889aaeae79.
PiperOrigin-RevId: 785820361
2025-07-22 05:58:39 -07:00
Vignesh Babu
cce5c2ef93 Revert https://github.com/grpc/grpc/pull/40179
PiperOrigin-RevId: 785636478
2025-07-21 17:34:51 -07:00
Vignesh Babu
ff5c4493ea Revert https://github.com/grpc/grpc/pull/40231
PiperOrigin-RevId: 785577934
2025-07-21 14:33:18 -07:00
Esun Kim
15ff2bacc9 [Deps] Updated Abseil for cocoapod to 1.20250512.1 (#40252)
In order for gRPC podspecs to have the same version of Abseil as others.

Closes #40252

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40252 from veblush:absl-ios cf3c0c6baf8eb3e3dd088c49afdf9a47a8a00925
PiperOrigin-RevId: 785457782
2025-07-21 09:06:39 -07:00
Gregory Cooke
889aaeae79 [Security - XDS] Add Spiffe Bundle Map support to providers (#39708)
This is a large PR, so I wanted to provide an outline:

In the end, this is basically just changing the piping of roots around gRPC. We used to just have a single `std::string root_certificate`. Now, we can have that **OR** a `SpiffeBundleMap`. Thus, the piping was changed to use `std::variant`. The `SpiffeBundleMap` is passed around as a `shared_ptr` to reduce copies while working within the existing complex lifetime management structure.

This PR pipes from the configuration of a provider to the OpenSSL integration layer in `ssl_transport_security.cc`. It _does not_ actually configure this value in OpenSSL or use this value to do verification yet, that will be a follow-up PR.
It also handles the live updates of roots, being either spiffe bundles or a raw certificate. There's a lot of existing complex conditionals here, so I tried to add named booleans to make the different states clear and make the code more readable.

In addition, I took many of the existing tests, copied them, and swapped root certificates for SpiffeBundleMaps. As a warning, several of the testing setups are pretty dense. Further confidence with this will be built in the follow-up PR when we are actually using these values for verification in end2end flows.

Closes #39708

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39708 from gtcooke94:spiffe_xds 1e1503af150e697dc66f4a96ee6ba9990a703acb
PiperOrigin-RevId: 784333570
2025-07-17 15:19:41 -07:00
Craig Tiller
9ad02e32d8 Rollback channelz v2tov1 related changes
PiperOrigin-RevId: 784242817
2025-07-17 11:02:35 -07:00
Vignesh Babu
8462f347a0 [Filter Fusion] Integrate fused filters target into core gRPC (#40231)
The target is still a no-op for mobile platforms like android and ios

Closes #40231

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40231 from Vignesh2208:fusion-integrate dcf2ce1b6723e2e2827ea0f728d7cf2afde478af
PiperOrigin-RevId: 783907814
2025-07-16 15:04:12 -07:00
Craig Tiller
608e516b60 [channelz] Move legacy apis to use v2->v1
We have a set of C APIs that wrapped languages can use to implement channelz v1.
Migrate these to use the conversion library, and isolate them into a new file.

An experiment is added so we can do a gradual rollout.

PiperOrigin-RevId: 783581214
2025-07-15 20:48:27 -07:00
Vignesh Babu
11d506c40e Reland https://github.com/grpc/grpc/pull/39697
This does not link the fused_filters target into gRPC. It also makes fused_filters a no-op for mobile platforms.

PiperOrigin-RevId: 783324025
2025-07-15 07:26:19 -07:00
Tanvi Jagtap - Google LLC
2eecbcc8a3 [PH2] Fixing circular dependency (#40204)
[PH2] Fixing circular dependency

`Http2SettingsManager` needs `frame.h`.
Our new validation code in frame.h needs `Http2Settings`.
So we split `Http2Settings` and `Http2SettingsManager` into 2 separate header files to resolve the circular dependency.

Closes #40204

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40204 from tanvi-jagtap:ph2_fixing_circular_dependency 17718955eb455aa8d20840d9d0a9a8712c63dd01
PiperOrigin-RevId: 783114803
2025-07-14 18:07:34 -07:00
Gregory Cooke
f0da192d0e [auth] add injectable custom peer comparison fn (#39610)
Closes #39610

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39610 from gtcooke94:auth_context_compare f3194546062e31a4810918aa673c712c2bad8940
PiperOrigin-RevId: 780722699
2025-07-08 14:49:02 -07:00
Vignesh Babu
8d51dea38b Revert https://github.com/grpc/grpc/pull/39697 as it increase binary size of mobile builds
PiperOrigin-RevId: 780678045
2025-07-08 12:55:08 -07:00
Alisha Nanda
4806c33d8f Add experiment to pipeline secure endpoint reads so reading and unprotecting can occur in parallel.
PiperOrigin-RevId: 780258628
2025-07-07 14:23:40 -07:00
Vignesh Babu
b38fc354e1 [FilterFusion] Define a build target containing fused filters and link this target into gRPC core (#39697)
Defines a new src/core:fused_filters containing registrations of fused filters and also makes changes to filter_fusion to ensure it compiles.

This PR enables registration of the fused filters under a new experiment.

Closes #39697

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/39697 from Vignesh2208:fusing-filters 34303b21c162597d54a2fbe02fcd76eaa88f5150
PiperOrigin-RevId: 780146277
2025-07-07 09:41:50 -07:00
Esun Kim
58022c65ff [Release] Bump version to 1.75.0-dev (on master branch) (#40120)
Change was created by the release automation script. See go/grpc-release.

Closes #40120

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/40120 from veblush:bump_dev_version_202507041728 e403e80e566f334809e93e421d552d0b99076f68
PiperOrigin-RevId: 779336318
2025-07-04 18:59:21 -07:00