On 12/7/2022 3:56 PM, Nathan Skrzypczak wrote:
> Hi Ferruh,
> 

Hi Nathan,

> Thank you for your reply, 
> 
> On the potential confusion for users of the DPDK memif PMD : when
> defaulting to abstract sockets was added in [0] (v20.10 release)
> it did change the existing behavior, so reverting it would restore the
> old behavior.> Also abstract sockets are quite a unusual feature in linux (a 
> 0byte
> prefixed string...), so I'm expecting most users of memif to just use
> regular sockets because they're way easier to handle.
> 

Not sure if regular socket is easier to handle, or users prefer regular
sockets, we need more input on these.

> Also my guess is it will probably bug people if the way to use regular
> sockets is to pass `abstract-socket=false` to the PMD config.
> What do you think ?
> 

I don't have a preference about the default config, but I also don't
have enough justification for changing the current behavior.


@Jakub, as driver maintainer, do you have any preference?


> Cheers
> -Nathan
> 
> [0] 2f865ed07b
> 
> Le mer. 7 déc. 2022 à 16:14, Ferruh Yigit <ferruh.yi...@amd.com
> <mailto:ferruh.yi...@amd.com>> a écrit :
> 
>     On 10/17/2022 1:12 PM, Nathan Skrzypczak wrote:
>     > This patch changes the default value of the memif abstract
>     > socket flag to false. The implementation of memif with
>     > abstract sockets made abstract-socket=yes the
>     > default in [0] which might confuse users.
>     >
> 
>     Hi Nathan,
> 
>     OK to update logs to clarify nature of the socket,
> 
>     but why do you think making abstract socket default socket type confuses
>     the users?
> 
>     > This patches makes 'socket-abstract=no' the new default,
>     > and adds warnings mentioning the nature of the socket
>     > concerned in an attempt to avoid future foot-gunning.
>     >
>     > [0] commit 2f865ed07bb6 ("net/memif: use abstract socket address")
>     >
>     > Signed-off-by: Nathan Skrzypczak <nathan.skrzypc...@gmail.com
>     <mailto:nathan.skrzypc...@gmail.com>>
>     > ---
>     >  doc/guides/nics/memif.rst         | 2 +-
>     >  drivers/net/memif/memif_socket.c  | 7 +++++--
>     >  drivers/net/memif/rte_eth_memif.c | 3 ---
>     >  3 files changed, 6 insertions(+), 6 deletions(-)
>     >
>     > diff --git a/doc/guides/nics/memif.rst b/doc/guides/nics/memif.rst
>     > index aca843640b..43d1cd1b38 100644
>     > --- a/doc/guides/nics/memif.rst
>     > +++ b/doc/guides/nics/memif.rst
>     > @@ -43,7 +43,7 @@ client.
>     >     "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 108"
>     > -   "socket-abstract=no", "Set usage of abstract socket address",
>     "yes", "yes|no"
>     > +   "socket-abstract=no", "Is the socket an abstract socket",
>     "no", "yes|no"
>     >     "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 client mode. Only
>     relevant to client, requires '--single-file-segments' eal argument",
>     "no", "yes|no"
>     > diff --git a/drivers/net/memif/memif_socket.c
>     b/drivers/net/memif/memif_socket.c
>     > index 4700ce2e77..5344e60147 100644
>     > --- a/drivers/net/memif/memif_socket.c
>     > +++ b/drivers/net/memif/memif_socket.c
>     > @@ -939,7 +939,8 @@ memif_socket_create(char *key, uint8_t
>     listener, bool is_abstract)
>     >               if (ret < 0)
>     >                       goto error;
>     > 
>     > -             MIF_LOG(DEBUG, "Memif listener socket %s created.",
>     sock->filename);
>     > +             MIF_LOG(DEBUG, "Memif listener %s socket %s created.",
>     > +                     is_abstract ? "abstract" : "", sock->filename);
>     > 
>     >               /* Allocate interrupt instance */
>     >               sock->intr_handle =
>     > @@ -1139,7 +1140,9 @@ memif_connect_client(struct rte_eth_dev *dev)
>     > 
>     >       ret = connect(sockfd, (struct sockaddr *)&sun, sunlen);
>     >       if (ret < 0) {
>     > -             MIF_LOG(ERR, "Failed to connect socket: %s.",
>     pmd->socket_filename);
>     > +             MIF_LOG(ERR, "Failed to connect %s socket: %s.",
>     > +                 pmd->flags & ETH_MEMIF_FLAG_SOCKET_ABSTRACT ?
>     "abstract" : "",
>     > +                 pmd->socket_filename);
>     >               goto error;
>     >       }
>     > 
>     > diff --git a/drivers/net/memif/rte_eth_memif.c
>     b/drivers/net/memif/rte_eth_memif.c
>     > index 5b5cae34ea..81e502ccaf 100644
>     > --- a/drivers/net/memif/rte_eth_memif.c
>     > +++ b/drivers/net/memif/rte_eth_memif.c
>     > @@ -1823,9 +1823,6 @@ rte_pmd_memif_probe(struct rte_vdev_device
>     *vdev)
>     >               MIF_LOG(WARNING, "Failed to register mp action
>     callback: %s",
>     >                       strerror(rte_errno));
>     > 
>     > -     /* use abstract address by default */
>     > -     flags |= ETH_MEMIF_FLAG_SOCKET_ABSTRACT;
>     > -
>     >       kvlist = rte_kvargs_parse(rte_vdev_device_args(vdev),
>     valid_arguments);
>     > 
>     >       /* parse parameters */
> 

Reply via email to