Giter VIP home page Giter VIP logo

xquic's Introduction

XQUIC

xquic logo

GitHub Build CodeQL Codacy Badge Codacy Badge Platforms

简体中文文档 README-zh-CN

Introduction

XQUIC Library released by Alibaba is …

a client and server implementation of QUIC and HTTP/3 as specified by the IETF. Currently supported QUIC versions are v1 and draft-29.

OS and platform agnostic. It currently supports Android, iOS, HarmonyOS, Linux, macOS and Windows(v1.2.0). Most of the code is used in our own products, and has been tested at scale on android, iOS apps, as well as servers.

still in active development. Interoperability is regularly tested with other QUIC implementations.

Features

Standardized Features

  • All big features conforming with RFC 9000, RFC9001, RFC9002, RFC9114 and RFC9204, including the interface between QUIC and TLS, 0-RTT connection establishment, HTTP/3 and QPACK.

  • ALPN Extension conforming with RFC7301

Not Yet Standardized Features

Library Features

  • Pluggable congestion control: NewReno, Cubic, BBR and BBRv2, ...

  • Pluggable cryptography, integration with BoringSSL and BabaSSL

  • Cross-platform implementation, support Android, iOS, HarmonyOS, Linux, macOS and Windows(v1.2.0)

Requirements

To build XQUIC, you need

  • CMake
  • BoringSSL or BabaSSL

To run test cases, you need

  • libevent
  • CUnit

QuickStart Guide

XQUIC can be built with Tongsuo(BabaSSL) or BoringSSL.

Build with BoringSSL

# get XQUIC source code
git clone https://github.com/alibaba/xquic.git
cd xquic

# get and build BoringSSL
git clone https://github.com/google/boringssl.git ./third_party/boringssl
cd ./third_party/boringssl
mkdir -p build && cd build
cmake -DBUILD_SHARED_LIBS=0 -DCMAKE_C_FLAGS="-fPIC" -DCMAKE_CXX_FLAGS="-fPIC" ..
make ssl crypto
cd ..
SSL_TYPE_STR="boringssl"
SSL_PATH_STR="${PWD}"
cd ../..
## Note: if you don’t have golang in your environment, please install [golang](https://go.dev/doc/install) first. 

# build XQUIC with BoringSSL
# When build XQUIC with boringssl, /usr/local/babassl directory will be searched
# as default. if boringssl is deployed in other directories, SSL_PATH could be 
# used to specify the search path of boringssl
git submodule update --init --recursive
mkdir -p build; cd build
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=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} ..

# exit if cmake error
if [ $? -ne 0 ]; then
    echo "cmake failed"
    exit 1
fi

make -j

Build with BabaSSL(Tongsuo)

# get XQUIC source code
git clone https://github.com/alibaba/xquic.git
cd xquic

# get and build BabaSSL(Tongsuo)
git clone -b 8.3-stable https://github.com/Tongsuo-Project/Tongsuo.git ./third_party/babassl
cd ./third_party/babassl/
./config --prefix=/usr/local/babassl
make -j
SSL_TYPE_STR="babassl"
SSL_PATH_STR="${PWD}"
cd -

# build XQUIC with BabaSSL
# When build XQUIC with boringssl, /usr/local/babassl directory will be searched
# as default. if boringssl is deployed in other directories, SSL_PATH could be 
# used to specify the search path of boringssl
git submodule update --init --recursive
mkdir -p build; cd build
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=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} ..

# exit if cmake error
if [ $? -ne 0 ]; then
    echo "cmake failed"
    exit 1
fi

make -j

Run testcases

sh ../scripts/xquic_test.sh

Documentation

Contributing

We would love for you to contribute to XQUIC and help make it even better than it is today! All types of contributions are encouraged and valued. Thanks to all contributors. See our Contributing Guidelines for more information.

If you have any questions, please feel free to open a new Discussion topic in our discussion forums.

License

XQUIC is released under the Apache 2.0 License.

Contact Us

Feel free to contact us in the following ways:

  • e-mail: [email protected]

  • Dingtalk group: 34059705

  • slack channel: #xquic in quicdev group

    dingtalk group

xquic's People

Contributors

alagoutte avatar alexliu-liu avatar chenzhanfeng avatar cherylql avatar cherylsy avatar chinsyo avatar contrun avatar dreamwind1985 avatar driventokill avatar eltociear avatar flx413 avatar happyomg avatar iczero avatar keengo99 avatar kulsk avatar l1men9yu avatar lianglli avatar lurker-chen avatar mpk1 avatar pengyutang125 avatar robinhzp avatar ruanshanshan avatar ruiqizhou avatar tang-mouren avatar wangweiwei1188 avatar ya-pasha-364shy avatar yangfurong avatar yanmei-liu avatar yuanbo-zhang avatar yunwei37 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xquic's Issues

[Feature]: specify stream priority to enable network slicing qos

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

Currently version, parellel stream is fifo scheduling that enable network slicing.
Further more, we need specify stream priority to make qos works.

Describe alternatives you've considered

No response

Additional context

No response

[Bug]: xqc work abnormal when create multi engines

What happened?

create a client & server engine in one program with different h3 callbacks, xqc can't send request any more。
i think it's becase the h3 cbs is saved in a global variable h3_ctx,when diffent engine register different h3 cbs, previous registered cbs would be overwritten, xqc_h3_ctx_get_app_callbacks would only can get the last registered cbs。
image
image

i tried to save cbs in engine, and this problem don't produce any more.
just like this
image
image

but i'm not sure if it is good method to fix this issue.

Steps To Reproduce

create client engine firt, then create sever engine in one program, this use this client engine send request, request can't send any more.

Relevant log output

No response

[Bug]: Division-by-zero exception caused by return value of xqc_pacing_rate_calc()

What happened?

Function xqc_pacing_rate_calc() can returned 0 in some case (I encountered this problem once, not sure how to reproduce), and causing division-by-zero exception in xqc_pacing_time_until_send() at this line:

/ xqc_pacing_rate_calc(pacing);

Steps To Reproduce

I encountered this problem once, not sure how to reproduce.

Relevant log output

No response

[Feature]: Proofreading RFC9001 zh | 校对 RFC9001 中文译稿

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

当前XQUIC项目组开源的译稿 draft-ietf-quic-tls-34-zh.md 是基于 ietf draft-34版本,与 RFC9001 内容基本一致。
在此基础上进行校对修正,提供正式的 RFC9001 中文译本。

Describe alternatives you've considered

No response

Additional context

No response

[Bug]: send stream packet 1Mbps get drop rate, the stream is unreliability and unstability

What happened?

1 Forward or schedule packet to xquic, send stream packet use function bellow
void client_network_send(void *out_data, size_t out_dlen) {
g_user_stream->send_body = out_data;
g_user_stream->send_body_len = out_dlen;
g_user_stream->send_offset = 0;
client_stream_send(g_user_stream->stream, g_user_stream);
}

2 Send iperf udp packet in limited bandwidth and get the packet lost

iperf -u -c 10.7.0.1 -b 1M -t 10 -p 6001 // drop rate 20%
iperf -u -c 10.7.0.1 -b 2M -t 10 -p 6001 // drop rate 50%

image

3 The stream transport is unreliability and unstability
3.1 server stream segmentation fault
image

3.2 server close stream actively
image

3.3 client stream segmentation fault
1650855941(1)

Steps To Reproduce

1 Forward or schedule packet to xquic
2 send packet with function client_network_send( )
3 use iperf test tool to detect the udp throughput
4 get some drop rate and unstability

Relevant log output

No response

[Bug]: Create socket failed in demo_client

What happened?

An error occurred with demo_client.

xquic/demo/demo_client.c

Lines 1274 to 1284 in 109918f

/* server ip */
case 'a':
printf("option addr :%s\n", optarg);
snprintf(args->net_cfg.server_addr, sizeof(args->net_cfg.server_addr), optarg);
break;
/* server port */
case 'p':
printf("option port :%s\n", optarg);
args->net_cfg.server_port = atoi(optarg);
break;

The code save IP and port in net_cfg.server_addr. But xqc_demo_cli_create_socket use net_cfg.addr create socket.

xquic/demo/demo_client.c

Lines 1919 to 1952 in 109918f

/* create one connection, send multi reqs in multi streams */
int
xqc_demo_cli_handle_task(xqc_demo_cli_ctx_t *ctx, xqc_demo_cli_task_t *task)
{
DEBUG;
/* create socket and connection callback user data */
xqc_demo_cli_user_conn_t *user_conn = calloc(1, sizeof(xqc_demo_cli_user_conn_t));
user_conn->ctx = ctx;
user_conn->task = task;
// printf(".. user_conn: %p, ctx: %p\n", user_conn, ctx);
user_conn->fd = xqc_demo_cli_create_socket(user_conn, &ctx->args->net_cfg);
if (user_conn->fd < 0) {
printf("xqc_create_socket error\n");
return -1;
}
/* socket event */
user_conn->ev_socket = event_new(ctx->eb, user_conn->fd, EV_READ | EV_PERSIST,
xqc_demo_cli_socket_event_callback, user_conn);
event_add(user_conn->ev_socket, NULL);
/* xquic timer */
user_conn->ev_timeout = event_new(ctx->eb, -1, 0, xqc_demo_cli_idle_callback, user_conn);
struct timeval tv;
tv.tv_sec = ctx->args->net_cfg.conn_timeout;
tv.tv_usec = 0;
event_add(user_conn->ev_timeout, &tv);
/* start client */
xqc_demo_cli_start(user_conn, ctx->args, task->reqs, task->req_cnt);
task->user_conn = user_conn;
return 0;
}

xquic/demo/demo_client.c

Lines 1883 to 1888 in 109918f

struct sockaddr *addr = (struct sockaddr*)&cfg->addr;
fd = socket(addr->sa_family, SOCK_DGRAM, 0);
if (fd < 0) {
printf("create socket failed, errno: %d\n", get_last_sys_errno());
return -1;
}

Steps To Reproduce

Compile with boringSSL on Linux platforms.

  1. Run ./demo_server -p 9998
  2. Run ./demo_client -p 9998 -a 127.0.0.1

Relevant log output

demo_client Output:

option port :9998
option addr :127.0.0.1
create socket failed, errno: 97
xqc_create_socket error
all tasks are finished, will break loop and exit
perror 97
OS error code  97:  Address family not supported by protocol

[Bug]: xqc_build.sh build iOS failed

What happened?

As discussions #21 , build iOS failed using xqc_build.sh

Steps To Reproduce

As discussions #21

macOS 11.4
Xcode 12.5
cmake version 3.21.2

1.export IOS_CMAKE_TOOLCHAIN="xx/xquic/cmake/ios.toolchain.cmake"
2. sh xqc_build.sh ios ios_build ios_release xxx/xquic/third_party/boringssl

output:
[ 1%] Generating crypto_test_data.cc
make[2]: *** No rule to make target xxx/xquic/bssl_symbols.txt', needed by third_party/boringssl/symbol_prefix_include/boringssl_prefix_symbols.h'. Stop.
make[1]: *** [third_party/boringssl/CMakeFiles/boringssl_prefix_symbols.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 1%] Building CXX object third_party/boringssl/CMakeFiles/boringssl_gtest.dir/third_party/googletest/src/gtest-all.cc.o
[ 1%] Building CXX object third_party/boringssl/CMakeFiles/crypto_test_data.dir/crypto_test_data.cc.o
[ 1%] Built target crypto_test_data
[ 1%] Linking CXX static library ../../outputs/libboringssl_gtest.a
[ 1%] Built target boringssl_gtest
make: *** [all] Error 2

Relevant log output

No response

[Bug]: demo_client&demo_server run error after compiling xquic following the readme

What happened?

The error message as follow:
---------------error msg begin----------------

  1. ./demo_server
    xqc_engine_create error

  2. ./demo_client
    create socket failed, errno: 97
    xqc_create_socket error
    all tasks are finished, will break loop and exit

