Merge "Update the QUIC packet format." am: 1dd1530647 am: 7240385821 am: fac58c092c
Original change: https://android-review.googlesource.com/c/platform/cts/+/1454515 Change-Id: I3d9799b5fcaf8b64500840c66f83a55ac89a8e50
This commit is contained in:
@@ -458,20 +458,16 @@ JNIEXPORT jint Java_android_net_cts_MultinetworkApiTest_runDatagramCheck(
|
|||||||
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &timeo, sizeof(timeo));
|
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &timeo, sizeof(timeo));
|
||||||
|
|
||||||
// For reference see:
|
// For reference see:
|
||||||
// https://tools.ietf.org/html/draft-tsvwg-quic-protocol#section-6.1
|
// https://datatracker.ietf.org/doc/html/draft-ietf-quic-invariants
|
||||||
uint8_t quic_packet[1200] = {
|
uint8_t quic_packet[1200] = {
|
||||||
0x0d, // public flags:
|
0xc0, // long header
|
||||||
// - version present (0x01),
|
0xaa, 0xda, 0xca, 0xca, // reserved-space version number
|
||||||
// - 64bit connection ID (0x0c),
|
0x08, // destination connection ID length
|
||||||
// - 1 byte packet number (0x00)
|
|
||||||
0, 0, 0, 0, 0, 0, 0, 0, // 64bit connection ID
|
0, 0, 0, 0, 0, 0, 0, 0, // 64bit connection ID
|
||||||
0xaa, 0xda, 0xca, 0xaa, // reserved-space version number
|
0x00, // source connection ID length
|
||||||
1, // 1 byte packet number
|
|
||||||
0x00, // private flags
|
|
||||||
0x07, // PING frame (cuz why not)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
arc4random_buf(quic_packet + 1, 8); // random connection ID
|
arc4random_buf(quic_packet + 6, 8); // random connection ID
|
||||||
|
|
||||||
uint8_t response[1500];
|
uint8_t response[1500];
|
||||||
ssize_t sent, rcvd;
|
ssize_t sent, rcvd;
|
||||||
@@ -496,7 +492,7 @@ JNIEXPORT jint Java_android_net_cts_MultinetworkApiTest_runDatagramCheck(
|
|||||||
i + 1, MAX_RETRIES, rcvd, errnum);
|
i + 1, MAX_RETRIES, rcvd, errnum);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (rcvd < 9) {
|
if (rcvd < 15) {
|
||||||
LOGD("QUIC UDP %s: sent=%zd but rcvd=%zd, errno=%d", kPort, sent, rcvd, errnum);
|
LOGD("QUIC UDP %s: sent=%zd but rcvd=%zd, errno=%d", kPort, sent, rcvd, errnum);
|
||||||
if (rcvd <= 0) {
|
if (rcvd <= 0) {
|
||||||
LOGD("Does this network block UDP port %s?", kPort);
|
LOGD("Does this network block UDP port %s?", kPort);
|
||||||
@@ -505,7 +501,7 @@ JNIEXPORT jint Java_android_net_cts_MultinetworkApiTest_runDatagramCheck(
|
|||||||
return -EPROTO;
|
return -EPROTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
int conn_id_cmp = memcmp(quic_packet + 1, response + 1, 8);
|
int conn_id_cmp = memcmp(quic_packet + 6, response + 7, 8);
|
||||||
if (conn_id_cmp != 0) {
|
if (conn_id_cmp != 0) {
|
||||||
LOGD("sent and received connection IDs do not match");
|
LOGD("sent and received connection IDs do not match");
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|||||||
Reference in New Issue
Block a user