Skip to content

Commit acea9b0

Browse files
authored
[+] new version prepare, updating multipath draft-10 / FEC updates (#459)
* Update version 1.8.1 * [=] fix diff/compile err * [~] fix unit link err * [~] fix casetest err * [=] fix compile error * [=] fix casetest error * [=] fix casetest * [=] fix gcovr parse error * [~] fix fec testcase error * [~] skip priority if fec not compiled * [=] fix window compile diff * [=] fix casetest error
1 parent 6dc0fea commit acea9b0

File tree

98 files changed

+6479
-3068
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+6479
-3068
lines changed

.github/workflows/build.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
SSL_LIB_PATH_STR="${PWD}/third_party/boringssl/build/ssl/libssl.a;${PWD}/third_party/boringssl/build/crypto/libcrypto.a"
6262
mkdir -p build
6363
cd build
64-
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_PRINT_SECRET=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_ENABLE_RENO=1 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} -DXQC_ENABLE_UNLIMITED=1 -DXQC_ENABLE_COPA=1 -DXQC_COMPAT_DUPLICATE=1 -DXQC_ENABLE_FEC=1 -DXQC_ENABLE_XOR=1 -DXQC_ENABLE_RSC=1 ..
64+
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_PRINT_SECRET=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_ENABLE_RENO=1 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} -DXQC_ENABLE_UNLIMITED=1 -DXQC_ENABLE_COPA=1 -DXQC_COMPAT_DUPLICATE=1 -DXQC_ENABLE_FEC=1 -DXQC_ENABLE_XOR=1 -DXQC_ENABLE_RSC=1 -DXQC_ENABLE_PKM=1 ..
6565
make -j
6666
6767
- name: Test
@@ -72,7 +72,7 @@ jobs:
7272
openssl req -newkey rsa:2048 -x509 -nodes -keyout "$keyfile" -new -out "$certfile" -subj /CN=test.xquic.com
7373
./tests/run_tests | tee -a ../xquic_test.log
7474
../scripts/case_test.sh | tee -a ../xquic_test.log
75-
gcovr -r .. --xml -o ../coverage.xml
75+
gcovr -r .. --xml --gcov-ignore-parse-errors -o ../coverage.xml
7676
7777
- name: Check Test Result
7878
run: |

.github/workflows/codeql-analysis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
SSL_LIB_PATH_STR="${PWD}/third_party/boringssl/build/ssl/libssl.a;${PWD}/third_party/boringssl/build/crypto/libcrypto.a"
6161
mkdir -p build
6262
cd build
63-
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_PRINT_SECRET=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_ENABLE_RENO=1 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} -DXQC_ENABLE_UNLIMITED=1 -DXQC_ENABLE_COPA=1 -DXQC_COMPAT_DUPLICATE=1 -DXQC_ENABLE_FEC=1 -DXQC_ENABLE_XOR=1 -DXQC_ENABLE_RSC=1 ..
63+
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_PRINT_SECRET=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_ENABLE_RENO=1 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} -DXQC_ENABLE_UNLIMITED=1 -DXQC_ENABLE_COPA=1 -DXQC_COMPAT_DUPLICATE=1 -DXQC_ENABLE_FEC=1 -DXQC_ENABLE_XOR=1 -DXQC_ENABLE_RSC=1 -DXQC_ENABLE_PKM=1 ..
6464
make -j
6565
6666
- name: Perform CodeQL Analysis

CMakeLists.txt

+11-1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ option (XQC_COMPAT_DUPLICATE "qpack compat dup" OFF)
1818
option (XQC_ENABLE_FEC "enable fec" OFF)
1919
option (XQC_ENABLE_XOR "enable fec scheme xor" OFF)
2020
option (XQC_ENABLE_RSC "enable fec scheme reed-solomon code" OFF)
21+
option (XQC_ENABLE_PKM "enable fec scheme packet mask" OFF)
2122

2223
if(NOT CMAKE_BUILD_TYPE)
2324
set(CMAKE_BUILD_TYPE Release)
@@ -137,7 +138,6 @@ if(XQC_PRINT_SECRET)
137138
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXQC_PRINT_SECRET")
138139
endif()
139140

