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

Sync fork to picoquic master branch #14

Merged
merged 173 commits into from
Feb 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
173 commits
Select commit Hold shift + click to select a range
b7b43fc
Define more prague tests
huitema Jul 22, 2022
70b3e6c
Merge branch 'master' into prague-up-down
huitema Jul 28, 2022
3643242
Merge branch 'master' into prague-up-down
huitema Jul 28, 2022
453785e
Merge branch 'master' into prague-up-down
huitema Aug 8, 2022
db2284b
Merge branch 'master' into prague-up-down
huitema Aug 16, 2022
f08a871
Merge multipath fix
huitema Oct 21, 2022
d7def77
Fix after multipath fixes
huitema Oct 21, 2022
77dcc51
Merge branch 'master' into prague-up-down
huitema Nov 29, 2022
bd17a80
Merge branch 'master' into prague-up-down
huitema Dec 10, 2022
bdc8f6a
Merge branch 'master' into prague-up-down
huitema Dec 12, 2022
0e051cf
Merge branch 'master' into prague-up-down
huitema Dec 12, 2022
97786d5
Tests for coverage of config.c
huitema Dec 20, 2023
25cd66d
Remove errant include
huitema Dec 20, 2023
58829c1
Add invalid config tests
huitema Dec 20, 2023
baed6c8
Removing unused code.
huitema Dec 20, 2023
3f62a24
Remove more unused code.
huitema Dec 20, 2023
6200a42
Fix read table overflow
huitema Dec 21, 2023
3196a91
Fix the previous fix...
huitema Dec 21, 2023
58c0836
Disable config test for windows
huitema Dec 21, 2023
97bd967
Disable config_quic test on Windows
huitema Dec 21, 2023
a5acc71
Merge pull request #1600 from private-octopus/improve-coverage
huitema Dec 21, 2023
730946f
Remove dead code
huitema Dec 21, 2023
dacc0b1
tighten use of frame type names
huitema Dec 21, 2023
6026222
Code removal and fixes
huitema Dec 21, 2023
600724f
fix typo
huitema Dec 21, 2023
fca6e70
More tests for logger coverage
huitema Dec 22, 2023
b3bd1d7
One more tweak on IPv6
huitema Dec 22, 2023
11d1493
More IPv6 address tweaks
huitema Dec 22, 2023
7031125
a few more improvements
huitema Dec 22, 2023
d97c4f5
Revise TP logs
huitema Dec 22, 2023
67ec005
Cleanuf debug ifdef
huitema Dec 22, 2023
5520ec4
Fix binlog after changes in tests
huitema Dec 22, 2023
339fc52
Fix of binlog and textlog ref
huitema Dec 22, 2023
a2770ce
Add zero-effect mbdedtls load.
huitema Dec 22, 2023
d16a068
Work around the optimizer
huitema Dec 22, 2023
ae367ec
Fix integer overflow with new token
huitema Dec 22, 2023
349fb2e
Merge pull request #1602 from private-octopus/improve-coverage
huitema Dec 22, 2023
f4e2b8e
Ticket store uses tls time
huitema Dec 28, 2023
957198b
remove stray include
huitema Dec 28, 2023
b15d4da
Token store uses TLS time.
huitema Dec 28, 2023
eac1e13
Enable monotonic clock
huitema Dec 28, 2023
311d94c
Final touches, and version number.upgrade.
huitema Dec 28, 2023
7b9858a
first-rough-try
huitema Dec 29, 2023
5f9af26
undo spurious changes
huitema Dec 29, 2023
e8ba6f4
Fix test of time measurement
huitema Dec 29, 2023
0d0f31c
Fix warnings in config test code
huitema Dec 29, 2023
510e031
Merge pull request #1605 from private-octopus/pathch-tie-issues
huitema Dec 29, 2023
81558b6
Basic sockloop test
huitema Dec 30, 2023
372f359
Add sockloop_test to Unix builds
huitema Dec 30, 2023
a337d66
Fix memory leak
huitema Dec 30, 2023
94fafb1
Intermediate before migration test
huitema Dec 30, 2023
54ab27d
define socket loop v2
huitema Dec 30, 2023
c806e94
add test of ipv4 and loop option
huitema Dec 31, 2023
adebef4
Try cover error EIO
huitema Jan 1, 2024
ebe7e79
Don't blindly use GSO on Windows.
huitema Jan 1, 2024
5eb595a
Add double bind error test
huitema Jan 1, 2024
f9d8235
Add migration test
huitema Jan 2, 2024
cab14ec
Add NAT test.
huitema Jan 3, 2024
e43f3db
start documenting the building process of picoquic
notBroman Jan 3, 2024
7328301
Async Winsock receive
huitema Jan 4, 2024
3e28264
reference doc/building_picoquic in README
notBroman Jan 4, 2024
e2aee5e
rewording sentences
notBroman Jan 4, 2024
57152d7
removing heading
notBroman Jan 4, 2024
4d69475
Function equivalent loop in picoquic demo
huitema Jan 5, 2024
6ca5807
Remove debug ifdef
huitema Jan 5, 2024
5107f13
picoquic as dependency
notBroman Jan 7, 2024
d11af81
confirm loading of package
notBroman Jan 7, 2024
76bde12
dependencies of picoquic/fetching in the cmake
notBroman Jan 7, 2024
b719fa6
reodering the sections
notBroman Jan 7, 2024
0dd20df
Turn on batch receiving in Windows.
huitema Jan 8, 2024
018cd7c
Fix ifdef bracket scope
huitema Jan 8, 2024
ccd6901
Better test of socket close
huitema Jan 8, 2024
ee4a4ae
Fix typos in close socket test
huitema Jan 8, 2024
7946a09
Fix unused variable warning
huitema Jan 8, 2024
4c8f6bf
Fix migration and nat tests
huitema Jan 9, 2024
8cba8bc
Disable warning caused by picotls.h
huitema Jan 9, 2024
68d7119
Merge pull request #1614 from private-octopus/disable-picotls-warning
huitema Jan 9, 2024
40490ac
Merge branch 'master' into improve-coverage
huitema Jan 9, 2024
3290c2c
Clean up debug #if 1
huitema Jan 10, 2024
f5cc8e2
Merge pull request #1606 from private-octopus/improve-coverage
huitema Jan 10, 2024
d7f92c2
Do not send Retire-CID in handshake packet
huitema Jan 11, 2024
c18338b
Update to version 1.1.17.0
huitema Jan 11, 2024
aa7315e
Merge pull request #1617 from private-octopus/handshake_bug
huitema Jan 11, 2024
00495da
Try fix handshake repeat bug.
huitema Jan 14, 2024
40ecb88
Merge pull request #1618 from private-octopus/handshake-pto-bug
huitema Jan 14, 2024
ffc41ce
Add traces to debug handshake pto
huitema Jan 14, 2024
753ea3f
Fix int/uint64 format
huitema Jan 14, 2024
45c2dbd
Merge pull request #1619 from private-octopus/handshake-pto-bug
huitema Jan 14, 2024
98cb458
elaborating on cmake
notBroman Jan 15, 2024
4e30e2d
Remove unused debug print
huitema Jan 19, 2024
13a9433
Merge pull request #1621 from private-octopus/handshake-pto-bug
huitema Jan 19, 2024
ffb2bb7
Prepare move to BBRv3, first RS data
huitema Jan 23, 2024
40a2951
API are ready for BBR3 update
huitema Jan 24, 2024
ebdd73f
Temporary fix of heavy loss test
huitema Jan 24, 2024
2e81024
cmake options
notBroman Jan 27, 2024
2d51c1d
fix my misconceptions with build options and compiler flags
notBroman Jan 28, 2024
b00935a
Merge pull request #1611 from notBroman/document-building
huitema Jan 28, 2024
3942126
Saving the work in progress.
huitema Jan 30, 2024
e72c195
Save a copy of BBR1 code.
huitema Jan 30, 2024
58e6357
Intergate BBR1 code in lib and tests
huitema Jan 30, 2024
7a18486
Fix typo, codename is bbr1.
huitema Jan 30, 2024
0c78afa
Merge branch 'master' into media-net-down-test
huitema Jan 30, 2024
f9ca89e
Clean up a bit.
huitema Jan 30, 2024
a707cc6
Fix duplicate symbol.
huitema Jan 30, 2024
f51b3f9
Merge pull request #1626 from private-octopus/create-bbr1-entry
huitema Jan 30, 2024
e7d86e5
Merge branch 'master' into media-net-down-test
huitema Jan 30, 2024
c64270b
Fix bbr1 notify function to new API.
huitema Jan 30, 2024
fc5716b
Fix computation of BBR rounds
huitema Feb 2, 2024
d092a6e
Fix BW probing cycle
huitema Feb 2, 2024
4a3dbad
Increase tolerance to losses.
huitema Feb 2, 2024
efe0ebd
Reformat red_cc test
huitema Feb 2, 2024
ae1e228
Fix RED BBR & Enter RTT for long delay test
huitema Feb 3, 2024
22ba1b2
Fix computation of app limited.
huitema Feb 3, 2024
518cb9f
Reformat pacing_cc test, loosen pacing_bbr test
huitema Feb 3, 2024
71fc9c2
refactor mtu drop test, fix BBR recovery on PTO
huitema Feb 4, 2024
bbefacd
Fix Wifi tests and support shadow RTT
huitema Feb 4, 2024
190c17d
Exit pto_recovery into Startup
huitema Feb 4, 2024
e5d1bde
Retry probe up until 3 times full_bw
huitema Feb 5, 2024
a92db1e
Remove attempt at exit starup on high RTT
huitema Feb 5, 2024
f523a5a
Remove inflight_hi init hack.
huitema Feb 5, 2024
c176057
Update log files.
huitema Feb 5, 2024
5cdae2d
Cleanup before checking in BBRv3
huitema Feb 5, 2024
fe87fa1
fix inflight_hi probe from code review
huitema Feb 5, 2024
bb2a2aa
Review heavy loss and satellite tests
huitema Feb 6, 2024
032f557
Merge pull request #1624 from private-octopus/media-net-down-test
huitema Feb 6, 2024
d0042bc
Use Careful Resume at low RTT
huitema Feb 7, 2024
857ddc5
Add Startup Resume state
huitema Feb 9, 2024
0c21106
Fix RTT handling for Resume
huitema Feb 9, 2024
231c237
Add test for high and low bdp seed
huitema Feb 9, 2024
5a24917
Merge pull request #1629 from private-octopus/media-net-down-test
huitema Feb 9, 2024
39cd7f6
Port quantum ratio API to BBrv3
huitema Feb 9, 2024
e48e4d0
Merge pull request #1630 from private-octopus/bbr3-quantum-ratio
huitema Feb 9, 2024
926eaa7
Merge branch 'master' into prague-up-down
huitema Feb 9, 2024
d5ff3dd
Add ECN support to BBRv3
huitema Feb 11, 2024
277a226
Fix the expected result of heavy loss test.
huitema Feb 12, 2024
5939a7e
Merge pull request #1631 from private-octopus/prague-up-down
huitema Feb 12, 2024
2a17eb7
Add wake up function to packet loop
huitema Feb 13, 2024
453d5a0
Fix Unix compile issues
huitema Feb 13, 2024
383c45f
Fix pointer in delete thread
huitema Feb 13, 2024
ba93405
Fix 2 more Unix bugs.
huitema Feb 13, 2024
70d3328
Test of loop with background thread
huitema Feb 13, 2024
1c3f5c7
Cleanup and bump version
huitema Feb 13, 2024
ae33700
Merge pull request #1633 from private-octopus/wake-sock-loop
huitema Feb 13, 2024
44caf78
test filtered RTT during startup.
huitema Feb 15, 2024
46d98a9
Fix x86 issues
huitema Feb 15, 2024
8f8aa3a
Partition RTT Changes
huitema Feb 16, 2024
175fa75
Drain if huge queue is still building
huitema Feb 16, 2024
5e33d26
Add limited flag to congestion traces
huitema Feb 17, 2024
25e1a84
Early detection of data rate drop
huitema Feb 17, 2024
ee475c8
Add custome thread creation
huitema Feb 18, 2024
7537c66
Remove errant debug code.
huitema Feb 18, 2024
9cd33dd
Try fix appveyor message
huitema Feb 18, 2024
a7e1199
Remove pcap2qlog reference
huitema Feb 18, 2024
7a18319
Try to get more logs
huitema Feb 19, 2024
9977c45
Fallback to using picoquic_t
huitema Feb 19, 2024
c6f5748
Specify full exe name
huitema Feb 19, 2024
0972bb4
more diagnostics
huitema Feb 19, 2024
02724eb
Just disable windows tests for now
huitema Feb 19, 2024
21834fc
Merge pull request #1636 from private-octopus/custom_thread
huitema Feb 19, 2024
8e9defa
Merge branch 'master' into wifi-congestion-2024-02
huitema Feb 19, 2024
f02aa0b
Remove RTT MIN reset after suspension
huitema Feb 22, 2024
17f78a4
Do not reset min RTT, fix affected tests.
huitema Feb 22, 2024
6840b03
clean up the tests, bump version
huitema Feb 22, 2024
f33e1df
Merge pull request #1634 from private-octopus/wifi-congestion-2024-02
huitema Feb 22, 2024
ed09af8
Merge remote-tracking branch 'upstream/master' into sync-0226
TimEvens Feb 27, 2024
42dab66
Add cwin setting to bbr1 and fix sockloop
TimEvens Feb 27, 2024
481a1e9
...
TimEvens Feb 27, 2024
cd22ed3
Attempt to fix config test
TimEvens Feb 27, 2024
b4edd03
...
TimEvens Feb 27, 2024
2858dc5
...
TimEvens Feb 27, 2024
2e1afa8
...
TimEvens Feb 27, 2024
d1f7c20
Print test output
TimEvens Feb 27, 2024
f0dc265
Update video2 down test latency numbers for github workflow
TimEvens Feb 27, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,4 @@ Release
*.b
/picoquic/qlogger.c
/picohttp_t/h3-m-www
/enc_temp_folder/b4cf614ae2082c1d235e80918228e6
4 changes: 3 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ else()
endif()

