Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple Receive API Support #4182

Merged
merged 53 commits into from
Aug 5, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
453b37f
WIP
nibanks Mar 5, 2024
202512f
Merge branch 'main' into nibanks/multi-recv-api
nibanks Mar 6, 2024
2e47f2c
Fixes
nibanks Mar 6, 2024
8368753
Simplify
nibanks Mar 6, 2024
43b80ab
fix
nibanks Mar 7, 2024
d102d91
Merge branch 'main' into nibanks/multi-recv-api
nibanks Mar 8, 2024
bb35f68
Fix
nibanks Mar 8, 2024
9860108
Fix more bugs
nibanks Mar 8, 2024
238416b
Fix clog and .net
nibanks Mar 8, 2024
db8a078
Fixes
nibanks Mar 8, 2024
2682233
Improvements
nibanks Mar 12, 2024
b88c126
Merge branch 'main' into nibanks/multi-recv-api
nibanks Apr 26, 2024
176312e
Undo a merge issue
nibanks Apr 26, 2024
d0261be
Another merge issue
nibanks Apr 26, 2024
db66cc8
Merge branch 'main' into nibanks/multi-recv-api
nibanks May 8, 2024
f09c55d
Merge branch 'main' into nibanks/multi-recv-api
ami-GS Jun 12, 2024
3781772
Simple test
ami-GS Jun 18, 2024
70e000c
remove fprintf
ami-GS Jun 18, 2024
cc19992
fix signature to upto 255. add Large send case
ami-GS Jun 18, 2024
a1f2339
1G Multi receive
ami-GS Jun 19, 2024
0bc4c4f
fix drain bug
ami-GS Jun 21, 2024
62e3558
kernel test
ami-GS Jun 21, 2024
b6a70e5
Merge branch 'main' into nibanks/multi-recv-api
ami-GS Jun 21, 2024
c0a292e
fix
ami-GS Jun 21, 2024
3f41455
fix
ami-GS Jun 21, 2024
783dd75
unused variable
ami-GS Jun 21, 2024
c97b52f
compare data
ami-GS Jun 21, 2024
dc1b8ab
tmp
ami-GS Jun 27, 2024
393130d
test cases
ami-GS Jun 28, 2024
338a1d2
95% works
ami-GS Jul 1, 2024
aa7a04c
Merge branch 'dev/daiki/multi-recv-debug' into nibanks/multi-recv-api
ami-GS Jul 1, 2024
c731ceb
remove fprintf in core
ami-GS Jul 1, 2024
ebc8e52
Fix Range copy
ami-GS Jul 1, 2024
f5e7950
fix type mimatch
ami-GS Jul 1, 2024
ba4a479
cleanup
ami-GS Jul 1, 2024
b3115e0
Merge branch 'main' into nibanks/multi-recv-api
ami-GS Jul 3, 2024
5972aa3
Fix stall issue
ami-GS Jul 5, 2024
1e7fa64
rollback
ami-GS Jul 5, 2024
58f7c3a
retry if length is 0
ami-GS Jul 6, 2024
052be96
remove continue to reset Readpending in QuicStreamReceiveComplete
ami-GS Jul 6, 2024
7246587
stop enablling send with pending data (race condition exists)
ami-GS Jul 6, 2024
2fcb778
fix QuicRecvBufferHasUnreadData
ami-GS Jul 8, 2024
42d885d
rollback for recv_buff lock bug then return earlier not to indicate F…
ami-GS Jul 8, 2024
714042c
fix
ami-GS Jul 8, 2024
8893063
fix
ami-GS Jul 8, 2024
79ce0b7
reduce test buffer size for CI speed
ami-GS Jul 10, 2024
d4f990c
Merge branch 'main' into nibanks/multi-recv-api
ami-GS Jul 31, 2024
0c405f8
update document
ami-GS Aug 1, 2024
e765cf3
add back buffer count caution
ami-GS Aug 1, 2024
399b926
Merge branch 'main' into nibanks/multi-recv-api
ami-GS Aug 5, 2024
ff1a339
Update docs/api/StreamReceiveComplete.md
ami-GS Aug 5, 2024
657540b
Update docs/api/StreamReceiveComplete.md
ami-GS Aug 5, 2024
9ba15d2
logical conflicts
ami-GS Aug 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/core/recv_buffer.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,9 @@
_In_ QUIC_RECV_BUFFER* RecvBuffer
)
{
if (RecvBuffer->ReadPendingLength != 0 && RecvBuffer->RecvMode != QUIC_RECV_BUF_MODE_MULTIPLE) {
return FALSE;

Check warning on line 158 in src/core/recv_buffer.c

View check run for this annotation

Codecov / codecov/patch

src/core/recv_buffer.c#L158

Added line #L158 was not covered by tests
}
const QUIC_SUBRANGE* FirstRange = QuicRangeGetSafe(&RecvBuffer->WrittenRanges, 0);
if (FirstRange == NULL || FirstRange->Low != 0) {
return FALSE;
Expand Down
6 changes: 1 addition & 5 deletions src/tools/spin/spinquic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1026,11 +1026,7 @@ void Spin(Gbs& Gb, LockableVector<HQUIC>& Connections, std::vector<HQUIC>* Liste
std::lock_guard<std::mutex> Lock(ctx->Lock);
auto Stream = ctx->TryGetStream();
if (Stream == nullptr) continue;
auto StreamCtx = SpinQuicStream::Get(Stream);
bool Enable = GetRandom(2) == 0;
if (!Enable || StreamCtx->PendingRecvLength == UINT64_MAX) {
MsQuic.StreamReceiveSetEnabled(Stream, Enable);
}
MsQuic.StreamReceiveSetEnabled(Stream, GetRandom(2) == 0);
}
break;
}
Expand Down
Loading