All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jinpu Wang <jinpu.wang@cloud.ionos.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: linux-block@vger.kernel.org, linux-rdma@vger.kernel.org,
	Jens Axboe <axboe@kernel.dk>,
	Christoph Hellwig <hch@infradead.org>,
	Sagi Grimberg <sagi@grimberg.me>,
	Leon Romanovsky <leon@kernel.org>,
	Doug Ledford <dledford@redhat.com>,
	Jason Gunthorpe <jgg@ziepe.ca>,
	Danil Kipnis <danil.kipnis@cloud.ionos.com>,
	Roman Penyaev <rpenyaev@suse.de>,
	Pankaj Gupta <pankaj.gupta@cloud.ionos.com>
Subject: Re: [PATCH v11 04/26] RDMA/rtrs: core: lib functions shared between client and server modules
Date: Mon, 30 Mar 2020 12:34:00 +0200	[thread overview]
Message-ID: <CAMGffE=oU=auw9Re3JcpBx2cap=6i4P0R__bcO4NnN+yW76b8w@mail.gmail.com> (raw)
In-Reply-To: <cad654ae-d6c9-882d-aeeb-d6871994d280@acm.org>

On Sat, Mar 28, 2020 at 5:26 AM Bart Van Assche <bvanassche@acm.org> wrote:
>
> On 2020-03-20 05:16, Jack Wang wrote:
> > +/**
> > + * rtrs_str_to_sockaddr() - Convert rtrs address string to sockaddr
> > + * @addr:    String representation of an addr (IPv4, IPv6 or IB GID):
> > + *              - "ip:192.168.1.1"
> > + *              - "ip:fe80::200:5aee:feaa:20a2"
> > + *              - "gid:fe80::200:5aee:feaa:20a2"
> > + * @len:        String address length
> > + * @port:    Destination port
> > + * @dst:     Destination sockaddr structure
> > + *
> > + * Returns 0 if conversion successful. Non-zero on error.
> > + */
> > +static int rtrs_str_to_sockaddr(const char *addr, size_t len,
> > +                              short port, struct sockaddr_storage *dst)
> > +{
> > +     if (strncmp(addr, "gid:", 4) == 0) {
> > +             return rtrs_str_gid_to_sockaddr(addr + 4, len - 4, port, dst);
> > +     } else if (strncmp(addr, "ip:", 3) == 0) {
> > +             char port_str[8];
> > +             char *cpy;
> > +             int err;
> > +
> > +             snprintf(port_str, sizeof(port_str), "%u", port);
> > +             cpy = kstrndup(addr + 3, len - 3, GFP_KERNEL);
> > +             err = cpy ? inet_pton_with_scope(&init_net, AF_UNSPEC,
> > +                                              cpy, port_str, dst) : -ENOMEM;
> > +             kfree(cpy);
> > +
> > +             return err;
> > +     }
> > +     return -EPROTONOSUPPORT;
> > +}
>
> Please use 'u16' or 'uint16_t' for port numbers instead of 'short'.
ok, will use u16.
>
> > +/**
> > + * rtrs_addr_to_sockaddr() - convert path string "src,dst" to sockaddreses
> > + * @str:     string containing source and destination addr of a path
> > + *           separated by comma. I.e. "ip:1.1.1.1,ip:1.1.1.2". If str
> > + *           contains only one address it's considered to be destination.
> > + * @len:     string length
> > + * @port:    will be set to port.
>                 ^^^^^^^^^^^^^^^^^^^
> What does this mean? Please make comments easy to comprehend.
how about just "port number"?
>
> > + * @addr:    will be set to the source/destination address or to NULL
> > + *           if str doesn't contain any sorce address.
>                                            ^^^^^
> Is this perhaps a typo?
yes, should be "source".
>
> > + *
> > + * Returns zero if conversion successful. Non-zero otherwise.
> > + */
> > +int rtrs_addr_to_sockaddr(const char *str, size_t len, short port,
>                                                           ^^^^^
> I think most kernel code uses type u16 for port numbers.
ok.
>
> > +                        struct rtrs_addr *addr)
> > +{
> > +     const char *d;
> > +
> > +     d = strchr(str, ',');
> > +     if (!d)
> > +             d = strchr(str, '@');
> > +     if (d) {
> > +             if (rtrs_str_to_sockaddr(str, d - str, 0, addr->src))
>                                                       ^^^
> Does this mean that the @port argument only applies to the destination
> address? If so, please mention this in the comment above this function.
Yes, will update the comments.

>
> > +                     return -EINVAL;
> > +             d += 1;
> > +             len -= d - str;
> > +             str  = d;
> > +
> > +     } else {
> > +             addr->src = NULL;
> > +     }
> > +     return rtrs_str_to_sockaddr(str, len, port, addr->dst);
> > +}
> > +EXPORT_SYMBOL(rtrs_addr_to_sockaddr);
>
> So this function either accepts ',' or '@' as separator between source
> and destination address?  Shouldn't that be mentioned in the comment
> block above the function?
Yes, will update the comment.
>
> Thanks,
>
> Bart.