project(picoquic
VERSION 1.1.16.2
VERSION 1.1.19.1
DESCRIPTION "picoquic library"
LANGUAGES C CXX)

Expand Down Expand Up @@ -72,6 +72,7 @@ endif()

set(PICOQUIC_LIBRARY_FILES
picoquic/bbr.c
picoquic/bbr1.c
picoquic/bytestream.c
picoquic/cc_common.c
picoquic/config.c
Expand Down Expand Up @@ -163,6 +164,7 @@ set(PICOQUIC_TEST_LIBRARY_FILES
picoquictest/satellite_test.c
picoquictest/skip_frame_test.c
picoquictest/socket_test.c
picoquictest/sockloop_test.c
picoquictest/splay_test.c
picoquictest/stream0_frame_test.c
picoquictest/stresstest.c
Expand Down
21 changes: 21 additions & 0 deletions PerfAndStressTest/PerfAndStressTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,27 @@ namespace PerfAndStressTest
Assert::AreEqual(ret, 0);
}

TEST_METHOD(bdp_short)
{
int ret = bdp_short_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(bdp_short_hi)
{
int ret = bdp_short_hi_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(bdp_short_lo)
{
int ret = bdp_short_lo_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(stress)
{
int ret = stress_test();
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,8 @@ commits changed the Picotls API by removing code for the now obsolete
ESNI draft; prior versions will not work with Picoquic.)
The code can use OpenSSL version 1.1.1 or OpenSSL version 3.0.

More information can be found in the [docs](doc/building_picoquic.md)

## Picoquic on Windows

To build Picoquic on Windows, you need to:
Expand Down
214 changes: 206 additions & 8 deletions UnitTest1/unittest1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,62 @@ namespace UnitTest1
Assert::AreEqual(ret, 0);
}

TEST_METHOD(sockloop_basic)
{
int ret = sockloop_basic_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(sockloop_eio)
{
int ret = sockloop_eio_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(sockloop_errsock)
{
int ret = sockloop_errsock_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(sockloop_ipv4)
{
int ret = sockloop_ipv4_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(sockloop_migration)
{
int ret = sockloop_migration_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(sockloop_nat)
{
int ret = sockloop_nat_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(sockloop_thread)
{
int ret = sockloop_thread_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(sockloop_thread_name)
{
int ret = sockloop_thread_name_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(splay)
{
int ret = splay_test();
Expand Down Expand Up @@ -992,16 +1048,72 @@ namespace UnitTest1
Assert::AreEqual(ret, 0);
}

TEST_METHOD(mtu_drop)
TEST_METHOD(mtu_drop_bbr)
{
int ret = mtu_drop_bbr_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(mtu_drop_cubic)
{
int ret = mtu_drop_cubic_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(mtu_drop_dcubic)
{
int ret = mtu_drop_dcubic_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(mtu_drop_fast)
{
int ret = mtu_drop_fast_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(mtu_drop_newreno)
{
int ret = mtu_drop_newreno_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(red_bbr)
{
int ret = red_bbr_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(red_cubic)
{
int ret = red_cubic_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(red_dcubic)
{
int ret = red_dcubic_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(red_fast)
{
int ret = mtu_drop_test();
int ret = red_fast_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(red_cc)
TEST_METHOD(red_newreno)
{
int ret = red_cc_test();
int ret = red_newreno_test();

Assert::AreEqual(ret, 0);
}
Expand All @@ -1013,9 +1125,37 @@ namespace UnitTest1
Assert::AreEqual(ret, 0);
}

TEST_METHOD(pacing_cc)
TEST_METHOD(pacing_bbr)
{
int ret = pacing_bbr_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(pacing_cubic)
{
int ret = pacing_cubic_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(pacing_dcubic)
{
int ret = pacing_dcubic_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(pacing_fast)
{
int ret = pacing_fast_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(pacing_newreno)
{
int ret = pacing_cc_test();
int ret = pacing_newreno_test();

Assert::AreEqual(ret, 0);
}
Expand Down Expand Up @@ -1132,7 +1272,7 @@ namespace UnitTest1
Assert::AreEqual(ret, 0);
}

TEST_METHOD(test_virtual_time)
TEST_METHOD(virtual_time)
{
int ret = virtual_time_test();

Expand Down Expand Up @@ -1312,7 +1452,13 @@ namespace UnitTest1

Assert::AreEqual(ret, 0);
}


TEST_METHOD(cnxid_transmit_r_early){
int ret = transmit_cnxid_retire_early_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(test_probe_api)
{
int ret = probe_api_test();
Expand Down Expand Up @@ -1799,6 +1945,13 @@ namespace UnitTest1
Assert::AreEqual(ret, 0);
}

TEST_METHOD(bbr1)
{
int ret = bbr1_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(l4s_reno)
{
int ret = l4s_reno_test();
Expand All @@ -1813,6 +1966,27 @@ namespace UnitTest1
Assert::AreEqual(ret, 0);
}

TEST_METHOD(l4s_prague_updown)
{
int ret = l4s_prague_updown_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(l4s_bbr)
{
int ret = l4s_bbr_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(l4s_bbr_updown)
{
int ret = l4s_bbr_updown_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(long_rtt)
{
int ret = long_rtt_test();
Expand Down Expand Up @@ -2068,6 +2242,18 @@ namespace UnitTest1
Assert::AreEqual(ret, 0);
}

TEST_METHOD(mediatest_video2_down) {
int ret = mediatest_video2_down_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(mediatest_wifi) {
int ret = mediatest_wifi_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(mediatest_worst) {
int ret = mediatest_worst_test();

Expand Down Expand Up @@ -2446,6 +2632,18 @@ namespace UnitTest1
Assert::AreEqual(ret, 0);
}

TEST_METHOD(config_quic) {
int ret = config_quic_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(config_usage) {
int ret= config_usage_test();

Assert::AreEqual(ret, 0);
}

TEST_METHOD(h3zero_integer) {
int ret = h3zero_integer_test();

Expand Down
6 changes: 4 additions & 2 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,11 @@ test_script:
- ps: if ($Env:Platform -eq "x64") { cd x64 }
- ps: cd "$Env:Configuration"
- ps: pwd
- ps: vstest.console /logger:Appveyor "/testcasefilter:(Name!=qlog_trace)&(Name!=qlog_trace_auto)&(Name!=qlog_trace_ecn)&(Name!=qlog_trace_only)&(Name!=simple_multipath_qlog)&(Name!=multipath_qlog)&(Name!=threading)" UnitTest1.dll
- ps: dir
# using alternative because of error `vstest.console.exe .\UnitTest1.dll`
# - ps: vstest.console /logger:Appveyor "/testcasefilter:(Name!=config_quic)&(Name!=config_option)&(Name!=qlog_trace)&(Name!=qlog_trace_auto)&(Name!=qlog_trace_ecn)&(Name!=qlog_trace_only)&(Name!=simple_multipath_qlog)&(Name!=multipath_qlog)&(Name!=threading)" UnitTest1.dll
# Alternative to UnitTest1 (running the same tests):
# - ps: .\picoquic_t -n -r -x fuzz_initial
# - ps: .\picoquic_t.exe -x fuzz_initial

deploy: off

Expand Down
Loading
Loading