---------------error msg end----------------
error analysis:
/* set client args to default values */
void
xqc_demo_cli_init_args(xqc_demo_cli_client_args_t *args)
{
memset(args, 0, sizeof(xqc_demo_cli_client_args_t));

/* net cfg */
args->net_cfg.conn_timeout = 30;
strncpy(args->net_cfg.server_addr, "127.0.0.1", sizeof(args->net_cfg.server_addr));
args->net_cfg.server_port = 8443;
((struct sockaddr*)&(args->net_cfg.addr))->sa_family = AF_INET;

Steps To Reproduce

demo_client&demo_server run error after compiling xquic following the readme, but not sh ../scripts/xquic_test.sh

Relevant log output

No response

[Bug]:congestion_control cb crash when xqc_connect

What happened?

msvc build:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build>vcvars64.bat
mkdir build & cd build
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug ..
nmake

test code:
xqc_conn_ssl_config_t conn_ssl_config;
memset(&conn_ssl_config, 0, sizeof(conn_ssl_config));
conn_ssl_config.session_ticket_data = NULL;
conn_ssl_config.transport_parameter_data = NULL;

user_conn->token = NULL;
user_conn->token_len = 0;

xqc_conn_settings_t conn_settings = {0};
conn_settings.pacing_on = 1;
conn_settings.ping_on = 0;
conn_settings.cong_ctrl_callback = xqc_bbr_cb;
conn_settings.cc_params.customize_on = 1;
conn_settings.cc_params.init_cwnd = 32;
conn_settings.cc_params.cc_optimization_flags = 0;
conn_settings.proto_version = XQC_VERSION_V1;
conn_settings.spurious_loss_detect_on = 0;
ASP_INFO("Note --> starting xqc_connect !");
const xqc_cid_t* cid = xqc_connect(user_conn->engine, &conn_settings, user_conn->token, user_conn->token_len,
                                   ASP_CERT_VERIFY_DOMAIN, ASP_XQUIC_ENCRYPT /* No crypt*/, &conn_ssl_config,
                                   user_conn->peer_addr, user_conn->peer_addrlen, XQC_ALPN_TRANSPORT, user_conn);

crash on: src/transport/xqc_send_ctl.c
xqc_send_ctl_create
if (conn->conn_settings.cong_ctrl_callback.xqc_cong_ctl_init_bbr) {
send_ctl->ctl_cong_callback = &conn->conn_settings.cong_ctrl_callback;

} else if (conn->conn_settings.cong_ctrl_callback.xqc_cong_ctl_init) {
    send_ctl->ctl_cong_callback = &conn->conn_settings.cong_ctrl_callback;

} else {
    send_ctl->ctl_cong_callback = &xqc_cubic_cb;
}

配置的是xqc_bbr_cb ,实际走的是else
send_ctl->ctl_cong_callback = &xqc_cubic_cb;
且在这句crash 了:
send_ctl->ctl_cong = xqc_pcalloc(conn->conn_pool, send_ctl->ctl_cong_callback->xqc_cong_ctl_size());
send_ctl->ctl_cong_callback->xqc_cong_ctl_size() 这个调用为空

Steps To Reproduce

Information and Steps to reproduce the behavior.
the same with what happended

Relevant log output

No response

[Feature]: Retry support

What happened?

Xquic client can't complete handshake with quic-go server.
Xquic was built with babassl, and it keep retrying when handshake with quic-go server.

Steps To Reproduce

Attached test client and server source file.
Client can get connect_create_notify called but connect_handshake_finished never got called.

thanks

xquic.zip

Relevant log output

No response

[Feature]: Provide an android example or integrate with curl etc.

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

Provide an android example or integrate with curl etc.
Provides java api like cronet, or integration with curl like other quic libraries
https://github.com/curl/curl/blob/master/docs/HTTP3.md

Describe alternatives you've considered

No response

Additional context

No response

如果贵司正在使用 XQUIC | Who is using XQUIC

如果您和您的公司或组织使用了XQUIC,非常感谢您的支持。

欢迎在此 Issue 下评论,留下公司或产品名,以及您使用XQUIC的反馈。我们希望听取社区的意见,学习更多的XQUIC使用场景,并吸引更多的人对XQUIC作出贡献。

推荐回复格式:

- 产品:
- 公司或组织:(如果可以)
- 你的联系方式:博客、电子邮件、微信或微博(如果可以)
- 你在什么业务场景中使用XQUIC:
- 你希望XQUIC在未来有什么样的功能:

感谢您的反馈!


Thanks sincerely for constantly using and supporting XQUIC.

You are welcome to leave replies about your product and organization here. We’d like to listen to the community, learn more XQUIC use scenarios for better planning, and attract more people to contribute to XQUIC.

Recommended reply format:

- Product:
- Company or Organization: (if any)
- Contact: blog, email, WeChat or Twitter (if any)
- Purpose or Scenario:
- Features wanted:

Thanks again for your participation!

test_client cannot connect with nginx-quic becauseof validate token failed

Discussed in #87

Originally posted by innocenceman February 16, 2022
What happened?
xquic client connect to nginx-quic failed, and there is a error "quic garbage token while handling initial packet" in error.log
xquic was built with boringssl, and the client is test_client, client show "conn errno:11" in the end.

Steps To Reproduce
download nginx-quic with version release-1.21.6, build and install it, run nginx
with nginx.conf:"listen 8443 http3 reuseport".
use test_client(command line: ./test_client -a xxx.xxx.xxx.xxx -p xxxx -G -l e -u https://www.xxxxx.com/) to request nginx-quic server.

thanks
xquic.zip

[Bug]: clarify the usage of test_client in different connections to different servers

What happened?

note the usage of local stored token, session ticket, transport parameter among connections to different servers with test_client.

Steps To Reproduce

connect to two servers of different implementations without deleting the token, session ticket, transport parameter, might cause the latter connection faulure.
this shall be mentioned in Testing-zh.md.

Relevant log output

No response

🏕 Alibaba Summer of Code (ASOC) 2022

🏕 Alibaba Summer of Code (ASOC) 2022

Welcome to the open-source world! If you haven't planned how to spend this summer, come to the Alibaba Summer of Code and code with us! 💻

Alibaba Summer of Code is a global program focused on engaging students directly in open source software development. Under the guidance of the mentor in the Alibaba open source project, students can experience software development in the real world. Alibaba Summer of code will begin from May 30th to September 1st. Students can use the summertime to participate in the open-source project and work with the core members of the project.

This is a master issue to track the progress and result of Alibaba Summer of Code 2022.

🎊 What you can get?

On this exclusive developer journey, students will have the opportunity to:

  • Participate in the top projects of the International Open Source Foundation;
  • Get a scholarship from Alibaba;
  • Obtain an open-source contributor certificate;
  • Get a fast pass of Alibaba Internship
  • Get your code adopted and used by the open-source project!

🥷🏻 Our Mentor

Wentao Chen (@lurker-Chen), ASoC Mentor, XQUIC Maintainer.
Yuanbo Zhang (@yuanbo-zhang), ASoC Mentor, XQUIC Maintainer.
Ruiqi Zhou (@ruiqizhou ), ASoC Mentor, XQUIC Maintainer.

⏱ Timeline

image

🚀 Apply Now!

  1. Browse open idea list here:
  • #175 Difficulty:Basic
  • #176 Difficulty:Basic
  • #177 Difficulty:Advance
  1. Upload your CV and project proposal via ASOC 2022 official website

🐚 Contact the Organizer

If you have any questions, visit the event website: opensource.alibaba.com/asoc2022

Email address: [email protected]


🏕 阿里巴巴编程之夏 (ASOC) 2022

欢迎来到开源世界! 如果你还没有计划如何度过这个夏天,那就来阿里巴巴编程之夏和我们一起编程吧! 💻

阿里巴巴编程之夏是一个全球性项目,专注于让学生直接参与开源软件开发。 在阿里巴巴开源项目导师的指导下,学生可以在现实世界中体验软件开发。

阿里巴巴代码之夏将于 5 月 30 日至 9 月 1 日开始。 学生可以利用暑期参与开源项目,与项目核心成员一起工作。

🎊 参与活动能获得什么?

在这个独家开发者之旅中,学生将有机会:

  • 参与国际开源基金会的顶级项目;
  • 获得阿里巴巴奖学金;
  • 获得开源贡献者证书;
  • 获得阿里巴巴实习快速通行证
  • 让你的代码被开源项目采纳和使用!

🥷🏻 活动导师

Wentao Chen (@lurker-Chen), ASoC Mentor, XQUIC Maintainer.
Yuanbo Zhang (@yuanbo-zhang), ASoC Mentor, XQUIC Maintainer.
Ruiqi Zhou (@ruiqizhou ), ASoC Mentor, XQUIC Maintainer.

⏱ 活动里程碑

image

🚀 立刻申请!

  1. 浏览如下课题列表:
  • #175 难度:基础
  • #176 难度:基础
  • #177 难度:进阶
  1. 通过ASOC 2022 官网上传您的简历和项目提案

🐚 联系主办方

如有任何问题,请访问活动网站:https://opensource.alibaba.com/asoc2022

邮箱:[email protected]

[Feature]: Proofreading RFC8999 zh | 校对 RFC8999 中文译稿

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

当前XQUIC项目组开源的译稿 draft-ietf-quic-invariants-13-zh.md 是基于 ietf draft-13版本,与 RFC8999 内容基本一致。
在此基础上进行校对修正,提供正式的 RFC8999 中文译本。

Describe alternatives you've considered

No response

Additional context

No response

[Bug]: clang: error: linker command failed with exit code 1 (use -v to see invocation)

What happened?

编译过程中出现如下错误,使用babassl跟boringssl的方式都会有相同的错误

电脑配置如下:
mac 11.5.2 (20G95)
Mac mini (2018)
3 GHz 六核Intel Core i5

错误信息如下:
ld: unknown option: --whole-archive
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libxquic.dylib] Error 1
make[1]: *** [CMakeFiles/xquic.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 90%] Built target xquic-static

详细如下图
screenshot-20220112-102810
.

Steps To Reproduce

按照QuickStart Guide的脚本进行编译,

注意:脚本中“cd ./third_party/babassl/” 应该是“cd ../third_party/babassl/”,不是一个点而是两个点

Relevant log output

No response

[ASOC2022]: XQUIC iOS 集成 demo

背景

目前XQUIC开源为纯C代码,提供了C层接口和IOS平台静态库打包脚本,demo方面目前已有C层参考。计划开发IOS平台demo供开发者参考,丰富XQUIC社区跨平台应用生态,帮助IOS开发者更好使用XQUIC库。涉及到的开发内容有:异步事件库、XQUIC接口、网络通信、IOS 应用开发。

产出要求

  • 学习 XQUIC 并理解接口使用
  • 完成 XQUIC iOS 适配开发
  • demo支持 QUIC/HTTP3 网络协议收发通信

ASOC 2022

build ios error

What happened?

when building ios on mac, will happen errors:
[ 18%] Built target xquic
[ 18%] Built target fipsmodule
[ 18%] Linking CXX static library ../../outputs/libboringssl_gtest.a
[ 18%] Built target boringssl_gtest
make: *** [all] Error 2
mac2014deiMac:xquic root#

Steps To Reproduce

编译环境:
mac版本:
macOs Catalina 10.15.7

xcode版本:
xcode 12.4

cmake --version
cmake version 3.23.0

make --version
GNU Make 3.81

gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/c++/4.2.1
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

go version
go version go1.18 darwin/amd64

运行命令:
./xqc_build.sh ios ./build_ios ./build_ios_a ./third_party/boringssl

xquic和boringssl版本:
当前最新版本,或者 1.11号之前的版本

运行脚本后出现错误:
mac2014deiMac:xquic root# ./xqc_build.sh ios ./build_ios ./build_ios_a ./third_party/boringssl
directory already exists
directory already exists
compiling xquic on armv7 arch
CMake Deprecation Warning at CMakeLists.txt:3 (cmake_minimum_required):
Compatibility with CMake < 2.8.12 will be removed from a future version of
CMake.

Update the VERSION argument value or use a ... suffix to tell
CMake that the project does not need compatibility with older versions.

-- [DEFAULTS] Enabling ARC support by default. ENABLE_ARC not provided!
-- [DEFAULTS] Hiding symbols visibility by default. ENABLE_VISIBILITY not provided!
-- [DEFAULTS] Using NON-strict compiler checks by default. ENABLE_STRICT_TRY_COMPILE not provided!
-- Configuring iphoneos build for platform: OS, architecture(s): armv7
-- Using SDK: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.4.sdk
-- Using C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- Using CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
-- Using libtool: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool
-- Using install name tool: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool
-- Autoconf target triple: armv7-apple-ios10.0
-- Using minimum deployment version: 10.0 (SDK version: 14.4)
-- Merging integrated CMake 3.14+ iOS,tvOS,watchOS,macOS toolchain(s) with this toolchain!
-- CMake version: 3.23.0
-- Using a data_ptr size of: 4
-- Bitcode: Disabled
-- ARC: Enabled
-- Hiding symbols: Enabled
-- The C compiler identification is AppleClang 12.0.0.12000032
-- The CXX compiler identification is AppleClang 12.0.0.12000032
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Perl: /usr/bin/perl (found version "5.18.4")
-- The ASM compiler identification is Clang with GNU-like command-line
-- Found assembler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/mac2014/Desktop/share/ios/xquic/build_ios
[ 1%] Generating crypto_test_data.cc
[ 1%] Built target global_target
[ 1%] Building CXX object third_party/boringssl/CMakeFiles/boringssl_gtest.dir/third_party/googletest/src/gtest-all.cc.o
[ 1%] Built target xquic_global
[ 1%] Generating vpaes-armv7.S
[ 1%] Building C object CMakeFiles/xquic.dir/src/http3/xqc_var_buf.c.o
[ 1%] Generating aesv8-armx.S
[ 2%] Building C object CMakeFiles/xquic.dir/src/http3/xqc_h3_conn.c.o
[ 2%] Generating armv4-mont.S
go: golang.org/x/[email protected]: Get "https://proxy.golang.org/golang.org/x/crypto/@v/v0.0.0-20210513164829-c07d793c2f9a.mod": x509: “proxy.golang.org” certificate is not standards compliant
go: golang.org/x/[email protected]: Get "https://proxy.golang.org/golang.org/x/crypto/@v/v0.0.0-20210513164829-c07d793c2f9a.mod": x509: “proxy.golang.org” certificate is not standards compliant
make[2]: *** [third_party/boringssl/crypto_test_data.cc] Error 1
make[2]: *** Deleting file `third_party/boringssl/crypto_test_data.cc'
make[1]: *** [third_party/boringssl/CMakeFiles/crypto_test_data.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 2%] Building C object CMakeFiles/xquic.dir/src/http3/xqc_h3_stream.c.o
[ 2%] Generating bsaes-armv7.S
[ 3%] Generating ghash-armv4.S
[ 3%] Building C object CMakeFiles/xquic.dir/src/http3/xqc_h3_request.c.o
[ 3%] Generating ghashv8-armx.S
[ 3%] Generating sha1-armv4-large.S
[ 3%] Generating sha256-armv4.S
[ 4%] Generating sha512-armv4.S
[ 4%] Building C object CMakeFiles/xquic.dir/src/http3/frame/xqc_h3_frame.c.o
[ 4%] Building C object CMakeFiles/xquic.dir/src/http3/xqc_h3_header.c.o
Scanning dependencies of target fipsmodule
[ 4%] Building C object third_party/boringssl/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
[ 4%] Building C object third_party/boringssl/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/fips_shared_support.c.o
[ 5%] Building C object CMakeFiles/xquic.dir/src/http3/xqc_h3_ctx.c.o
[ 5%] Building ASM object third_party/boringssl/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesv8-armx.S.o
[ 5%] Building C object CMakeFiles/xquic.dir/src/http3/xqc_h3_defs.c.o
[ 6%] Building ASM object third_party/boringssl/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/armv4-mont.S.o
[ 6%] Building C object CMakeFiles/xquic.dir/src/http3/qpack/xqc_qpack.c.o
[ 6%] Building C object CMakeFiles/xquic.dir/src/http3/qpack/xqc_prefixed_int.c.o
[ 6%] Building ASM object third_party/boringssl/crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bsaes-armv7.S.o
[ 6%] Building C object CMakeFiles/xquic.dir/src/http3/qpack/xqc_prefixed_str.c.o
[ 7%] Building C object CMakeFiles/xquic.dir/src/http3/qpack/xqc_decoder.c.o
[ 7%] Building ASM object third_party/boringssl/crypto/fipsmodule/CMakeFiles/fipsmodule.di
。。。。

[ 17%] Building C object CMakeFiles/xquic.dir/src/congestion_control/xqc_window_filter.c.o
[ 17%] Building C object CMakeFiles/xquic.dir/src/congestion_control/xqc_sample.c.o
[ 17%] Building C object CMakeFiles/xquic.dir/src/congestion_control/xqc_new_reno.c.o
[ 18%] Linking C static library outputs/libxquic.a
[ 18%] Built target xquic
[ 18%] Linking CXX static library ../../outputs/libboringssl_gtest.a
[ 18%] Built target fipsmodule
[ 18%] Built target boringssl_gtest
make: *** [all] Error 2
mac2014deiMac:xquic root#

CMakeError.log中显示:
Checking whether the ASM compiler is GNU using "--version" did not match "(GNU assembler)|(GCC)|(Free Software Foundation)":
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: x86_64-apple-darwin19.6.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

xquic.sh脚本中也已根据之前的讨论确认修改过:
if [ x"$platform" == xios ] ; then
if [ x"$IOS_CMAKE_TOOLCHAIN" == x ] ; then
echo "IOS_CMAKE_TOOLCHAIN MUST be defined"
exit 0
fi

archs=${ios_archs[@]} 
configures="-DSSL_TYPE=${ssl_type}
            -DSSL_PATH=${ssl_path}
            -DSSL_LIB_PATH=${ssl_lib_path}
            -DDEPLOYMENT_TARGET=10.0
            -DCMAKE_BUILD_TYPE=Minsizerel
            -DXQC_ENABLE_TESTING=OFF
            -DXQC_BUILD_SAMPLE=OFF
            -DGCOV=OFF
            -DCMAKE_TOOLCHAIN_FILE=${IOS_CMAKE_TOOLCHAIN}
            -DENABLE_BITCODE=0
            -DXQC_NO_SHARED=1"

generate_plat_spec() {
plat_spec=
if [ x"$platform" == xios ] ; then
plat_spec="-DARCHS=$1"
if [ x"$1" == xarmv7 ] ; then
plat_spec="$plat_spec -DPLATFORM=OS"
elif [ x"$1" == xarm64 ] ; then
plat_spec="$plat_spec -DPLATFORM=OS64"
elif [ x"$1" == xx86_64 ] ; then
plat_spec="$plat_spec -DPLATFORM=SIMULATOR64"
elif [ x"$1" == xi386 ] ; then
plat_spec="$plat_spec -DPLATFORM=SIMULATOR"
fi
else
plat_spec="-DANDROID_ABI=$1"
fi
echo $plat_spec
}

Relevant log output

No response

[Bug]: xqc_stream.c这里先添加pos到retry链表,紧接着马上删除pos,是否逻辑有问题?

What happened?

  int 

xqc_crypto_stream_send(xqc_stream_t *stream,
xqc_list_head_t *crypto_data_list, xqc_pkt_type_t pkt_type)
{
//process something

    /* client buffer initial level crypto data */
    if (c->conn_type == XQC_CONN_TYPE_CLIENT
        && stream->stream_encrypt_level == XQC_ENC_LEV_INIT)
    {
        xqc_list_add_tail(pos, &c->retry_crypto_data_buffer);
    }

    xqc_list_del(pos);
    xqc_free(buf);
}

Steps To Reproduce

是否是如下逻辑?
/* client buffer initial level crypto data */
if (c->conn_type == XQC_CONN_TYPE_CLIENT
&& stream->stream_encrypt_level == XQC_ENC_LEV_INIT)
{
xqc_list_add_tail(pos, &c->retry_crypto_data_buffer);
}
else
{
xqc_list_del(pos);
xqc_free(buf);
}

Relevant log output

No response

[Feature]: Whether COPA congestion control algorithm will be supported ?

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

COPA is a tunable delay-based congestion control algorithm designed at MIT. which is based on an objective function where the trade-off between throughput and delay can be configured via a user-specified parameter, delta. A higher value of delta makes COPA more sensitive to delays and provides lower throughput. A lower value of delta will provide more goodput at the cost of incurring more delays.

Describe alternatives you've considered

No response

Additional context

Copa: Practical Delay-Based Congestion Control for the Internet, Venkat Arun and Hari Balakrishnan
M.I.T. Computer Science and Artificial Intelligence Laboratory

[Feature]: support for windows

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

support for windows

Describe alternatives you've considered

No response

Additional context

No response

[Bug]: compile error on macos

What happened?

execute cmake -j failed
ld: unknown option: --whole-archive
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libxquic.dylib] Error 1
make[1]: *** [CMakeFiles/xquic.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Steps To Reproduce

  1. MacSs12.1; cmake version 3.22.0
  2. follow readme compile with borningssl
  3. execute cmake -j failed
    ld: unknown option: --whole-archive
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    make[2]: *** [libxquic.dylib] Error 1
    make[1]: *** [CMakeFiles/xquic.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....

Relevant log output

ld: unknown option: --whole-archive
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libxquic.dylib] Error 1
make[1]: *** [CMakeFiles/xquic.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 90%] Built target xquic-static
make: *** [all] Error 2

[ASOC2022]: XQUIC Android 集成 demo

背景

目前XQUIC开源为纯C协议栈编解码库,提供了C层接口和android平台动态库打包脚本,demo方面目前有C层参考。计划开发Android平台简单适配demo供开发者参考,丰富XQUIC社区跨平台应用生态,帮助Android开发者更好使用XQUIC库。涉及到的开发内容有:异步事件库、适配对接XQUIC接口、网络通信、JNI编程、JAVA层接口开发、Android 简单demo应用。

产出要求

  • 熟悉XQUIC demo和理解接口使用
  • 设计异步事件库网络通信框架并完成开发,并进行xquic适配开发
  • 完成JAVA层与C层的JNI桥接模块设计开发
  • demo支持QUIC/HTTP3网络协议收发通信

ASOC 2022

[Feature]: simple server/client without http3

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

Can provide some demo such as echo server/client which is not including http3.

Describe alternatives you've considered

No response

Additional context

No response

test_client with 0-RTT

Discussed in #97

Originally posted by EasyCoderWei February 21, 2022
I want to test HTTP3 with 0-RTT function, but I cann't find any options in test_client --help .
Does test_client tool support this ?

[Bug]: compile error on macos

What happened?

printf type error:

/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_request.c:183:60: error: format specifies type 'long long' but the argument has type 'ssize_t' (aka 'long') [-Werror,-Wformat]
PRINT_LOG("|send req error|ret:%"PRId64"", ret);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_defs.h:25:85: note: expanded from macro 'PRINT_LOG'
#define PRINT_LOG(format, ...) printf("%s|%d|"format"\n", FUNCTION, LINE, ##VA_ARGS)
~~~~~~ ^~~~~~~~~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_request.c:216:58: error: format specifies type 'unsigned long long' but the argument has type 'ssize_t' (aka 'long') [-Werror,-Wformat]
PRINT_LOG("|send request error|ret: %"PRIu64"|", ret);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_defs.h:25:85: note: expanded from macro 'PRINT_LOG'
#define PRINT_LOG(format, ...) printf("%s|%d|"format"\n", FUNCTION, LINE, ##VA_ARGS)
~~~~~~ ^~~~~~~~~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_request.c:271:60: error: format specifies type 'long long' but the argument has type 'ssize_t' (aka 'long') [-Werror,-Wformat]
PRINT_LOG("|xqc_stream_recv error %"PRId64"|", read);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_defs.h:25:85: note: expanded from macro 'PRINT_LOG'
#define PRINT_LOG(format, ...) printf("%s|%d|"format"\n", FUNCTION, LINE, ##VA_ARGS)
~~~~~~ ^~~~~~~~~~~
3 errors generated.
make[2]: *** [CMakeFiles/demo_server.dir/demo/xqc_hq_request.c.o] Error 1
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_request.c:183:60: error: format specifies type 'long long' but the argument has type 'ssize_t' (aka 'long') [-Werror,-Wformat]
PRINT_LOG("|send req error|ret:%"PRId64"", ret);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_defs.h:25:85: note: expanded from macro 'PRINT_LOG'
#define PRINT_LOG(format, ...) printf("%s|%d|"format"\n", FUNCTION, LINE, ##VA_ARGS)
~~~~~~ ^~~~~~~~~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_request.c:216:58: error: format specifies type 'unsigned long long' but the argument has type 'ssize_t' (aka 'long') [-Werror,-Wformat]
PRINT_LOG("|send request error|ret: %"PRIu64"|", ret);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_defs.h:25:85: note: expanded from macro 'PRINT_LOG'
#define PRINT_LOG(format, ...) printf("%s|%d|"format"\n", FUNCTION, LINE, ##VA_ARGS)
~~~~~~ ^~~~~~~~~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_request.c:271:60: error: format specifies type 'long long' but the argument has type 'ssize_t' (aka 'long') [-Werror,-Wformat]
PRINT_LOG("|xqc_stream_recv error %"PRId64"|", read);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
/Users/leg/Documents/GitHub/xquic/demo/xqc_hq_defs.h:25:85: note: expanded from macro 'PRINT_LOG'
#define PRINT_LOG(format, ...) printf("%s|%d|"format"\n", FUNCTION, LINE, ##VA_ARGS)
~~~~~~ ^~~~~~~~~~~

Steps To Reproduce

make on macos

Relevant log output

No response

XQUIC 开源之夏2022 项目上线!面向全球高校学生开放报名

活动介绍

开源之夏是开源软件供应链点亮计划下的暑期活动,由**科学院软件研究所与openEuler社区联合主办,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。

活动联合各大开源社区,针对开源项目的开发与维护提供mini任务,开放给全球高校学生报名申请。学生可自主选择感兴趣的项目进行申请,并在中选后获得社区资深开发者亲自指导的机会。项目成功结项并贡献给社区后,参与者将获得开源之夏活动奖金和结项证书。

活动官网:https://summer.iscas.ac.cn/

XQUIC 社区项目

此次 XQUIC 社区项目涵盖 基础协议栈能力拓展 和 网络诊断、故障排查工具及指引文档完善 。目前该活动已开放报名,XQUIC 社区欢迎对QUIC、网络技术、高性能网络传输等领域充满憧憬,喜爱开源、乐于接受挑战的同学选报 XQUIC 社区项目。

参与 XQUIC 社区 开源之夏2022 项目可以让你快速学习到高性能网络传输相关知识,让你与大牛导师一对一交流沟通,理解项目设计的精髓,同时还可以让你贡献的代码 Run Anywhere。此外,主办方还准备了丰厚的项目奖金等你来拿,简直要拿到手软。

申请攻略

4月21日-5月10日是社区上线项目阶段,同学们可以前往官网查看项目并与社区建立联络,提前开始了解项目了!学生报名通道已开启,进入官网,点击“学生登录”注册账号即可填报资料报名。

正式的项目申请将于5月21日开始,在此之前,学生都可以就感兴趣的项目与社区导师进行沟通,更好地理解项目,为撰写高质量的项目申请方案作准备。项目申请书将作为组委会审核的最重要标准。

学生指南:https://summer-ospp.ac.cn/help/student/

联系我们

为了方便高校同学与 XQUIC 社区项目导师进行及时交流,欢迎加入钉钉群:41225500

image

Now, I do the performance test according to the test_server and test_client, but some problems encountered.

Now, I do the performance test according to the test_server and test_client, but some problems encountered.

test_client: ret = xqc_stream_send(stream, user_stream->send_body, user_stream->send_body_len, 0);
test_server: read = xqc_stream_recv(stream, buff, buff_size, &fin);
test_server<------------------------------test_client

But it's exited according to timeout when send one user data from test_client to test_server.

Originally posted by @wangweiwei1188 in #138

The official performance data is?

[Bug]: xqc_bbr.c comments or source code error

What happened?

xqc_bbr.c line70~71
/* keep minrtt valid for 10s if it has not been changed */
const uint32_t xqc_bbr2_minrtt_win_size_us = 3000000;

Steps To Reproduce

just view source code, compare comments or source code

Relevant log output

No response

[ASOC2022]: 多路径QUIC调度算法

背景

https://datatracker.ietf.org/doc/html/draft-lmbdhk-quic-multipath#section-6
Multipath QUIC implementations also need to include a packet scheduler that decides, among the paths whose congestion window is open, the path over which the next QUIC packet will be sent. Many factors can influence the definition of these algorithms and their precise definition is outside the scope of this document. Various packet schedulers have been proposed and implemented, notably for Multipath TCP. A companion draft [I-D.bonaventure-iccrg-schedulers] provides several general-purpose packet schedulers depending on the application goals.

数据包调度是MPQUIC设计最核心的部分之一,数据包调度器负责确定每个数据包应该由哪个路径(子流)进行发送。本项目要求在XQUIC开源的多路径QUIC实现(XLINK)基础上,实现一套或多套多路径QUIC调度算法(可参考 BLEST、ECF、MuSher、DEMS、STMS、RAVEN 等)。

产出要求

  • 能够在导师的指导下熟悉并理解相关的代码
  • 调研MPQUIC调度算法,理解其原理
  • 选择一个MPQUIC调度算法进行实现

ASOC 2022

when will xquic support windows?

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

when will xquic support windows?
I want to use xquic to trasnfer file in windows exe.

Describe alternatives you've considered

No response

Additional context

No response

[Bug]: test_client need remove test_session(file) when changing host of url

What happened?

test_client need remove test_session(file) when changing host of url

Steps To Reproduce

Information and Steps to reproduce the behavior.

  1. ./test_client -u "https://aaa.dinoflare.net/1M" -G -a 11.158.253.151 -p 443 (success)
  2. ./test_client -u "https://bbb.dinoflare.net/1M" -G -a 11.158.253.151 -p 443 (failed)

Relevant log output

[2022/01/22 11:40:10 794833] [info] |xqc_tls_ctx_create|set cipher suites suc|ciphers:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
[2022/01/22 11:40:10 794899] [info] |xqc_tls_ctx_register_alpn|alpn registered|alpn:h3-29|alpn_list:^Eh3-29
[2022/01/22 11:40:10 794905] [info] |xqc_engine_add_alpn|alpn registered|alpn:h3-29|
[2022/01/22 11:40:10 794909] [info] |xqc_tls_ctx_register_alpn|alpn registered|alpn:h3|alpn_list:^Eh3-29^Bh3
[2022/01/22 11:40:10 794912] [info] |xqc_engine_add_alpn|alpn registered|alpn:h3|
[2022/01/22 11:40:10 794918] [info] |xqc_tls_ctx_register_alpn|alpn registered|alpn:transport|alpn_list:^Eh3-29^Bh3 transport
[2022/01/22 11:40:10 794921] [info] |xqc_engine_add_alpn|alpn registered|alpn:transport|
[2022/01/22 11:40:10 795417] [debug] |scid:f9f11c4e926737a5|xqc_send_ctl_timer_set|type:IDLE|expire:1642822820795411|now:1642822810795411|interv:10000000|
[2022/01/22 11:40:10 795441] [debug] |scid:f9f11c4e926737a5|xqc_conn_create|success|scid:f9f11c4e926737a5|dcid:aea89fff4f4185d8|conn:00000000012E7110|
[2022/01/22 11:40:10 795447] [debug] |scid:f9f11c4e926737a5|xqc_create_crypto_stream|encrypt_level:0|cur_state:C_INIT|
[2022/01/22 11:40:10 795935] [error] |scid:f9f11c4e926737a5|xqc_tls_send_alert|ssl alert|level:0|alert:80|error:error:142120E7:SSL routines:tls_construct_ctos_early_data:inconsistent early data sni
[2022/01/22 11:40:10 795948] [error] |scid:f9f11c4e926737a5|xqc_conn_tls_error_cb|tls error|0x50|
[2022/01/22 11:40:10 795953] [error] |scid:f9f11c4e926737a5|xqc_conn_tls_error_cb|conn:00000000012E7110|err:0x150|addr or cid not avail|
[2022/01/22 11:40:10 795960] [error] |scid:f9f11c4e926737a5|xqc_tls_do_handshake|TLS handshake error:error:1424A044:SSL routines:write_state_machine:internal error|
[2022/01/22 11:40:10 795964] [error] |scid:f9f11c4e926737a5|xqc_client_create_tls|init tls error
[2022/01/22 11:40:10 795967] [error] |scid:f9f11c4e926737a5|xqc_conn_destroy|in XQC_CONN_FLAG_TICKING|00000000012E7110|
[2022/01/22 11:40:10 795970] [error] |xqc_client_connect|create connection error|
[2022/01/22 11:40:10 795973] [error] |xqc_h3_connect|xqc_client_connect error|
[2022/01/22 11:40:10 796011] [debug] |xqc_engine_destroy|begin|
[2022/01/22 11:40:10 796016] [report] |scid:f9f11c4e926737a5|xqc_conn_destroy|00000000012E7110|srtt:250000|retrans rate:0.0000|send_count:0|lost_count:0|tlp_count:0|spurious_loss_count:0|recv_count:0|has_0rtt:0|0rtt_accept:0|token_ok:-1|handshake_time:0|first_send_delay:0|conn_persist:606|err:0x150|addr or cid not avail|
[2022/01/22 11:40:10 796023] [debug] |scid:f9f11c4e926737a5|xqc_send_ctl_destroy|destroy|

[Feature]: tengine module support

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

//TODO

Describe alternatives you've considered

No response

Additional context

No response

[Feature]: FEC/RED functionality in the future?

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

reference to RFC 2198、RFC 2733

Describe alternatives you've considered

No response

Additional context

No response

[Feature]: Proofreading RFC9002 zh | 校对 RFC9002 中文译稿

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

当前XQUIC项目组开源的译稿 draft-ietf-quic-recovery-34-zh.md 是基于 ietf draft-34版本,与 RFC9002 内容基本一致。
在此基础上进行校对修正,提供正式的 RFC9002 中文译本。

Describe alternatives you've considered

No response

Additional context

No response

[Feature]: add specifications for interop demo

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

the contents under original demo directory is always misunderstood, redefine it as interop

Describe alternatives you've considered

No response

Additional context

No response

[Bug]: build error

What happened?

Build error happens when I run "make -j"

Steps To Reproduce

Follow the README

Relevant log output

ld: unknown option: --whole-archive
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [libxquic.dylib] Error 1
make[1]: *** [CMakeFiles/xquic.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 90%] Built target xquic-static
make: *** [all] Error 2

[Bug]:xquic在windows下编译有错误

What happened?

按照最新版本的xquic中的platforms中在win10 64位上编译xquic,一直都报错,无法解决

Steps To Reproduce

windows环境:
Win10 64位系统

软件版本:
Go:1.18.1
Cmake:3.23.1
Nasm:2.15
Visual studio:2017
因为环境不联网,没有办法下载安装vcpkg,从而libevent是自己离线安装的

编译步骤:
(1) 编译boringssl
当前下载的是4.23号的master分支代码,使用的是vs2017下的命令行提示符
如果按照platforms下的命令运行,
cmake -DCMAKE_GENERATOR_PLATFORM=x64 --config Debug -DBUILD_SHARED_LIBS=0 -DCMAKE_C_FLAGS="-fPIC" -DCMAKE_CXX_FLAGS="-fPIC" ..
会报错,cmake error:unknown argument --config:

将config命令去掉,成功不报错

设置
set GO111MODULE=off
运行MSBuild.exe ALL_BUILD.vcxproj,生成lib

(2) 编译xquic
运行命令:
cmake -DSSL_TYPE=boringssl -DCMAKE_BUILD_TYPE=Debug -G "Visual Studio 15 2017 Win64" ..
不报错
继续运行:
MSBuild.exe ALL_BUILD.vcxproj
会报一堆无法解析的错误
22

Relevant log output

No response

[Feature]: when will xquic support windows?

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

I need xquic support windows platform.

Describe alternatives you've considered

No response

Additional context

No response

[Feature]: Provide examples of running test_server and test_client

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

  1. Many users try to use demo_server and demo_client, which are used for interoperability testing. #10
    I think the "demo" caused confusion for users. They can use test_client and test_server, not demo_server and demo_client.

  2. Need examples and detailed instructions on how to use test_client and test_server.

Describe alternatives you've considered

No response

Additional context

No response

[Bug]: send stream fragment packet, drop rate 75%

What happened?

1 Forward or schedule packet to xquic, send stream packet use function bellow
void client_network_send(void *out_data, size_t out_dlen) {
g_user_stream->send_body = out_data;
g_user_stream->send_body_len = out_dlen;
g_user_stream->send_offset = 0;
client_stream_send(g_user_stream->stream, g_user_stream);
}

2 Send packet fragmentation would makes packet drop

3 Looks like transport stream packets have scheduling issue

Steps To Reproduce

1 forward or schedule packet to xquic
2 send packet with function client_network_send( )
3 send packet with fragmentation gets packet drop

Relevant log output

No response

[Feature]: quic tunnel support (masque)

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

//TODO

Describe alternatives you've considered

No response

Additional context

No response

[Bug]: demo_client segment fault

What happened?

segment fault occurs when i use demo_client to test

Steps To Reproduce

according to Usage: demo_client [Options]
./demo_client -a 127.0.0.1 -p 1443 -l d -L pwd/log -U http://t.com/return

Relevant log output

Program received signal SIGSEGV, Segmentation fault.
0x00005555555a563b in xqc_demo_cli_parse_server_addr (url=0x7ffff67c1754 "http://t.com/return", cfg=0x7ffff6740010) at /home/weijx/xquic-main/demo/demo_client.c:1193
1193 memcpy(&cfg->addr, result->ai_addr, result->ai_addrlen);
(gdb) bt
#0 0x00005555555a563b in xqc_demo_cli_parse_server_addr (url=0x7ffff67c1754 "http://t.com/return", cfg=0x7ffff6740010) at /home/weijx/xquic-main/demo/demo_client.c:1193
#1 0x00005555555a5856 in xqc_demo_cli_parse_urls (urls=0x7fffffffe7b1 "http://t.com/return", args=0x7ffff6740010) at /home/weijx/xquic-main/demo/demo_client.c:1229
#2 0x00005555555a5d25 in xqc_demo_cli_parse_args (argc=11, argv=0x7fffffffe4b8, args=0x7ffff6740010) at /home/weijx/xquic-main/demo/demo_client.c:1393
#3 0x00005555555a7912 in main (argc=11, argv=0x7fffffffe4b8) at /home/weijx/xquic-main/demo/demo_client.c:2132

No response

[Bug]: xquic client continue retry handshake with quic-go server

What happened?

A clear and concise description of what the bug is.

Steps To Reproduce

Information and Steps to reproduce the behavior.

Relevant log output

[2022/01/14 10:46:13 695052] [info] |xqc_tls_ctx_create|set cipher suites suc|ciphers:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
[2022/01/14 10:46:13 699479] [info] |xqc_tls_ctx_register_alpn|alpn registered|alpn:transport|alpn_list:	transport
[2022/01/14 10:46:13 699500] [info] |xqc_engine_add_alpn|alpn registered|alpn:transport|
[2022/01/14 10:46:13 699665] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:IDLE|expire:1642157183699656|now:1642157173699656|interv:10000000|
[2022/01/14 10:46:13 699679] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:IDLE|expire:1642157183699656|interv:10000000|
[2022/01/14 10:46:13 699703] [rec_parameters_set] |scid:3bdda4c0438ad3a8|xqc_send_ctl_create|reordering_packet_threshold:3|reordering_time_threshold_shift:3|
[2022/01/14 10:46:13 699732] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_create|success|scid:3bdda4c0438ad3a8|dcid:5d63ac8ffa079819|conn:00000000018A2C40|
[2022/01/14 10:46:13 699745] [tra_parameters_set] |scid:3bdda4c0438ad3a8|xqc_conn_create|local|migration:1|max_idle_timeout:120000|max_udp_payload_size:1500|active_connection_id_limit:8|max_data:0|
[2022/01/14 10:46:13 699762] [debug] |scid:3bdda4c0438ad3a8|xqc_create_crypto_stream|encrypt_level:0|cur_state:C_INIT|
[2022/01/14 10:46:13 700009] [debug] |xqc_client_connect|xqc_connect|
[2022/01/14 10:46:13 700029] [connection_started] |scid:3bdda4c0438ad3a8|xqc_client_connect|remote|dst_ip:::1|dst_port:4242|scid:3bdda4c0438ad3a8|dcid:5d63ac8ffa079819|
[2022/01/14 10:46:13 700062] [debug] |xqc_engine_main_logic|
[2022/01/14 10:46:13 700075] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_main_logic|ticking|conn:00000000018A2C40|state:C_INIT|flag:TICKING UPPER_CONN_EXIST CANNOT_DESTROY |now:1642157173700072|
[2022/01/14 10:46:13 700088] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_process_conn|conn:00000000018A2C40|state:C_INIT|flag:TICKING UPPER_CONN_EXIST CANNOT_DESTROY |now:1642157173700086|
[2022/01/14 10:46:13 700104] [debug] |scid:3bdda4c0438ad3a8|xqc_process_crypto_write_streams|
[2022/01/14 10:46:13 700126] [info] |scid:3bdda4c0438ad3a8|xqc_crypto_stream_send|crypto send data|pkt_num:0|size:342|sent:312|pkt_type:INIT|frame:CRYPTO |now:1642157173700124|
[2022/01/14 10:46:13 700139] [debug] |scid:3bdda4c0438ad3a8|xqc_crypto_stream_on_write|encrypt_level:0|cur_state:C_INIT|next_state:C_INITIAL_SENT|
[2022/01/14 10:46:13 700219] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:13 700237] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:0|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:0|now:1642157173700171|
[2022/01/14 10:46:13 700248] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:0|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:13 700259] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:0|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:13 700271] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:0|applimit:0|
[2022/01/14 10:46:13 700280] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|Restart from idle|
[2022/01/14 10:46:13 700290] [congestion_state_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|new_state:restart|
[2022/01/14 10:46:13 700302] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 1200|
[2022/01/14 10:46:13 700313] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:13 700322] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:13 700332] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157174450171|now:1642157173700301|interv:749870|
[2022/01/14 10:46:13 700342] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157174450171|interv:749870|
[2022/01/14 10:46:13 700365] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157174450171|now:1642157173700301|interval:749870|pto_count:0|srtt:250000
[2022/01/14 10:46:13 700378] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_next_wakeup_time|wakeup_time:1642157174450171|
[2022/01/14 10:46:14 451172] [debug] |xqc_engine_main_logic|
[2022/01/14 10:46:14 451260] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_main_logic|ticking|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157174451251|
[2022/01/14 10:46:14 451297] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_process_conn|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157174451294|
[2022/01/14 10:46:14 451327] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|timer expired|type:LOSS_DETECTION|expire_time:1642157174450171|now:1642157174451294|
[2022/01/14 10:46:14 451360] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|expired|type:LOSS_DETECTION|expire_time:1642157174450171|
[2022/01/14 10:46:14 451392] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|loss_detection_timeout|
[2022/01/14 10:46:14 451422] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|send Probe pkts|conn:00000000018A2C40|bytes_in_flight:1200|
[2022/01/14 10:46:14 451456] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 1200|
[2022/01/14 10:46:14 451490] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:14 451522] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:14 451554] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|send two ack-eliciting pkts|pns:0|
[2022/01/14 10:46:14 451593] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:14 451668] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:14 451713] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|xqc_send_ctl_set_loss_detection_timer|PTO|conn:00000000018A2C40|pto_count:1
[2022/01/14 10:46:14 451750] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157175951749|now:1642157174451747|interv:1500002|
[2022/01/14 10:46:14 451785] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157175951749|interv:1500002|
[2022/01/14 10:46:14 451818] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157175951749|now:1642157174451747|interval:1500002|pto_count:1|srtt:250000
[2022/01/14 10:46:14 451864] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:14 452056] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:14 452110] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:1|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:0|now:1642157174451957|
[2022/01/14 10:46:14 452145] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:1|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:14 452181] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:1|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:14 452218] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:0|applimit:0|
[2022/01/14 10:46:14 452289] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|Restart from idle|
[2022/01/14 10:46:14 452317] [congestion_state_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|new_state:restart|
[2022/01/14 10:46:14 452338] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 1200|
[2022/01/14 10:46:14 452357] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:14 452376] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:14 452394] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157175951957|now:1642157174452337|interv:1499620|
[2022/01/14 10:46:14 452414] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157175951957|interv:1499620|
[2022/01/14 10:46:14 452433] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157175951957|now:1642157174452337|interval:1499620|pto_count:1|srtt:250000
[2022/01/14 10:46:14 452457] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:14 452556] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:14 452602] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:2|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:1200|now:1642157174452505|
[2022/01/14 10:46:14 452641] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:2|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:14 452677] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:2|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:14 452730] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:1200|applimit:0|
[2022/01/14 10:46:14 452762] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 2400|
[2022/01/14 10:46:14 452793] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:14 452826] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:14 452857] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157175952505|now:1642157174452761|interv:1499744|
[2022/01/14 10:46:14 452890] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157175952505|interv:1499744|
[2022/01/14 10:46:14 452922] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157175952505|now:1642157174452761|interval:1499744|pto_count:1|srtt:250000
[2022/01/14 10:46:14 452963] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_next_wakeup_time|wakeup_time:1642157175952505|
[2022/01/14 10:46:15 955746] [debug] |xqc_engine_main_logic|
[2022/01/14 10:46:15 955840] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_main_logic|ticking|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157175955831|
[2022/01/14 10:46:15 955879] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_process_conn|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157175955876|
[2022/01/14 10:46:15 955913] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|timer expired|type:LOSS_DETECTION|expire_time:1642157175952505|now:1642157175955876|
[2022/01/14 10:46:15 955950] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|expired|type:LOSS_DETECTION|expire_time:1642157175952505|
[2022/01/14 10:46:15 956032] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|loss_detection_timeout|
[2022/01/14 10:46:15 956068] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|send Probe pkts|conn:00000000018A2C40|bytes_in_flight:2400|
[2022/01/14 10:46:15 956102] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 2400|
[2022/01/14 10:46:15 956134] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:15 956166] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:15 956198] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|send two ack-eliciting pkts|pns:0|
[2022/01/14 10:46:15 956235] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:15 956331] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:15 956371] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|xqc_send_ctl_set_loss_detection_timer|PTO|conn:00000000018A2C40|pto_count:2
[2022/01/14 10:46:15 956405] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 1200|
[2022/01/14 10:46:15 956437] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:15 956469] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:15 956504] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157177452505|now:1642157175956403|interv:1496102|
[2022/01/14 10:46:15 956540] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157177452505|interv:1496102|
[2022/01/14 10:46:15 956573] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157177452505|now:1642157175956403|interval:1496102|pto_count:2|srtt:250000
[2022/01/14 10:46:15 956620] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:15 956809] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:15 956863] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:3|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:1200|now:1642157175956713|
[2022/01/14 10:46:15 956898] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:3|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:15 956934] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:3|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:15 956970] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:1200|applimit:0|
[2022/01/14 10:46:15 957005] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 2400|
[2022/01/14 10:46:15 957038] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:15 957058] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:15 957076] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157177957003|now:1642157175957003|interv:2000000|
[2022/01/14 10:46:15 957096] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157177957003|interv:2000000|
[2022/01/14 10:46:15 957134] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157177957003|now:1642157175957003|interval:2000000|pto_count:2|srtt:250000
[2022/01/14 10:46:15 957159] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:15 957256] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:15 957305] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:4|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:2400|now:1642157175957206|
[2022/01/14 10:46:15 957343] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:4|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:15 957379] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:4|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:15 957419] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:2400|applimit:0|
[2022/01/14 10:46:15 957441] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 3600|
[2022/01/14 10:46:15 957460] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:15 957479] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:15 957497] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157177957440|now:1642157175957440|interv:2000000|
[2022/01/14 10:46:15 957516] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157177957440|interv:2000000|
[2022/01/14 10:46:15 957535] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157177957440|now:1642157175957440|interval:2000000|pto_count:2|srtt:250000
[2022/01/14 10:46:15 957559] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_next_wakeup_time|wakeup_time:1642157177957440|
[2022/01/14 10:46:17 959281] [debug] |xqc_engine_main_logic|
[2022/01/14 10:46:17 959357] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_main_logic|ticking|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157177959351|
[2022/01/14 10:46:17 959380] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_process_conn|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157177959379|
[2022/01/14 10:46:17 959399] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|timer expired|type:LOSS_DETECTION|expire_time:1642157177957440|now:1642157177959379|
[2022/01/14 10:46:17 959417] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|expired|type:LOSS_DETECTION|expire_time:1642157177957440|
[2022/01/14 10:46:17 959434] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|loss_detection_timeout|
[2022/01/14 10:46:17 959450] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|send Probe pkts|conn:00000000018A2C40|bytes_in_flight:3600|
[2022/01/14 10:46:17 959468] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 3600|
[2022/01/14 10:46:17 959485] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:17 959502] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:17 959518] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|send two ack-eliciting pkts|pns:0|
[2022/01/14 10:46:17 959539] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:17 959592] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:17 959625] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|xqc_send_ctl_set_loss_detection_timer|PTO|conn:00000000018A2C40|pto_count:3
[2022/01/14 10:46:17 959644] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 3600|
[2022/01/14 10:46:17 959660] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:17 959676] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:17 959693] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157179959643|now:1642157177959643|interv:2000000|
[2022/01/14 10:46:17 959710] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157179959643|interv:2000000|
[2022/01/14 10:46:17 959727] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157179959643|now:1642157177959643|interval:2000000|pto_count:3|srtt:250000
[2022/01/14 10:46:17 959752] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:17 959894] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:17 959935] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:5|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:3600|now:1642157177959807|
[2022/01/14 10:46:17 959967] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:5|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:17 959996] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:5|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:17 960029] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:3600|applimit:0|
[2022/01/14 10:46:17 960057] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 4800|
[2022/01/14 10:46:17 960084] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:17 960109] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:17 960128] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157179960056|now:1642157177960056|interv:2000000|
[2022/01/14 10:46:17 960145] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157179960056|interv:2000000|
[2022/01/14 10:46:17 960162] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157179960056|now:1642157177960056|interval:2000000|pto_count:3|srtt:250000
[2022/01/14 10:46:17 960183] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:17 960269] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:17 960310] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:6|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:4800|now:1642157177960226|
[2022/01/14 10:46:17 960356] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:6|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:17 960413] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:6|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:17 960432] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:4800|applimit:0|
[2022/01/14 10:46:17 960449] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 6000|
[2022/01/14 10:46:17 960465] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:17 960481] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:17 960498] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157179960448|now:1642157177960448|interv:2000000|
[2022/01/14 10:46:17 960515] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157179960448|interv:2000000|
[2022/01/14 10:46:17 960532] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157179960448|now:1642157177960448|interval:2000000|pto_count:3|srtt:250000
[2022/01/14 10:46:17 960553] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_next_wakeup_time|wakeup_time:1642157179960448|
[2022/01/14 10:46:19 963729] [debug] |xqc_engine_main_logic|
[2022/01/14 10:46:19 963819] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_main_logic|ticking|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157179963812|
[2022/01/14 10:46:19 963855] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_process_conn|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157179963852|
[2022/01/14 10:46:19 963887] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|timer expired|type:LOSS_DETECTION|expire_time:1642157179960448|now:1642157179963852|
[2022/01/14 10:46:19 963921] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|expired|type:LOSS_DETECTION|expire_time:1642157179960448|
[2022/01/14 10:46:19 963956] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|loss_detection_timeout|
[2022/01/14 10:46:19 963986] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|send Probe pkts|conn:00000000018A2C40|bytes_in_flight:6000|
[2022/01/14 10:46:19 964020] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 6000|
[2022/01/14 10:46:19 964053] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:19 964086] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:19 964117] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|send two ack-eliciting pkts|pns:0|
[2022/01/14 10:46:19 964156] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:19 964203] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:19 964279] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|xqc_send_ctl_set_loss_detection_timer|PTO|conn:00000000018A2C40|pto_count:4
[2022/01/14 10:46:19 964319] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 6000|
[2022/01/14 10:46:19 964349] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:19 964381] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:19 964412] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157181964317|now:1642157179964317|interv:2000000|
[2022/01/14 10:46:19 964480] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157181964317|interv:2000000|
[2022/01/14 10:46:19 964513] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157181964317|now:1642157179964317|interval:2000000|pto_count:4|srtt:250000
[2022/01/14 10:46:19 964559] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:19 964751] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:19 964792] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:7|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:6000|now:1642157179964658|
[2022/01/14 10:46:19 964829] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:7|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:19 964866] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:7|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:19 964901] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:6000|applimit:0|
[2022/01/14 10:46:19 964935] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 7200|
[2022/01/14 10:46:19 964967] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:19 964999] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:19 965031] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157181964933|now:1642157179964933|interv:2000000|
[2022/01/14 10:46:19 965065] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157181964933|interv:2000000|
[2022/01/14 10:46:19 965097] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157181964933|now:1642157179964933|interval:2000000|pto_count:4|srtt:250000
[2022/01/14 10:46:19 965138] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:19 965263] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:19 965300] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:8|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:7200|now:1642157179965215|
[2022/01/14 10:46:19 965335] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:8|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:19 965371] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:8|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:19 965405] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:7200|applimit:0|
[2022/01/14 10:46:19 965437] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 8400|
[2022/01/14 10:46:19 965468] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:19 965499] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:19 965531] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157181965436|now:1642157179965436|interv:2000000|
[2022/01/14 10:46:19 965591] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157181965436|interv:2000000|
[2022/01/14 10:46:19 965624] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157181965436|now:1642157179965436|interval:2000000|pto_count:4|srtt:250000
[2022/01/14 10:46:19 965663] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_next_wakeup_time|wakeup_time:1642157181965436|
[2022/01/14 10:46:21 967272] [debug] |xqc_engine_main_logic|
[2022/01/14 10:46:21 967371] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_main_logic|ticking|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157181967361|
[2022/01/14 10:46:21 967413] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_process_conn|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157181967410|
[2022/01/14 10:46:21 967445] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|timer expired|type:LOSS_DETECTION|expire_time:1642157181965436|now:1642157181967410|
[2022/01/14 10:46:21 967482] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|expired|type:LOSS_DETECTION|expire_time:1642157181965436|
[2022/01/14 10:46:21 967515] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|loss_detection_timeout|
[2022/01/14 10:46:21 967545] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|send Probe pkts|conn:00000000018A2C40|bytes_in_flight:8400|
[2022/01/14 10:46:21 967576] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 8400|
[2022/01/14 10:46:21 967611] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:21 967642] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:21 967674] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|send two ack-eliciting pkts|pns:0|
[2022/01/14 10:46:21 967712] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:21 967758] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000018A2C40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:46:21 967798] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_loss_detection_timeout|xqc_send_ctl_set_loss_detection_timer|PTO|conn:00000000018A2C40|pto_count:5
[2022/01/14 10:46:21 967833] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 8400|
[2022/01/14 10:46:21 967864] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:21 967896] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:21 967929] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157183967831|now:1642157181967831|interv:2000000|
[2022/01/14 10:46:21 967963] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157183967831|interv:2000000|
[2022/01/14 10:46:21 967996] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157183967831|now:1642157181967831|interval:2000000|pto_count:5|srtt:250000
[2022/01/14 10:46:21 968057] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:21 968253] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:21 968294] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:9|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:8400|now:1642157181968160|
[2022/01/14 10:46:21 968377] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:9|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:21 968416] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:9|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:21 968454] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:8400|applimit:0|
[2022/01/14 10:46:21 968487] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 9600|
[2022/01/14 10:46:21 968521] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:21 968552] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:21 968584] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157183968486|now:1642157181968486|interv:2000000|
[2022/01/14 10:46:21 968617] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157183968486|interv:2000000|
[2022/01/14 10:46:21 968650] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157183968486|now:1642157181968486|interval:2000000|pto_count:5|srtt:250000
[2022/01/14 10:46:21 968691] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_transmit_pto_probe_packets|conn:00000000018A2C40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:46:21 968815] [datagrams_sent] |scid:3bdda4c0438ad3a8|xqc_send|size:1216|
[2022/01/14 10:46:21 968854] [info] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|<==|conn:00000000018A2C40|pkt_num:10|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:9600|now:1642157181968767|
[2022/01/14 10:46:21 968890] [packet_sent] |scid:3bdda4c0438ad3a8|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:10|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:46:21 968927] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|conn:00000000018A2C40|pkt_num:10|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:46:21 968962] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_on_packet_sent|inflight:9600|applimit:0|
[2022/01/14 10:46:21 968996] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 0, unacked: 10800|
[2022/01/14 10:46:21 969027] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 1, unacked: 0|
[2022/01/14 10:46:21 969058] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_get_pto_time_and_space|conn:00000000018A2C40|PNS: 2, unacked: 0|
[2022/01/14 10:46:21 969090] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157183968994|now:1642157181968994|interv:2000000|
[2022/01/14 10:46:21 969122] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157183968994|interv:2000000|
[2022/01/14 10:46:21 969154] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000018A2C40|expire:1642157183968994|now:1642157181968994|interval:2000000|pto_count:5|srtt:250000
[2022/01/14 10:46:21 969194] [debug] |scid:3bdda4c0438ad3a8|xqc_conn_next_wakeup_time|wakeup_time:1642157183699656|
[2022/01/14 10:46:23 702082] [debug] |xqc_engine_main_logic|
[2022/01/14 10:46:23 702177] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_main_logic|ticking|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157183702168|
[2022/01/14 10:46:23 702213] [debug] |scid:3bdda4c0438ad3a8|xqc_engine_process_conn|conn:00000000018A2C40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST |now:1642157183702210|
[2022/01/14 10:46:23 702289] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|conn:00000000018A2C40|timer expired|type:IDLE|expire_time:1642157183699656|now:1642157183702210|
[2022/01/14 10:46:23 702325] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|expired|type:IDLE|expire_time:1642157183699656|
[2022/01/14 10:46:23 702357] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_expire|unset|type:IDLE|expire_time:1642157183699656|now:1642157183702210|
[2022/01/14 10:46:23 702394] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_unset|type:IDLE|
[2022/01/14 10:46:23 702429] [loss_timer_updated] |scid:3bdda4c0438ad3a8|xqc_send_ctl_timer_unset|cancel|type:IDLE|
[2022/01/14 10:46:23 702465] [report] |scid:3bdda4c0438ad3a8|xqc_conn_destroy|00000000018A2C40|srtt:250000|retrans rate:0.9091|send_count:11|lost_count:0|tlp_count:10|spurious_loss_count:0|recv_count:0|has_0rtt:0|0rtt_accept:0|token_ok:-1|handshake_time:0|first_send_delay:0|conn_persist:10002812|err:0x0|addr or cid not avail|
[2022/01/14 10:46:23 702520] [connection_closed] |scid:3bdda4c0438ad3a8|xqc_conn_destroy|err_code:0|
[2022/01/14 10:46:23 702621] [debug] |scid:3bdda4c0438ad3a8|xqc_send_ctl_destroy|destroy|
[2022/01/14 10:46:23 702834] [debug] |xqc_engine_destroy|begin|
[2022/01/14 10:47:24 253373] [info] |xqc_tls_ctx_create|set cipher suites suc|ciphers:TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
[2022/01/14 10:47:24 255591] [info] |xqc_tls_ctx_register_alpn|alpn registered|alpn:transport|alpn_list:	transport
[2022/01/14 10:47:24 255614] [info] |xqc_engine_add_alpn|alpn registered|alpn:transport|
[2022/01/14 10:47:24 255759] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:IDLE|expire:1642157254255749|now:1642157244255749|interv:10000000|
[2022/01/14 10:47:24 255772] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:IDLE|expire:1642157254255749|interv:10000000|
[2022/01/14 10:47:24 255788] [rec_parameters_set] |scid:beea546d16caa566|xqc_send_ctl_create|reordering_packet_threshold:3|reordering_time_threshold_shift:3|
[2022/01/14 10:47:24 255817] [debug] |scid:beea546d16caa566|xqc_conn_create|success|scid:beea546d16caa566|dcid:684b83d8fff6361a|conn:00000000009EBC40|
[2022/01/14 10:47:24 255829] [tra_parameters_set] |scid:beea546d16caa566|xqc_conn_create|local|migration:1|max_idle_timeout:120000|max_udp_payload_size:1500|active_connection_id_limit:8|max_data:0|
[2022/01/14 10:47:24 255842] [debug] |scid:beea546d16caa566|xqc_create_crypto_stream|encrypt_level:0|cur_state:C_INIT|
[2022/01/14 10:47:24 256098] [debug] |xqc_client_connect|xqc_connect|
[2022/01/14 10:47:24 256116] [connection_started] |scid:beea546d16caa566|xqc_client_connect|remote|dst_ip:::1|dst_port:4242|scid:beea546d16caa566|dcid:684b83d8fff6361a|
[2022/01/14 10:47:24 256148] [debug] |xqc_engine_main_logic|
[2022/01/14 10:47:24 256166] [debug] |scid:beea546d16caa566|xqc_engine_main_logic|ticking|conn:00000000009EBC40|state:C_INIT|flag:TICKING UPPER_CONN_EXIST CANNOT_DESTROY |now:1642157244256163|
[2022/01/14 10:47:24 256179] [debug] |scid:beea546d16caa566|xqc_engine_process_conn|conn:00000000009EBC40|state:C_INIT|flag:TICKING UPPER_CONN_EXIST CANNOT_DESTROY |now:1642157244256178|
[2022/01/14 10:47:24 256200] [debug] |scid:beea546d16caa566|xqc_process_crypto_write_streams|
[2022/01/14 10:47:24 256220] [info] |scid:beea546d16caa566|xqc_crypto_stream_send|crypto send data|pkt_num:0|size:342|sent:312|pkt_type:INIT|frame:CRYPTO |now:1642157244256218|
[2022/01/14 10:47:24 256237] [debug] |scid:beea546d16caa566|xqc_crypto_stream_on_write|encrypt_level:0|cur_state:C_INIT|next_state:C_INITIAL_SENT|
[2022/01/14 10:47:24 256306] [datagrams_sent] |scid:beea546d16caa566|xqc_send|size:1216|
[2022/01/14 10:47:24 256325] [info] |scid:beea546d16caa566|xqc_send_packet_with_pn|<==|conn:00000000009EBC40|pkt_num:0|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:0|now:1642157244256269|
[2022/01/14 10:47:24 256338] [packet_sent] |scid:beea546d16caa566|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:0|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:47:24 256361] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|conn:00000000009EBC40|pkt_num:0|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:47:24 256372] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|inflight:0|applimit:0|
[2022/01/14 10:47:24 256380] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|Restart from idle|
[2022/01/14 10:47:24 256389] [congestion_state_updated] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|new_state:restart|
[2022/01/14 10:47:24 256399] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 0, unacked: 1200|
[2022/01/14 10:47:24 256408] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 1, unacked: 0|
[2022/01/14 10:47:24 256417] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 2, unacked: 0|
[2022/01/14 10:47:24 256426] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157245006269|now:1642157244256398|interv:749871|
[2022/01/14 10:47:24 256437] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157245006269|interv:749871|
[2022/01/14 10:47:24 256446] [debug] |scid:beea546d16caa566|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000009EBC40|expire:1642157245006269|now:1642157244256398|interval:749871|pto_count:0|srtt:250000
[2022/01/14 10:47:24 256458] [debug] |scid:beea546d16caa566|xqc_conn_next_wakeup_time|wakeup_time:1642157245006269|
[2022/01/14 10:47:24 256642] [datagrams_received] |scid:beea546d16caa566|xqc_engine_packet_process|size:133|
[2022/01/14 10:47:24 256655] [info] |xqc_engine_packet_process|==>|conn:00000000009EBC40|size:133|state:C_INITIAL_SENT|recv_time:1642157244256639|
[2022/01/14 10:47:24 256663] [connection_started] |scid:beea546d16caa566|xqc_engine_packet_process|local|src_ip:::|src_port:44863|
[2022/01/14 10:47:24 256681] [debug] |scid:beea546d16caa566|xqc_packet_parse_retry|packet parse|retry|
[2022/01/14 10:47:24 256698] [debug] |scid:beea546d16caa566|xqc_packet_parse_retry|packet_parse_retry|original_dcid not match|
[2022/01/14 10:47:24 256705] [info] |scid:beea546d16caa566|xqc_conn_addr_validated|Address Validated|conn:00000000009EBC40|role:1|
[2022/01/14 10:47:24 256711] [info] |scid:beea546d16caa566|xqc_conn_on_pkt_processed|====>|conn:00000000009EBC40|size:133|pkt_type:RETRY|pkt_num:0|frame:|recv_time:1642157244256639|
[2022/01/14 10:47:24 256718] [packet_received] |scid:beea546d16caa566|xqc_conn_process_packet|pkt_pns:0|pkt_type:3|pkt_num:0|len:133|frame_flag:|
[2022/01/14 10:47:24 256725] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:IDLE|expire:1642157254256639|now:1642157244256639|interv:10000000|
[2022/01/14 10:47:24 256732] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:IDLE|expire:1642157254256639|interv:10000000|
[2022/01/14 10:47:24 256749] [debug] |xqc_engine_main_logic|
[2022/01/14 10:47:24 256766] [debug] |scid:beea546d16caa566|xqc_engine_main_logic|ticking|conn:00000000009EBC40|state:C_INITIAL_SENT|flag:WAIT_WAKEUP TICKING UPPER_CONN_EXIST ADDR_VALIDATED |now:1642157244256763|
[2022/01/14 10:47:24 256778] [debug] |scid:beea546d16caa566|xqc_engine_process_conn|conn:00000000009EBC40|state:C_INITIAL_SENT|flag:WAIT_WAKEUP TICKING UPPER_CONN_EXIST ADDR_VALIDATED |now:1642157244256776|
[2022/01/14 10:47:24 256791] [debug] |scid:beea546d16caa566|xqc_conn_next_wakeup_time|wakeup_time:1642157245006269|
[2022/01/14 10:47:25 007208] [debug] |xqc_engine_main_logic|
[2022/01/14 10:47:25 007289] [debug] |scid:beea546d16caa566|xqc_engine_main_logic|ticking|conn:00000000009EBC40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST ADDR_VALIDATED |now:1642157245007282|
[2022/01/14 10:47:25 007315] [debug] |scid:beea546d16caa566|xqc_engine_process_conn|conn:00000000009EBC40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST ADDR_VALIDATED |now:1642157245007313|
[2022/01/14 10:47:25 007364] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_expire|timer expired|type:LOSS_DETECTION|expire_time:1642157245006269|now:1642157245007313|
[2022/01/14 10:47:25 007386] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_expire|expired|type:LOSS_DETECTION|expire_time:1642157245006269|
[2022/01/14 10:47:25 007405] [debug] |scid:beea546d16caa566|xqc_send_ctl_loss_detection_timeout|loss_detection_timeout|
[2022/01/14 10:47:25 007424] [debug] |scid:beea546d16caa566|xqc_send_ctl_loss_detection_timeout|send Probe pkts|conn:00000000009EBC40|bytes_in_flight:1200|
[2022/01/14 10:47:25 007444] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 0, unacked: 1200|
[2022/01/14 10:47:25 007464] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 1, unacked: 0|
[2022/01/14 10:47:25 007482] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 2, unacked: 0|
[2022/01/14 10:47:25 007501] [debug] |scid:beea546d16caa566|xqc_conn_send_one_or_two_ack_elicit_pkts|send two ack-eliciting pkts|pns:0|
[2022/01/14 10:47:25 007524] [debug] |scid:beea546d16caa566|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000009EBC40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:47:25 007567] [debug] |scid:beea546d16caa566|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000009EBC40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:47:25 007590] [debug] |scid:beea546d16caa566|xqc_send_ctl_loss_detection_timeout|xqc_send_ctl_set_loss_detection_timer|PTO|conn:00000000009EBC40|pto_count:1
[2022/01/14 10:47:25 007612] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157246507611|now:1642157245007610|interv:1500001|
[2022/01/14 10:47:25 007632] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157246507611|interv:1500001|
[2022/01/14 10:47:25 007651] [debug] |scid:beea546d16caa566|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000009EBC40|expire:1642157246507611|now:1642157245007610|interval:1500001|pto_count:1|srtt:250000
[2022/01/14 10:47:25 007678] [debug] |scid:beea546d16caa566|xqc_conn_transmit_pto_probe_packets|conn:00000000009EBC40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:47:25 007808] [datagrams_sent] |scid:beea546d16caa566|xqc_send|size:1216|
[2022/01/14 10:47:25 007839] [info] |scid:beea546d16caa566|xqc_send_packet_with_pn|<==|conn:00000000009EBC40|pkt_num:1|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:0|now:1642157245007738|
[2022/01/14 10:47:25 007870] [packet_sent] |scid:beea546d16caa566|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:1|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:47:25 007902] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|conn:00000000009EBC40|pkt_num:1|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:47:25 007934] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|inflight:0|applimit:0|
[2022/01/14 10:47:25 007963] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|Restart from idle|
[2022/01/14 10:47:25 007990] [congestion_state_updated] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|new_state:restart|
[2022/01/14 10:47:25 008019] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 0, unacked: 1200|
[2022/01/14 10:47:25 008051] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 1, unacked: 0|
[2022/01/14 10:47:25 008080] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 2, unacked: 0|
[2022/01/14 10:47:25 008110] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157246507738|now:1642157245008018|interv:1499720|
[2022/01/14 10:47:25 008163] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157246507738|interv:1499720|
[2022/01/14 10:47:25 008196] [debug] |scid:beea546d16caa566|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000009EBC40|expire:1642157246507738|now:1642157245008018|interval:1499720|pto_count:1|srtt:250000
[2022/01/14 10:47:25 008234] [debug] |scid:beea546d16caa566|xqc_conn_transmit_pto_probe_packets|conn:00000000009EBC40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:47:25 008351] [datagrams_sent] |scid:beea546d16caa566|xqc_send|size:1216|
[2022/01/14 10:47:25 008401] [info] |scid:beea546d16caa566|xqc_send_packet_with_pn|<==|conn:00000000009EBC40|pkt_num:2|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:1200|now:1642157245008303|
[2022/01/14 10:47:25 008429] [packet_sent] |scid:beea546d16caa566|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:2|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:47:25 008458] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|conn:00000000009EBC40|pkt_num:2|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:47:25 008489] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|inflight:1200|applimit:0|
[2022/01/14 10:47:25 008517] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 0, unacked: 2400|
[2022/01/14 10:47:25 008536] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 1, unacked: 0|
[2022/01/14 10:47:25 008555] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 2, unacked: 0|
[2022/01/14 10:47:25 008586] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157246508303|now:1642157245008516|interv:1499787|
[2022/01/14 10:47:25 008605] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157246508303|interv:1499787|
[2022/01/14 10:47:25 008624] [debug] |scid:beea546d16caa566|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000009EBC40|expire:1642157246508303|now:1642157245008516|interval:1499787|pto_count:1|srtt:250000
[2022/01/14 10:47:25 008650] [debug] |scid:beea546d16caa566|xqc_conn_next_wakeup_time|wakeup_time:1642157246508303|
[2022/01/14 10:47:25 008704] [datagrams_received] |scid:beea546d16caa566|xqc_engine_packet_process|size:133|
[2022/01/14 10:47:25 008749] [info] |xqc_engine_packet_process|==>|conn:00000000009EBC40|size:133|state:C_INITIAL_SENT|recv_time:1642157245008699|
[2022/01/14 10:47:25 008780] [debug] |scid:beea546d16caa566|xqc_packet_parse_retry|packet parse|retry|
[2022/01/14 10:47:25 008799] [debug] |scid:beea546d16caa566|xqc_packet_parse_retry|retry_count exceed 1 return|
[2022/01/14 10:47:25 008820] [info] |scid:beea546d16caa566|xqc_conn_on_pkt_processed|====>|conn:00000000009EBC40|size:133|pkt_type:RETRY|pkt_num:0|frame:|recv_time:1642157245008699|
[2022/01/14 10:47:25 008841] [packet_received] |scid:beea546d16caa566|xqc_conn_process_packet|pkt_pns:0|pkt_type:3|pkt_num:0|len:133|frame_flag:|
[2022/01/14 10:47:25 008861] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:IDLE|expire:1642157255008699|now:1642157245008699|interv:10000000|
[2022/01/14 10:47:25 008880] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:IDLE|expire:1642157255008699|interv:10000000|
[2022/01/14 10:47:25 008907] [datagrams_received] |scid:beea546d16caa566|xqc_engine_packet_process|size:133|
[2022/01/14 10:47:25 008927] [info] |xqc_engine_packet_process|==>|conn:00000000009EBC40|size:133|state:C_INITIAL_SENT|recv_time:1642157245008905|
[2022/01/14 10:47:25 008972] [debug] |scid:beea546d16caa566|xqc_packet_parse_retry|packet parse|retry|
[2022/01/14 10:47:25 009018] [debug] |scid:beea546d16caa566|xqc_packet_parse_retry|retry_count exceed 1 return|
[2022/01/14 10:47:25 009039] [info] |scid:beea546d16caa566|xqc_conn_on_pkt_processed|====>|conn:00000000009EBC40|size:133|pkt_type:RETRY|pkt_num:0|frame:|recv_time:1642157245008905|
[2022/01/14 10:47:25 009059] [packet_received] |scid:beea546d16caa566|xqc_conn_process_packet|pkt_pns:0|pkt_type:3|pkt_num:0|len:133|frame_flag:|
[2022/01/14 10:47:25 009078] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:IDLE|expire:1642157255008905|now:1642157245008905|interv:10000000|
[2022/01/14 10:47:25 009097] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:IDLE|expire:1642157255008905|interv:10000000|
[2022/01/14 10:47:25 009143] [debug] |xqc_engine_main_logic|
[2022/01/14 10:47:25 009192] [debug] |scid:beea546d16caa566|xqc_engine_main_logic|ticking|conn:00000000009EBC40|state:C_INITIAL_SENT|flag:WAIT_WAKEUP TICKING UPPER_CONN_EXIST ADDR_VALIDATED |now:1642157245009190|
[2022/01/14 10:47:25 009199] [debug] |scid:beea546d16caa566|xqc_engine_process_conn|conn:00000000009EBC40|state:C_INITIAL_SENT|flag:WAIT_WAKEUP TICKING UPPER_CONN_EXIST ADDR_VALIDATED |now:1642157245009198|
[2022/01/14 10:47:25 009207] [debug] |scid:beea546d16caa566|xqc_conn_next_wakeup_time|wakeup_time:1642157246508303|
[2022/01/14 10:47:26 510795] [debug] |xqc_engine_main_logic|
[2022/01/14 10:47:26 510882] [debug] |scid:beea546d16caa566|xqc_engine_main_logic|ticking|conn:00000000009EBC40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST ADDR_VALIDATED |now:1642157246510875|
[2022/01/14 10:47:26 510908] [debug] |scid:beea546d16caa566|xqc_engine_process_conn|conn:00000000009EBC40|state:C_INITIAL_SENT|flag:TICKING UPPER_CONN_EXIST ADDR_VALIDATED |now:1642157246510906|
[2022/01/14 10:47:26 510929] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_expire|timer expired|type:LOSS_DETECTION|expire_time:1642157246508303|now:1642157246510906|
[2022/01/14 10:47:26 510950] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_expire|expired|type:LOSS_DETECTION|expire_time:1642157246508303|
[2022/01/14 10:47:26 510970] [debug] |scid:beea546d16caa566|xqc_send_ctl_loss_detection_timeout|loss_detection_timeout|
[2022/01/14 10:47:26 510989] [debug] |scid:beea546d16caa566|xqc_send_ctl_loss_detection_timeout|send Probe pkts|conn:00000000009EBC40|bytes_in_flight:2400|
[2022/01/14 10:47:26 511008] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 0, unacked: 2400|
[2022/01/14 10:47:26 511027] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 1, unacked: 0|
[2022/01/14 10:47:26 511047] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 2, unacked: 0|
[2022/01/14 10:47:26 511066] [debug] |scid:beea546d16caa566|xqc_conn_send_one_or_two_ack_elicit_pkts|send two ack-eliciting pkts|pns:0|
[2022/01/14 10:47:26 511088] [debug] |scid:beea546d16caa566|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000009EBC40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:47:26 511197] [debug] |scid:beea546d16caa566|xqc_conn_send_one_or_two_ack_elicit_pkts|conn:00000000009EBC40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|
[2022/01/14 10:47:26 511239] [debug] |scid:beea546d16caa566|xqc_send_ctl_loss_detection_timeout|xqc_send_ctl_set_loss_detection_timer|PTO|conn:00000000009EBC40|pto_count:2
[2022/01/14 10:47:26 511259] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 0, unacked: 1200|
[2022/01/14 10:47:26 511277] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 1, unacked: 0|
[2022/01/14 10:47:26 511295] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 2, unacked: 0|
[2022/01/14 10:47:26 511313] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157248008303|now:1642157246511258|interv:1497045|
[2022/01/14 10:47:26 511364] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157248008303|interv:1497045|
[2022/01/14 10:47:26 511397] [debug] |scid:beea546d16caa566|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000009EBC40|expire:1642157248008303|now:1642157246511258|interval:1497045|pto_count:2|srtt:250000
[2022/01/14 10:47:26 511440] [debug] |scid:beea546d16caa566|xqc_conn_transmit_pto_probe_packets|conn:00000000009EBC40|pkt_num:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:47:26 511603] [datagrams_sent] |scid:beea546d16caa566|xqc_send|size:1216|
[2022/01/14 10:47:26 511650] [info] |scid:beea546d16caa566|xqc_send_packet_with_pn|<==|conn:00000000009EBC40|pkt_num:3|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:1200|now:1642157246511536|
[2022/01/14 10:47:26 511685] [packet_sent] |scid:beea546d16caa566|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:3|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:47:26 511717] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|conn:00000000009EBC40|pkt_num:3|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:47:26 511751] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|inflight:1200|applimit:0|
[2022/01/14 10:47:26 511797] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 0, unacked: 2400|
[2022/01/14 10:47:26 511827] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 1, unacked: 0|
[2022/01/14 10:47:26 511857] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 2, unacked: 0|
[2022/01/14 10:47:26 511886] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157248511796|now:1642157246511796|interv:2000000|
[2022/01/14 10:47:26 511916] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157248511796|interv:2000000|
[2022/01/14 10:47:26 511947] [debug] |scid:beea546d16caa566|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000009EBC40|expire:1642157248511796|now:1642157246511796|interval:2000000|pto_count:2|srtt:250000
[2022/01/14 10:47:26 512005] [debug] |scid:beea546d16caa566|xqc_conn_transmit_pto_probe_packets|conn:00000000009EBC40|pkt_num:1|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |
[2022/01/14 10:47:26 512144] [datagrams_sent] |scid:beea546d16caa566|xqc_send|size:1216|
[2022/01/14 10:47:26 512193] [info] |scid:beea546d16caa566|xqc_send_packet_with_pn|<==|conn:00000000009EBC40|pkt_num:4|size:1200|sent:1216|pkt_type:INIT|frame:PADDING CRYPTO |inflight:2400|now:1642157246512103|
[2022/01/14 10:47:26 512228] [packet_sent] |scid:beea546d16caa566|xqc_send_packet_with_pn|pkt_pns:0|pkt_type:0|pkt_num:4|size:1200|frame_flag:PADDING CRYPTO |
[2022/01/14 10:47:26 512263] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|conn:00000000009EBC40|pkt_num:4|origin_pktnum:0|size:1200|pkt_type:INIT|frame:PADDING CRYPTO |conn_state:C_INITIAL_SENT|po_in_flight:0|
[2022/01/14 10:47:26 512296] [debug] |scid:beea546d16caa566|xqc_send_ctl_on_packet_sent|inflight:2400|applimit:0|
[2022/01/14 10:47:26 512328] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 0, unacked: 3600|
[2022/01/14 10:47:26 512358] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 1, unacked: 0|
[2022/01/14 10:47:26 512388] [debug] |scid:beea546d16caa566|xqc_send_ctl_get_pto_time_and_space|conn:00000000009EBC40|PNS: 2, unacked: 0|
[2022/01/14 10:47:26 512417] [debug] |scid:beea546d16caa566|xqc_send_ctl_timer_set|type:LOSS_DETECTION|expire:1642157248512327|now:1642157246512327|interv:2000000|
[2022/01/14 10:47:26 512447] [loss_timer_updated] |scid:beea546d16caa566|xqc_send_ctl_timer_set|set|type:LOSS_DETECTION|expire:1642157248512327|interv:2000000|
[2022/01/14 10:47:26 512512] [debug] |scid:beea546d16caa566|xqc_send_ctl_set_loss_detection_timer|xqc_send_ctl_timer_set|update|PTO|XQC_TIMER_LOSS_DETECTION|conn:00000000009EBC40|expire:1642157248512327|now:1642157246512327|interval:2000000|pto_count:2|srtt:250000
[2022/01/14 10:47:26 512551] [debug] |scid:beea546d16caa566|xqc_conn_next_wakeup_time|wakeup_time:1642157248512327|

[Feature]: hello retry request support

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

https://datatracker.ietf.org/doc/html/rfc9001#section-4.7

The HelloRetryRequest message (see Section 4.1.4 of [TLS13]) can be used to request that a client provide new information, such as a key share, or to validate some characteristic of the client. From the perspective of QUIC, HelloRetryRequest is not differentiated from other cryptographic handshake messages that are carried in Initial packets. Although it is in principle possible to use this feature for address verification, QUIC implementations SHOULD instead use the Retry feature; see Section 8.1 of [QUIC-TRANSPORT].

Describe alternatives you've considered

No response

Additional context

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.