Lines Matching +full:recv +full:- +full:empty

1 // SPDX-License-Identifier: GPL-2.0
111 fprintf(stderr, "Usage: mptcp_connect [-6] [-c cmsg] [-f offset] [-i file] [-I num] [-j] [-l] " in die_usage()
112 "[-m mode] [-M mark] [-o option] [-p port] [-P mode] [-r num] [-R num] " in die_usage()
113 "[-s MPTCP|TCP] [-S num] [-t num] [-T num] [-w sec] connect_address\n"); in die_usage()
114 fprintf(stderr, "\t-6 use ipv6\n"); in die_usage()
115 fprintf(stderr, "\t-c cmsg -- test cmsg type <cmsg>\n"); in die_usage()
116 fprintf(stderr, "\t-f offset -- stop the I/O after receiving and sending the specified amount " in die_usage()
120 fprintf(stderr, "\t-i file -- read the data to send from the given file instead of stdin"); in die_usage()
121 fprintf(stderr, "\t-I num -- repeat the transfer 'num' times. In listen mode accepts num " in die_usage()
123 fprintf(stderr, "\t-j -- add additional sleep at connection start and tear down " in die_usage()
124 "-- for MPJ tests\n"); in die_usage()
125 fprintf(stderr, "\t-l -- listens mode, accepts incoming connection\n"); in die_usage()
126 fprintf(stderr, "\t-m [poll|mmap|sendfile] -- use poll(default)/mmap+write/sendfile\n"); in die_usage()
127 fprintf(stderr, "\t-M mark -- set socket packet mark\n"); in die_usage()
128 fprintf(stderr, "\t-o option -- test sockopt <option>\n"); in die_usage()
129 fprintf(stderr, "\t-p num -- use port num\n"); in die_usage()
131 "\t-P [saveWithPeek|saveAfterPeek] -- save data with/after MSG_PEEK form tcp socket\n"); in die_usage()
132 fprintf(stderr, "\t-r num -- enable slow mode, limiting each write to num bytes " in die_usage()
133 "-- for remove addr tests\n"); in die_usage()
134 fprintf(stderr, "\t-R num -- set SO_RCVBUF to num\n"); in die_usage()
135 fprintf(stderr, "\t-s [MPTCP|TCP] -- use mptcp(default) or tcp sockets\n"); in die_usage()
136 fprintf(stderr, "\t-S num -- set SO_SNDBUF to num\n"); in die_usage()
137 fprintf(stderr, "\t-t num -- set poll timeout to num\n"); in die_usage()
138 fprintf(stderr, "\t-T num -- set expected runtime to num ms\n"); in die_usage()
139 fprintf(stderr, "\t-w num -- wait num sec before closing the socket\n"); in die_usage()
236 if (-1 == setsockopt(fd, SOL_IP, IP_TRANSPARENT, &one, sizeof(one))) in set_transparent()
240 if (-1 == setsockopt(fd, IPPROTO_IPV6, IPV6_TRANSPARENT, &one, sizeof(one))) in set_transparent()
250 if (setsockopt(fd, IPPROTO_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen)) == -1) in set_mptfo()
277 if (ret != -1) in sock_test_tcpulp()
282 if (ret != -1) in sock_test_tcpulp()
293 int sock = -1; in sock_listen_mptcp()
308 for (a = addr; a; a = a->ai_next) { in sock_listen_mptcp()
309 sock = socket(a->ai_family, a->ai_socktype, cfg_sock_proto); in sock_listen_mptcp()
315 if (-1 == setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &one, in sock_listen_mptcp()
325 if (bind(sock, a->ai_addr, a->ai_addrlen) == 0) in sock_listen_mptcp()
330 sock = -1; in sock_listen_mptcp()
345 return -1; in sock_listen_mptcp()
364 int sock = -1; in sock_connect_mptcp()
369 for (a = addr; a; a = a->ai_next) { in sock_connect_mptcp()
370 sock = socket(a->ai_family, a->ai_socktype, proto); in sock_connect_mptcp()
382 if (!winfo->total_len) in sock_connect_mptcp()
383 winfo->total_len = winfo->len = read(infd, winfo->buf, in sock_connect_mptcp()
384 sizeof(winfo->buf)); in sock_connect_mptcp()
386 syn_copied = sendto(sock, winfo->buf, winfo->len, MSG_FASTOPEN, in sock_connect_mptcp()
387 a->ai_addr, a->ai_addrlen); in sock_connect_mptcp()
389 winfo->off = syn_copied; in sock_connect_mptcp()
390 winfo->len -= syn_copied; in sock_connect_mptcp()
395 if (connect(sock, a->ai_addr, a->ai_addrlen) == 0) { in sock_connect_mptcp()
403 sock = -1; in sock_connect_mptcp()
407 sock = -1; in sock_connect_mptcp()
412 if (sock != -1) in sock_connect_mptcp()
457 bw = write(fd, buf + offset, len - offset); in do_write()
479 if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SO_TIMESTAMPNS_NEW) { in process_cmsg()
484 if (cmsg->cmsg_level == IPPROTO_TCP && cmsg->cmsg_type == TCP_CM_INQ) { in process_cmsg()
579 ret = recv(fd, buf, cap, MSG_PEEK); in do_rnd_read()
582 ret = recv(fd, buf, cap, MSG_PEEK); in do_rnd_read()
597 if (flags == -1) in set_nonblock()
637 case -1: in copyfd_io_poll()
655 rb = cfg_truncate - total_rlen; in copyfd_io_poll()
685 if (winfo->len == 0) { in copyfd_io_poll()
686 winfo->off = 0; in copyfd_io_poll()
687 winfo->len = read(infd, winfo->buf, sizeof(winfo->buf)); in copyfd_io_poll()
690 if (winfo->len > 0) { in copyfd_io_poll()
694 if (cfg_truncate > 0 && winfo->len + total_wlen > cfg_truncate) in copyfd_io_poll()
695 winfo->len = cfg_truncate - total_wlen; in copyfd_io_poll()
697 bw = do_rnd_write(peerfd, winfo->buf + winfo->off, winfo->len); in copyfd_io_poll()
705 winfo->off += bw; in copyfd_io_poll()
706 winfo->len -= bw; in copyfd_io_poll()
708 } else if (winfo->len == 0) { in copyfd_io_poll()
766 while (winfo->len) { in spool_buf()
767 int ret = write(fd, winfo->buf + winfo->off, winfo->len); in spool_buf()
773 winfo->off += ret; in spool_buf()
774 winfo->len -= ret; in spool_buf()
783 ssize_t ret = 0, off = winfo->total_len; in do_mmap()
795 rem = size - winfo->total_len; in do_mmap()
806 rem -= ret; in do_mmap()
822 return -1; in get_infd_size()
827 return -2; in get_infd_size()
833 return -3; in get_infd_size()
847 count -= winfo->total_len; in do_sendfile()
858 count -= r; in do_sendfile()
965 delta_ms = (end.tv_sec - start.tv_sec) * 1000 + (end.tv_nsec - start.tv_nsec) / 1000000; in copyfd_io()
992 if (!sin->sin_port) in check_sockaddr()
998 if (!sin6->sin6_port) in check_sockaddr()
1010 if (ss->ss_family != pf) in check_sockaddr()
1012 (int)ss->ss_family, pf); in check_sockaddr()
1089 case -1: in main_loop_s()
1123 if (--cfg_repeat > 0) in main_loop_s()
1133 if (getrandom(&foo, sizeof(foo), 0) == -1) { in init_rng()
1156 if (cmsg->timestampns) in apply_cmsg_types()
1158 if (cmsg->tcp_inq) in apply_cmsg_types()
1171 len = next - type; in parse_cmsg_types()
1197 len = next - name; in parse_setsock_options()
1219 struct sockaddr_storage addr, empty; in xdisconnect() local
1230 raw_addr = &(((struct sockaddr_in *)&addr)->sin_addr); in xdisconnect()
1232 raw_addr = &(((struct sockaddr_in6 *)&addr)->sin6_addr); in xdisconnect()
1236 strcpy(cmd, "ss -M | grep -q "); in xdisconnect()
1239 sizeof(cmd) - cmdlen)) in xdisconnect()
1259 memset(&empty, 0, sizeof(empty)); in xdisconnect()
1260 empty.ss_family = AF_UNSPEC; in xdisconnect()
1261 if (connect(fd, (struct sockaddr *)&empty, addrlen) < 0) in xdisconnect()
1306 } else if (--cfg_repeat > 0) { in main_loop()
1313 if (connect(fd, peer->ai_addr, peer->ai_addrlen)) in main_loop()
1354 fprintf(stderr, "\t\t\"poll\" - interleaved read/write using poll()\n"); in parse_mode()
1355 …fprintf(stderr, "\t\t\"mmap\" - send entire input file (mmap+write), then read response (-l will r… in parse_mode()
1356 …fprintf(stderr, "\t\t\"sendfile\" - send entire input file (sendfile), then read response (-l will… in parse_mode()
1374 "\t\t\"saveWithPeek\" - recv data with flags 'MSG_PEEK' and save the peek data into file\n"); in parse_peek()
1376 "\t\t\"saveAfterPeek\" - read and save data into file after recv with flags 'MSG_PEEK'\n"); in parse_peek()
1411 while ((c = getopt(argc, argv, "6c:f:hi:I:jlm:M:o:p:P:r:R:s:S:t:T:w:")) != -1) { in parse_opts()
1460 poll_timeout = -1; in parse_opts()