Skip to content

Commit

Permalink
[+] new version prepare, updating multipath draft-10 / FEC updates (#459
Browse files Browse the repository at this point in the history
)

* 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
  • Loading branch information
cherylsy authored Oct 28, 2024
1 parent 6dc0fea commit acea9b0
Show file tree
Hide file tree
Showing 98 changed files with 6,479 additions and 3,068 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ jobs:
SSL_LIB_PATH_STR="${PWD}/third_party/boringssl/build/ssl/libssl.a;${PWD}/third_party/boringssl/build/crypto/libcrypto.a"
mkdir -p build
cd build
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 ..
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 ..
make -j
- name: Test
Expand All @@ -72,7 +72,7 @@ jobs:
openssl req -newkey rsa:2048 -x509 -nodes -keyout "$keyfile" -new -out "$certfile" -subj /CN=test.xquic.com
./tests/run_tests | tee -a ../xquic_test.log
../scripts/case_test.sh | tee -a ../xquic_test.log
gcovr -r .. --xml -o ../coverage.xml
gcovr -r .. --xml --gcov-ignore-parse-errors -o ../coverage.xml
- name: Check Test Result
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ jobs:
SSL_LIB_PATH_STR="${PWD}/third_party/boringssl/build/ssl/libssl.a;${PWD}/third_party/boringssl/build/crypto/libcrypto.a"
mkdir -p build
cd build
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 ..
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 ..
make -j
- name: Perform CodeQL Analysis
Expand Down
12 changes: 11 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ option (XQC_COMPAT_DUPLICATE "qpack compat dup" OFF)
option (XQC_ENABLE_FEC "enable fec" OFF)
option (XQC_ENABLE_XOR "enable fec scheme xor" OFF)
option (XQC_ENABLE_RSC "enable fec scheme reed-solomon code" OFF)
option (XQC_ENABLE_PKM "enable fec scheme packet mask" OFF)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
Expand Down Expand Up @@ -137,7 +138,6 @@ if(XQC_PRINT_SECRET)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXQC_PRINT_SECRET")
endif()


# compat with the stateless reset before version v1.6.0
if(XQC_COMPAT_GENERATE_SR_PKT)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXQC_COMPAT_GENERATE_SR_PKT")
Expand Down Expand Up @@ -227,6 +227,7 @@ set(
"src/transport/scheduler/xqc_scheduler_minrtt.c"
"src/transport/scheduler/xqc_scheduler_common.c"
"src/transport/scheduler/xqc_scheduler_backup.c"
"src/transport/scheduler/xqc_scheduler_backup_fec.c"
"src/transport/scheduler/xqc_scheduler_rap.c"
)

Expand All @@ -238,6 +239,7 @@ if(XQC_ENABLE_MP_INTEROP)
)
endif()


# fec framework
set(
FEC_FRAMEWORK_SOURCE
Expand All @@ -262,6 +264,14 @@ if(XQC_ENABLE_RSC)
)
endif()

if(XQC_ENABLE_PKM)
set(
FEC_FRAMEWORK_SOURCE
${FEC_FRAMEWORK_SOURCE}
"src/transport/fec_schemes/xqc_packet_mask.c"
)
endif()

if(XQC_ENABLE_FEC)
set(
TRANSPORT_SOURCES
Expand Down
2 changes: 1 addition & 1 deletion CMakeOptions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ option(SSL_TYPE "Using BoringSSL" boringssl)
option(SSL_DYNAMIC "Use dynamic libssl" OFF)
option(XQC_ENABLE_TESTING "Enable Testing" OFF)
option(XQC_BUILD_SAMPLE "Build Sample" OFF)
option(GCOV "Test Coverage" OFF)
option(GCOV "Test Coverage" OFF)
28 changes: 24 additions & 4 deletions cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,10 @@ if (XQC_ENABLE_EVENT_LOG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXQC_ENABLE_EVENT_LOG ")
endif()

if (DISABLE_WARNINGS)
add_compile_options("-Wno-error")
endif ()
# sendmmsg
if(XQC_SUPPORT_SENDMMSG_BUILD)
add_definitions(-DXQC_SUPPORT_SENDMMSG)
endif()

if(ANDROID)
set(DYMAMIC_LINK_OPTION
Expand Down Expand Up @@ -197,6 +198,7 @@ set(
"src/transport/scheduler/xqc_scheduler_minrtt.c"
"src/transport/scheduler/xqc_scheduler_common.c"
"src/transport/scheduler/xqc_scheduler_backup.c"
"src/transport/scheduler/xqc_scheduler_backup_fec.c"
"src/transport/scheduler/xqc_scheduler_rap.c"
)

Expand Down Expand Up @@ -233,6 +235,14 @@ if(XQC_ENABLE_RSC)
)
endif()

if(XQC_ENABLE_PKM)
set(
FEC_FRAMEWORK_SOURCE
${FEC_FRAMEWORK_SOURCE}
"src/transport/fec_schemes/xqc_packet_mask.c"
)
endif()

if(XQC_ENABLE_FEC)
set(
TRANSPORT_SOURCES
Expand Down Expand Up @@ -329,7 +339,16 @@ if(XQC_ENABLE_UNLIMITED)
)
endif()


# add tunnel
if(XQC_ENABLE_TH3 OR XQC_ENABLE_TUNNEL)
set(
XQC_SOURCE
)
if(XQC_ENABLE_TNL_DG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DXQC_ENABLE_TNL_DG ")
endif()
add_subdirectory(tunnel)
endif()

if (XQC_NO_SHARED)
set(XQC_BINARY_TYPE STATIC)
Expand All @@ -343,6 +362,7 @@ add_library(
${TLS_SOURCE}
${COMMON_SOURCES}
${CONGESTION_CONTROL_SOURCES}
${XQC_SOURCE}
)

add_dependencies(xquic xquic_global)
Expand Down
Loading

0 comments on commit acea9b0

Please sign in to comment.