Author: hselasky
Date: Tue May 15 07:46:24 2018
New Revision: 333623
URL: https://svnweb.freebsd.org/changeset/base/333623

Log:
  Add support for setting type of service, TOS, for outgoing RDMA connections
  in the krping kernel test utility.
  
  MFC after:    3 days
  Sponsored by: Mellanox Technologies

Modified:
  head/sys/contrib/rdma/krping/krping.c

Modified: head/sys/contrib/rdma/krping/krping.c
==============================================================================
--- head/sys/contrib/rdma/krping/krping.c       Tue May 15 05:55:29 2018        
(r333622)
+++ head/sys/contrib/rdma/krping/krping.c       Tue May 15 07:46:24 2018        
(r333623)
@@ -96,6 +96,7 @@ static const struct krping_option krping_opts[] = {
        {"rlat", OPT_NOPARAM, 'L'},
        {"bw", OPT_NOPARAM, 'B'},
        {"duplex", OPT_NOPARAM, 'd'},
+       {"tos", OPT_INT, 't'},
        {"txdepth", OPT_INT, 'T'},
        {"poll", OPT_NOPARAM, 'P'},
        {"local_dma_lkey", OPT_NOPARAM, 'Z'},
@@ -234,6 +235,7 @@ struct krping_cb {
        int txdepth;                    /* SQ depth */
        int local_dma_lkey;             /* use 0 for lkey */
        int frtest;                     /* reg test */
+       int tos;                        /* type of service */
 
        /* CM stuff */
        struct rdma_cm_id *cm_id;       /* connection on client side,*/
@@ -1918,6 +1920,10 @@ static void krping_run_client(struct krping_cb *cb)
        struct ib_recv_wr *bad_wr;
        int ret;
 
+       /* set type of service, if any */
+       if (cb->tos != 0)
+               rdma_set_service_type(cb->cm_id, cb->tos);
+
        ret = krping_bind_client(cb);
        if (ret)
                return;
@@ -2096,6 +2102,10 @@ int krping_doit(char *cmd)
                        break;
                case 'I':
                        cb->server_invalidate = 1;
+                       break;
+               case 't':
+                       cb->tos = optint;
+                       DEBUG_LOG("type of service, tos=%d\n", (int) cb->tos);
                        break;
                case 'T':
                        cb->txdepth = optint;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to