Skip to content

extproc : implement flow control for A93 - #9343

Merged
eshitachandwani merged 6 commits into
grpc:masterfrom
eshitachandwani:flowcontrolfinalfinal
Aug 27, 2026
Merged

extproc : implement flow control for A93#9343
eshitachandwani merged 6 commits into
grpc:masterfrom
eshitachandwani:flowcontrolfinalfinal

Conversation

@eshitachandwani

Copy link
Copy Markdown
Member

This PR implements flow control for ext proc filter. THis PR also has version change for envoyproxy/go-control-plane/envoy since the new flow control protocol changes are in master and not in ay release.

#ext-proc-a93

RELEASE NOTES: None

@eshitachandwani eshitachandwani added this to the 1.85 Release milestone Aug 20, 2026
@eshitachandwani eshitachandwani added Type: Feature New features or improvements in behavior Area: xDS Includes everything xDS related, including LB policies used with xDS. labels Aug 20, 2026
@codecov

codecov Bot commented Aug 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.25490% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.50%. Comparing base (664e87d) to head (de5cd39).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
internal/xds/httpfilter/extproc/ext_proc.go 87.25% 13 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##           master    #9343    +/-   ##
========================================
  Coverage   87.50%   87.50%            
========================================
  Files         425      429     +4     
  Lines       30303    30622   +319     
========================================
+ Hits        26516    26797   +281     
- Misses       3786     3825    +39     
+ Partials        1        0     -1     
Files with missing lines Coverage Δ
...ternal/xds/httpfilter/extproc/internal/internal.go 75.00% <ø> (+75.00%) ⬆️
internal/xds/httpfilter/extproc/ext_proc.go 82.05% <87.25%> (+1.15%) ⬆️

... and 28 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@easwars easwars left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes look good in general. The only major comment is about possibly adding those extra test scenarios.

Comment thread internal/xds/httpfilter/extproc/ext_proc.go Outdated
Comment on lines +991 to +995
downstreamToSideStreamWindow atomic.Int64 // downstream to sidestream window size remaining
downstreamToSideStreamPositiveUpdateCh chan struct{} // signals the downstream to sidestream window becoming positive

upstreamToSideStreamWindow atomic.Int64 // upstream to sidestream window size remaining
upstreamToSideStreamPositiveUpdateCh chan struct{} // signals the upstream to sidestream window becoming positive

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit/Optional: What do you think about names like: d2sWindow, d2sPositiveUpdateCh, u2sWindow and u2sPositiveUpdateCh?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think they will be a little difficult to follow through while reading the code. Nonetheless I have changed the names, let me know if you want me to change it back.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm .... I wasn't too particular about the names. I do agree that they aren't the most readable. Ok, let's revert them back. Sorry for the churn.

Comment thread internal/xds/httpfilter/extproc/ext_proc.go Outdated
Comment thread internal/xds/httpfilter/extproc/ext_proc_ext_test.go Outdated
Comment thread internal/xds/httpfilter/extproc/ext_proc_ext_test.go Outdated
Comment thread internal/xds/httpfilter/extproc/ext_proc_ext_test.go Outdated
Comment thread internal/xds/httpfilter/extproc/ext_proc_ext_test.go
@easwars easwars assigned eshitachandwani and unassigned easwars Aug 21, 2026
Comment on lines +991 to +995
downstreamToSideStreamWindow atomic.Int64 // downstream to sidestream window size remaining
downstreamToSideStreamPositiveUpdateCh chan struct{} // signals the downstream to sidestream window becoming positive

upstreamToSideStreamWindow atomic.Int64 // upstream to sidestream window size remaining
upstreamToSideStreamPositiveUpdateCh chan struct{} // signals the upstream to sidestream window becoming positive

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm .... I wasn't too particular about the names. I do agree that they aren't the most readable. Ok, let's revert them back. Sorry for the churn.

if err != nil {
t.Fatalf("proto.Marshal failed: %v", err)
}
expectedInc := int64(len(reqBytes))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: want

if err != nil {
t.Fatalf("proto.Marshal failed: %v", err)
}
expectedRespInc := int64(len(mutatedRespBytes))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: here too: want

@easwars easwars assigned eshitachandwani and unassigned easwars Aug 26, 2026
@eshitachandwani
eshitachandwani merged commit 6d697e4 into grpc:master Aug 27, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: xDS Includes everything xDS related, including LB policies used with xDS. Type: Feature New features or improvements in behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants