Somnath Kotur <[email protected]> wrote:

empty change-log? please write something...


> Signed-off-by: Somnath Kotur <[email protected]>
> ---
>  krping.c |   55 ++++++++++++++++++++++++++++++++++++++++---------------
>  1 files changed, 40 insertions(+), 15 deletions(-)
>
> diff --git a/krping.c b/krping.c
> index 59900ab..43799eb 100644
> --- a/krping.c
> +++ b/krping.c
> @@ -79,6 +79,7 @@ static const struct krping_option krping_opts[] = {
>         {"count", OPT_INT, 'C'},
>         {"size", OPT_INT, 'S'},
>         {"addr", OPT_STRING, 'a'},
> +       {"addr6", OPT_STRING, 'A'},
>         {"port", OPT_INT, 'p'},
>         {"verbose", OPT_NOPARAM, 'v'},
>         {"validate", OPT_NOPARAM, 'V'},
> @@ -131,6 +132,7 @@ static struct proc_dir_entry *krping_proc;
>   *
>   * /bin/echo server,port=9999,addr=192.168.69.142,validate > /proc/krping
>   * /bin/echo client,port=9999,addr=192.168.69.142,validate > /proc/krping
> + * /bin/echo client,port=9999,addr6=2001:db8:0:f101::1,validate > 
> /proc/krping
>   *
>   * krping "ping/pong" loop:
>   *     client sends source rkey/addr/len
> @@ -235,8 +237,9 @@ struct krping_cb {
>         struct krping_stats stats;
>
>         uint16_t port;                  /* dst port in NBO */
> -       uint32_t addr;                  /* dst addr in NBO */
> +       u8 addr[16];                    /* dst addr in NBO */
>         char *addr_str;                 /* dst addr string */
> +       uint8_t addr_type;              /* ADDR_FAMILY - IPv4/V6 */
>         int verbose;                    /* verbose logging */
>         int count;                      /* ping count */
>         int size;                       /* ping data size */
> @@ -1577,17 +1580,32 @@ static int fastreg_supported(struct ib_device *dev)
>         return 1;
>  }
>
> +static void fill_sockaddr(struct sockaddr *sin, struct krping_cb *cb)
> +{
> +       memset(sin, 0, sizeof(*sin));
> +
> +       if (cb->addr_type == AF_INET) {
> +               struct sockaddr_in *sin4 = (struct sockaddr_in *)sin;
> +               sin4->sin_family = AF_INET;
> +               memcpy((void *)&sin4->sin_addr.s_addr, cb->addr, 4);
> +               sin4->sin_port = cb->port;
> +       } else if (cb->addr_type == AF_INET6) {
> +               struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sin;
> +               sin6->sin6_family = AF_INET6;
> +               memcpy((void *)&sin6->sin6_addr, cb->addr, 16);
> +               sin6->sin6_port = cb->port;
> +       }
> +}
> +
>  static int krping_bind_server(struct krping_cb *cb)
>  {
> -       struct sockaddr_in sin;
> +       struct sockaddr sin;
>         int ret;
>
> -       memset(&sin, 0, sizeof(sin));
> -       sin.sin_family = AF_INET;
> -       sin.sin_addr.s_addr = cb->addr;
> -       sin.sin_port = cb->port;
>
> -       ret = rdma_bind_addr(cb->cm_id, (struct sockaddr *) &sin);
> +       fill_sockaddr(&sin, cb);
> +
> +       ret = rdma_bind_addr(cb->cm_id, &sin);
>         if (ret) {
>                 printk(KERN_ERR PFX "rdma_bind_addr error %d\n", ret);
>                 return ret;
> @@ -1692,7 +1710,9 @@ static void krping_test_client(struct krping_cb *cb)
>                         printk(KERN_ERR PFX "krping_format_send failed\n");
>                         break;
>                 }
> +               DEBUG_LOG("%s(): Calling ib_post_send\n", __func__);
>                 ret = ib_post_send(cb->qp, &cb->sq_wr, &bad_wr);
> +               DEBUG_LOG("%s(): ib_post_send = %d\n", __func__, ret);

letfover prints @ fast-path from debugging? please remove them

>                 if (ret) {
>                         printk(KERN_ERR PFX "post send error %d\n", ret);
>                         break;
> @@ -2029,6 +2049,7 @@ static int krping_connect_client(struct krping_cb *cb)
>         conn_param.initiator_depth = 1;
>         conn_param.retry_count = 10;
>
> +       DEBUG_LOG("Calling rdma_connect..\n");
>         ret = rdma_connect(cb->cm_id, &conn_param);

remove this one too,
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to