56 lines · plain
1// SPDX-License-Identifier: GPL-2.02// basic zerocopy test:3//4// send a packet with MSG_ZEROCOPY and receive the notification ID5// repeat and verify IDs are consecutive6 7`./defaults.sh`8 9 0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 310 +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 011 +0 setsockopt(3, SOL_SOCKET, SO_ZEROCOPY, [1], 4) = 012 +0 bind(3, ..., ...) = 013 +0 listen(3, 1) = 014 15 +0 < S 0:0(0) win 32792 <mss 1000,sackOK,nop,nop,nop,wscale 7>16 +0 > S. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK,nop,wscale 8>17 +0 < . 1:1(0) ack 1 win 25718 19 +0 accept(3, ..., ...) = 420 21 +0 send(4, ..., 4000, MSG_ZEROCOPY) = 400022 +0 > P. 1:4001(4000) ack 123 +0 < . 1:1(0) ack 4001 win 25724 25 +0 recvmsg(4, {msg_name(...)=...,26 msg_iov(1)=[{...,0}],27 msg_flags=MSG_ERRQUEUE,28 msg_control=[29 {cmsg_level=CMSG_LEVEL_IP,30 cmsg_type=CMSG_TYPE_RECVERR,31 cmsg_data={ee_errno=0,32 ee_origin=SO_EE_ORIGIN_ZEROCOPY,33 ee_type=0,34 ee_code=SO_EE_CODE_ZEROCOPY_COPIED,35 ee_info=0,36 ee_data=0}}37 ]}, MSG_ERRQUEUE) = 038 39 +0 send(4, ..., 4000, MSG_ZEROCOPY) = 400040 +0 > P. 4001:8001(4000) ack 141 +0 < . 1:1(0) ack 8001 win 25742 43 +0 recvmsg(4, {msg_name(...)=...,44 msg_iov(1)=[{...,0}],45 msg_flags=MSG_ERRQUEUE,46 msg_control=[47 {cmsg_level=CMSG_LEVEL_IP,48 cmsg_type=CMSG_TYPE_RECVERR,49 cmsg_data={ee_errno=0,50 ee_origin=SO_EE_ORIGIN_ZEROCOPY,51 ee_type=0,52 ee_code=SO_EE_CODE_ZEROCOPY_COPIED,53 ee_info=1,54 ee_data=1}}55 ]}, MSG_ERRQUEUE) = 056