Skip to content

loader for bpf_cubic #1

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

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
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
30 changes: 20 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -12,7 +12,8 @@ IF (WITH_DTRACE)
MESSAGE(STATUS "Enabling USDT support")
ENDIF ()

SET(CMAKE_C_FLAGS "-std=c99 -Wall -g ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}")
SET(CMAKE_C_FLAGS "-std=c99 -Wall -DHAVE_ATTR_TEST=0 ${CC_WARNING_FLAGS} ${CMAKE_C_FLAGS}")
SET(BPF_LDFLAGS "-g -lbpf -lelf -lz")
INCLUDE_DIRECTORIES(
deps/cifra/src/ext
deps/cifra/src
@@ -21,6 +22,7 @@ INCLUDE_DIRECTORIES(
include
${CMAKE_CURRENT_BINARY_DIR})
SET(MINICRYPTO_LIBRARY_FILES
lib/bpf/loader.c
deps/micro-ecc/uECC.c
deps/cifra/src/aes.c
deps/cifra/src/blockwise.c
@@ -35,6 +37,8 @@ SET(MINICRYPTO_LIBRARY_FILES
deps/cifra/src/poly1305.c
deps/cifra/src/sha256.c
deps/cifra/src/sha512.c)


SET(CORE_FILES
lib/picotls.c
lib/picotcpls.c
@@ -63,6 +67,7 @@ IF (BROTLI_DEC_FOUND AND BROTLI_ENC_FOUND)
LIST(APPEND CORE_EXTRA_LIBS ${BROTLI_DEC_LIBRARIES} ${BROTLI_ENC_LIBRARIES})
ENDIF ()


ADD_LIBRARY(picotls-core ${CORE_FILES})
TARGET_LINK_LIBRARIES(picotls-core ${CORE_EXTRA_LIBS})
ADD_LIBRARY(picotls-minicrypto
@@ -77,7 +82,7 @@ ADD_LIBRARY(picotls-minicrypto
lib/uecc.c
lib/asn1.c
lib/ffx.c)
TARGET_LINK_LIBRARIES(picotls-minicrypto picotls-core)
TARGET_LINK_LIBRARIES(picotls-minicrypto picotls-core )
ADD_EXECUTABLE(test-minicrypto.t
${MINICRYPTO_LIBRARY_FILES}
deps/picotest/picotest.c
@@ -91,20 +96,25 @@ ADD_EXECUTABLE(test-minicrypto.t
lib/cifra/aes128.c
lib/cifra/aes256.c
lib/cifra/random.c)

TARGET_LINK_LIBRARIES(test-minicrypto.t ${BPF_LDFLAGS})
SET(TEST_EXES test-minicrypto.t)

FIND_PACKAGE(OpenSSL)
IF (OPENSSL_FOUND AND NOT (OPENSSL_VERSION VERSION_LESS "1.0.1"))
MESSAGE(STATUS " Enabling OpenSSL support")
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR}
lib/bpf/samples/bpf
lib/bpf/tools/perf
lib/bpf/tools/include
lib/bpf/include/uapi
lib/bpf/include)
ADD_LIBRARY(picotls-openssl lib/openssl.c)
TARGET_LINK_LIBRARIES(picotls-openssl ${OPENSSL_LIBRARIES} picotls-core ${CMAKE_DL_LIBS})
TARGET_LINK_LIBRARIES(picotls-openssl ${OPENSSL_LIBRARIES} picotls-core ${CMAKE_DL_LIBS} ${BPF_LDFLAGS})
ADD_EXECUTABLE(cli t/cli.c lib/pembase64.c)
TARGET_LINK_LIBRARIES(cli picotls-openssl picotls-core)
ADD_EXECUTABLE(picotls-esni src/esni.c)
TARGET_LINK_LIBRARIES(picotls-esni picotls-openssl picotls-core ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})

TARGET_LINK_LIBRARIES(picotls-esni picotls-openssl picotls-core ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS} ${BPF_LDFLAGS})
ADD_EXECUTABLE(test-openssl.t
${MINICRYPTO_LIBRARY_FILES}
lib/cifra.c
@@ -121,11 +131,11 @@ IF (OPENSSL_FOUND AND NOT (OPENSSL_VERSION VERSION_LESS "1.0.1"))
${CORE_TEST_FILES}
t/openssl.c)
SET_TARGET_PROPERTIES(test-openssl.t PROPERTIES COMPILE_FLAGS "-DPTLS_MEMORY_DEBUG=1")
TARGET_LINK_LIBRARIES(test-openssl.t ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})
TARGET_LINK_LIBRARIES(test-openssl.t ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS} ${BPF_LDFLAGS})

ADD_EXECUTABLE(ptlsbench t/ptlsbench.c)
SET_TARGET_PROPERTIES(ptlsbench PROPERTIES COMPILE_FLAGS "-DPTLS_MEMORY_DEBUG=1")
TARGET_LINK_LIBRARIES(ptlsbench picotls-minicrypto picotls-openssl picotls-core ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS})
SET_TARGET_PROPERTIES(ptlsbench PROPERTIES COMPILE_FLAGS "-DPTLS_MEMORY_DEBUG=1 -lbpf -lz")
TARGET_LINK_LIBRARIES(ptlsbench picotls-minicrypto picotls-openssl picotls-core ${OPENSSL_LIBRARIES} ${CMAKE_DL_LIBS} ${BPF_LDFLAGS})

SET(TEST_EXES ${TEST_EXES} test-openssl.t)
ELSE ()
6 changes: 6 additions & 0 deletions include/bpf_loader.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#ifndef bpf_loader_h
#define bpf_loader_h

int load_bpf_prog(uint8_t *base, size_t len);

#endif
14 changes: 14 additions & 0 deletions include/picotls.h
Original file line number Diff line number Diff line change
@@ -748,6 +748,7 @@ extern "C" {
* if set, EOED will not be emitted or accepted
*/
unsigned omit_end_of_early_data : 1;

/**
* if set, we will communicate our ability to send TCP options
* at the handshake
@@ -759,6 +760,19 @@ extern "C" {
* options
*/
unsigned tcpls_options_confirmed : 1;

/**
* Set to support failover, if the peer support tcpls_options
* options
*/
unsigned support_tcpls_options_failover : 1;

/**
* Set to support ebpf congestion control, if the peer support tcpls_options
* options
*/
unsigned support_tcpls_options_cc : 1;

/**
* Socket on which eventually applies local and received tcpls_options
*/
Loading