140-
141141
# compat with the stateless reset before version v1.6.0
142142
if(XQC_COMPAT_GENERATE_SR_PKT)
143143
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXQC_COMPAT_GENERATE_SR_PKT")
@@ -227,6 +227,7 @@ set(
227227
"src/transport/scheduler/xqc_scheduler_minrtt.c"
228228
"src/transport/scheduler/xqc_scheduler_common.c"
229229
"src/transport/scheduler/xqc_scheduler_backup.c"
230+
"src/transport/scheduler/xqc_scheduler_backup_fec.c"
230231
"src/transport/scheduler/xqc_scheduler_rap.c"
231232
)
232233

@@ -238,6 +239,7 @@ if(XQC_ENABLE_MP_INTEROP)
238239
)
239240
endif()
240241

242+
241243
# fec framework
242244
set(
243245
FEC_FRAMEWORK_SOURCE
@@ -262,6 +264,14 @@ if(XQC_ENABLE_RSC)
262264
)
263265
endif()
264266

267+
if(XQC_ENABLE_PKM)
268+
set(
269+
FEC_FRAMEWORK_SOURCE
270+
${FEC_FRAMEWORK_SOURCE}
271+
"src/transport/fec_schemes/xqc_packet_mask.c"
272+
)
273+
endif()
274+
265275
if(XQC_ENABLE_FEC)
266276
set(
267277
TRANSPORT_SOURCES

CMakeOptions.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ option(SSL_TYPE "Using BoringSSL" boringssl)
66
option(SSL_DYNAMIC "Use dynamic libssl" OFF)
77
option(XQC_ENABLE_TESTING "Enable Testing" OFF)
88
option(XQC_BUILD_SAMPLE "Build Sample" OFF)
9-
option(GCOV "Test Coverage" OFF)
9+
option(GCOV "Test Coverage" OFF)

cmake/CMakeLists.txt

+24-4
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,10 @@ if (XQC_ENABLE_EVENT_LOG)
7575
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXQC_ENABLE_EVENT_LOG ")
7676
endif()
7777

78-
if (DISABLE_WARNINGS)
79-
add_compile_options("-Wno-error")
80-
endif ()
78+
# sendmmsg
79+
if(XQC_SUPPORT_SENDMMSG_BUILD)
80+
add_definitions(-DXQC_SUPPORT_SENDMMSG)
81+
endif()
8182

8283
if(ANDROID)
8384
set(DYMAMIC_LINK_OPTION
@@ -197,6 +198,7 @@ set(
197198
"src/transport/scheduler/xqc_scheduler_minrtt.c"
198199
"src/transport/scheduler/xqc_scheduler_common.c"
199200
"src/transport/scheduler/xqc_scheduler_backup.c"
201+
"src/transport/scheduler/xqc_scheduler_backup_fec.c"
200202
"src/transport/scheduler/xqc_scheduler_rap.c"
201203
)
202204

@@ -233,6 +235,14 @@ if(XQC_ENABLE_RSC)
233235
)
234236
endif()
235237

238+
if(XQC_ENABLE_PKM)
239+
set(
240+
FEC_FRAMEWORK_SOURCE
241+
${FEC_FRAMEWORK_SOURCE}
242+
"src/transport/fec_schemes/xqc_packet_mask.c"
243+
)
244+
endif()
245+
236246
if(XQC_ENABLE_FEC)
237247
set(
238248
TRANSPORT_SOURCES
@@ -329,7 +339,16 @@ if(XQC_ENABLE_UNLIMITED)
329339
)
330340
endif()
331341

332-
342+
# add tunnel
343+
if(XQC_ENABLE_TH3 OR XQC_ENABLE_TUNNEL)
344+
set(
345+
XQC_SOURCE
346+
)
347+
if(XQC_ENABLE_TNL_DG)
348+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXQC_ENABLE_TNL_DG ")
349+
endif()
350+
add_subdirectory(tunnel)
351+
endif()
333352

334353
if (XQC_NO_SHARED)
335354
set(XQC_BINARY_TYPE STATIC)
@@ -343,6 +362,7 @@ add_library(
343362
${TLS_SOURCE}
344363
${COMMON_SOURCES}
345364
${CONGESTION_CONTROL_SOURCES}
365+
${XQC_SOURCE}
346366
)
347367

348368
add_dependencies(xquic xquic_global)

0 commit comments

Comments
 (0)