diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2015-11-23 12:52:44 +0300 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2015-12-04 21:33:42 +0300 |
commit | 343af33b08ebc83791fd57a1ccdef91ce1ac2a9e (patch) | |
tree | 335dc2f4f2b6dcba678a2b9445fda1ceba80c92c | |
parent | 4f511651b830aabc251eee01cb90ace822578053 (diff) | |
download | accel-ppp-343af33b08ebc83791fd57a1ccdef91ce1ac2a9e.tar.gz accel-ppp-343af33b08ebc83791fd57a1ccdef91ce1ac2a9e.zip |
preparation for DPDK intergation (part 5)
-rw-r--r-- | CMakeLists.txt | 5 | ||||
-rw-r--r-- | accel-pppd/include/ap_net.h | 6 | ||||
-rw-r--r-- | accel-pppd/net.c | 13 | ||||
-rw-r--r-- | accel-pppd/net/dpdk.c | 12 | ||||
-rw-r--r-- | accel-pppd/ppp/ppp.c | 8 |
5 files changed, 24 insertions, 20 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index c4f4ed88..57764eca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -66,7 +66,10 @@ if (NOT BUILD_DRIVER_ONLY) add_subdirectory(accel-pppd) add_subdirectory(crypto) add_subdirectory(accel-cmd) - add_subdirectory(accel-dpdk) + + if (ACCEL_DP) + add_subdirectory(accel-dpdk) + endif() endif (NOT BUILD_DRIVER_ONLY) if (BUILD_PPTP_DRIVER) diff --git a/accel-pppd/include/ap_net.h b/accel-pppd/include/ap_net.h index 8ed8536d..0872e228 100644 --- a/accel-pppd/include/ap_net.h +++ b/accel-pppd/include/ap_net.h @@ -6,15 +6,15 @@ struct ap_net { int (*connect)(int sock, const struct sockaddr *, socklen_t len); int (*bind)(int sock, const struct sockaddr *, socklen_t len); int (*listen)(int sock, int backlog); - ssize_t (*recv)(int sock, void *buf, size_t len, int flags); + ssize_t (*read)(int sock, void *buf, size_t len); ssize_t (*recvfrom)(int sock, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); - ssize_t (*send)(int sock, const void *buf, size_t len, int flags); + ssize_t (*write)(int sock, const void *buf, size_t len); ssize_t (*sendto)(int sock, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); int (*set_nonblocking)(int sock, int f); int (*setsockopt)(int sockfd, int level, int optname, const void *optval, socklen_t optlen); + int (*sock_ioctl)(unsigned long request, void *arg); int (*ppp_open)(); int (*ppp_ioctl)(int fd, unsigned long request, void *arg); - int (*sock_ioctl)(unsigned long request, void *arg); }; #endif diff --git a/accel-pppd/net.c b/accel-pppd/net.c index d2683b1b..ddf2d2f8 100644 --- a/accel-pppd/net.c +++ b/accel-pppd/net.c @@ -1,3 +1,4 @@ +#include <unistd.h> #include <fcntl.h> #include <sys/socket.h> #include <sys/ioctl.h> @@ -30,9 +31,9 @@ static int def_listen(int sock, int backlog) return listen(sock, backlog); } -static ssize_t def_recv(int sock, void *buf, size_t len, int flags) +static ssize_t def_read(int sock, void *buf, size_t len) { - return recv(sock, buf, len, flags); + return read(sock, buf, len); } static ssize_t def_recvfrom(int sock, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen) @@ -40,9 +41,9 @@ static ssize_t def_recvfrom(int sock, void *buf, size_t len, int flags, struct s return recvfrom(sock, buf, len, flags, src_addr, addrlen); } -static ssize_t def_send(int sock, const void *buf, size_t len, int flags) +static ssize_t def_write(int sock, const void *buf, size_t len) { - return send(sock, buf, len, flags); + return write(sock, buf, len); } static ssize_t def_sendto(int sock, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen) @@ -80,9 +81,9 @@ __export const struct ap_net def_net = { .connect = def_connect, .bind = def_bind, .listen = def_listen, - .recv = def_recv, + .read = def_read, .recvfrom = def_recvfrom, - .send = def_send, + .write = def_write, .sendto = def_sendto, .set_nonblocking = def_set_nonblocking, .setsockopt = def_setsockopt, diff --git a/accel-pppd/net/dpdk.c b/accel-pppd/net/dpdk.c index 62d0e26f..1a5170c9 100644 --- a/accel-pppd/net/dpdk.c +++ b/accel-pppd/net/dpdk.c @@ -147,12 +147,12 @@ static int dpdk_listen(int sock, int backlog) return 0; } -static ssize_t dpdk_recv(int sock, void *buf, size_t len, int flags) +static ssize_t dpdk_read(int sock, void *buf, size_t len) { struct msg_recv msg = { .id = MSG_RECV, .len = len, - .flags = flags, + .flags = 0, .addrlen = 0, }; struct msg_result res; @@ -230,12 +230,12 @@ again: return res.len; } -static ssize_t dpdk_send(int sock, const void *buf, size_t len, int flags) +static ssize_t dpdk_write(int sock, const void *buf, size_t len) { struct msg_send msg = { .id = MSG_SEND, .len = len, - .flags = flags, + .flags = 0, .addrlen = 0, }; struct msg_result res; @@ -452,9 +452,9 @@ static const struct ap_net dpdk_net = { .connect = dpdk_connect, .bind = dpdk_bind, .listen = dpdk_listen, - .recv = dpdk_recv, + .read = dpdk_read, .recvfrom = dpdk_recvfrom, - .send = dpdk_send, + .write = dpdk_write, .sendto = dpdk_sendto, .set_nonblocking = dpdk_set_nonblocking, .setsockopt = dpdk_setsockopt, diff --git a/accel-pppd/ppp/ppp.c b/accel-pppd/ppp/ppp.c index 22ebc24f..916cf8b5 100644 --- a/accel-pppd/ppp/ppp.c +++ b/accel-pppd/ppp/ppp.c @@ -327,7 +327,7 @@ int __export ppp_chan_send(struct ppp_t *ppp, void *data, int size) //printf("ppp_chan_send: "); //print_buf((uint8_t*)data,size); - n = write(ppp->chan_fd,data,size); + n = net->write(ppp->chan_fd, data, size); if (n < size) log_ppp_error("ppp_chan_send: short write %i, excpected %i\n", n, size); return n; @@ -340,7 +340,7 @@ int __export ppp_unit_send(struct ppp_t *ppp, void *data, int size) //printf("ppp_unit_send: "); //print_buf((uint8_t*)data,size); - n=write(ppp->unit_fd, data, size); + n = net->write(ppp->unit_fd, data, size); if (n < size) log_ppp_error("ppp_unit_send: short write %i, excpected %i\n",n,size); return n; @@ -354,7 +354,7 @@ static int ppp_chan_read(struct triton_md_handler_t *h) while(1) { cont: - ppp->buf_size = read(h->fd, ppp->buf, PPP_MRU); + ppp->buf_size = net->read(h->fd, ppp->buf, PPP_MRU); if (ppp->buf_size < 0) { if (errno == EAGAIN) return 0; @@ -399,7 +399,7 @@ static int ppp_unit_read(struct triton_md_handler_t *h) while (1) { cont: - ppp->buf_size = read(h->fd, ppp->buf, PPP_MRU); + ppp->buf_size = net->read(h->fd, ppp->buf, PPP_MRU); if (ppp->buf_size < 0) { if (errno == EAGAIN) return 0; |