Thanks Bart!

  reply	other threads:[~2020-03-30 10:34 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-20 12:16 [PATCH v11 00/26] RTRS (former IBTRS) RDMA Transport Library and RNBD (former IBNBD) RDMA Network Block Device Jack Wang
2020-03-20 12:16 ` [PATCH v11 01/26] sysfs: export sysfs_remove_file_self() Jack Wang
2020-03-20 12:16 ` [PATCH v11 02/26] RDMA/rtrs: public interface header to establish RDMA connections Jack Wang
2020-03-20 12:16 ` [PATCH v11 03/26] RDMA/rtrs: private headers with rtrs protocol structs and helpers Jack Wang
2020-03-20 12:16 ` [PATCH v11 04/26] RDMA/rtrs: core: lib functions shared between client and server modules Jack Wang
2020-03-28  4:26   ` Bart Van Assche
2020-03-30 10:34     ` Jinpu Wang [this message]
2020-03-30 22:25       ` Bart Van Assche
2020-03-31  7:11         ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 05/26] RDMA/rtrs: client: private header with client structs and functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 06/26] RDMA/rtrs: client: main functionality Jack Wang
2020-03-20 12:16 ` [PATCH v11 07/26] RDMA/rtrs: client: statistics functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 08/26] RDMA/rtrs: client: sysfs interface functions Jack Wang
2020-03-30 22:28   ` Bart Van Assche
2020-03-31  7:20     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 09/26] RDMA/rtrs: server: private header with server structs and functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 10/26] RDMA/rtrs: server: main functionality Jack Wang
2020-03-20 12:16 ` [PATCH v11 11/26] RDMA/rtrs: server: statistics functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 12/26] RDMA/rtrs: server: sysfs interface functions Jack Wang
2020-03-30 22:29   ` Bart Van Assche
2020-03-31  7:13     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 13/26] RDMA/rtrs: include client and server modules into kernel compilation Jack Wang
2020-03-20 12:16 ` [PATCH v11 14/26] RDMA/rtrs: a bit of documentation Jack Wang
2020-03-20 12:16 ` [PATCH v11 15/26] block: reexport bio_map_kern Jack Wang
2020-03-28  3:58   ` Bart Van Assche
2020-03-28  8:29     ` Christoph Hellwig
2020-03-28 16:16       ` Bart Van Assche
2020-03-29 15:05         ` Christoph Hellwig
2020-03-29 18:08           ` Chaitanya Kulkarni
2020-03-30  6:28             ` hch
2020-03-30 10:44           ` Jinpu Wang
2020-03-30 18:57             ` Chaitanya Kulkarni
2020-03-20 12:16 ` [PATCH v11 16/26] block/rnbd: private headers with rnbd protocol structs and helpers Jack Wang
2020-03-28  4:58   ` Bart Van Assche
2020-03-31  7:32     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 17/26] block/rnbd: client: private header with client structs and functions Jack Wang
2020-03-28  4:26   ` Bart Van Assche
2020-03-31  9:08     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 18/26] block/rnbd: client: main functionality Jack Wang
2020-03-28  4:45   ` Bart Van Assche
2020-03-31  9:23     ` Jinpu Wang
2020-04-02 16:27       ` Jinpu Wang
2020-03-28  4:59   ` Bart Van Assche
2020-03-31  9:25     ` Jinpu Wang
2020-03-31 14:12       ` Bart Van Assche
2020-03-31 14:20         ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 19/26] block/rnbd: client: sysfs interface functions Jack Wang
2020-03-28  4:59   ` Bart Van Assche
2020-03-31  9:26     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 20/26] block/rnbd: server: private header with server structs and functions Jack Wang
2020-03-20 12:16 ` [PATCH v11 21/26] block/rnbd: server: main functionality Jack Wang
2020-03-28 17:40   ` Bart Van Assche
2020-03-31  9:29     ` Jinpu Wang
2020-03-31 15:32       ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 22/26] block/rnbd: server: functionality for IO submission to file or block dev Jack Wang
2020-03-28 18:39   ` Bart Van Assche
2020-03-31 10:06     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 23/26] block/rnbd: server: sysfs interface functions Jack Wang
2020-03-28 19:31   ` Bart Van Assche
2020-03-28 23:06     ` Jason Gunthorpe
2020-03-30 13:14     ` Danil Kipnis
2020-03-20 12:16 ` [PATCH v11 24/26] block/rnbd: include client and server modules into kernel compilation Jack Wang
2020-03-28 19:34   ` Bart Van Assche
2020-03-31  7:23     ` Jinpu Wang
2020-03-20 12:16 ` [PATCH v11 25/26] block/rnbd: a bit of documentation Jack Wang
2020-03-28 19:40   ` Bart Van Assche
2020-03-30 10:17     ` Danil Kipnis
2020-03-20 12:16 ` [PATCH v11 26/26] MAINTAINERS: Add maintainers for RNBD/RTRS modules Jack Wang
2020-03-28 19:40   ` Bart Van Assche
2020-03-30 10:12     ` Danil Kipnis
2020-03-26 17:38 ` [PATCH v11 00/26] RTRS (former IBTRS) RDMA Transport Library and RNBD (former IBNBD) RDMA Network Block Device Jinpu Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAMGffE=oU=auw9Re3JcpBx2cap=6i4P0R__bcO4NnN+yW76b8w@mail.gmail.com' \
    --to=jinpu.wang@cloud.ionos.com \
    --cc=axboe@kernel.dk \
    --cc=bvanassche@acm.org \
    --cc=danil.kipnis@cloud.ionos.com \
    --cc=dledford@redhat.com \
    --cc=hch@infradead.org \
    --cc=jgg@ziepe.ca \
    --cc=leon@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=pankaj.gupta@cloud.ionos.com \
    --cc=rpenyaev@suse.de \
    --cc=sagi@grimberg.me \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.