From 7f7f19e7c9ce84aae35823a0550b07e791ce12c3 Mon Sep 17 00:00:00 2001 From: HappyZ Date: Wed, 28 Sep 2016 15:19:49 -0700 Subject: [PATCH] add bypassl3 recv need to distinguish between other packets and raw socket ones --- .../BypassL3_recv/bypassl3_recv | Bin 45804 -> 0 bytes offloading_binaries/BypassL3_recv/main.c | 125 ------------ offloading_binaries/BypassL3_recv/main.o | Bin 3556 -> 0 bytes .../Makefile | 5 +- .../client_recv_bypassl3/client_recv_bypassl3 | Bin 0 -> 12924 bytes .../client_recv_bypassl3/main.c | 193 ++++++++++++++++++ .../client_recv_bypassl3/main.o | Bin 0 -> 4884 bytes offloading_binaries/makeall.sh | 2 + offloading_binaries/pushBinToDevice.sh | 2 + 9 files changed, 200 insertions(+), 127 deletions(-) delete mode 100755 offloading_binaries/BypassL3_recv/bypassl3_recv delete mode 100644 offloading_binaries/BypassL3_recv/main.c delete mode 100644 offloading_binaries/BypassL3_recv/main.o rename offloading_binaries/{BypassL3_recv => client_recv_bypassl3}/Makefile (73%) create mode 100755 offloading_binaries/client_recv_bypassl3/client_recv_bypassl3 create mode 100644 offloading_binaries/client_recv_bypassl3/main.c create mode 100644 offloading_binaries/client_recv_bypassl3/main.o diff --git a/offloading_binaries/BypassL3_recv/bypassl3_recv b/offloading_binaries/BypassL3_recv/bypassl3_recv deleted file mode 100755 index 2c01307dff44364aa9662d5fc786952c8e55c289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45804 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 -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define ETH_P_IP 0x0800 /* Internet Protocol packet */ -#define ETH_ALEN 6 /* from */ -#define ETH_P_ALL 0x0003 - -#define ETHER_TYPE 0x0800 /* Customize */ - -#define MY_DEST_MAC0 0xba -#define MY_DEST_MAC1 0xf6 -#define MY_DEST_MAC2 0xb1 -#define MY_DEST_MAC3 0x71 -#define MY_DEST_MAC4 0x09 -#define MY_DEST_MAC5 0x64 - -#define DEFAULT_IF "wlan0" -#define BUF_SIZ 8192 - -int main(int argc, char *argv[]) -{ - struct iovec iov; - int sockfd, socktrigger; - int sockopt; - struct ifreq ifopts; /* set promiscuous mode */ - struct ifreq if_ip; /* get ip addr */ - ssize_t numbytes; - int tx_len = 0; - char sendbuf[BUF_SIZ]; - struct ether_header *eh = (struct ether_header *) sendbuf; - struct iphdr *iph = (struct iphdr *) (sendbuf + sizeof(struct ether_header)); - struct sockaddr_ll socket_address; - struct sockaddr_in servaddr; - char ifName[IFNAMSIZ]; - int i, j, ret, sendsize=1500, packet_num, offset = 0, port = 32000; - int fd; /* file descriptor for file to send */ - struct timeval t_start,t_end; - - /* Get interface name */ - strcpy(ifName, DEFAULT_IF); - - if (argc > 1) - packet_num = atoi(argv[1])/sendsize; - else - packet_num = 166666; - - sockfd = socket(AF_INET, SOCK_DGRAM, 0); - bzero(&servaddr,sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr=inet_addr("128.111.68.220"); - servaddr.sin_port=htons(port); - sendto(sockfd, "0\n",strlen("0\n"),0, (struct sockaddr *)&servaddr, sizeof(servaddr)); - - - if ((sockfd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))) == -1) { - perror("listener: socket"); - return -1; - } - - strncpy(ifopts.ifr_name, ifName, IFNAMSIZ-1); - ioctl(sockfd, SIOCGIFFLAGS, &ifopts); - ifopts.ifr_flags |= IFF_PROMISC; - ioctl(sockfd, SIOCSIFFLAGS, &ifopts); - - if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &sockopt, sizeof sockopt) == -1) { - perror("setsockopt"); - close(sockfd); - exit(EXIT_FAILURE); - } - - if (setsockopt(sockfd, SOL_SOCKET, SO_BINDTODEVICE, ifName, IFNAMSIZ-1) == -1) { - perror("SO_BINDTODEVICE"); - close(sockfd); - exit(EXIT_FAILURE); - } - - - fd = open("/data/local/tmp/bigfile_w", O_WRONLY | O_CREAT | O_TRUNC); - if (fd == -1) { - fprintf(stderr, "unable to open the file.\n"); - exit(1); - } - - /* Recv packet */ - gettimeofday(&t_start, NULL); - for (i = 0; i < packet_num;) - { - - numbytes = recvfrom(sockfd, sendbuf, sendsize, 0, NULL, NULL); - //printf("listener: got packet %lu bytes\n", numbytes); - - if (sendbuf[50] == '0') - { - write(fd, sendbuf, sendsize); - i++; - } - else - { - usleep(100); - } - } - gettimeofday(&t_end, NULL); - printf("%lf\n", (t_end.tv_sec-t_start.tv_sec)*1000.0+(t_end.tv_usec-t_start.tv_usec)/1000.0); - - return 0; -} diff --git a/offloading_binaries/BypassL3_recv/main.o b/offloading_binaries/BypassL3_recv/main.o deleted file mode 100644 index b19ea68b8a868502f0e5a156ad256593074075f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3556 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 literal 0 HcmV?d00001 diff --git a/offloading_binaries/client_recv_bypassl3/main.c b/offloading_binaries/client_recv_bypassl3/main.c new file mode 100644 index 0000000..dbadfe4 --- /dev/null +++ b/offloading_binaries/client_recv_bypassl3/main.c @@ -0,0 +1,193 @@ +/* + * Initial commit by Yibo @ Jul. 28, 2015 + * Last update by Yanzi @ Sept. 28, 2016 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ETH_P_IP 0x0800 /* Internet Protocol packet */ +#define ETH_ALEN 6 /* from */ +#define ETH_P_ALL 0x0003 + +#define MY_DEST_MAC0 0x18 +#define MY_DEST_MAC1 0x03 +#define MY_DEST_MAC2 0x73 +#define MY_DEST_MAC3 0xc8 +#define MY_DEST_MAC4 0x86 +#define MY_DEST_MAC5 0x52 + +#define DEFAULT_IF "wlan0" +#define BUF_SIZ 65535 + +char isNumber(char number[]) +{ + int i = 0; + + //checking for negative numbers + if (number[0] == '-') + i = 1; + for (; number[i] != 0; i++) + { + //if (number[i] > '9' || number[i] < '0') + if (!isdigit(number[i])) + return 0; + } + return 1; +} + +int main(int argc, char *argv[]) +{ + // defaults + uint total_bytes_recv = 0; + // for timing + double elapsedTime; + struct timeval t_start, t_end, t_now; + // for socket + int i, j, fd; // file descriptor of file to send + int sockfd; // socket + int sockopt; + char recvbuf[BUF_SIZ]; + struct ifreq ifopts; + struct ifreq if_mac; + struct sockaddr_in servaddr; + char ifName[IFNAMSIZ]; + // for misc + int ret; + int recvsize = 1500; // 1500 MTU (raw socket) + int bytes2send = 0; + struct stat st; + unsigned char my_dest_mac[6]; + + if (argc < 3) + { + printf("Usage: %s <[optional] recvsize (bytes)> <[optional] interface> <[optional] filepath>\n", argv[0]); + exit(0); + } + + // set recvsize (if larger than 1460 will do packetization (fragmentation)) + if (argc > 3) + recvsize = atoi(argv[3]); + + // set interface + if (argc > 4) { + strcpy(ifName, argv[4]); + } else { + strcpy(ifName, DEFAULT_IF); + } + + // bind socket and send a trigger (UDP) + sockfd = socket(AF_INET, SOCK_DGRAM, 0); + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = inet_addr(argv[1]); + servaddr.sin_port = htons(atoi(argv[2])); + ret = sendto(sockfd, "!?=\n", 4, 0, (struct sockaddr *)&servaddr, sizeof(servaddr)); + if (ret <= 0) + { + printf("! Trigger the initialization"); + } + + if ((sockfd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL))) == -1) + { + fprintf(stderr, "! raw socket error.\n"); + exit(1); + } + + // Get the index of the interface to receive from + memset(&ifopts, 0, sizeof(struct ifreq)); + strncpy(ifopts.ifr_name, ifName, IFNAMSIZ-1); + if (ioctl(sockfd, SIOCGIFFLAGS, &ifopts) < 0) + { + fprintf(stderr, "! SIOCGIFFLAGS error. Check permission.\n"); + exit(EXIT_FAILURE); + } + ifopts.ifr_flags |= IFF_PROMISC; + if (ioctl(sockfd, SIOCSIFFLAGS, &ifopts) < 0) + { + fprintf(stderr, "! SIOCSIFFLAGS error. Check permission.\n"); + exit(EXIT_FAILURE); + } + + if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &sockopt, sizeof sockopt) == -1) { + fprintf(stderr, "! setsockopt error. \n"); + close(sockfd); + exit(EXIT_FAILURE); + } + + if (setsockopt(sockfd, SOL_SOCKET, SO_BINDTODEVICE, ifName, IFNAMSIZ-1) == -1) { + fprintf(stderr, "! SO_BINDTODEVICE error. \n"); + close(sockfd); + exit(EXIT_FAILURE); + } + + // if instrument to write to a file + if (argc > 5) + { + fd = open(argv[5], O_WRONLY | O_CREAT | O_TRUNC); + if (fd == -1) { + fprintf(stderr, "! Unable to open file %s.\n", argv[5]); + close(sockfd); + exit(1); + } + } + + // start timing + gettimeofday(&t_start, NULL); + + // start to receive + for (;;) + { + // TODO: need a method to distinguish between other packets and rawsocket packets + // printf("before: total_bytes_recv %d\n", total_bytes_recv); + ret = recvfrom(sockfd, recvbuf, recvsize, 0, NULL, NULL); + + if (ret <= 0) + { + if (errno == 0) + break; + fprintf(stderr, "! Fail to recv: ret:%d, err:%d; quiting..\n", ret, errno); + exit(1); + } + + // a "code" to indicate rawsocket is done + // printf("%d %d %d", (recvbuf[0] == '='), (recvbuf[1] == '?'), (recvbuf[0] == '!')); + if ((recvbuf[0] == '=') && (recvbuf[1] == '?') && (recvbuf[2] == '!')) + break; + + // write to file if specified filename + if (argc > 5) + write(fd, recvbuf, ret); + + // count how many bytes received + total_bytes_recv += ret; + printf("after: total_bytes_recv %d\n", total_bytes_recv); + } + + // end timing + gettimeofday(&t_end, NULL); + elapsedTime = (t_end.tv_sec - t_start.tv_sec) + (t_end.tv_usec - t_start.tv_usec) / 1000000.0; + printf( + "sent(bytes):%d\nduration(s):%lf\nthroughput(bps):%lf\n", + total_bytes_recv, elapsedTime, total_bytes_recv * 8 / elapsedTime); + + close(sockfd); + if (argc > 5) + close(fd); + + return 0; +} diff --git a/offloading_binaries/client_recv_bypassl3/main.o b/offloading_binaries/client_recv_bypassl3/main.o new file mode 100644 index 0000000000000000000000000000000000000000..7e34bcfbad1becdcaf21e448fb7e5626967ae4bb GIT binary patch literal 4884 zcma)AZ)jXu6+bUCscAa6({}2n$yje}vpdo4_!?6;8?(FlpVlT#G^rG;OkZYRl1JyC zZ(g>^f*7{>P;pC(jUZCVfPPrk{ZL9j$f6L~Pl`&wMPym9Gt<$!R;Z8*_txPz~#CnE$SNlBO%L(W=Sy14JJ+ffp8S)qwuS1D4VCq4NHk+z(lQzm(DR zYh||OmnX>nZF}3b8K7c`HqVuVcYpNo*!Jg2`k9k|2_YWs4-@4t{c)nK^_(k*U_Yt_ zs%kC{2CA!L>(yZYP53WX!tk;5;(E0O$aEB_WTU4JR~z83ndnz)O<;}m+toAAuU8wy z%?AyLArLN>{=L2ZSE6EtQOUA?0Qw&z`arF*eh7PG8yr8&w;*?l&pJWqAXmF|!mJ~1 z*X4eKeX)Ln^xcHKDI3gt=eb&Z0s7t}qHEP4^zVk>DA0e? z=B_j9Z|uxj7M~Ww`HR8wy_W{-e%(FlH&CO+N)RZht-5-89rbwg0iR=#_YWSQOANV* zaV_IK0;qw@N=}|z0CMjl#&>-&GQHOr4^puLzm))T!#?>u1bk{#;JRyl(k)|yPYrSr z#P`5mTl@1{$eCMju;HSt_mr#+g1msd%agfCAs_0DxK334KBMG3HaIs+5%`y}AulD) z1>$-;<%=r@{WDLA>;CEKlGb;vqRvd6&;8Ro=fknH-=_cLckA=J^TB>M-L?PD$J7RT z1I~!#IdlHFPD9uS=Y;pec@81ZMW5XxkX!QE<+%P=zB!MaKN7WiVn0Vg`+fBLe6&I) zvPU1>7aEcKHeX+ec<#-^L+fsQ5!6sb*3dKDf909-opj~VNA7fS9+5LbUvTHO`sbMa z`|Q)txxI$#iTN!Xs84Bg7<;evi5peMpv(c^r4Z@{Id*ltcj++hlFAMD2d*hRE3JL# zVfFQm+tq)Z+KDmji7_VH&_ioysFAF18BbK7cI)+_tBXD1-l!hA6Z3TS0X_;6ZQxtNH_$*71g@Yl^S1?hWi>u9 z1$@fTE)76_8s9dq zib5`V#dL&e+c`Tf^`_5G4vn219UUJSo0c3gv|uK$h`ecMtU>`6yt31Klr5MJyThiH zRd(1erY94FXU`AMOb(BH_3Y4yhuJPJWR2OhDV&_h<;|?%9V3nGy4SyI%Zt zdOK1tur~0E;+u=uadtk=vK@tHGUkxOUdTH}I^iZc!HS|I)l3C5>&V1Iw>h@o3@!Yje^-p z1E0Yb4bzylNE4Vgo}L+@eZeMezji1X(T-@(23oYET5H3xeH1S&XB=Y|=-4$}P&3$z zJLZx@@s!~h6rU{=C~oI!L^7AjU;`A-<{UGQfKC=1BYB1517Del8;)aJvx}%Hc=r$7 zlllnK-?!@oCV^eQ#+gRZdq#k889XCEjfCHXp3zA7P3ev>{%YVq3*@>roaGXjK*>lp!Pe^%1BfQR6*_HT#UBKz#GP2ImtPx$Ds`RIAjY^w<|vAwj9 z@69ROTk`S0<)c@9^ml#q_kHvoAN^w={kD(3=c9k-qu=wq z=zsd?u;)lQUz9PdY&=OPQe`Y%W0|i zF*ZIqI53`=937n=nMuqH433W^AX6CSw1kkSXasK%BYp@BGk${TIwLO824f4}DZD+= zqeK@O!T*r4mFQoL(4WGUWw}*G{E&N-5%%6cMyPJPT#HCB*-gNYNqH$mVF-}RGk$6$!*Ck#Cw#MLJ(s_xF#3hL<5?3W&m-wc{ zHHoyxfz+d0QN2TUWBvo!Py@&04jc{sS7oO!a*kS1J9si(eU@W2q~4`bChqvP#}+TJ zFCN@~ne{X|9Wtx~SMFeYTgnJlRD3;{^D@ix*g#-7-uhr3e*+Q~<4?Q+&tMrIU&e>n z@-BftET`TKUQ=@XUr%ZeyngTi9&w(?q2w6V9+>4o?iLmR^l^N=50sgkW3Rm+m`9Wm H@YVD`(QzwE literal 0 HcmV?d00001 diff --git a/offloading_binaries/makeall.sh b/offloading_binaries/makeall.sh index ed1b030..c2ae331 100644 --- a/offloading_binaries/makeall.sh +++ b/offloading_binaries/makeall.sh @@ -15,6 +15,8 @@ cd ../ # client receiver cd client_recv_normaltcp_splice && make cd ../ +cd client_recv_bypassl3 && make +cd ../ cd client_recv_normaltcp && make cd ../ cd client_recv_normaludp && make diff --git a/offloading_binaries/pushBinToDevice.sh b/offloading_binaries/pushBinToDevice.sh index 975fa02..03466bc 100755 --- a/offloading_binaries/pushBinToDevice.sh +++ b/offloading_binaries/pushBinToDevice.sh @@ -12,6 +12,8 @@ cd client_readfile_only && adb push client_readfile_only /data/local/tmp/ cd ../ cd client_recv_normaltcp_splice && adb push client_recv_normaltcp_splice /data/local/tmp/ cd ../ +cd client_recv_bypassl3 && adb push client_recv_bypassl3 /data/local/tmp/ +cd ../ cd client_recv_normaltcp && adb push client_recv_normaltcp /data/local/tmp/ cd ../ cd client_recv_normaludp && adb push client_recv_normaludp /data/local/tmp/