On Tue, 22 Oct 2019 18:08:29 +0200
Jakub Grajciar <jgraj...@cisco.com> wrote:

> Cc: step...@networkplumber.org
> 
> Signed-off-by: Jakub Grajciar <jgraj...@cisco.com>
> ---
>  doc/guides/nics/memif.rst         |  2 +-
>  drivers/net/memif/memif_socket.c  | 27 +++++++++++----------------
>  drivers/net/memif/memif_socket.h  |  6 ++++--
>  drivers/net/memif/rte_eth_memif.c |  5 +++++
>  4 files changed, 21 insertions(+), 19 deletions(-)
> 
> diff --git a/doc/guides/nics/memif.rst b/doc/guides/nics/memif.rst
> index de2d481eb..9a568455e 100644
> --- a/doc/guides/nics/memif.rst
> +++ b/doc/guides/nics/memif.rst
> @@ -42,7 +42,7 @@ client.
>     "role=master", "Set memif role", "slave", "master|slave"
>     "bsize=1024", "Size of single packet buffer", "2048", "uint16_t"
>     "rsize=11", "Log2 of ring size. If rsize is 10, actual ring size is 
> 1024", "10", "1-14"
> -   "socket=/tmp/memif.sock", "Socket filename", "/tmp/memif.sock", "string 
> len 256"
> +   "socket=/tmp/memif.sock", "Socket filename", "/tmp/memif.sock", "string 
> len 108"
>     "mac=01:23:45:ab:cd:ef", "Mac address", "01:ab:23:cd:45:ef", ""
>     "secret=abc123", "Secret is an optional security option, which if 
> specified, must be matched by peer", "", "string len 24"
>     "zero-copy=yes", "Enable/disable zero-copy slave mode", "no", "yes|no"
> diff --git a/drivers/net/memif/memif_socket.c 
> b/drivers/net/memif/memif_socket.c
> index 0c71f6c45..4efa68e1a 100644
> --- a/drivers/net/memif/memif_socket.c
> +++ b/drivers/net/memif/memif_socket.c
> @@ -7,7 +7,6 @@
>  #include <unistd.h>
>  #include <sys/types.h>
>  #include <sys/socket.h>
> -#include <sys/un.h>
>  #include <sys/ioctl.h>
>  #include <errno.h>
>  
> @@ -860,16 +859,12 @@ memif_listener_handler(void *arg)
>               rte_free(cc);
>  }
>  
> -#define MEMIF_SOCKET_UN_SIZE \
> -     (offsetof(struct sockaddr_un, sun_path) + MEMIF_SOCKET_KEY_LEN)
> -
>  static struct memif_socket *
>  memif_socket_create(struct pmd_internals *pmd,
>                   const char *key, uint8_t listener)
>  {
>       struct memif_socket *sock;
> -     struct sockaddr_un *un;
> -     char un_buf[MEMIF_SOCKET_UN_SIZE];
> +     struct sockaddr_un un;
>       int sockfd;
>       int ret;
>       int on = 1;
> @@ -881,7 +876,7 @@ memif_socket_create(struct pmd_internals *pmd,
>       }
>  
>       sock->listener = listener;
> -     strlcpy(sock->filename, key, MEMIF_SOCKET_KEY_LEN);
> +     strlcpy(sock->filename, key, MEMIF_SOCKET_UN_SIZE);
>       TAILQ_INIT(&sock->dev_queue);
>  
>       if (listener != 0) {
> @@ -889,18 +884,18 @@ memif_socket_create(struct pmd_internals *pmd,
>               if (sockfd < 0)
>                       goto error;
>  
> -             memset(un_buf, 0, sizeof(un_buf));
> -             un = (struct sockaddr_un *)un_buf;
> -             un->sun_family = AF_UNIX;
> -             strlcpy(un->sun_path, sock->filename, MEMIF_SOCKET_KEY_LEN);
> +             un.sun_family = AF_UNIX;
> +             strlcpy(un.sun_path, sock->filename, MEMIF_SOCKET_UN_SIZE);


Why does this not use abstract unix domain socket naming?
That would be much less error prone, because then the socket would disappear
when all applications using it are closed.

  • [dpdk-dev] [... Jakub Grajciar
    • Re: [dp... Stephen Hemminger
      • Re:... Jakub Grajciar -X (jgrajcia - PANTHEON TECHNOLOGIES at Cisco)
        • ... Stephen Hemminger
    • Re: [dp... Ferruh Yigit
      • Re:... Jakub Grajciar -X (jgrajcia - PANTHEON TECHNOLOGIES at Cisco)
    • [dpdk-d... Jakub Grajciar

Reply via email to