├── .gitignore ├── LICENSE ├── README.md ├── SECURITY.md ├── build-client.sh ├── build-router.sh ├── ffrouter ├── Makefile ├── build.sh ├── clean.sh ├── client_id.sh ├── constant.h ├── ffrouter.cpp ├── ffrouter.h ├── ibverbs.h ├── kern-abi.h ├── log.h ├── main.cpp ├── rdma_api.cpp ├── rdma_api.h ├── router.sh ├── router_gdb.sh ├── shared_memory.cpp ├── shared_memory.h ├── tokenbucket.h ├── types.h ├── verbs_cmd.cpp └── verbs_cmd.h ├── images ├── spark_perf.png └── tensorflow_image.png ├── libmempool ├── COPYING.MIT ├── Makefile ├── MemoryPool.h ├── MemoryPool.tcc ├── libmempool.cpp ├── libmempool.h ├── test.c └── test.sh ├── libraries-router ├── COPYING.BSD_MIT └── librdmacm-1.1.0mlnx │ ├── .gitignore │ ├── AUTHORS │ ├── COPYING │ ├── ChangeLog │ ├── Makefile.am │ ├── NEWS │ ├── README │ ├── autogen.sh │ ├── configure.ac │ ├── debian │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── docs │ ├── librdmacm-dev.dirs │ ├── librdmacm-dev.install │ ├── librdmacm-utils.dirs │ ├── librdmacm-utils.install │ ├── librdmacm1.dirs │ ├── librdmacm1.install │ ├── rules │ └── source │ │ └── format │ ├── docs │ └── rsocket │ ├── examples │ ├── .gitignore │ ├── cmatose.c │ ├── cmtime.c │ ├── common.c │ ├── common.h │ ├── mckey.c │ ├── rcopy.c │ ├── rdma_client.c │ ├── rdma_server.c │ ├── rdma_xclient.c │ ├── rdma_xserver.c │ ├── riostream.c │ ├── rping.c │ ├── rstream.c │ ├── udaddy.c │ └── udpong.c │ ├── include │ ├── infiniband │ │ └── ib.h │ └── rdma │ │ ├── rdma_cma.h │ │ ├── rdma_cma_abi.h │ │ ├── rdma_verbs.h │ │ └── rsocket.h │ ├── librdmacm.spec.in │ ├── man │ ├── mckey.1 │ ├── rcopy.1 │ ├── rdma_accept.3 │ ├── rdma_ack_cm_event.3 │ ├── rdma_bind_addr.3 │ ├── rdma_client.1 │ ├── rdma_cm.7 │ ├── rdma_connect.3 │ ├── rdma_create_ep.3 │ ├── rdma_create_event_channel.3 │ ├── rdma_create_id.3 │ ├── rdma_create_qp.3 │ ├── rdma_create_srq.3 │ ├── rdma_dereg_mr.3 │ ├── rdma_destroy_ep.3 │ ├── rdma_destroy_event_channel.3 │ ├── rdma_destroy_id.3 │ ├── rdma_destroy_qp.3 │ ├── rdma_destroy_srq.3 │ ├── rdma_disconnect.3 │ ├── rdma_event_str.3 │ ├── rdma_free_devices.3 │ ├── rdma_get_cm_event.3 │ ├── rdma_get_devices.3 │ ├── rdma_get_dst_port.3 │ ├── rdma_get_local_addr.3 │ ├── rdma_get_peer_addr.3 │ ├── rdma_get_recv_comp.3 │ ├── rdma_get_request.3 │ ├── rdma_get_send_comp.3 │ ├── rdma_get_src_port.3 │ ├── rdma_getaddrinfo.3 │ ├── rdma_join_multicast.3 │ ├── rdma_leave_multicast.3 │ ├── rdma_listen.3 │ ├── rdma_migrate_id.3 │ ├── rdma_notify.3 │ ├── rdma_post_read.3 │ ├── rdma_post_readv.3 │ ├── rdma_post_recv.3 │ ├── rdma_post_recvv.3 │ ├── rdma_post_send.3 │ ├── rdma_post_sendv.3 │ ├── rdma_post_ud_send.3 │ ├── rdma_post_write.3 │ ├── rdma_post_writev.3 │ ├── rdma_reg_msgs.3 │ ├── rdma_reg_read.3 │ ├── rdma_reg_write.3 │ ├── rdma_reject.3 │ ├── rdma_resolve_addr.3 │ ├── rdma_resolve_route.3 │ ├── rdma_server.1 │ ├── rdma_set_option.3 │ ├── rdma_xclient.1 │ ├── rdma_xserver.1 │ ├── riostream.1 │ ├── rping.1 │ ├── rsocket.7 │ ├── rstream.1 │ ├── ucmatose.1 │ └── udaddy.1 │ └── src │ ├── .gitignore │ ├── acm.c │ ├── addrinfo.c │ ├── cma.c │ ├── cma.h │ ├── indexer.c │ ├── indexer.h │ ├── librdmacm.map │ ├── preload.c │ └── rsocket.c └── libraries ├── COPYING.BSD_MIT ├── libibverbs-1.2.1mlnx1 ├── .gitignore ├── .gitreview ├── AUTHORS ├── COPYING ├── ChangeLog ├── Makefile.am ├── README ├── autogen.sh ├── config │ ├── .gitignore │ ├── libtool.m4 │ ├── ltoptions.m4 │ ├── ltsugar.m4 │ ├── ltversion.m4 │ ├── lt~obsolete.m4 │ └── test-driver ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── ibverbs-utils.install │ ├── libibverbs-dev.install │ ├── libibverbs-dev.links │ ├── libibverbs1.install │ ├── libibverbs1.postinst │ ├── rules │ ├── source │ │ └── format │ └── watch ├── examples │ ├── .gitignore │ ├── asyncwatch.c │ ├── cc_pingpong.c │ ├── cc_pingpong.h │ ├── dc.h │ ├── dcini.c │ ├── dctgt.c │ ├── device_list.c │ ├── devinfo.c │ ├── get_clock.c │ ├── get_clock.h │ ├── intf.c │ ├── pingpong.c │ ├── pingpong.h │ ├── polldcinfo.c │ ├── rc_pingpong.c │ ├── shared_mr.c │ ├── srq_pingpong.c │ ├── task_pingpong.c │ ├── uc_pingpong.c │ ├── ud_pingpong.c │ ├── umr_rc.c │ └── xsrq_pingpong.c ├── include │ └── infiniband │ │ ├── arch.h │ │ ├── driver.h │ │ ├── driver_exp.h │ │ ├── freeflow-types.h │ │ ├── freeflow.h │ │ ├── kern-abi.h │ │ ├── kern-abi_exp.h │ │ ├── marshall.h │ │ ├── ofa_verbs.h │ │ ├── opcode.h │ │ ├── peer_ops.h │ │ ├── sa-kern-abi.h │ │ ├── sa.h │ │ ├── verbs.h │ │ └── verbs_exp.h ├── libibverbs.spec.in ├── man │ ├── ibv_alloc_mw.3 │ ├── ibv_alloc_pd.3 │ ├── ibv_asyncwatch.1 │ ├── ibv_attach_mcast.3 │ ├── ibv_bind_mw.3 │ ├── ibv_cc_pingpong.1 │ ├── ibv_create_ah.3 │ ├── ibv_create_ah_from_wc.3 │ ├── ibv_create_comp_channel.3 │ ├── ibv_create_cq.3 │ ├── ibv_create_flow.3 │ ├── ibv_create_qp.3 │ ├── ibv_create_qp_ex.3 │ ├── ibv_create_srq.3 │ ├── ibv_create_srq_ex.3 │ ├── ibv_devices.1 │ ├── ibv_devinfo.1 │ ├── ibv_event_type_str.3 │ ├── ibv_exp_alloc_ec_calc.3 │ ├── ibv_exp_alloc_mkey_list_memory.3 │ ├── ibv_exp_bind_mw.3 │ ├── ibv_exp_create_cq.3 │ ├── ibv_exp_create_dct.3 │ ├── ibv_exp_create_flow.3 │ ├── ibv_exp_create_mr.3 │ ├── ibv_exp_create_qp.3 │ ├── ibv_exp_create_res_domain.3 │ ├── ibv_exp_create_rwq_ind_table.3 │ ├── ibv_exp_create_wq.3 │ ├── ibv_exp_dealloc_mkey_list_memory.3 │ ├── ibv_exp_ec_decode_async.3 │ ├── ibv_exp_ec_encode_async.3 │ ├── ibv_exp_ec_update_async.3 │ ├── ibv_exp_get_provider_func.3 │ ├── ibv_exp_modify_cq.3 │ ├── ibv_exp_modify_qp.3 │ ├── ibv_exp_modify_wq.3 │ ├── ibv_exp_peer_commit_qp.3 │ ├── ibv_exp_poll_cq.3 │ ├── ibv_exp_post_send.3 │ ├── ibv_exp_post_task.3 │ ├── ibv_exp_prefetch_mr.3 │ ├── ibv_exp_query_dct.3 │ ├── ibv_exp_query_device.3 │ ├── ibv_exp_query_gid_attr.3 │ ├── ibv_exp_query_intf.3 │ ├── ibv_exp_query_mkey.3 │ ├── ibv_exp_query_values.3 │ ├── ibv_exp_reg_mr.3 │ ├── ibv_exp_reg_shared_mr.3 │ ├── ibv_exp_rereg_mr.3 │ ├── ibv_fork_init.3 │ ├── ibv_get_async_event.3 │ ├── ibv_get_cq_event.3 │ ├── ibv_get_device_guid.3 │ ├── ibv_get_device_list.3 │ ├── ibv_get_device_name.3 │ ├── ibv_get_srq_num.3 │ ├── ibv_inc_rkey.3 │ ├── ibv_intf.1 │ ├── ibv_modify_qp.3 │ ├── ibv_modify_srq.3 │ ├── ibv_open_device.3 │ ├── ibv_open_qp.3 │ ├── ibv_open_xrcd.3 │ ├── ibv_poll_cq.3 │ ├── ibv_post_recv.3 │ ├── ibv_post_send.3 │ ├── ibv_post_srq_recv.3 │ ├── ibv_query_device.3 │ ├── ibv_query_device_ex.3 │ ├── ibv_query_gid.3 │ ├── ibv_query_pkey.3 │ ├── ibv_query_port.3 │ ├── ibv_query_qp.3 │ ├── ibv_query_srq.3 │ ├── ibv_rate_to_mbps.3 │ ├── ibv_rate_to_mult.3 │ ├── ibv_rc_pingpong.1 │ ├── ibv_reg_mr.3 │ ├── ibv_req_notify_cq.3 │ ├── ibv_rereg_mr.3 │ ├── ibv_resize_cq.3 │ ├── ibv_shared_mr.1 │ ├── ibv_srq_pingpong.1 │ ├── ibv_task_pingpong.1 │ ├── ibv_uc_pingpong.1 │ ├── ibv_ud_pingpong.1 │ ├── peer_direct.7 │ └── verbs.7 ├── src │ ├── .gitignore │ ├── cmd.c │ ├── cmd_exp.c │ ├── compat-1_0.c │ ├── device.c │ ├── enum_strs.c │ ├── freeflow.c │ ├── ibverbs.h │ ├── init.c │ ├── libibverbs.map │ ├── marshall.c │ ├── memory.c │ ├── neigh.c │ ├── neigh.h │ ├── sysfs.c │ └── verbs.c └── tests │ ├── api │ ├── gtest_cd.h │ ├── gtest_cd_tc1.cc │ ├── gtest_cd_tc2.cc │ ├── gtest_cd_tc3.cc │ ├── gtest_cd_tc4.cc │ ├── gtest_cd_tc5.cc │ ├── gtest_cd_tc6.cc │ ├── gtest_cd_tc7.cc │ ├── gtest_cd_tc8.cc │ └── gtest_init.cc │ ├── cmn │ ├── gtest_cmn.cc │ └── gtest_cmn.h │ ├── gtest │ ├── gtest-all.cc │ └── gtest.h │ └── gtest_main.cc ├── libmlx4-1.2.1mlnx1 ├── .gitignore ├── .gitreview ├── AUTHORS ├── COPYING ├── Makefile.am ├── README ├── autogen.sh ├── config │ └── .gitignore ├── configure.ac ├── debian │ ├── changelog │ ├── compat │ ├── control │ ├── copyright │ ├── libmlx4-1.install │ ├── libmlx4-dev.install │ ├── patches │ │ ├── driver-plugin-directory.patch │ │ └── series │ ├── rules │ ├── source │ │ └── format │ └── watch ├── libmlx4.spec.in ├── mlx4.driver └── src │ ├── .gitignore │ ├── bitmap.h │ ├── buf.c │ ├── cq.c │ ├── dbrec.c │ ├── doorbell.h │ ├── list.h │ ├── mlx4-abi.h │ ├── mlx4.c │ ├── mlx4.h │ ├── mlx4.map │ ├── mlx4_exp.h │ ├── mmio.h │ ├── qp.c │ ├── srq.c │ ├── verbs.c │ ├── verbs_exp.c │ └── wqe.h └── librdmacm-1.1.0mlnx ├── .gitignore ├── AUTHORS ├── COPYING ├── ChangeLog ├── Makefile.am ├── NEWS ├── README ├── autogen.sh ├── configure.ac ├── debian ├── changelog ├── compat ├── control ├── copyright ├── docs ├── librdmacm-dev.dirs ├── librdmacm-dev.install ├── librdmacm-utils.dirs ├── librdmacm-utils.install ├── librdmacm1.dirs ├── librdmacm1.install ├── rules └── source │ └── format ├── docs └── rsocket ├── examples ├── .gitignore ├── cmatose.c ├── cmtime.c ├── common.c ├── common.h ├── mckey.c ├── rcopy.c ├── rdma_client.c ├── rdma_server.c ├── rdma_xclient.c ├── rdma_xserver.c ├── riostream.c ├── rping.c ├── rstream.c ├── test.txt ├── udaddy.c └── udpong.c ├── include ├── infiniband │ └── ib.h └── rdma │ ├── freeflow.h │ ├── rdma_cma.h │ ├── rdma_cma_abi.h │ ├── rdma_verbs.h │ └── rsocket.h ├── librdmacm.spec.in ├── man ├── mckey.1 ├── rcopy.1 ├── rdma_accept.3 ├── rdma_ack_cm_event.3 ├── rdma_bind_addr.3 ├── rdma_client.1 ├── rdma_cm.7 ├── rdma_connect.3 ├── rdma_create_ep.3 ├── rdma_create_event_channel.3 ├── rdma_create_id.3 ├── rdma_create_qp.3 ├── rdma_create_srq.3 ├── rdma_dereg_mr.3 ├── rdma_destroy_ep.3 ├── rdma_destroy_event_channel.3 ├── rdma_destroy_id.3 ├── rdma_destroy_qp.3 ├── rdma_destroy_srq.3 ├── rdma_disconnect.3 ├── rdma_event_str.3 ├── rdma_free_devices.3 ├── rdma_get_cm_event.3 ├── rdma_get_devices.3 ├── rdma_get_dst_port.3 ├── rdma_get_local_addr.3 ├── rdma_get_peer_addr.3 ├── rdma_get_recv_comp.3 ├── rdma_get_request.3 ├── rdma_get_send_comp.3 ├── rdma_get_src_port.3 ├── rdma_getaddrinfo.3 ├── rdma_join_multicast.3 ├── rdma_leave_multicast.3 ├── rdma_listen.3 ├── rdma_migrate_id.3 ├── rdma_notify.3 ├── rdma_post_read.3 ├── rdma_post_readv.3 ├── rdma_post_recv.3 ├── rdma_post_recvv.3 ├── rdma_post_send.3 ├── rdma_post_sendv.3 ├── rdma_post_ud_send.3 ├── rdma_post_write.3 ├── rdma_post_writev.3 ├── rdma_reg_msgs.3 ├── rdma_reg_read.3 ├── rdma_reg_write.3 ├── rdma_reject.3 ├── rdma_resolve_addr.3 ├── rdma_resolve_route.3 ├── rdma_server.1 ├── rdma_set_option.3 ├── rdma_xclient.1 ├── rdma_xserver.1 ├── riostream.1 ├── rping.1 ├── rsocket.7 ├── rstream.1 ├── ucmatose.1 └── udaddy.1 └── src ├── .gitignore ├── acm.c ├── addrinfo.c ├── cma.c ├── cma.h ├── freeflow.c ├── indexer.c ├── indexer.h ├── librdmacm.map ├── preload.c └── rsocket.c /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Linker output 11 | *.ilk 12 | *.map 13 | *.exp 14 | 15 | # Precompiled Headers 16 | *.gch 17 | *.pch 18 | 19 | # Libraries 20 | *.lib 21 | *.a 22 | *.la 23 | *.lo 24 | 25 | # Shared objects (inc. Windows DLLs) 26 | *.dll 27 | *.so 28 | *.so.* 29 | *.dylib 30 | 31 | # Executables 32 | *.exe 33 | *.out 34 | *.app 35 | *.i*86 36 | *.x86_64 37 | *.hex 38 | 39 | # Debug files 40 | *.dSYM/ 41 | *.su 42 | *.idb 43 | *.pdb 44 | 45 | # Kernel Module Compile Results 46 | *.mod* 47 | *.cmd 48 | .tmp_versions/ 49 | modules.order 50 | Module.symvers 51 | Mkfile.old 52 | dkms.conf 53 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Microsoft Corporation. All rights reserved. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE 22 | -------------------------------------------------------------------------------- /build-client.sh: -------------------------------------------------------------------------------- 1 | cd libraries/libmlx4-1.2.1mlnx1/ 2 | make 3 | make install 4 | 5 | cd ../libibverbs-1.2.1mlnx1/ 6 | make 7 | make install 8 | 9 | cd ../librdmacm-1.1.0mlnx/ 10 | make 11 | make install 12 | 13 | -------------------------------------------------------------------------------- /build-router.sh: -------------------------------------------------------------------------------- 1 | cd libraries-router/librdmacm-1.1.0mlnx/ 2 | ./autogen.sh 3 | ./configure --prefix=/usr/ --libdir=/usr/lib/ --sysconfdir=/etc/ 4 | make 5 | make install 6 | 7 | cd ../../ffrouter/ 8 | ./build.sh 9 | -------------------------------------------------------------------------------- /ffrouter/Makefile: -------------------------------------------------------------------------------- 1 | OBJ = main.o ffrouter.o rdma_api.o shared_memory.o verbs_cmd.o 2 | CXXFLAGS = -std=c++11 -O3 3 | router: $(OBJ) 4 | g++ -o router $(OBJ) -lrdmacm -libverbs -lpthread -lrt 5 | #g++ -o router $(OBJ) -libverbs -lpthread -lrt 6 | main.o: main.cpp constant.h ffrouter.h rdma_api.h shared_memory.h log.h 7 | ffrouter.o: ffrouter.cpp 8 | rdma_api.o: rdma_api.cpp 9 | shared_memory.o: shared_memory.cpp 10 | verbs_cmd.o: verbs_cmd.cpp 11 | 12 | clean: 13 | rm router *.o 14 | -------------------------------------------------------------------------------- /ffrouter/build.sh: -------------------------------------------------------------------------------- 1 | ./clean.sh 2 | make 3 | -------------------------------------------------------------------------------- /ffrouter/clean.sh: -------------------------------------------------------------------------------- 1 | rm -f router *.o 2 | -------------------------------------------------------------------------------- /ffrouter/client_id.sh: -------------------------------------------------------------------------------- 1 | #! bin/bash 2 | sudo docker inspect receiver | grep "Id" | cut -d'"' -f4 > client_id.log 3 | sudo docker inspect sender | grep "Id" | cut -d'"' -f4 >> client_id.log 4 | -------------------------------------------------------------------------------- /ffrouter/constant.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | #define NSTRS 3 /* no. of strings */ 5 | #define ADDRESS "/freeflow/router_unix.sock" /* addr to connect */ 6 | 7 | #define PORT 51000 8 | #define IB_PORT_NUM 1 9 | #define POLL_TIMEOUT_MS 5000 10 | #define NUM_REPEATS 10 11 | #define MSG_SIZE 768 12 | #define MAX_SIZE 4096 13 | #define MAP_SIZE 10240 14 | 15 | #define CTRL_REQ_SIZE 1024 * 1024 // 1 MB 16 | #define CTRL_RSP_SIZE 1024 * 1024 // 1 MB 17 | 18 | -------------------------------------------------------------------------------- /ffrouter/log.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | #ifndef LOG_H 5 | #define LOG_H 6 | 7 | #include 8 | 9 | #define LOG_LEVEL 10 10 | 11 | #define LOG_INFO(x) (((LOG_LEVEL) <= 3) ? std::cout << "[INFO] " << x << std::endl : std::cout << "") 12 | #define LOG_DEBUG(x) (((LOG_LEVEL) <= 2) ? std::cout << "[DEBUG] " << x << std::endl : std::cout << "") 13 | #define LOG_TRACE(x) (((LOG_LEVEL) <= 1) ? std::cout << "[TRACE] " << x << std::endl : std::cout << "") 14 | #define LOG_ERROR(x) (std::cerr << "[ERROR] " << x << std::endl); 15 | 16 | #endif /* LOG_H */ 17 | -------------------------------------------------------------------------------- /ffrouter/main.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | #include "ffrouter.h" 5 | #include "constant.h" 6 | 7 | int main (int argc, char **argv) { 8 | char *router_name = NULL; 9 | if (argc < 2) { 10 | printf("WARNING: router name not specified. Using \"ffrouter\"\n"); 11 | router_name = "ffrouter"; 12 | } 13 | else { 14 | router_name = argv[1]; 15 | } 16 | 17 | FreeFlowRouter ffr(router_name); 18 | ffr.start(); 19 | } 20 | -------------------------------------------------------------------------------- /ffrouter/router.sh: -------------------------------------------------------------------------------- 1 | #! bin/bash 2 | 3 | gcc -o router ./router.c -lrdmacm -libverbs -lpthread -lrt 4 | -------------------------------------------------------------------------------- /ffrouter/router_gdb.sh: -------------------------------------------------------------------------------- 1 | #! bin/bash 2 | 3 | gcc -o router ./router.c -lrdmacm -libverbs -lpthread -lrt -g 4 | -------------------------------------------------------------------------------- /ffrouter/shared_memory.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | #include "shared_memory.h" 5 | 6 | ShmPiece::ShmPiece(const char* name, int size) 7 | { 8 | this->name = name; 9 | this->size = size; 10 | 11 | this->shm_fd = -1; 12 | this->ptr = NULL; 13 | } 14 | 15 | ShmPiece::~ShmPiece() 16 | { 17 | this->remove(); 18 | } 19 | 20 | bool ShmPiece::open() 21 | { 22 | /* open shared memory segment */ 23 | this->shm_fd = shm_open(this->name.c_str(), O_CREAT | O_RDWR, 0666); 24 | 25 | /* set the size of shared memory segment */ 26 | ftruncate(shm_fd, this->size); 27 | 28 | /* now map the shared memory segment in the address space of the process */ 29 | this->ptr = mmap(0, this->size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_LOCKED, this->shm_fd, 0); 30 | 31 | if (this->ptr == MAP_FAILED){ 32 | LOG_ERROR("Error mapping shared memory " << this->name); 33 | return false; 34 | } 35 | 36 | return true; 37 | } 38 | 39 | void ShmPiece::remove() 40 | { 41 | if (this->ptr != MAP_FAILED) 42 | { 43 | if (shm_unlink(this->name.c_str()) == -1) 44 | LOG_ERROR("Error removing " << this->name); 45 | } 46 | } 47 | 48 | -------------------------------------------------------------------------------- /ffrouter/shared_memory.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | #ifndef SHARED_MEMORY_H 5 | #define SHARED_MEMORY_H 6 | 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | #include 20 | #include 21 | 22 | #include "constant.h" 23 | #include "log.h" 24 | 25 | class ShmPiece 26 | { 27 | public: 28 | 29 | std::string name; 30 | int size; 31 | int shm_fd; 32 | void *ptr; 33 | 34 | ShmPiece(const char* name, int size); 35 | ~ShmPiece(); 36 | 37 | bool open(); 38 | void remove(); 39 | }; 40 | 41 | #endif /* SHARED_MEMORY_H */ 42 | -------------------------------------------------------------------------------- /ffrouter/verbs_cmd.h: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | #ifndef VERBS_CMD_H 5 | #define VERBS_CMD_H 6 | 7 | #include "rdma_api.h" 8 | #include "ibverbs.h" 9 | 10 | int ibv_exp_cmd_query_device_resp(int cmd_fd, void* cmd_in, void* resp_out); 11 | int ibv_cmd_query_qp_resp(int cmd_fd, void* cmd_in, int cmd_size, void* resp_out); 12 | int ibv_cmd_create_flow_resp(int cmd_fd, void* cmd_in, int written_size, int exp_flow, void* resp_out); 13 | int ibv_cmd_destroy_flow_resp(int cmd_fd, void* cmd_in); 14 | 15 | #endif /* VERBS_CMD_H */ 16 | 17 | 18 | -------------------------------------------------------------------------------- /images/spark_perf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Freeflow/fa129534b23f23b310667d127da1964b639309c0/images/spark_perf.png -------------------------------------------------------------------------------- /images/tensorflow_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Freeflow/fa129534b23f23b310667d127da1964b639309c0/images/tensorflow_image.png -------------------------------------------------------------------------------- /libmempool/COPYING.MIT: -------------------------------------------------------------------------------- 1 | This code is distributed under the MIT License, which is reproduced below and at the top of the project files. This pretty much means you can do whatever you want with the code, but I will not be liable for ANY kind of damage that this code might cause. Here is the full license which you should read before using the code: 2 | 3 | Copyright (c) 2013 Cosku Acay, http://www.coskuacay.com 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | 11 | -------------------------------------------------------------------------------- /libmempool/Makefile: -------------------------------------------------------------------------------- 1 | all: libmempool.cpp 2 | g++ -c -g -O3 -Wall -Werror -fPIC -std=c++11 libmempool.cpp MemoryPool.tcc 3 | g++ -g -shared -o libmempool.so libmempool.o 4 | 5 | install: 6 | cp libmempool.so /usr/lib/libmempool.so 7 | 8 | clean: 9 | rm -f /usr/lib/libmempool.so 10 | rm -f *.so *.o 11 | -------------------------------------------------------------------------------- /libmempool/libmempool.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | #include "libmempool.h" 5 | 6 | MemPool::MemPool() { 7 | pthread_spin_init(&m_lock, PTHREAD_PROCESS_PRIVATE); 8 | } 9 | 10 | MemPool::~MemPool() { 11 | pthread_spin_destroy(&m_lock); 12 | } 13 | 14 | void* MemPool::insert(uint32_t key) { 15 | pthread_spin_lock(&m_lock); 16 | PlaceHolder *r = m_pool.allocate(); 17 | m_map[key] = r; 18 | pthread_spin_unlock(&m_lock); 19 | return (void*)r; 20 | } 21 | 22 | void* MemPool::get(uint32_t key) { 23 | pthread_spin_lock(&m_lock); 24 | PlaceHolder *r = m_map[key]; 25 | pthread_spin_unlock(&m_lock); 26 | return (void*)r; 27 | } 28 | 29 | void MemPool::del(uint32_t key) { 30 | pthread_spin_lock(&m_lock); 31 | m_pool.deallocate(m_map[key]); 32 | m_map.erase(key); 33 | pthread_spin_unlock(&m_lock); 34 | return; 35 | } 36 | 37 | MemQueue::MemQueue() { 38 | pthread_spin_init(&m_lock, PTHREAD_PROCESS_PRIVATE); 39 | } 40 | 41 | MemQueue::~MemQueue() { 42 | pthread_spin_destroy(&m_lock); 43 | } 44 | 45 | void* MemQueue::get_tail() { 46 | pthread_spin_lock(&m_lock); 47 | PlaceHolder *r = m_queue.front(); 48 | pthread_spin_unlock(&m_lock); 49 | return (void*)r; 50 | } 51 | 52 | void MemQueue::del_tail() { 53 | pthread_spin_lock(&m_lock); 54 | m_pool.deallocate(m_queue.front()); 55 | m_queue.pop(); 56 | pthread_spin_unlock(&m_lock); 57 | return; 58 | } 59 | 60 | void* MemQueue::get_new_head() { 61 | pthread_spin_lock(&m_lock); 62 | PlaceHolder *r = m_pool.allocate(); 63 | m_queue.push(r); 64 | pthread_spin_unlock(&m_lock); 65 | return (void*)r; 66 | } 67 | -------------------------------------------------------------------------------- /libmempool/test.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | // Licensed under the MIT License. 3 | 4 | #include 5 | #include 6 | 7 | extern void* mempool_create(); 8 | extern void mempool_del(void* map, uint32_t k); 9 | extern void* mempool_get(void* map, uint32_t k); 10 | extern void mempool_destroy(void* map); 11 | 12 | int main() { 13 | void* mempool = mempool_create(); 14 | void *p1, *p2; 15 | p1 = mempool_get(mempool, 12345); 16 | *(int*)p1 = 54321; 17 | p2 = mempool_get(mempool, 12345); 18 | printf("%d\n", *(int*)p2); 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /libmempool/test.sh: -------------------------------------------------------------------------------- 1 | gcc -o test test.c -lmempool 2 | 3 | -------------------------------------------------------------------------------- /libraries-router/COPYING.BSD_MIT: -------------------------------------------------------------------------------- 1 | OpenIB.org BSD license (MIT variant) 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | - Redistributions of source code must retain the above copyright notice, 7 | this list of conditions and the following disclaimer. 8 | 9 | - Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation 11 | and/or other materials provided with the distribution. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/.gitignore: -------------------------------------------------------------------------------- 1 | # - see gitignore(5) 2 | # 3 | # http://www.kernel.org/pub/software/scm/git/docs/gitignore.html 4 | # http://git-scm.com/docs/gitignore.html 5 | # 6 | # - ignore files in this current directory with a leading / 7 | # so that files with the same name is a subdirectory 8 | # would not be ignored by mistake. 9 | # 10 | # per directory .gitignore would be used to ignore specific 11 | # files/patterns 12 | # 13 | # - more examples can be found at 14 | # 15 | # https://github.com/github/gitignore 16 | # http://git-scm.com/book/en/Git-Basics-Recording-Changes-to-the-Repository#Ignoring-Files 17 | # 18 | 19 | # global ignore rules: 20 | # 21 | # backup files 22 | # 23 | *~ 24 | 25 | # local (eg. current directory) rules: 26 | # 27 | # / 28 | 29 | # 30 | # files created by autoreconf (autoconf, automake, libtool) 31 | # 32 | 33 | /INSTALL 34 | /config.guess 35 | /config.sub 36 | /missing 37 | /depcomp 38 | /install-sh 39 | /configure 40 | /aclocal.m4 41 | /autom4te.cache/ 42 | /config.h.in 43 | /Makefile.in 44 | /compile 45 | /config 46 | 47 | # 48 | # files created by autoscan 49 | # 50 | 51 | /autoscan.log 52 | /configure.scan 53 | 54 | # 55 | # files created by ./configure 56 | # 57 | 58 | /config.h 59 | /config.status 60 | /config.log 61 | /Makefile 62 | /stamp-h1 63 | /libtool 64 | /librdmacm.spec 65 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/AUTHORS: -------------------------------------------------------------------------------- 1 | Sean Hefty 2 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Freeflow/fa129534b23f23b310667d127da1964b639309c0/libraries-router/librdmacm-1.1.0mlnx/ChangeLog -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Freeflow/fa129534b23f23b310667d127da1964b639309c0/libraries-router/librdmacm-1.1.0mlnx/NEWS -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/README: -------------------------------------------------------------------------------- 1 | This README is for userspace RDMA cm library. 2 | 3 | 4 | Building 5 | ======== 6 | To make this directory, run: 7 | ./autogen.sh && ./configure && make && make install 8 | 9 | Typically the autogen and configure steps only need be done the first 10 | time unless configure.in or Makefile.am changes. 11 | 12 | Libraries are installed by default at /usr/local/lib. 13 | 14 | 15 | Device files 16 | ============ 17 | The userspace CMA uses a single device file regardless of the number 18 | of adapters or ports present. 19 | 20 | To create the appropriate character device file automatically with 21 | udev, a rule like 22 | 23 | KERNEL="rdma_cm", NAME="infiniband/%k", MODE="0666" 24 | 25 | can be used. This will create the device node named 26 | 27 | /dev/infiniband/rdma_cm 28 | 29 | or you can create it manually 30 | 31 | mknod /dev/infiniband/rdma_cm c 231 255 32 | 33 | 34 | Common issues 35 | ============= 36 | 37 | Using multiple interfaces 38 | The librdmacm does support multiple interfaces. To make use 39 | of multiple interfaces, however, you need to instruct linux 40 | to only send ARP reples on the interface targetted in the ARP 41 | request. This can be done using a command similar to the 42 | following: 43 | 44 | sysctl -w net.ipv4.conf.all.arp_ignore=2 45 | 46 | Without this change, it's possible for linux to resopnd to ARP 47 | requests on a different interface (IP address) than the IP 48 | address carried in the ARP request. This causes the RDMA stack 49 | to incorrectly map the remote IP address to the wrong RDMA 50 | device. 51 | 52 | Using loopback 53 | The librdmacm relies on ARP to resolve IP address to RDMA 54 | addresses. To support loopback connections between different 55 | ports on the same system, ARP must be enabled for local 56 | resolution: 57 | 58 | sysctl net.ipv4.conf.all.accept_local=1 59 | 60 | Without this setting, loopback connections may timeout 61 | during address resolution. 62 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -x 4 | test -d ./config || mkdir ./config 5 | autoreconf -ifv -I config 6 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/changelog: -------------------------------------------------------------------------------- 1 | librdmacm (1.1.0mlnx-OFED.4.0.1.6.1.40200) unstable; urgency=low 2 | 3 | * Roll 1.1.0mlnx 4 | 5 | -- Alaa Hleihel Tue, 09 Aug 2016 10:28:10 +0200 6 | 7 | librdmacm (1.0.21mlnx-1) unstable; urgency=low 8 | 9 | * rsockets: Delay initializing buffers until the inline size is known 10 | * Remove prints to stderr 11 | 12 | -- Alaa Hleihel Tue, 09 Jun 2015 10:28:10 +0200 13 | 14 | librdmacm (1.0.20mlnx-1) unstable; urgency=low 15 | 16 | * Improved experimental interface 17 | * rping: change imm_data to ex.invalidate_rkey 18 | * Updated rdmacm for changes in libibverbs interface 19 | * Updated rdmacm for the new libibverbs experimental interface 20 | * Removed ts struct and use direct field timestamp 21 | * Fixed compilation issue due to shifting bind_mw struct in ib_send_wr 22 | * Added MW support 23 | * timestamping: ucmatose and udaddy should print connectionid when printing timestamping messages 24 | * cmatose: added support for timestamping 25 | * udaddy: added support for timestamping 26 | 27 | -- Vladimir Sokolovsky Tue, 22 Apr 2014 13:38:10 +0200 28 | 29 | librdmacm (1.0.17mlnx2-1) unstable; urgency=low 30 | 31 | * New Mellanox release. 32 | 33 | -- Vladimir Sokolovsky Mon, 7 Jan 2013 13:38:10 +0200 34 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/compat: -------------------------------------------------------------------------------- 1 | 8 2 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/control: -------------------------------------------------------------------------------- 1 | Source: librdmacm 2 | Priority: extra 3 | Maintainer: Gal Sivan 4 | Build-Depends: debhelper (>= 8.0.0), autotools-dev, libibverbs-dev (>= 1.1) 5 | Standards-Version: 3.9.2 6 | Section: libs 7 | Homepage: http://www.openfabrics.org/ 8 | #Vcs-Git: git://git.debian.org/collab-maint/librdmacm.git 9 | #Vcs-Browser: http://git.debian.org/?p=collab-maint/librdmacm.git;a=summary 10 | 11 | Package: librdmacm-dev 12 | Section: libdevel 13 | Architecture: any 14 | Depends: librdmacm1 (= ${binary:Version}) 15 | Description: Development files for the librdmacm library 16 | Development files for the librdmacm library. 17 | 18 | Package: librdmacm1 19 | Section: libs 20 | Architecture: any 21 | Depends: ${shlibs:Depends}, ${misc:Depends} 22 | Description: Userspace RDMA Connection Manager 23 | librdmacm provides a userspace RDMA Communication Managment API. 24 | 25 | Package: librdmacm-utils 26 | Section: libs 27 | Architecture: any 28 | Depends: ${shlibs:Depends}, ${misc:Depends} 29 | Description: Examples for the librdmacm library 30 | Example test programs for the librdmacm library. 31 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/copyright: -------------------------------------------------------------------------------- 1 | Format: http://dep.debian.net/deps/dep5 2 | Upstream-Name: librdmacm 3 | Source: 4 | 5 | Files: * 6 | Copyright: 7 | 8 | License: 9 | 10 | 11 | . 12 | 13 | 14 | # If you want to use GPL v2 or later for the /debian/* files use 15 | # the following clauses, or change it to suit. Delete these two lines 16 | Files: debian/* 17 | Copyright: 2012 Gal Sivan 18 | License: GPL-2+ 19 | This package is free software; you can redistribute it and/or modify 20 | it under the terms of the GNU General Public License as published by 21 | the Free Software Foundation; either version 2 of the License, or 22 | (at your option) any later version. 23 | . 24 | This package is distributed in the hope that it will be useful, 25 | but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 | GNU General Public License for more details. 28 | . 29 | You should have received a copy of the GNU General Public License 30 | along with this program. If not, see 31 | . 32 | On Debian systems, the complete text of the GNU General 33 | Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". 34 | 35 | # Please also look if there are files or directories which have a 36 | # different copyright/license attached and list them here. 37 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/docs: -------------------------------------------------------------------------------- 1 | NEWS 2 | README 3 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/librdmacm-dev.dirs: -------------------------------------------------------------------------------- 1 | usr/lib 2 | usr/include 3 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/librdmacm-dev.install: -------------------------------------------------------------------------------- 1 | usr/include/* 2 | usr/lib/lib*.a 3 | usr/lib/lib*.so 4 | usr/lib/rsocket/lib*.a 5 | usr/lib/rsocket/lib*.so 6 | usr/share/man/man3 7 | usr/share/man/man7 8 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/librdmacm-utils.dirs: -------------------------------------------------------------------------------- 1 | usr/bin 2 | usr/include 3 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/librdmacm-utils.install: -------------------------------------------------------------------------------- 1 | /usr/bin/* 2 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/librdmacm1.dirs: -------------------------------------------------------------------------------- 1 | usr/lib 2 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/librdmacm1.install: -------------------------------------------------------------------------------- 1 | usr/lib/lib*.so.* 2 | usr/lib/rsocket/lib*.so.* 3 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Sample debian/rules that uses debhelper. 4 | # This file was originally written by Joey Hess and Craig Small. 5 | # As a special exception, when this file is copied by dh-make into a 6 | # dh-make output file, you may use that output file without restriction. 7 | # This special exception was added by Craig Small in version 0.37 of dh-make. 8 | 9 | # Uncomment this to turn on verbose mode. 10 | #export DH_VERBOSE=1 11 | 12 | %: 13 | dh $@ 14 | 15 | override_dh_makeshlibs: 16 | dh_makeshlibs -V 'librdmacm1 (>= 1.0.7)' 17 | 18 | override_dh_auto_configure: 19 | autoreconf -f -i 20 | dh_auto_configure 21 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/examples/.gitignore: -------------------------------------------------------------------------------- 1 | # files produced by ./configure 2 | /.deps 3 | 4 | # files produced by make (libtool) 5 | /*.o 6 | /*.lo 7 | /*.la 8 | /.libs 9 | /.dirstamp 10 | 11 | /cmtime 12 | /mckey 13 | /rcopy 14 | /rdma_client 15 | /rdma_server 16 | /rdma_xclient 17 | /rdma_xserver 18 | /riostream 19 | /rping 20 | /rstream 21 | /ucmatose 22 | /udaddy 23 | /udpong 24 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rcopy.1: -------------------------------------------------------------------------------- 1 | .TH "RCOPY" 1 "2011-12-2" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rcopy \- simple file copy over RDMA. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrcopy\fR source server[:destination] [-p port] 8 | \fIrcopy\fR [-p port] 9 | .fi 10 | .SH "DESCRIPTION" 11 | Uses sockets over RDMA interface to copy a source file to the 12 | specified destination. 13 | .SH "OPTIONS" 14 | .TP 15 | \source 16 | The name and path of the source file to copy. 17 | .TP 18 | \server 19 | The name or address of the destination server. 20 | .TP 21 | \:destination 22 | An optional destination filename and path. If not given, the destination 23 | filename will match that of the source. 24 | .TP 25 | \-p server_port 26 | The server's port number. 27 | .TP 28 | .SH "NOTES" 29 | Basic usage is to start rcopy on a server system, then run 30 | rcopy sourcefile servername. The server application will continue to run after 31 | copying the file, but is currently single-threaded. 32 | .P 33 | Because this test maps RDMA resources to userspace, users must ensure 34 | that they have available system resources and permissions. See the 35 | libibverbs README file for additional details. 36 | .SH "SEE ALSO" 37 | rdma_cm(7) 38 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_ack_cm_event.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_ACK_CM_EVENT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_ack_cm_event \- Free a communication event. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_ack_cm_event 8 | .BI "(struct rdma_cm_event *" event ");" 9 | .SH ARGUMENTS 10 | .IP "event" 12 11 | Event to be released. 12 | .SH "DESCRIPTION" 13 | All events which are allocated by rdma_get_cm_event must be released, 14 | there should be a one-to-one correspondence between successful gets 15 | and acks. This call frees the event structure and any memory that it 16 | references. 17 | .SH "RETURN VALUE" 18 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 19 | set to indicate the failure reason. 20 | .SH "SEE ALSO" 21 | rdma_get_cm_event(3), rdma_destroy_id(3) 22 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_bind_addr.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_BIND_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_bind_addr \- Bind an RDMA identifier to a source address. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_bind_addr 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct sockaddr *" addr ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .IP "addr" 12 14 | Local address information. Wildcard values are permitted. 15 | .SH "DESCRIPTION" 16 | Associates a source address with an rdma_cm_id. The address may be 17 | wildcarded. If binding to a specific local address, the rdma_cm_id 18 | will also be bound to a local RDMA device. 19 | .SH "RETURN VALUE" 20 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 21 | set to indicate the failure reason. 22 | .SH "NOTES" 23 | Typically, this routine is called before calling rdma_listen to bind 24 | to a specific port number, but it may also be called on the active side 25 | of a connection before calling rdma_resolve_addr to bind to a specific 26 | address. 27 | .P 28 | If used to bind to port 0, the rdma_cm will select an available port, 29 | which can be retrieved with rdma_get_src_port(3). 30 | .SH "SEE ALSO" 31 | rdma_create_id(3), rdma_listen(3), rdma_resolve_addr(3), rdma_create_qp(3), 32 | rdma_get_local_addr(3), rdma_get_src_port(3) 33 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_client.1: -------------------------------------------------------------------------------- 1 | .TH "RDMA_CLIENT" 1 "2010-07-19" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rdma_client \- simple RDMA CM connection and ping-pong test. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrdma_client\fR [-s server_address] [-p server_port] 8 | .fi 9 | .SH "DESCRIPTION" 10 | Uses synchronous librdmam calls to establish an RDMA connection between 11 | two nodes. This example is intended to provide a very simple coding 12 | example of how to use RDMA. 13 | .SH "OPTIONS" 14 | .TP 15 | \-s server_address 16 | Specifies the address of the system that the rdma_server is running on. 17 | By default, the client will attempt to connect to the server using 18 | 127.0.0.1. 19 | .TP 20 | \-p server_port 21 | Specifies the port number that the server listens on. By default the server 22 | listens on port 7471. 23 | .SH "NOTES" 24 | Basic usage is to start rdma_server, then connect to the server using the 25 | rdma_client program. 26 | .P 27 | Because this test maps RDMA resources to userspace, users must ensure 28 | that they have available system resources and permissions. See the 29 | libibverbs README file for additional details. 30 | .SH "SEE ALSO" 31 | rdma_cm(7), udaddy(1), mckey(1), rping(1), rdma_server(1) 32 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_create_event_channel.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_CREATE_EVENT_CHANNEL" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_create_event_channel \- Open a channel used to report communication events. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct rdma_event_channel *" rdma_create_event_channel 8 | .BI "(" void ");" 9 | .SH ARGUMENTS 10 | .IP "void" 12 11 | no arguments 12 | .SH "DESCRIPTION" 13 | Asynchronous events are reported to users through event channels. 14 | .SH "RETURN VALUE" 15 | Returns a pointer to the created event channel, or NULL if the request 16 | fails. On failure, errno will be set to indicate the failure reason. 17 | .SH "NOTES" 18 | Event channels are used to direct all events on an rdma_cm_id. For many 19 | clients, a single event channel may be sufficient, however, when managing 20 | a large number of connections or cm_id's, users may find it useful to direct 21 | events for different cm_id's to different channels for processing. 22 | .P 23 | All created event channels must be destroyed by calling 24 | rdma_destroy_event_channel. Users should call rdma_get_cm_event to 25 | retrieve events on an event channel. 26 | .P 27 | Each event channel is mapped to a file descriptor. The associated file 28 | descriptor can be used and manipulated like any other fd to change its 29 | behavior. Users may make the fd non-blocking, poll or select the fd, etc. 30 | .SH "SEE ALSO" 31 | rdma_cm(7), rdma_get_cm_event(3), rdma_destroy_event_channel(3) 32 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_create_srq.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_CREATE_SRQ" 3 "2011-06-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_create_srq \- Allocate a shared receive queue. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_create_srq 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct ibv_pd *" pd "," 10 | .BI "struct ibv_srq_init_attr *" attr ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | RDMA identifier. 14 | .IP "pd" 12 15 | Optional protection domain for the SRQ. 16 | .IP "attr" 12 17 | Initial SRQ attributes. 18 | .SH "DESCRIPTION" 19 | Allocate a SRQ associated with the specified rdma_cm_id. 20 | .SH "RETURN VALUE" 21 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 22 | set to indicate the failure reason. 23 | .SH "NOTES" 24 | The rdma_cm_id must be bound to a local RDMA device before calling this 25 | function, and the protection domain, if provided, must be for that same device. 26 | After being allocated, the SRQ will be ready to handle posting of receives. 27 | .P 28 | If a protection domain is not given - pd parameter is NULL - then 29 | the rdma_cm_id will be created using a default protection domain. One 30 | default protection domain is allocated per RDMA device. 31 | .P 32 | The initial SRQ attributes are specified by the attr parameter. The 33 | ext.xrc.cq fields in the ibv_srq_init_attr is optional. If 34 | a completion queue is not specified for an XRC SRQ, then a CQ will be 35 | allocated by the rdma_cm for the SRQ, along with corresponding completion 36 | channels. Completion channels and CQ data created by the rdma_cm are 37 | exposed to the user through the rdma_cm_id structure. 38 | .P 39 | The actual capabilities and properties of the created SRQ will be 40 | returned to the user through the attr parameter. An rdma_cm_id 41 | may only be associated with a single SRQ. 42 | .SH "SEE ALSO" 43 | rdma_bind_addr(3), rdma_resolve_addr(3), rdma_create_ep(3), 44 | rdma_destroy_srq(3), ibv_create_srq(3), ibv_create_xsrq(3) 45 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_dereg_mr.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DEREG_MR" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_dereg_mr \- deregisters a registered memory region. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_mr *" rdma_dereg_mr 8 | .BI "(struct ibv_mr *" mr ");" 9 | .SH ARGUMENTS 10 | .IP "mr" 12 11 | A reference to a registered memory buffer. 12 | .SH "DESCRIPTION" 13 | Deregisters a memory buffer that had been registered for RDMA 14 | or message operations. A user should call rdma_dereg_mr for all 15 | registered memory associated with an rdma_cm_id before destroying 16 | the rdma_cm_id. 17 | .SH "RETURN VALUE" 18 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 19 | set to indicate the failure reason. 20 | .SH "NOTES" 21 | All memory registered with an rdma_cm_id is associated with the 22 | protection domain associated with the id. Users must deregister 23 | all registered memory before the protection domain can be destroyed. 24 | .SH "SEE ALSO" 25 | rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), 26 | rdma_destroy_id(3), rdma_destroy_ep(3), 27 | rdma_reg_msgs(3), rdma_reg_read(3), rdma_reg_write(3), 28 | ibv_reg_mr(3), ibv_dereg_mr(3) 29 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_destroy_ep.3: -------------------------------------------------------------------------------- 1 | 2 | .TH "RDMA_DESTROY_EP" 3 "2011-06-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_destroy_ep \- Release a communication identifier. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "void" rdma_destroy_ep 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | The communication identifier to destroy. 13 | .SH "DESCRIPTION" 14 | Destroys the specified rdma_cm_id and all associated resources 15 | .SH "NOTES" 16 | rdma_destroy_ep will automatically destroy any QP and SRQ associated with 17 | the rdma_cm_id. 18 | .SH "SEE ALSO" 19 | rdma_create_ep(3) 20 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_destroy_event_channel.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DESTROY_EVENT_CHANNEL" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_destroy_event_channel \- Close an event communication channel. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "void" rdma_destroy_event_channel 8 | .BI "(struct rdma_event_channel *" channel ");" 9 | .SH ARGUMENTS 10 | .IP "channel" 12 11 | The communication channel to destroy. 12 | .SH "DESCRIPTION" 13 | Release all resources associated with an event channel and closes the 14 | associated file descriptor. 15 | .SH "RETURN VALUE" 16 | None 17 | .SH "NOTES" 18 | All rdma_cm_id's associated with the event channel must be destroyed, 19 | and all returned events must be acked before calling this function. 20 | .SH "SEE ALSO" 21 | rdma_create_event_channel(3), rdma_get_cm_event(3), rdma_ack_cm_event(3) 22 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_destroy_id.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DESTROY_ID" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_destroy_id \- Release a communication identifier. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_destroy_id 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | The communication identifier to destroy. 12 | .SH "DESCRIPTION" 13 | Destroys the specified rdma_cm_id and cancels any outstanding 14 | asynchronous operation. 15 | .SH "RETURN VALUE" 16 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 17 | set to indicate the failure reason. 18 | .SH "NOTES" 19 | Users must free any associated QP with the rdma_cm_id before 20 | calling this routine and ack all related events. 21 | .SH "SEE ALSO" 22 | rdma_create_id(3), rdma_destroy_qp(3), rdma_ack_cm_event(3) 23 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_destroy_qp.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DESTROY_QP" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_destroy_qp \- Deallocate a QP. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "void" rdma_destroy_qp 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Destroy a QP allocated on the rdma_cm_id. 14 | .SH "NOTES" 15 | Users must destroy any QP associated with an rdma_cm_id before 16 | destroying the ID. 17 | .SH "SEE ALSO" 18 | rdma_create_qp(3), rdma_destroy_id(3), ibv_destroy_qp(3) 19 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_destroy_srq.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DESTROY_SRQ" 3 "2011-06-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_destroy_srq \- Deallocate a SRQ. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "void" rdma_destroy_srq 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Destroy an SRQ allocated on the rdma_cm_id. 14 | .SH "RETURN VALUE" 15 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 16 | set to indicate the failure reason. 17 | .SH "NOTES" 18 | Users should destroy any SRQ associated with an rdma_cm_id before 19 | destroying the ID. 20 | .SH "SEE ALSO" 21 | rdma_create_srq(3), rdma_destroy_id(3), ibv_destroy_srq(3) 22 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_disconnect.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DISCONNECT" 3 "2008-01-02" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_disconnect \- This function disconnects a connection. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_disconnect 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Disconnects a connection and transitions any associated QP to the error state, 14 | which will flush any posted work requests to the completion queue. This 15 | routine should be called by both the client and server side of a connection. 16 | After successfully disconnecting, an RDMA_CM_EVENT_DISCONNECTED event will be 17 | generated on both sides of the connection. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. 21 | .SH "SEE ALSO" 22 | rdma_connect(3), rdma_listen(3), rdma_accept(3), rdma_get_cm_event(3) 23 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_event_str.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_EVENT_STR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_event_str \- Returns a string representation of an rdma cm event. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "char *" rdma_event_str 8 | .BI "("enum rdma_cm_event_type " event ");" 9 | .SH ARGUMENTS 10 | .IP "event" 12 11 | Asynchronous event. 12 | .SH "DESCRIPTION" 13 | Returns a string representation of an asynchronous event. 14 | .SH "RETURN VALUE" 15 | Returns a pointer to a static character string corresponding to the event. 16 | .SH "SEE ALSO" 17 | rdma_get_cm_event(3) 18 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_free_devices.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_FREE_DEVICES" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_free_devices \- Frees the list of devices returned by rdma_get_devices. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "void" rdma_free_devices 8 | .BI "(struct ibv_context **" list ");" 9 | .SH ARGUMENTS 10 | .IP "list" 12 11 | List of devices returned from rdma_get_devices. 12 | .SH "DESCRIPTION" 13 | Frees the device array returned by rdma_get_devices. 14 | .SH "RETURN VALUE" 15 | None 16 | .SH "SEE ALSO" 17 | rdma_get_devices(3) 18 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_get_devices.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_DEVICES" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_devices \- Get a list of RDMA devices currently available. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_context **" rdma_get_devices 8 | .BI "(int *" num_devices ");" 9 | .SH ARGUMENTS 10 | .IP "num_devices" 12 11 | If non-NULL, set to the number of devices returned. 12 | .SH "DESCRIPTION" 13 | Return a NULL-terminated array of opened RDMA devices. Callers can use 14 | this routine to allocate resources on specific RDMA devices that will be 15 | shared across multiple rdma_cm_id's. 16 | .SH "RETURN VALUE" 17 | Returns an array of available RDMA devices, or NULL if the request 18 | fails. On failure, errno will be set to indicate the failure reason. 19 | .SH "NOTES" 20 | The returned array must be released by calling rdma_free_devices. Devices 21 | remain opened while the librdmacm is loaded. 22 | .SH "SEE ALSO" 23 | rdma_free_devices(3) 24 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_get_dst_port.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_DST_PORT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_dst_port \- Returns the remote port number of a bound rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "uint16_t" rdma_get_dst_port 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Returns the remote port number for an rdma_cm_id that has been bound to 14 | a remote address. 15 | .SH "RETURN VALUE" 16 | Returns the 16-bit port identifier associated with the peer endpoint. If 17 | the rdma_cm_id is not connected, the returned value is 0. 18 | .SH "SEE ALSO" 19 | rdma_connect(3), rdma_accept(3), rdma_get_cm_event(3), rdma_get_src_port(3), 20 | rdma_get_local_addr(3), rdma_get_peer_addr(3) 21 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_get_local_addr.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_LOCAL_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_local_addr \- Returns the local IP address of a bound rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct sockaddr *" rdma_get_local_addr 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Returns the local IP address for an rdma_cm_id that has been bound to 14 | a local device. 15 | .SH "RETURN VALUE" 16 | Returns a pointer to the local sockaddr address of the rdma_cm_id. If 17 | the rdma_cm_id is not bound to an address, the contents of the sockaddr 18 | structure will be set to all zeroes. 19 | .SH "SEE ALSO" 20 | rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_src_port(3), 21 | rdma_get_dst_port(3), rdma_get_peer_addr(3) 22 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_get_peer_addr.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_PEER_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_peer_addr \- Returns the remote IP address of a bound rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct sockaddr *" rdma_get_peer_addr 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Returns the remote IP address associated with an rdma_cm_id. 14 | .SH "RETURN VALUE" 15 | Returns a pointer to the sockaddr address of the connected peer. If 16 | the rdma_cm_id is not connected, the contents of the sockaddr 17 | structure will be set to all zeroes. 18 | .SH "SEE ALSO" 19 | rdma_resolve_addr(3), rdma_get_src_port(3), rdma_get_dst_port(3), 20 | rdma_get_local_addr(3) 21 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_get_recv_comp.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_RECV_COMP" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_recv_comp \- retrieves a completed receive request. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_get_recv_comp 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct ibv_wc *" wc ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | A reference to a communication identifier to check for completions. 13 | .IP "wc" 12 14 | A reference to a work completion structure to fill in. 15 | .SH "DESCRIPTION" 16 | Retrieves a completed work request for a receive 17 | operation. Information about the completed request is returned through 18 | the wc parameter, with the wr_id set to the context of the request. For 19 | details on the work completion structure, see ibv_poll_cq. 20 | .SH "RETURN VALUE" 21 | Returns the number of returned completions (0 or 1) on success, or -1 on error. 22 | If an error occurs, errno will be set to indicate the failure reason. 23 | .SH "NOTES" 24 | This calls polls the receive completion queue associated with an rdma_cm_id. 25 | If a completion is not found, the call blocks until a request completes. 26 | This call should only be used on rdma_cm_id's that do not share CQs 27 | with other rdma_cm_id's, and maintain separate CQs for sends and receive 28 | completions. 29 | .SH "SEE ALSO" 30 | rdma_cm(7), ibv_poll_cq(3), rdma_get_send_comp(3), 31 | rdma_post_send(3), rdma_post_read(3), rdma_post_write(3) 32 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_get_request.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_REQUEST" 3 "2007-10-31" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_request \- Retrieves the next pending connection request event. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_get_request 8 | .BI "(struct rdma_cm_id *" listen "," 9 | .BI "struct rdma_cm_id **" id ");" 10 | .SH ARGUMENTS 11 | .IP "listen" 12 12 | Listening rdma_cm_id. 13 | .IP "id" 12 14 | rdma_cm_id associated with the new connection. 15 | .SH "DESCRIPTION" 16 | Retrieves a connection request event. If no requests are pending, 17 | the call will block until an event is received. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. 21 | .SH "NOTES" 22 | This call may only be used on listening rdma_cm_id's operating 23 | synchronously. On success, a new rdma_cm_id representing the 24 | connection request will be returned to the user. The new rdma_cm_id 25 | will reference event information associated with the request until 26 | the user calls rdma_reject, rdma_accept, or rdma_destroy_id on the 27 | newly created identifier. For a description of the event data, 28 | see rdma_get_cm_event. 29 | .P 30 | If QP attributes are associated with the listening endpoint, the 31 | returned rdma_cm_id will also reference an allocated QP. 32 | .SH "SEE ALSO" 33 | rdma_get_cm_event(3), rdma_accept(3), rdma_reject(3), 34 | rdma_connect(3), rdma_listen(3), rdma_destroy_id(3) 35 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_get_send_comp.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_SEND_COMP" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_send_comp \- retrieves a completed send, read, or write request. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_get_send_comp 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct ibv_wc *" wc ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | A reference to a communication identifier to check for completions. 13 | .IP "wc" 12 14 | A reference to a work completion structure to fill in. 15 | .SH "DESCRIPTION" 16 | Retrieves a completed work request for a send, RDMA read, or RDMA write 17 | operation. Information about the completed request is returned through 18 | the wc parameter, with the wr_id set to the context of the request. For 19 | details on the work completion structure, see ibv_poll_cq. 20 | .SH "RETURN VALUE" 21 | Returns the number of returned completions (0 or 1) on success, or -1 on error. 22 | If an error occurs, errno will be set to indicate the failure reason. 23 | .SH "NOTES" 24 | This calls polls the send completion queue associated with an rdma_cm_id. 25 | If a completion is not found, the call blocks until a request completes. 26 | This call should only be used on rdma_cm_id's that do not share CQs 27 | with other rdma_cm_id's, and maintain separate CQs for sends and receive 28 | completions. 29 | .SH "SEE ALSO" 30 | rdma_cm(7), ibv_poll_cq(3), rdma_get_recv_comp(3), 31 | rdma_post_send(3), rdma_post_read(3), rdma_post_write(3) 32 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_get_src_port.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_SRC_PORT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_src_port \- Returns the local port number of a bound rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "uint16_t" rdma_get_src_port 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Returns the local port number for an rdma_cm_id that has been bound to 14 | a local address. 15 | .SH "RETURN VALUE" 16 | Returns the 16-bit port identifier associated with the local endpoint. If 17 | the rdma_cm_id is not bound to a port, the returned value is 0. 18 | .SH "SEE ALSO" 19 | rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_dst_port(3), 20 | rdma_get_local_addr(3), rdma_get_peer_addr(3) 21 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_join_multicast.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_JOIN_MULTICAST" 3 "2008-01-02" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_join_multicast \- Joins a multicast group. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_join_multicast 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct sockaddr *" addr "," 10 | .BI "void *" context ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | Communication identifier associated with the request. 14 | .IP "addr" 12 15 | Multicast address identifying the group to join. 16 | .IP "context" 12 17 | User-defined context associated with the join request. 18 | .SH "DESCRIPTION" 19 | Joins a multicast group and attaches an associated QP to the group. 20 | .SH "RETURN VALUE" 21 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 22 | set to indicate the failure reason. 23 | .SH "NOTES" 24 | Before joining a multicast group, the rdma_cm_id must be bound to 25 | an RDMA device by calling rdma_bind_addr or rdma_resolve_addr. Use of 26 | rdma_resolve_addr requires the local routing tables to resolve the 27 | multicast address to an RDMA device, unless a specific source address 28 | is provided. The user must call rdma_leave_multicast to leave the 29 | multicast group and release any multicast resources. After the join 30 | operation completes, if a QP is associated with the rdma_cm_id, 31 | it is automatically attached to the multicast group when the multicast 32 | event is retrieved by the user. Otherwise, the user is responsible 33 | for calling ibv_attach_mcast to bind the QP to the multicast group. 34 | The join context is returned to the user through the private_data 35 | field in the rdma_cm_event. 36 | .SH "SEE ALSO" 37 | rdma_leave_multicast(3), rdma_bind_addr(3), rdma_resolve_addr(3), rdma_create_qp(3), 38 | rdma_get_cm_event(3) 39 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_leave_multicast.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_LEAVE_MULTICAST" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_leave_multicast \- Leaves a multicast group. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_leave_multicast 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct sockaddr *" addr ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | Communication identifier associated with the request. 13 | .IP "addr" 12 14 | Multicast address identifying the group to leave. 15 | .SH "DESCRIPTION" 16 | Leaves a multicast group and detaches an associated QP from the group. 17 | .SH "RETURN VALUE" 18 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 19 | set to indicate the failure reason. 20 | .SH "NOTES" 21 | Calling this function before a group has been fully joined results in 22 | canceling the join operation. Users should be aware that messages 23 | received from the multicast group may stilled be queued for 24 | completion processing immediately after leaving a multicast group. 25 | Destroying an rdma_cm_id will automatically leave all multicast groups. 26 | .SH "SEE ALSO" 27 | rdma_join_multicast(3), rdma_destroy_qp(3) 28 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_listen.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_LISTEN" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_listen \- Listen for incoming connection requests. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_listen 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "int " backlog ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .IP "backlog" 12 14 | backlog of incoming connection requests. 15 | .SH "DESCRIPTION" 16 | Initiates a listen for incoming connection requests or datagram service 17 | lookup. The listen will be restricted to the locally bound source 18 | address. 19 | .SH "RETURN VALUE" 20 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 21 | set to indicate the failure reason. 22 | .SH "NOTES" 23 | Users must have bound the rdma_cm_id to a local address by calling 24 | rdma_bind_addr before calling this routine. If the rdma_cm_id is 25 | bound to a specific IP address, the listen will be restricted to that 26 | address and the associated RDMA device. If the rdma_cm_id is bound 27 | to an RDMA port number only, the listen will occur across all RDMA 28 | devices. 29 | .SH "SEE ALSO" 30 | rdma_cm(7), rdma_bind_addr(3), rdma_connect(3), rdma_accept(3), rdma_reject(3), 31 | rdma_get_cm_event(3) 32 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_migrate_id.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_MIGRATE_ID" 3 "2007-11-13" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_migrate_id \- Move a communication identifer to a different event channel. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_migrate_id 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct rdma_event_channel *" channel ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | An existing communication identifier to migrate. 13 | .IP "channel" 12 14 | The communication channel that events associated with the 15 | allocated rdma_cm_id will be reported on. May be NULL. 16 | .SH "DESCRIPTION" 17 | Migrates a communication identifier to a different event channel. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. 21 | .SH "NOTES" 22 | This routine migrates a communication identifier to the specified event 23 | channel and moves any pending events associated with the rdma_cm_id 24 | to the new channel. Users should not poll for events on the 25 | rdma_cm_id's current event channel or invoke other routines on the 26 | rdma_cm_id while migrating between channels. This call will block while 27 | there are any unacknowledged events on the current event channel. 28 | .P 29 | If the channel parameter is NULL, the specified rdma_cm_id will be 30 | placed into synchronous operation mode. All calls on the id 31 | will block until the operation completes. 32 | .SH "SEE ALSO" 33 | rdma_cm(7), rdma_create_event_channel(3), rdma_create_id(3), 34 | rdma_get_cm_event(3) 35 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_notify.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_NOTIFY" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_notify \- Notifies the librdmacm of an asynchronous event. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_notify 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "enum ibv_event_type " event ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .IP "event" 12 14 | Asynchronous event. 15 | .SH "DESCRIPTION" 16 | Used to notify the librdmacm of asynchronous events that have occurred 17 | on a QP associated with the rdma_cm_id. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. If errno is set to EISCONN 21 | (transport endpoint is already connected), this indicates that the 22 | the underlying communication manager established the connection before 23 | the call to rdma_notify could be processed. In this case, the error may 24 | safely be ignored. 25 | .SH "NOTES" 26 | Asynchronous events that occur on a QP are reported through the user's 27 | device event handler. This routine is used to notify the librdmacm of 28 | communication events. In most cases, use of this routine is not 29 | necessary, however if connection establishment is done out of band 30 | (such as done through Infiniband), it's possible to receive data on a 31 | QP that is not yet considered connected. This routine forces the 32 | connection into an established state in this case in order to handle 33 | the rare situation where the connection never forms on its own. 34 | Calling this routine ensures the delivery of the RDMA_CM_EVENT_ESTABLISHED 35 | event to the application. 36 | Events that should be reported to the CM are: IB_EVENT_COMM_EST. 37 | .SH "SEE ALSO" 38 | rdma_connect(3), rdma_accept(3), rdma_listen(3) 39 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_post_sendv.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_POST_SENDV" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_post_sendv \- post a work request to send a message. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_post_sendv 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "void *" context "," 10 | .BI "struct ibv_sge *" slg "," 11 | .BI "int " nsge "," 12 | .BI "int " flags ");" 13 | .SH ARGUMENTS 14 | .IP "id" 12 15 | A reference to a communication identifier where the message buffer 16 | will be posted. 17 | .IP "context" 12 18 | User-defined context associated with the request. 19 | .IP "slg" 12 20 | A scatter-gather list of memory buffers posted as a single request. 21 | .IP "nsge" 12 22 | The number of scatter-gather entries in the slg array. 23 | .IP "flags" 12 24 | Optional flags used to control the send operation. 25 | .SH "DESCRIPTION" 26 | Posts a work request to the send queue of the queue pair associated 27 | with the rdma_cm_id. The contents of the posted buffers will be sent 28 | to the remote peer of a connection. 29 | .SH "RETURN VALUE" 30 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 31 | set to indicate the failure reason. 32 | .SH "NOTES" 33 | The user is responsible for ensuring that the remote peer has queued a 34 | receive request before issuing the send operations. For a list of 35 | supported flags, see ibv_post_send. Unless the send request is using 36 | inline data, the message buffers must have been registered 37 | before being posted, and the buffers must remain registered 38 | until the send completes. 39 | .P 40 | Send operations may not be posted to an rdma_cm_id or the corresponding 41 | queue pair until it has been connected. 42 | .P 43 | The user-defined context associated with the send request will be 44 | returned to the user through the work completion wr_id, work request 45 | identifier, field. 46 | .SH "SEE ALSO" 47 | rdma_cm(7), rdma_connect(3), rdma_accept(3), 48 | ibv_post_send(3), rdma_post_send(3), rdma_post_recv(3) 49 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_reg_msgs.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_REG_MSGS" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_reg_msgs \- register data buffer(s) for sending or receiving messages. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_mr *" rdma_reg_msgs 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "void *" addr "," 10 | .BI "size_t " length ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | A reference to a communication identifier where the message buffer(s) 14 | will be used. 15 | .IP "addr" 12 16 | The address of the memory buffer(s) to register. 17 | .IP "length" 12 18 | The total length of the memory to register. 19 | .SH "DESCRIPTION" 20 | Registers an array of memory buffers used for sending and receiving 21 | messages or for RDMA operations. Memory buffers registered using 22 | rdma_reg_msgs may be posted to an rdma_cm_id using 23 | rdma_post_send or rdma_post_recv, or specified as the target of an RDMA 24 | read operation or the source of an RDMA write reqeust. 25 | .SH "RETURN VALUE" 26 | Returns a reference to the registered memory region on success, or NULL on 27 | error. If an error occurs, errno will be set to indicate the failure reason. 28 | .SH "NOTES" 29 | rdma_reg_msgs is used to register an array of data buffers 30 | that will be used send and/or receive messages on a queue pair associated with 31 | an rdma_cm_id. The memory buffer is registered with the proteection 32 | domain associated with the idenfier. The start of the data buffer array 33 | is specified through the addr parameter, and the total size of the array 34 | is given by length. 35 | .P 36 | All data buffers should be registered before being posted as a work request. 37 | Users must deregister all registered memory by calling rdma_dereg_mr. 38 | .SH "SEE ALSO" 39 | rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), 40 | rdma_reg_read(3), rdma_reg_write(3), 41 | ibv_reg_mr(3), ibv_dereg_mr(3), rdma_post_send(3), rdma_post_recv(3), 42 | rdma_post_read(3), rdma_post_readv(3), rdma_post_write(3), rdma_post_writev(3) 43 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_reg_read.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_REG_READ" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_reg_read \- register data buffer(s) for remote RDMA read access. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_mr *" rdma_reg_read 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "void *" addr "," 10 | .BI "size_t " length ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | A reference to a communication identifier where the message buffer(s) 14 | will be used. 15 | .IP "addr" 12 16 | The address of the memory buffer(s) to register. 17 | .IP "length" 12 18 | The total length of the memory to register. 19 | .SH "DESCRIPTION" 20 | Registers a memory buffer that will be accessed by a remote RDMA read 21 | operation. Memory buffers registered using rdma_reg_read may be 22 | targeted in an RDMA read request, allowing the buffer to be 23 | specified on the remote side of an RDMA connection as the remote_addr 24 | of rdma_post_read, or similar call. 25 | .SH "RETURN VALUE" 26 | Returns a reference to the registered memory region on success, or NULL on 27 | error. If an error occurs, errno will be set to indicate the failure reason. 28 | .SH "NOTES" 29 | rdma_reg_read is used to register a data buffer that will be the 30 | target of an RDMA read operation on a queue pair associated with 31 | an rdma_cm_id. The memory buffer is registered with the proteection 32 | domain associated with the idenfier. The start of the data buffer 33 | is specified through the addr parameter, and the total size of the buffer 34 | is given by length. 35 | .P 36 | All data buffers should be registered before being posted as a work request. 37 | Users must deregister all registered memory by calling rdma_dereg_mr. 38 | .SH "SEE ALSO" 39 | rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), 40 | rdma_reg_msgs(3), rdma_reg_write(3), 41 | ibv_reg_mr(3), ibv_dereg_mr(3), rdma_post_read(3) 42 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_reg_write.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_REG_WRITE" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_reg_write \- register data buffer(s) for remote RDMA write access. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_mr *" rdma_reg_write 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "void *" addr "," 10 | .BI "size_t " length ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | A reference to a communication identifier where the message buffer(s) 14 | will be used. 15 | .IP "addr" 12 16 | The address of the memory buffer(s) to register. 17 | .IP "length" 12 18 | The total length of the memory to register. 19 | .SH "DESCRIPTION" 20 | Registers a memory buffer that will be accessed by a remote RDMA write 21 | operation. Memory buffers registered using rdma_reg_write may be 22 | targeted in an RDMA write request, allowing the buffer to be 23 | specified on the remote side of an RDMA connection as the remote_addr 24 | of rdma_post_write, or similar call. 25 | .SH "RETURN VALUE" 26 | Returns a reference to the registered memory region on success, or NULL on 27 | error. If an error occurs, errno will be set to indicate the failure reason. 28 | .SH "NOTES" 29 | rdma_reg_write is used to register a data buffer that will be the 30 | target of an RDMA write operation on a queue pair associated with 31 | an rdma_cm_id. The memory buffer is registered with the proteection 32 | domain associated with the idenfier. The start of the data buffer 33 | is specified through the addr parameter, and the total size of the buffer 34 | is given by length. 35 | .P 36 | All data buffers should be registered before being posted as a work request. 37 | Users must deregister all registered memory by calling rdma_dereg_mr. 38 | .SH "SEE ALSO" 39 | rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), 40 | rdma_reg_msgs(3), rdma_reg_read(3), 41 | ibv_reg_mr(3), ibv_dereg_mr(3), rdma_post_write(3) 42 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_reject.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_REJECT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_reject \- Called to reject a connection request. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_reject 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "const void *" private_data "," 10 | .BI "uint8_t " private_data_len ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | Connection identifier associated with the request. 14 | .IP "private_data" 12 15 | Optional private data to send with the reject message. 16 | .IP "private_data_len" 12 17 | Specifies the size of the user-controlled data buffer. Note that the actual 18 | amount of data transferred to the remote side is transport dependent and may 19 | be larger than that requested. 20 | .SH "DESCRIPTION" 21 | Called from the listening side to reject a connection or datagram 22 | service lookup request. 23 | .SH "RETURN VALUE" 24 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 25 | set to indicate the failure reason. 26 | .SH "NOTES" 27 | After receiving a connection request event, a user may call rdma_reject 28 | to reject the request. If the underlying RDMA transport supports 29 | private data in the reject message, the specified data will be passed to 30 | the remote side. 31 | .SH "SEE ALSO" 32 | rdma_listen(3), rdma_accept(3), rdma_get_cm_event(3) 33 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_resolve_route.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_RESOLVE_ROUTE" 3 "2007-10-31" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_resolve_route \- Resolve the route information needed to establish a connection. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_resolve_route 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "int " timeout_ms ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .IP "timeout_ms" 12 14 | Time to wait for resolution to complete. 15 | .SH "DESCRIPTION" 16 | Resolves an RDMA route to the destination address in order to establish 17 | a connection. The destination address must have already been resolved 18 | by calling rdma_resolve_addr. 19 | .SH "RETURN VALUE" 20 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 21 | set to indicate the failure reason. 22 | .SH "NOTES" 23 | This is called on the client side of a connection after calling 24 | rdma_resolve_addr, but before calling rdma_connect. 25 | .SH "INFINIBAND SPECIFIC" 26 | This call obtains a path record that is used by the connection. 27 | .SH "SEE ALSO" 28 | rdma_resolve_addr(3), rdma_connect(3), rdma_get_cm_event(3) 29 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_server.1: -------------------------------------------------------------------------------- 1 | .TH "RDMA_SERVER" 1 "2010-07-19" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rdma_server \- simple RDMA CM connection and ping-pong test. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrdma_server\fR [-p port] 8 | .fi 9 | .SH "DESCRIPTION" 10 | Uses synchronous librdmam calls to establish an RDMA connections between 11 | two nodes. This example is intended to provide a very simple coding 12 | example of how to use RDMA. 13 | .SH "OPTIONS" 14 | .TP 15 | \-p port 16 | Changes the port number that the server listens on. By default the server 17 | listens on port 7471. 18 | .SH "NOTES" 19 | Basic usage is to start rdma_server, then connect to the server using the 20 | rdma_client program. 21 | .P 22 | Because this test maps RDMA resources to userspace, users must ensure 23 | that they have available system resources and permissions. See the 24 | libibverbs README file for additional details. 25 | .SH "SEE ALSO" 26 | rdma_cm(7), udaddy(1), mckey(1), rping(1), rdma_client(1) 27 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_set_option.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_SET_OPTION" 3 "2007-08-06" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_set_option \- Set communication options for an rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_set_option 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "int " level "," 10 | .BI "int " optname "," 11 | .BI "void *" optval "," 12 | .BI "size_t " optlen ");" 13 | .SH ARGUMENTS 14 | .IP "id" 12 15 | RDMA identifier. 16 | .IP "level" 12 17 | Protocol level of the option to set. 18 | .IP "optname" 12 19 | Name of the option, relative to the level, to set. 20 | .IP "optval" 12 21 | Reference to the option data. The data is dependent on the level and optname. 22 | .IP "optlen" 12 23 | The size of the %optval buffer. 24 | .SH "DESCRIPTION" 25 | Sets communication options for an rdma_cm_id. This call is used to override 26 | the default system settings. 27 | .SH "RETURN VALUE" 28 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 29 | set to indicate the failure reason. 30 | .SH "NOTES" 31 | Option details may be found in the relevent header files. 32 | .SH "SEE ALSO" 33 | rdma_create_id(3) 34 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_xclient.1: -------------------------------------------------------------------------------- 1 | .TH "RDMA_XCLIENT" 1 "2011-06-15" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rdma_xclient \- RDMA CM communication client test program 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrdma_xclient\fR [-s server_address] [-p server_port] [-c comm_type] 8 | .fi 9 | .SH "DESCRIPTION" 10 | Uses synchronous librdmam calls to establish an RDMA connection between 11 | two nodes. This example is intended to provide a very simple coding 12 | example of how to use RDMA. 13 | .SH "OPTIONS" 14 | .TP 15 | \-s server_address 16 | Specifies the address of the system that the rdma_server is running on. 17 | By default, the client will attempt to connect to the server using 18 | 127.0.0.1. 19 | .TP 20 | \-p server_port 21 | Specifies the port number that the server listens on. By default the server 22 | listens on port 7471. 23 | .TP 24 | \-c communication type 25 | Specifies the type of communication established with the server program. 'r' 26 | results in using a reliable-connected QP (the default). 'x' uses 27 | extended reliable-connected XRC QPs. 28 | .SH "NOTES" 29 | Basic usage is to start rdma_xserver, then connect to the server using the 30 | rdma_client program. 31 | .P 32 | Because this test maps RDMA resources to userspace, users must ensure 33 | that they have available system resources and permissions. See the 34 | libibverbs README file for additional details. 35 | .SH "SEE ALSO" 36 | rdma_cm(7), udaddy(1), mckey(1), rping(1), rdma_xserver(1), rdma_client(1) 37 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rdma_xserver.1: -------------------------------------------------------------------------------- 1 | .TH "RDMA_XSERVER" 1 "2011-06-15" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rdma_xserver \- RDMA CM communication server test program 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrdma_xserver\fR [-p port] [-c comm_type] 8 | .fi 9 | .SH "DESCRIPTION" 10 | Uses the librdmacm to establish various forms of communication and exchange 11 | data. 12 | .SH "OPTIONS" 13 | .TP 14 | \-p port 15 | Changes the port number that the server listens on. By default the server 16 | listens on port 7471. 17 | .TP 18 | \-c communication type 19 | Specifies the type of communication established with the client program. 'r' 20 | results in using a reliable-connected QP (the default). 'x' uses 21 | extended reliable-connected XRC QPs. 22 | .SH "NOTES" 23 | Basic usage is to start rdma_xserver, then connect to the server using the 24 | rdma_xclient program. 25 | .P 26 | Because this test maps RDMA resources to userspace, users must ensure 27 | that they have available system resources and permissions. See the 28 | libibverbs README file for additional details. 29 | .SH "SEE ALSO" 30 | rdma_cm(7), udaddy(1), mckey(1), rping(1), rdma_server(1), rdma_xclient(1) 31 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/man/rping.1: -------------------------------------------------------------------------------- 1 | .TH "RPING" 1 "2007-05-15" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rping \- RDMA CM connection and RDMA ping-pong test. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrping\fR -s [-v] [-V] [-d] [-P] [-a address] [-p port] 8 | [-C message_count] [-S message_size] 9 | \fIrping\fR -c [-v] [-V] [-d] -a address [-p port] 10 | [-C message_count] [-S message_size] 11 | .fi 12 | .SH "DESCRIPTION" 13 | Establishes a reliable RDMA connection between two nodes using the 14 | librdmacm, optionally performs RDMA transfers between the nodes, 15 | then disconnects. 16 | .SH "OPTIONS" 17 | .TP 18 | \-s 19 | Run as the server. 20 | .TP 21 | \-c 22 | Run as the client. 23 | .TP 24 | \-a address 25 | On the server, specifies the network address to bind the connection to. 26 | To bind to any address with IPv6 use -a ::0 . 27 | On the client, specifies the server address to connect to. 28 | .TP 29 | \-p 30 | Port number for listening server. 31 | .TP 32 | \-v 33 | Display ping data. 34 | .TP 35 | \-V 36 | Validate ping data. 37 | .TP 38 | \-d 39 | Display debug information. 40 | .TP 41 | \-C message_count 42 | The number of messages to transfer over each connection. (default infinite) 43 | .TP 44 | \-S message_size 45 | The size of each message transferred, in bytes. (default 100) 46 | .TP 47 | \-P 48 | Run the server in persistent mode. This allows multiple rping clients 49 | to connect to a single server instance. The server will run until killed. 50 | .SH "NOTES" 51 | Because this test maps RDMA resources to userspace, users must ensure 52 | that they have available system resources and permissions. See the 53 | libibverbs README file for additional details. 54 | .SH "SEE ALSO" 55 | rdma_cm(7), ucmatose(1), udaddy(1), mckey(1) 56 | -------------------------------------------------------------------------------- /libraries-router/librdmacm-1.1.0mlnx/src/.gitignore: -------------------------------------------------------------------------------- 1 | # files produced by ./configure 2 | /.deps 3 | 4 | # files produced by make (libtool) 5 | /*.o 6 | /*.lo 7 | /*.la 8 | /.libs 9 | /.dirstamp 10 | -------------------------------------------------------------------------------- /libraries/COPYING.BSD_MIT: -------------------------------------------------------------------------------- 1 | OpenIB.org BSD license (MIT variant) 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are met: 5 | 6 | - Redistributions of source code must retain the above copyright notice, 7 | this list of conditions and the following disclaimer. 8 | 9 | - Redistributions in binary form must reproduce the above copyright notice, 10 | this list of conditions and the following disclaimer in the documentation 11 | and/or other materials provided with the distribution. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | 21 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.lo 3 | configure 4 | Makefile.in 5 | autom4te.cache 6 | aclocal.m4 7 | stamp-h.in 8 | config.h.in 9 | config.log 10 | config.h 11 | .libs 12 | .deps 13 | libibverbs.spec 14 | Makefile 15 | config.status 16 | stamp-h1 17 | libtool 18 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/.gitreview: -------------------------------------------------------------------------------- 1 | [gerrit] 2 | host=r-webdev02.lab.mtl.com 3 | port=29418 4 | project=mlnx_ofed_2_0/libibverbs.git 5 | defaultbranch=mlnx_ofed_2_1 6 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/AUTHORS: -------------------------------------------------------------------------------- 1 | Roland Dreier 2 | Dotan Barak 3 | Sean Hefty 4 | Michael S. Tsirkin 5 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh -exE 2 | 3 | aclocal -I config 4 | libtoolize --force --copy 5 | autoheader 6 | automake --foreign --add-missing --copy 7 | autoconf 8 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/config/.gitignore: -------------------------------------------------------------------------------- 1 | mkinstalldirs 2 | depcomp 3 | compile 4 | missing 5 | config.guess 6 | config.sub 7 | ltmain.sh 8 | install-sh 9 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/config/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004 Free Software Foundation, Inc. 4 | # Written by Scott James Remnant, 2004 5 | # 6 | # This file is free software; the Free Software Foundation gives 7 | # unlimited permission to copy and/or distribute it, with or without 8 | # modifications, as long as this notice is preserved. 9 | 10 | # @configure_input@ 11 | 12 | # serial 3337 ltversion.m4 13 | # This file is part of GNU Libtool 14 | 15 | m4_define([LT_PACKAGE_VERSION], [2.4.2]) 16 | m4_define([LT_PACKAGE_REVISION], [1.3337]) 17 | 18 | AC_DEFUN([LTVERSION_VERSION], 19 | [macro_version='2.4.2' 20 | macro_revision='1.3337' 21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 | _LT_DECL(, macro_revision, 0) 23 | ]) 24 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/ibverbs-utils.install: -------------------------------------------------------------------------------- 1 | usr/bin 2 | usr/share/man/man1 3 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/libibverbs-dev.install: -------------------------------------------------------------------------------- 1 | usr/include 2 | usr/lib/libibverbs*.a 3 | usr/lib/libibverbs*.so 4 | usr/share/man/man3 5 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/libibverbs-dev.links: -------------------------------------------------------------------------------- 1 | usr/share/man/man3/ibv_get_async_event.3 usr/share/man/man3/ibv_ack_async_event.3 2 | usr/share/man/man3/ibv_get_cq_event.3 usr/share/man/man3/ibv_ack_cq_events.3 3 | usr/share/man/man3/ibv_open_device.3 usr/share/man/man3/ibv_close_device.3 4 | usr/share/man/man3/ibv_alloc_pd.3 usr/share/man/man3/ibv_dealloc_pd.3 5 | usr/share/man/man3/ibv_reg_mr.3 usr/share/man/man3/ibv_dereg_mr.3 6 | usr/share/man/man3/ibv_create_ah.3 usr/share/man/man3/ibv_destroy_ah.3 7 | usr/share/man/man3/ibv_create_comp_channel.3 usr/share/man/man3/ibv_destroy_comp_channel.3 8 | usr/share/man/man3/ibv_create_cq.3 usr/share/man/man3/ibv_destroy_cq.3 9 | usr/share/man/man3/ibv_create_qp.3 usr/share/man/man3/ibv_destroy_qp.3 10 | usr/share/man/man3/ibv_create_srq.3 usr/share/man/man3/ibv_destroy_srq.3 11 | usr/share/man/man3/ibv_attach_mcast.3 usr/share/man/man3/ibv_detach_mcast.3 12 | usr/share/man/man3/ibv_get_device_list.3 usr/share/man/man3/ibv_free_device_list.3 13 | usr/share/man/man3/ibv_create_ah_from_wc.3 usr/share/man/man3/ibv_init_ah_from_wc.3 14 | usr/share/man/man3/ibv_rate_to_mult.3 usr/share/man/man3/mult_to_ibv_rate.3 15 | usr/share/man/man3/ibv_event_type_str.3 usr/share/man/man3/ibv_node_type_str.3 16 | usr/share/man/man3/ibv_event_type_str.3 usr/share/man/man3/ibv_port_state_str.3 17 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/libibverbs1.install: -------------------------------------------------------------------------------- 1 | usr/lib/libibverbs*.so.* 2 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/libibverbs1.postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # postinst script for libibverbs1 3 | 4 | set -e 5 | 6 | if [ "$1" = configure ]; then 7 | getent group rdma > /dev/null 2>&1 || addgroup --system --quiet rdma 8 | fi 9 | 10 | #DEBHELPER# 11 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- mode: makefile; coding: utf-8 -*- 3 | 4 | %: 5 | dh $@ 6 | 7 | override_dh_strip: 8 | dh_strip --dbg-package=libibverbs1-dbg 9 | 10 | override_dh_makeshlibs: 11 | dh_makeshlibs -V 'libibverbs1 (>= 1.1.2)' 12 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/debian/watch: -------------------------------------------------------------------------------- 1 | version=3 2 | opts="uversionmangle=s/-rc/~rc/" \ 3 | http://www.openfabrics.org/downloads/verbs/libibverbs-(.+)\.tar\.gz 4 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/examples/.gitignore: -------------------------------------------------------------------------------- 1 | .dirstamp 2 | ibv_asyncwatch 3 | ibv_devices 4 | ibv_devinfo 5 | ibv_rc_pingpong 6 | ibv_srq_pingpong 7 | ibv_uc_pingpong 8 | ibv_ud_pingpong 9 | .libs 10 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_alloc_mw.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_ALLOC_MW 3 2016-02-02 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_alloc_mw, ibv_dealloc_mw \- allocate or deallocate a memory window (MW) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_mw *ibv_alloc_mw(struct ibv_pd " "*pd" , 11 | .BI " enum ibv_mw_type " "type"); 12 | .sp 13 | .BI "int ibv_dealloc_mw(struct ibv_mw " "*mw" ); 14 | .fi 15 | .SH "DESCRIPTION" 16 | .B ibv_alloc_mw() 17 | allocates a memory window (MW) associated with the protection domain 18 | .I pd\fR. 19 | The MW's type (1 or 2A/2B) is 20 | .I type\fR. 21 | .PP 22 | The MW is created not bound. For it to be useful, the MW must be bound, through either ibv_bind_mw (type 1) or a special WR (type 2). 23 | Once bound, the memory window allows RDMA (remote) access to a subset of the MR to which it was bound, 24 | until invalidated by: ibv_bind_mw verb with zero length for type 1, 25 | IBV_WR_LOCAL_INV/IBV_WR_SEND_WITH_INV WR opcode for type 2, deallocation. 26 | .PP 27 | .B ibv_dealloc_mw() 28 | Unbinds in case was previously bound and deallocates the MW 29 | .I mw\fR. 30 | .SH "RETURN VALUE" 31 | .B ibv_alloc_mw() 32 | returns a pointer to the allocated MW, or NULL if the request fails. 33 | The remote key (\fBR_Key\fR) 34 | field 35 | .B rkey 36 | is used by remote processes to perform Atomic and RDMA operations. This key will be changed during bind operations. The remote process places this 37 | .B rkey 38 | as the rkey field of struct ibv_send_wr passed to the ibv_post_send function. 39 | .PP 40 | .B ibv_dealloc_mw() 41 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 42 | .SH "NOTES" 43 | .B ibv_dereg_mr() 44 | fails if any memory window is still bound to this MR. 45 | .SH "SEE ALSO" 46 | .BR ibv_alloc_pd (3), 47 | .BR ibv_post_send (3), 48 | .BR ibv_bind_mw (3), 49 | .BR ibv_reg_mr (3), 50 | .SH "AUTHORS" 51 | .TP 52 | Majd Dibbiny 53 | .TP 54 | Yishai Hadas 55 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_alloc_pd.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_ALLOC_PD 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_alloc_pd, ibv_dealloc_pd \- allocate or deallocate a protection domain (PDs) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_pd *ibv_alloc_pd(struct ibv_context " "*context" ); 11 | .sp 12 | .BI "int ibv_dealloc_pd(struct ibv_pd " "*pd" ); 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_alloc_pd() 16 | allocates a PD for the RDMA device context 17 | .I context\fR. 18 | .PP 19 | .B ibv_dealloc_pd() 20 | deallocates the PD 21 | .I pd\fR. 22 | .SH "RETURN VALUE" 23 | .B ibv_alloc_pd() 24 | returns a pointer to the allocated PD, or NULL if the request fails. 25 | .PP 26 | .B ibv_dealloc_pd() 27 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 28 | .SH "NOTES" 29 | .B ibv_dealloc_pd() 30 | may fail if any other resource is still associated with the PD being 31 | freed. 32 | .SH "SEE ALSO" 33 | .BR ibv_reg_mr (3), 34 | .BR ibv_create_srq (3), 35 | .BR ibv_create_qp (3), 36 | .BR ibv_create_ah (3), 37 | .BR ibv_create_ah_from_wc (3) 38 | .SH "AUTHORS" 39 | .TP 40 | Dotan Barak 41 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_asyncwatch.1: -------------------------------------------------------------------------------- 1 | .TH IBV_ASYNCWATCH 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_asyncwatch \- display asynchronous events 5 | 6 | .SH SYNOPSIS 7 | .B ibv_asyncwatch 8 | 9 | .SH DESCRIPTION 10 | .PP 11 | Display asynchronous events forwarded to userspace for an RDMA device. 12 | 13 | .SH AUTHORS 14 | .TP 15 | Roland Dreier 16 | .RI < rolandd@cisco.com > 17 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_attach_mcast.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_ATTACH_MCAST 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_attach_mcast, ibv_detach_mcast \- attach and detach a queue pair 6 | (QPs) to/from a multicast group 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "int ibv_attach_mcast(struct ibv_qp " "*qp" ", const union ibv_gid " "*gid" ", 12 | .BI " uint16_t " "lid" "); 13 | .sp 14 | .BI "int ibv_detach_mcast(struct ibv_qp " "*qp" ", const union ibv_gid " "*gid" ", 15 | .BI " uint16_t " "lid" "); 16 | .fi 17 | .SH "DESCRIPTION" 18 | .B ibv_attach_mcast() 19 | attaches the QP 20 | .I qp 21 | to the multicast group having MGID 22 | .I gid 23 | and MLID 24 | .I lid\fR. 25 | .PP 26 | .B ibv_detach_mcast() 27 | detaches the QP 28 | .I qp 29 | to the multicast group having MGID 30 | .I gid 31 | and MLID 32 | .I lid\fR. 33 | .SH "RETURN VALUE" 34 | .B ibv_attach_mcast() 35 | and 36 | .B ibv_detach_mcast() 37 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 38 | .SH "NOTES" 39 | Only QPs of Transport Service Type 40 | .BR IBV_QPT_UD 41 | may be attached to multicast groups. 42 | .PP 43 | If a QP is attached to the same multicast group multiple times, the QP will still receive a single copy of a multicast message. 44 | .PP 45 | In order to receive multicast messages, a join request for the 46 | multicast group must be sent to the subnet administrator (SA), so that 47 | the fabric's multicast routing is configured to deliver messages to 48 | the local port. 49 | .SH "SEE ALSO" 50 | .BR ibv_create_qp (3) 51 | .SH "AUTHORS" 52 | .TP 53 | Dotan Barak 54 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_create_comp_channel.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_CREATE_COMP_CHANNEL 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_create_comp_channel, ibv_destroy_comp_channel \- create or 6 | destroy a completion event channel 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "struct ibv_comp_channel *ibv_create_comp_channel(struct ibv_context 12 | .BI " " "*context" ); 13 | .sp 14 | .BI "int ibv_destroy_comp_channel(struct ibv_comp_channel " "*channel" ); 15 | .fi 16 | .SH "DESCRIPTION" 17 | .B ibv_create_comp_channel() 18 | creates a completion event channel for the RDMA device context 19 | .I context\fR. 20 | .PP 21 | .B ibv_destroy_comp_channel() 22 | destroys the completion event channel 23 | .I channel\fR. 24 | .SH "RETURN VALUE" 25 | .B ibv_create_comp_channel() 26 | returns a pointer to the created completion event channel, or NULL if the request fails. 27 | .PP 28 | .B ibv_destroy_comp_channel() 29 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 30 | .SH "NOTES" 31 | A "completion channel" is an abstraction introduced by libibverbs that 32 | does not exist in the InfiniBand Architecture verbs specification or 33 | RDMA Protocol Verbs Specification. A completion channel is 34 | essentially file descriptor that is used to deliver completion 35 | notifications to a userspace process. When a completion event is 36 | generated for a completion queue (CQ), the event is delivered via the 37 | completion channel attached to that CQ. This may be useful to steer 38 | completion events to different threads by using multiple completion 39 | channels. 40 | .PP 41 | .B ibv_destroy_comp_channel() 42 | fails if any CQs are still associated with the completion event 43 | channel being destroyed. 44 | .SH "SEE ALSO" 45 | .BR ibv_open_device (3), 46 | .BR ibv_create_cq (3), 47 | .BR ibv_get_cq_event (3) 48 | .SH "AUTHORS" 49 | .TP 50 | Dotan Barak 51 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_create_cq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_CREATE_CQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_create_cq, ibv_destroy_cq \- create or destroy a completion queue (CQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_cq *ibv_create_cq(struct ibv_context " "*context" ", int " "cqe" , 11 | .BI " void " "*cq_context" , 12 | .BI " struct ibv_comp_channel " "*channel" , 13 | .BI " int " "comp_vector" ); 14 | .sp 15 | .BI "int ibv_destroy_cq(struct ibv_cq " "*cq" ); 16 | .fi 17 | .SH "DESCRIPTION" 18 | .B ibv_create_cq() 19 | creates a completion queue (CQ) with at least 20 | .I cqe 21 | entries for the RDMA device context 22 | .I context\fR. 23 | The pointer 24 | .I cq_context 25 | will be used to set user context pointer of the CQ structure. The argument 26 | .I channel 27 | is optional; if not NULL, the completion channel 28 | .I channel 29 | will be used to return completion events. The CQ will use the 30 | completion vector 31 | .I comp_vector 32 | for signaling completion events; it must be at least zero and less than 33 | .I context\fR->num_comp_vectors. 34 | .PP 35 | .B ibv_destroy_cq() 36 | destroys the CQ 37 | .I cq\fR. 38 | .SH "RETURN VALUE" 39 | .B ibv_create_cq() 40 | returns a pointer to the CQ, or NULL if the request fails. 41 | .PP 42 | .B ibv_destroy_cq() 43 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 44 | .SH "NOTES" 45 | .B ibv_create_cq() 46 | may create a CQ with size greater than or equal to the requested 47 | size. Check the cqe attribute in the returned CQ for the actual size. 48 | .PP 49 | .B ibv_destroy_cq() 50 | fails if any queue pair is still associated with this CQ. 51 | .SH "SEE ALSO" 52 | .BR ibv_resize_cq (3), 53 | .BR ibv_req_notify_cq (3), 54 | .BR ibv_ack_cq_events (3), 55 | .BR ibv_create_qp (3) 56 | .SH "AUTHORS" 57 | .TP 58 | Dotan Barak 59 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_devices.1: -------------------------------------------------------------------------------- 1 | .TH IBV_DEVICES 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_devices \- list RDMA devices 5 | 6 | .SH SYNOPSIS 7 | .B ibv_devices 8 | 9 | .SH DESCRIPTION 10 | .PP 11 | List RDMA devices available for use from userspace. 12 | 13 | .SH SEE ALSO 14 | .BR ibv_devinfo (1) 15 | 16 | .SH AUTHORS 17 | .TP 18 | Roland Dreier 19 | .RI < rolandd@cisco.com > 20 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_devinfo.1: -------------------------------------------------------------------------------- 1 | .TH IBV_DEVINFO 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_devinfo \- query RDMA devices 5 | 6 | .SH SYNOPSIS 7 | .B ibv_devinfo 8 | [\-d device] [\-i port] [\-l] [\-v] 9 | 10 | .SH DESCRIPTION 11 | .PP 12 | Print information about RDMA devices available for use from userspace. 13 | 14 | .SH OPTIONS 15 | 16 | .PP 17 | .TP 18 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 19 | use IB device \fIDEVICE\fR (default first device found) 20 | 21 | \fB\-i\fR, \fB\-\-ib\-port\fR=\fIPORT\fR 22 | query port \fIPORT\fR (default all ports) 23 | 24 | \fB\-l\fR, \fB\-\-list\fR 25 | only list names of RDMA devices 26 | 27 | \fB\-v\fR, \fB\-\-verbose\fR 28 | print all available information about RDMA devices 29 | 30 | .SH SEE ALSO 31 | .BR ibv_devices (1) 32 | 33 | .SH AUTHORS 34 | .TP 35 | Dotan Barak 36 | .RI < dotanba@gmail.com > 37 | .TP 38 | Roland Dreier 39 | .RI < rolandd@cisco.com > 40 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_event_type_str.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EVENT_TYPE_STR 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_event_type_str \- Return string describing event_type enum value 7 | .sp 8 | ibv_node_type_str \- Return string describing node_type enum value 9 | .sp 10 | ibv_port_state_str \- Return string describing port_state enum value 11 | .SH "SYNOPSIS" 12 | .nf 13 | .B #include 14 | .sp 15 | .BI "const char *ibv_event_type_str(enum ibv_event_type " "event_type"); 16 | .sp 17 | .BI "const char *ibv_node_type_str(enum ibv_node_type " "node_type"); 18 | .sp 19 | .BI "const char *ibv_port_state_str(enum ibv_port_state " "port_state"); 20 | .fi 21 | .SH "DESCRIPTION" 22 | .B ibv_node_type_str() 23 | returns a string describing the node type enum value 24 | .IR node_type . 25 | .PP 26 | .B ibv_port_state_str() 27 | returns a string describing the port state enum value 28 | .IR port_state . 29 | .PP 30 | .B ibv_event_type_str() 31 | returns a string describing the event type enum value 32 | .IR event_type . 33 | .SH "RETURN VALUE" 34 | These functions return a constant string that describes the enum value 35 | passed as their argument. 36 | .SH "AUTHOR" 37 | .TP 38 | Roland Dreier 39 | .RI < rolandd@cisco.com > 40 | 41 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_exp_dealloc_mkey_list_memory.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_DEALLOC_MKEY_LIST_MOMORY 3 2014-08-28 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_dealloc_mkey_list_memory \- deallocates the struct that was allocated using ibv_exp_alloc_mkey_list_memory() 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_dealloc_mkey_list_memory(struct ibv_exp_mkey_list_container " "*mem" ); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_dealloc_mkey_list_memory() 14 | dallocates the argument 15 | .I mem 16 | that was allocated using ibv_exp_alloc_mkey_list_memory() 17 | .PP 18 | The argument 19 | .I mem 20 | is an ibv_exp_mkey_list_container struct and is defined in as follow: 21 | .PP 22 | .nf 23 | struct ibv_exp_list_container { 24 | .in +8 25 | uint32_t max_klm_list_size; /* maximum number of KLMs we can use to create the UMR */ 26 | struct ibv_context *context; /* RDMA device context */ 27 | .in -8 28 | }; 29 | 30 | .SH "RETURN VALUE" 31 | .B ibv_exp_dealloc_mkey_list_memory() 32 | returns 0 on success, the value of errno on failure (which indicates the failure reason). 33 | .PP 34 | .SH "SEE ALSO" 35 | .BR ibv_exp_alloc_mkey_list_memory (3) 36 | .SH "AUTHORS" 37 | .TP 38 | Haggai Abramovsky 39 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_exp_get_provider_func.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_GET_PROVIDER_FUNC 3 2014-04-23 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_get_provider_func \- gets provider's function pointer 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "void *ibv_exp_get_provider_func(struct ibv_context " "*context" ", enum ibv_exp_func_name " "name"); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_get_provider_func() 14 | returns a function's pointer of function 15 | .I name 16 | associated with device context 17 | .I context. 18 | This verb can be used to achieve direct access to provider's data path functions. 19 | .PP 20 | .sp 21 | .fi 22 | .PP 23 | The argument 24 | .I name 25 | is an ibv_exp_func_name enum, as defined in . It should be one of the following values: 26 | .PP 27 | .nf 28 | .TP 29 | .B IBV_EXP_POST_SEND_FUNC \fR Get the exp_post_send's provider's function. 30 | .TP 31 | .B IBV_EXP_POLL_CQ_FUNC \fR Get the exp_poll_cq's provider's function. 32 | .TP 33 | .B IBV_POST_SEND_FUNC \fR Get the post_send's provider's function. 34 | .TP 35 | .B IBV_POLL_CQ_FUNC \fR Get the poll_cq's provider's function. 36 | .TP 37 | .B IBV_POST_RECV_FUNC \fR Get the post_recv's provider's function. 38 | 39 | .SH "RETURN VALUE" 40 | On success, 41 | .B ibv_exp_get_provider_func() 42 | returns a function's pointer, and null on error. 43 | .SH "AUTHORS" 44 | .TP 45 | Majd Dibbiny 46 | 47 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_exp_modify_cq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_MODIFY_CQ 3 2014-04-09 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_modify_cq \- modify attributes of a complition queue (CQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_modify_cq(struct ibv_cq " "*cq" , 11 | .BI " struct ibv_exp_cq_attr " "*cq_attr" , 12 | .BI " int " "cq_attr_mask" ); 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_exp_modify_cq() 16 | modifies the attributes of CQ 17 | .I cq 18 | with the attributes in 19 | .I cq_attr 20 | according to the mask 21 | .I cq_attr_mask\fR. 22 | .nf 23 | 24 | The argument \fIcq_attr\fR is an ibv_exp_cq_attr struct, as defined in . 25 | .PP 26 | struct ibv_exp_cq_attr { 27 | .in +8 28 | uint32_t comp_mask; /* Set to IBV_EXP_CQ_ATTR_RESERVED-1 */ 29 | struct { 30 | .in +8 31 | uint16_t cq_count; /* Event Generation Moderation counter */ 32 | uint16_t cq_period; /* Event Generation Moderation timer in microseconds */ 33 | .in -8 34 | } moderation; 35 | uint32_t cq_cap_flags; /* use ibv_exp_cq_cap_flags from verbs_exp.h */ 36 | .in -8 37 | }; 38 | .fi 39 | .PP 40 | The argument 41 | .I cq_attr_mask 42 | specifies the CQ attributes to be modified. 43 | The argument is either 0 or the bitwise OR of one or more of the following flags: 44 | .PP 45 | .TP 46 | .B IBV_EXP_CQ_MODERATION \fR Set the CQ moderation parameters 47 | .TP 48 | .B IBV_EXP_CQ_CAP_FLAGS \fR Set the CQ capability flags 49 | .SH "RETURN VALUE" 50 | .B ibv_exp_modify_cq() 51 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 52 | .SH "NOTES" 53 | If any of the modify attributes is invalid, none of the attributes will be modified. 54 | .SH "SEE ALSO" 55 | .BR ibv_exp_create_cq (3), 56 | .BR ibv_destroy_cq (3) 57 | 58 | .SH AUTHORS 59 | .TP 60 | Igor Ivanov 61 | .RI < Igor.Ivanov@itseez.com > 62 | .TP 63 | Majd Dibbiny 64 | .RI < majd@mellanox.com > 65 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_exp_modify_wq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_MODIFY_WQ 3 2015-08-04 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_modify_wq \- Modify a Work Queue (WQ). 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct int ibv_exp_modify_wq(struct ibv_exp_wq " "*wq," 11 | .BI " struct ibv_exp_wq_attr " "*wq_attr" ); 12 | .sp 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_exp_modify_wq() 16 | modifys a WQ 17 | .I wq\fR. 18 | The argument 19 | .I wq_attr 20 | is an ibv_exp_wq_attr struct, as defined in . 21 | .PP 22 | .nf 23 | struct ibv_exp_wq_attr { 24 | .in +8 25 | uint32_t attr_mask; /* Use enum ibv_exp_wq_attr_mask */ 26 | enum ibv_exp_wq_state wq_state; /* Move to this state */ 27 | enum ibv_exp_wq_state curr_wq_state; /* Assume this is the current state */ 28 | uint16_t vlan_offloads; /* Change WQ's VLAN offloading behaviour */ 29 | .in -8 30 | }; 31 | .fi 32 | .PP 33 | The function 34 | .B ibv_exp_modify_wq() 35 | will modify the WQ based on the given 36 | .I wq_attr\fB\fR->attr_mask 37 | .SH "RETURN VALUE" 38 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 39 | .SH "SEE ALSO" 40 | .BR ibv_exp_create_wq (3), 41 | .BR ibv_exp_destroy_wq (3), 42 | .SH "AUTHORS" 43 | .TP 44 | Yishai Hadas 45 | .TP 46 | Noa Osherovich 47 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_exp_query_gid_attr.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_QUERY_GID_ATTR 3 2015-08-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_query_gid_attr \- query a GID attributes 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_query_gid_attr(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " unsigned int " "index" ", struct ibv_exp_gid_attr " "*gid_attr" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_exp_query_gid_attr() 15 | returns the GID attributes in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I gid_attr\fR. 23 | .PP 24 | The argument 25 | .I gid_attr 26 | is an ibv_exp_gid_attr struct, as defined in . 27 | .PP 28 | .nf 29 | struct ibv_exp_gid_attr { 30 | .in +8 31 | uint32_t comp_mask; /* Use ibv_exp_query_gid_attr */ 32 | enum ibv_exp_roce_gid_type type; /* The GID type */ 33 | union ibv_gid gid; /* The GID in the desired index of the specified port */ 34 | .in -8 35 | }; 36 | 37 | comp_mask is used as an input to the verb, to choose which of the fields should 38 | be queried, and as an output to indicate which fields were queried. 39 | 40 | .SH "RETURN VALUE" 41 | .B ibv_exp_query_gid_attr() 42 | returns 0 on success, and errno on failure. 43 | .SH "SEE ALSO" 44 | .BR ibv_query_gid (3), 45 | .SH "AUTHORS" 46 | .TP 47 | Majd Dibbiny 48 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_exp_query_mkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_QUERY_MKEY 3 2014-08-28 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_query_mkey \- query MR's attribute, for MRs created by ibv_exp_create_mr() function 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_query_mkey(struct ibv_mr " "*mr" ", struct ibv_exp_mkey_attr " "*attr"); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_query_mkey() 14 | gets the attributes of the memory region (MR) 15 | .I mr 16 | into the argument 17 | .I attr. 18 | .PP 19 | The argument 20 | .I attr 21 | is an ibv_exp_mkey_attr struct, as defined in . 22 | .PP 23 | .nf 24 | struct ibv_exp_mkey_attr { 25 | .in +8 26 | uint32_t max_klm_list_size; /* maximum number of MRs we can use to create the UMR */ 27 | uint32_t comp_mask; /* reserved for future growth (must be 0) */ 28 | .in -8 29 | }; 30 | .fi 31 | .PP 32 | The function 33 | .B ibv_exp_query_mkey() 34 | will update the 35 | .I attr 36 | struct with the actual \s-1mr\s0 values of the MR that were queried. 37 | .PP 38 | .SH "RETURN VALUE" 39 | .B ibv_exp_query_mkey() 40 | returns 0 on success, or the value of errno on failure. 41 | 42 | .SH "NOTES" 43 | .PP 44 | .SH "SEE ALSO" 45 | .BR ibv_exp_create_mr (3), 46 | .SH "AUTHORS" 47 | .TP 48 | Haggai Abramovsky 49 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_exp_query_values.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_EXP_QUERY_VALUES 3 2014-11-13 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_exp_query_values \- query values 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_exp_query_values(struct ibv_context " "*context" ", int " "q_values" ", struct ibv_exp_values " "*values"); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_exp_query_values() 14 | queries the values defined in the bitmask 15 | .I q_values 16 | into the appropriate fields of 17 | .I values. 18 | .PP 19 | The argument 20 | .I q_values 21 | is enum ibv_exp_values_comp_mask, as defined in . It's bitwise OR of one or more of the following flags: 22 | .TP 23 | .B IBV_EXP_VALUES_HW_CLOCK_NS \fR Query hardware clock in nano-seconds 24 | .TP 25 | .B IBV_EXP_VALUES_HW_CLOCK \fR Query hardware clock in cycles 26 | .PP 27 | The argument 28 | .I values 29 | is an ibv_exp_values struct, as defined in : 30 | .nf 31 | struct ibv_exp_values { 32 | .in +8 33 | uint32_t comp_mask; /* Bitmask that is used as input to indicate which of the following fields exist and as output to 34 | indicate which values were queried. use enum ibv_exp_values_comp_mask */ 35 | uint64_t hwclock_ns; /* If requested, the queried value of hardware clock in nano-seconds */ 36 | uint64_t hwclock; /* If requested, the queried value of 37 | hardware clock in cycles*/ 38 | .in -8 39 | }; 40 | .fi 41 | .PP 42 | .SH "RETURN VALUE" 43 | .B ibv_exp_query_values() 44 | returns 0. 45 | 46 | .SH "NOTES" 47 | .PP 48 | .SH "SEE ALSO" 49 | .SH "AUTHORS" 50 | .TP 51 | Majd Dibbiny 52 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_get_device_guid.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_DEVICE_GUID 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_device_guid \- get an RDMA device's GUID 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "uint64_t ibv_get_device_guid(struct ibv_device " "*device" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_get_device_guid() 14 | returns the Global Unique IDentifier (GUID) of the RDMA device 15 | .I device\fR. 16 | .SH "RETURN VALUE" 17 | .B ibv_get_device_guid() 18 | returns the GUID of the device in network byte order. 19 | .SH "SEE ALSO" 20 | .BR ibv_get_device_list (3), 21 | .BR ibv_get_device_name (3), 22 | .BR ibv_open_device (3) 23 | .SH "AUTHORS" 24 | .TP 25 | Dotan Barak 26 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_get_device_list.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_DEVICE_LIST 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_device_list, ibv_free_device_list \- get and release list of available RDMA devices 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_device **ibv_get_device_list(int " "*num_devices" ); 11 | .sp 12 | .BI "void ibv_free_device_list(struct ibv_device " "**list" ); 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_get_device_list() 16 | returns a NULL-terminated array of RDMA devices currently available. 17 | The argument 18 | .I num_devices 19 | is optional; if not NULL, it is set to the number of devices returned in the array. 20 | .PP 21 | .B ibv_free_device_list() 22 | frees the array of devices 23 | .I list 24 | returned by 25 | .B ibv_get_device_list()\fR. 26 | .SH "RETURN VALUE" 27 | .B ibv_get_device_list() 28 | returns the array of available RDMA devices, or sets 29 | .I errno 30 | and returns NULL if the request fails. If no devices are found then 31 | .I num_devices 32 | is set to 0, and non-NULL is returned. 33 | .PP 34 | .B ibv_free_device_list() 35 | returns no value. 36 | .SH "ERRORS" 37 | .TP 38 | .B EPERM 39 | Permission denied. 40 | .TP 41 | .B ENOSYS 42 | No kernel support for RDMA. 43 | .TP 44 | .B ENOMEM 45 | Insufficient memory to complete the operation. 46 | .SH "NOTES" 47 | Client code should open all the devices it intends to use with 48 | .B ibv_open_device()\fR before calling 49 | .B ibv_free_device_list()\fR. 50 | Once it frees the array with 51 | .B ibv_free_device_list()\fR, 52 | it will be able to use only the open devices; pointers to unopened devices will no longer be valid. 53 | .SH "SEE ALSO" 54 | .BR ibv_fork_init (3), 55 | .BR ibv_get_device_name (3), 56 | .BR ibv_get_device_guid (3), 57 | .BR ibv_open_device (3) 58 | .SH "AUTHORS" 59 | .TP 60 | Dotan Barak 61 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_get_device_name.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_DEVICE_NAME 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_device_name \- get an RDMA device's name 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "const char *ibv_get_device_name(struct ibv_device " "*device" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_get_device_name() 14 | returns a human-readable name associated with the RDMA device 15 | .I device\fR. 16 | .SH "RETURN VALUE" 17 | .B ibv_get_device_name() 18 | returns a pointer to the device name, or NULL if the request fails. 19 | .SH "SEE ALSO" 20 | .BR ibv_get_device_list (3), 21 | .BR ibv_get_device_guid (3), 22 | .BR ibv_open_device (3) 23 | .SH "AUTHORS" 24 | .TP 25 | Dotan Barak 26 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_get_srq_num.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_GET_SRQ_NUM 3 2013-06-26 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_get_srq_num \- return srq number associated with the given shared receive queue (SRQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_get_srq_num(struct ibv_srq " "*srq" , 11 | .BI " uint32_t " "*srq_num" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_get_srq_num() 15 | return srq number associated with the given shared receive queue 16 | The argument 17 | .I srq 18 | is an ibv_srq struct, as defined in . 19 | .I srq_num 20 | is an output parameter that holds the returned srq number. 21 | .PP 22 | .nf 23 | .SH "RETURN VALUE" 24 | .B ibv_get_srq_num() 25 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 26 | .SH "SEE ALSO" 27 | .BR ibv_alloc_pd (3), 28 | .BR ibv_modify_srq (3), 29 | .BR ibv_create_srq_ex (3) 30 | .SH "AUTHORS" 31 | .TP 32 | Yishai Hadas 33 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_inc_rkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_INC_RKEY 3 2015-01-29 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_inc_rkey \- creates a new rkey from the given one 7 | .SH "SYNOPSIS" 8 | .nf 9 | .B #include 10 | .sp 11 | .BI "uint32_t ibv_inc_rkey(uint32_t " "rkey" "); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_inc_rkey() 15 | Increases the 8 LSB of 16 | .I rkey 17 | and returns the new value. 18 | .PP 19 | .SH "RETURN VALUE" 20 | .B ibv_inc_rkey() 21 | returns the new rkey. 22 | .SH "NOTES" 23 | .PP 24 | The verb generates a new rkey that is different from the previous one on its tag part 25 | but has the same index (bits 0xffffff00). 26 | A use case for this verb can be to create a new rkey from a Memory window's rkey 27 | when binding it to a Memory region. 28 | .SH "AUTHORS" 29 | .TP 30 | Majd Dibbiny 31 | .TP 32 | Yishai Hadas 33 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_open_device.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_OPEN_DEVICE 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_open_device, ibv_close_device \- open and close an RDMA device context 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_context *ibv_open_device(struct ibv_device " "*device" "); 11 | .sp 12 | .BI "int ibv_close_device(struct ibv_context " "*context" "); 13 | .fi 14 | .SH "DESCRIPTION" 15 | .B ibv_open_device() 16 | opens the device 17 | .I device 18 | and creates a context for further use. 19 | .PP 20 | .B ibv_close_device() 21 | closes the device context 22 | .I context\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_open_device() 25 | returns a pointer to the allocated device context, or NULL if the request fails. 26 | .PP 27 | .B ibv_close_device() 28 | returns 0 on success, \-1 on failure. 29 | .SH "NOTES" 30 | .B ibv_close_device() 31 | does not release all the resources allocated using context 32 | .I context\fR. 33 | To avoid resource leaks, the user should release all associated 34 | resources before closing a context. 35 | .SH "SEE ALSO" 36 | .BR ibv_get_device_list (3), 37 | .BR ibv_query_device (3), 38 | .BR ibv_query_port (3), 39 | .BR ibv_query_gid (3), 40 | .BR ibv_query_pkey (3) 41 | .SH "AUTHORS" 42 | .TP 43 | Dotan Barak 44 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_open_qp.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_OPEN_QP 3 2011-08-12 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_open_qp \- open a shareable queue pair (QP) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "struct ibv_qp *ibv_open_qp(struct ibv_context " "*context" , 11 | .BI " struct ibv_qp_open_attr " "*qp_open_attr" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_open_qp() 15 | opens an existing queue pair (QP) associated with the extended protection domain 16 | .I xrcd\fR. 17 | The argument 18 | .I qp_open_attr 19 | is an ibv_qp_open_attr struct, as defined in . 20 | .PP 21 | .nf 22 | struct ibv_qp_open_attr { 23 | .in +8 24 | uint32_t comp_mask; /* Identifies valid fields */ 25 | uint32_t qp_num; /* QP number */ 26 | struct *ibv_xrcd; /* XRC domain */ 27 | void *qp_context; /* Associated context of the QP */ 28 | enum ibv_qp_type qp_type; /* QP transport service type */ 29 | .fi 30 | .PP 31 | .B ibv_destroy_qp() 32 | closes the opened QP and destroys the underlying QP if it has no 33 | other references. 34 | .I qp\fR. 35 | .SH "RETURN VALUE" 36 | .B ibv_open_qp() 37 | returns a pointer to the opened QP, or NULL if the request fails. 38 | Check the QP number (\fBqp_num\fR) in the returned QP. 39 | .SH "NOTES" 40 | .B ibv_open_qp() 41 | will fail if a it is asked to open a QP that does not exist within 42 | the xrcd with the specified qp_num and qp_type. 43 | .SH "SEE ALSO" 44 | .BR ibv_alloc_pd (3), 45 | .BR ibv_create_qp (3), 46 | .BR ibv_create_qp_ex (3), 47 | .BR ibv_modify_qp (3), 48 | .BR ibv_query_qp (3) 49 | .SH "AUTHORS" 50 | .TP 51 | Sean Hefty 52 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_query_gid.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_GID 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_gid \- query an InfiniBand port's GID table 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_gid(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " int " "index" ", union ibv_gid " "*gid" ); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_query_gid() 15 | returns the GID value in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I gid\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_query_gid() 25 | returns 0 on success, and \-1 on error. 26 | .SH "SEE ALSO" 27 | .BR ibv_open_device (3), 28 | .BR ibv_query_device (3), 29 | .BR ibv_query_port (3), 30 | .BR ibv_query_pkey (3) 31 | .SH "AUTHORS" 32 | .TP 33 | Dotan Barak 34 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_query_pkey.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_PKEY 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_pkey \- query an InfiniBand port's P_Key table 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_pkey(struct ibv_context " "*context" ", uint8_t " "port_num" , 11 | .BI " int " "index" ", uint16_t " "*pkey" "); 12 | .fi 13 | .SH "DESCRIPTION" 14 | .B ibv_query_pkey() 15 | returns the P_Key value (in network byte order) in entry 16 | .I index 17 | of port 18 | .I port_num 19 | for device context 20 | .I context 21 | through the pointer 22 | .I pkey\fR. 23 | .SH "RETURN VALUE" 24 | .B ibv_query_pkey() 25 | returns 0 on success, and \-1 on error. 26 | .SH "SEE ALSO" 27 | .BR ibv_open_device (3), 28 | .BR ibv_query_device (3), 29 | .BR ibv_query_port (3), 30 | .BR ibv_query_gid (3) 31 | .SH "AUTHORS" 32 | .TP 33 | Dotan Barak 34 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_query_srq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_QUERY_SRQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_query_srq \- get the attributes of a shared receive queue (SRQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_query_srq(struct ibv_srq " "*srq" ", struct ibv_srq_attr " "*srq_attr" ); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_query_srq() 14 | gets the attributes of the SRQ 15 | .I srq 16 | and returns them through the pointer 17 | .I srq_attr\fR. 18 | The argument 19 | .I srq_attr 20 | is an ibv_srq_attr struct, as defined in . 21 | .PP 22 | .nf 23 | struct ibv_srq_attr { 24 | .in +8 25 | uint32_t max_wr; /* maximum number of outstanding work requests (WRs) in the SRQ */ 26 | uint32_t max_sge; /* maximum number of scatter elements per WR */ 27 | uint32_t srq_limit; /* the limit value of the SRQ */ 28 | .in -8 29 | }; 30 | .fi 31 | .SH "RETURN VALUE" 32 | .B ibv_query_srq() 33 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 34 | .SH "NOTES" 35 | If the value returned for srq_limit is 0, then the SRQ limit reached 36 | ("low watermark") event is not (or no longer) armed, and no 37 | asynchronous events will be generated until the event is rearmed. 38 | .SH "SEE ALSO" 39 | .BR ibv_create_srq (3), 40 | .BR ibv_destroy_srq (3), 41 | .BR ibv_modify_srq (3) 42 | .SH "AUTHORS" 43 | .TP 44 | Dotan Barak 45 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_rate_to_mbps.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RATE_TO_MBPS 3 2012-03-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_rate_to_mbps \- convert IB rate enumeration to Mbit/sec 7 | .sp 8 | mbps_to_ibv_rate \- convert Mbit/sec to an IB rate enumeration 9 | .SH "SYNOPSIS" 10 | .nf 11 | .B #include 12 | .sp 13 | .BI "int ibv_rate_to_mbps(enum ibv_rate " "rate" "); 14 | .sp 15 | .BI "enum ibv_rate mbps_to_ibv_rate(int " "mbps" "); 16 | .fi 17 | .SH "DESCRIPTION" 18 | .B ibv_rate_to_mbps() 19 | converts the IB transmission rate enumeration 20 | .I rate 21 | to a number of Mbit/sec. For example, if 22 | .I rate 23 | is 24 | .BR IBV_RATE_5_GBPS\fR, 25 | the value 5000 will be returned (5 Gbit/sec = 5000 Mbit/sec). 26 | .PP 27 | .B mbps_to_ibv_rate() 28 | converts the number of Mbit/sec 29 | .I mult 30 | to an IB transmission rate enumeration. For example, if 31 | .I mult 32 | is 5000, the rate enumeration 33 | .BR IBV_RATE_5_GBPS 34 | will be returned. 35 | .SH "RETURN VALUE" 36 | .B ibv_rate_to_mbps() 37 | returns the number of Mbit/sec. 38 | .PP 39 | .B mbps_to_ibv_rate() 40 | returns the enumeration representing the IB transmission rate. 41 | .SH "SEE ALSO" 42 | .BR ibv_query_port (3) 43 | .SH "AUTHORS" 44 | .TP 45 | Dotan Barak 46 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_rate_to_mult.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RATE_TO_MULT 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | .nf 6 | ibv_rate_to_mult \- convert IB rate enumeration to multiplier of 2.5 Gbit/sec 7 | .sp 8 | mult_to_ibv_rate \- convert multiplier of 2.5 Gbit/sec to an IB rate enumeration 9 | .SH "SYNOPSIS" 10 | .nf 11 | .B #include 12 | .sp 13 | .BI "int ibv_rate_to_mult(enum ibv_rate " "rate" "); 14 | .sp 15 | .BI "enum ibv_rate mult_to_ibv_rate(int " "mult" "); 16 | .fi 17 | .SH "DESCRIPTION" 18 | .B ibv_rate_to_mult() 19 | converts the IB transmission rate enumeration 20 | .I rate 21 | to a multiple of 2.5 Gbit/sec (the base rate). For example, if 22 | .I rate 23 | is 24 | .BR IBV_RATE_5_GBPS\fR, 25 | the value 2 will be returned (5 Gbit/sec = 2 * 2.5 Gbit/sec). 26 | .PP 27 | .B mult_to_ibv_rate() 28 | converts the multiplier value (of 2.5 Gbit/sec) 29 | .I mult 30 | to an IB transmission rate enumeration. For example, if 31 | .I mult 32 | is 2, the rate enumeration 33 | .BR IBV_RATE_5_GBPS 34 | will be returned. 35 | .SH "RETURN VALUE" 36 | .B 37 | ibv_rate_to_mult() 38 | returns the multiplier of the base rate 2.5 Gbit/sec. 39 | .PP 40 | .B mult_to_ibv_rate() 41 | returns the enumeration representing the IB transmission rate. 42 | .SH "SEE ALSO" 43 | .BR ibv_query_port (3) 44 | .SH "AUTHORS" 45 | .TP 46 | Dotan Barak 47 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_rc_pingpong.1: -------------------------------------------------------------------------------- 1 | .TH IBV_RC_PINGPONG 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_rc_pingpong \- simple InfiniBand RC transport test 5 | 6 | .SH SYNOPSIS 7 | .B ibv_rc_pingpong 8 | [\-p port] [\-d device] [\-i ib port] [\-s size] [\-r rx depth] 9 | [\-n iters] [\-l sl] [\-e] \fBHOSTNAME\fR 10 | 11 | .B ibv_rc_pingpong 12 | [\-p port] [\-d device] [\-i ib port] [\-s size] [\-r rx depth] 13 | [\-n iters] [\-l sl] [\-e] 14 | 15 | .SH DESCRIPTION 16 | .PP 17 | Run a simple ping-pong test over InfiniBand via the reliable 18 | connected (RC) transport. 19 | 20 | .SH OPTIONS 21 | 22 | .PP 23 | .TP 24 | \fB\-p\fR, \fB\-\-port\fR=\fIPORT\fR 25 | use TCP port \fIPORT\fR for initial synchronization (default 18515) 26 | .TP 27 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 28 | use IB device \fIDEVICE\fR (default first device found) 29 | .TP 30 | \fB\-i\fR, \fB\-\-ib\-port\fR=\fIPORT\fR 31 | use IB port \fIPORT\fR (default port 1) 32 | .TP 33 | \fB\-s\fR, \fB\-\-size\fR=\fISIZE\fR 34 | ping-pong messages of size \fISIZE\fR (default 4096) 35 | .TP 36 | \fB\-r\fR, \fB\-\-rx\-depth\fR=\fIDEPTH\fR 37 | post \fIDEPTH\fR receives at a time (default 1000) 38 | .TP 39 | \fB\-n\fR, \fB\-\-iters\fR=\fIITERS\fR 40 | perform \fIITERS\fR message exchanges (default 1000) 41 | .TP 42 | \fB\-l\fR, \fB\-\-sl\fR=\fISL\fR 43 | use \fISL\fR as the service level value of the QP (default 0) 44 | .TP 45 | \fB\-e\fR, \fB\-\-events\fR 46 | sleep while waiting for work completion events (default is to poll for 47 | completions) 48 | 49 | .SH SEE ALSO 50 | .BR ibv_uc_pingpong (1), 51 | .BR ibv_ud_pingpong (1), 52 | .BR ibv_srq_pingpong (1) 53 | 54 | .SH AUTHORS 55 | .TP 56 | Roland Dreier 57 | .RI < rolandd@cisco.com > 58 | 59 | .SH BUGS 60 | The network synchronization between client and server instances is 61 | weak, and does not prevent incompatible options from being used on the 62 | two instances. The method used for retrieving work completions is not 63 | strictly correct, and race conditions may cause failures on some 64 | systems. 65 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_req_notify_cq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_REQ_NOTIFY_CQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_req_notify_cq \- request completion notification on a completion queue (CQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_req_notify_cq(struct ibv_cq " "*cq" ", int " "solicited_only" "); 11 | .SH "DESCRIPTION" 12 | .B ibv_req_notify_cq() 13 | requests a completion notification on the completion queue (CQ) 14 | .I cq\fR. 15 | .PP 16 | Upon the addition of a new CQ entry (CQE) to 17 | .I cq\fR, 18 | a completion event will be added to the completion channel associated 19 | with the CQ. 20 | If the argument 21 | .I solicited_only 22 | is zero, a completion event is generated for any new CQE. If 23 | .I solicited_only 24 | is non\-zero, an event is only generated for a new CQE with that is 25 | considered "solicited." A CQE is solicited if it is a receive 26 | completion for a message with the Solicited Event header bit set, or 27 | if the status is not successful. All other successful receive 28 | completions, or any successful send completion is unsolicited. 29 | .SH "RETURN VALUE" 30 | .B 31 | ibv_req_notify_cq() 32 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 33 | .SH "NOTES" 34 | The request for notification is "one shot." Only one completion event 35 | will be generated for each call to 36 | .B ibv_req_notify_cq()\fR. 37 | .SH "SEE ALSO" 38 | .BR ibv_create_comp_channel (3), 39 | .BR ibv_create_cq (3), 40 | .BR ibv_get_cq_event (3) 41 | .SH "AUTHORS" 42 | .TP 43 | Dotan Barak 44 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_resize_cq.3: -------------------------------------------------------------------------------- 1 | .\" -*- nroff -*- 2 | .\" 3 | .TH IBV_RESIZE_CQ 3 2006-10-31 libibverbs "Libibverbs Programmer's Manual" 4 | .SH "NAME" 5 | ibv_resize_cq \- resize a completion queue (CQ) 6 | .SH "SYNOPSIS" 7 | .nf 8 | .B #include 9 | .sp 10 | .BI "int ibv_resize_cq(struct ibv_cq " "*cq" ", int " "cqe" "); 11 | .fi 12 | .SH "DESCRIPTION" 13 | .B ibv_resize_cq() 14 | resizes the completion queue (CQ) 15 | .I cq 16 | to have at least 17 | .I cqe 18 | entries. 19 | .I cqe 20 | must be at least the number of unpolled entries in the CQ 21 | .I cq\fR. 22 | If 23 | .I cqe 24 | is a valid value less than the current CQ size, 25 | .B ibv_resize_cq() 26 | may not do anything, since this function is only guaranteed to resize 27 | the CQ to a size at least as big as the requested size. 28 | .SH "RETURN VALUE" 29 | .B ibv_resize_cq() 30 | returns 0 on success, or the value of errno on failure (which indicates the failure reason). 31 | .SH "NOTES" 32 | .B ibv_resize_cq() 33 | may assign a CQ size greater than or equal to the requested size. 34 | The cqe member of 35 | .I cq 36 | will be updated to the actual size. 37 | .SH "SEE ALSO" 38 | .BR ibv_create_cq (3) 39 | .BR ibv_destroy_cq (3) 40 | .SH "AUTHORS" 41 | .TP 42 | Dotan Barak 43 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_shared_mr.1: -------------------------------------------------------------------------------- 1 | .TH IBV_SHARED_MR 1 "August 28, 2012" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_shared_mr \- simple InfiniBand program which demonstrates the usage of a shared memory region 5 | 6 | .SH SYNOPSIS 7 | .B ibv_shared_mr 8 | [\-p port] [\-d device] [\-s size] [\-n no-rdma] 9 | \fBHOSTNAME\fR 10 | 11 | .SH DESCRIPTION 12 | .PP 13 | Run a simple shared memory region test over InfiniBand. 14 | Server creates a shared memory region,client gets its ID and writes some data directly to 15 | its memory, server verifies the data. 16 | Note - both client and server must run on same machine. 17 | 18 | .SH OPTIONS 19 | 20 | .PP 21 | .TP 22 | \fB\-p\fR, \fB\-\-port\fR=\fIPORT\fR 23 | use TCP port \fIPORT\fR for initial synchronization (default 18515) 24 | .TP 25 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 26 | use IB device \fIDEVICE\fR (default first device found) 27 | .TP 28 | \fB\-s\fR, \fB\-\-size\fR=\fISIZE\fR 29 | messages of size \fISIZE\fR (default 4096) 30 | .TP 31 | \fB\-s\fR, \fB\-\-no-rdma\fR 32 | shared memory region is used only for shared memory purposes - no rdma. 33 | .SH AUTHORS 34 | .TP 35 | Yishai Hadas 36 | .RI 37 | 38 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_uc_pingpong.1: -------------------------------------------------------------------------------- 1 | .TH IBV_UC_PINGPONG 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_uc_pingpong \- simple InfiniBand UC transport test 5 | 6 | .SH SYNOPSIS 7 | .B ibv_uc_pingpong 8 | [\-p port] [\-d device] [\-i ib port] [\-s size] [\-r rx depth] 9 | [\-n iters] [\-l sl] [\-e] \fBHOSTNAME\fR 10 | 11 | .B ibv_uc_pingpong 12 | [\-p port] [\-d device] [\-i ib port] [\-s size] [\-r rx depth] 13 | [\-n iters] [\-l sl] [\-e] 14 | 15 | .SH DESCRIPTION 16 | .PP 17 | Run a simple ping-pong test over InfiniBand via the reliable 18 | connected (RC) transport. 19 | 20 | .SH OPTIONS 21 | 22 | .PP 23 | .TP 24 | \fB\-p\fR, \fB\-\-port\fR=\fIPORT\fR 25 | use TCP port \fIPORT\fR for initial synchronization (default 18515) 26 | .TP 27 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 28 | use IB device \fIDEVICE\fR (default first device found) 29 | .TP 30 | \fB\-i\fR, \fB\-\-ib\-port\fR=\fIPORT\fR 31 | use IB port \fIPORT\fR (default port 1) 32 | .TP 33 | \fB\-s\fR, \fB\-\-size\fR=\fISIZE\fR 34 | ping-pong messages of size \fISIZE\fR (default 4096) 35 | .TP 36 | \fB\-r\fR, \fB\-\-rx\-depth\fR=\fIDEPTH\fR 37 | post \fIDEPTH\fR receives at a time (default 1000) 38 | .TP 39 | \fB\-n\fR, \fB\-\-iters\fR=\fIITERS\fR 40 | perform \fIITERS\fR message exchanges (default 1000) 41 | .TP 42 | \fB\-l\fR, \fB\-\-sl\fR=\fISL\fR 43 | use \fISL\fR as the service level value of the QP (default 0) 44 | .TP 45 | \fB\-e\fR, \fB\-\-events\fR 46 | sleep while waiting for work completion events (default is to poll for 47 | completions) 48 | 49 | .SH SEE ALSO 50 | .BR ibv_rc_pingpong (1), 51 | .BR ibv_ud_pingpong (1), 52 | .BR ibv_srq_pingpong (1) 53 | 54 | .SH AUTHORS 55 | .TP 56 | Roland Dreier 57 | .RI < rolandd@cisco.com > 58 | 59 | .SH BUGS 60 | The network synchronization between client and server instances is 61 | weak, and does not prevent incompatible options from being used on the 62 | two instances. The method used for retrieving work completions is not 63 | strictly correct, and race conditions may cause failures on some 64 | systems. 65 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/man/ibv_ud_pingpong.1: -------------------------------------------------------------------------------- 1 | .TH IBV_UD_PINGPONG 1 "August 30, 2005" "libibverbs" "USER COMMANDS" 2 | 3 | .SH NAME 4 | ibv_ud_pingpong \- simple InfiniBand UD transport test 5 | 6 | .SH SYNOPSIS 7 | .B ibv_ud_pingpong 8 | [\-p port] [\-d device] [\-i ib port] [\-s size] [\-r rx depth] 9 | [\-n iters] [\-l sl] [\-e] \fBHOSTNAME\fR 10 | 11 | .B ibv_ud_pingpong 12 | [\-p port] [\-d device] [\-i ib port] [\-s size] [\-r rx depth] 13 | [\-n iters] [\-l sl] [\-e] 14 | 15 | .SH DESCRIPTION 16 | .PP 17 | Run a simple ping-pong test over InfiniBand via the unreliable 18 | datagram (UD) transport. 19 | 20 | .SH OPTIONS 21 | 22 | .PP 23 | .TP 24 | \fB\-p\fR, \fB\-\-port\fR=\fIPORT\fR 25 | use TCP port \fIPORT\fR for initial synchronization (default 18515) 26 | .TP 27 | \fB\-d\fR, \fB\-\-ib\-dev\fR=\fIDEVICE\fR 28 | use IB device \fIDEVICE\fR (default first device found) 29 | .TP 30 | \fB\-i\fR, \fB\-\-ib\-port\fR=\fIPORT\fR 31 | use IB port \fIPORT\fR (default port 1) 32 | .TP 33 | \fB\-s\fR, \fB\-\-size\fR=\fISIZE\fR 34 | ping-pong messages of size \fISIZE\fR (default 2048) 35 | .TP 36 | \fB\-r\fR, \fB\-\-rx\-depth\fR=\fIDEPTH\fR 37 | post \fIDEPTH\fR receives at a time (default 500) 38 | .TP 39 | \fB\-n\fR, \fB\-\-iters\fR=\fIITERS\fR 40 | perform \fIITERS\fR message exchanges (default 1000) 41 | .TP 42 | \fB\-l\fR, \fB\-\-sl\fR=\fISL\fR 43 | send messages with service level \fISL\fR (default 0) 44 | .TP 45 | \fB\-e\fR, \fB\-\-events\fR 46 | sleep while waiting for work completion events (default is to poll for 47 | completions) 48 | 49 | .SH SEE ALSO 50 | .BR ibv_rc_pingpong (1), 51 | .BR ibv_uc_pingpong (1), 52 | .BR ibv_srq_pingpong (1) 53 | 54 | .SH AUTHORS 55 | .TP 56 | Roland Dreier 57 | .RI < rolandd@cisco.com > 58 | 59 | .SH BUGS 60 | The network synchronization between client and server instances is 61 | weak, and does not prevent incompatible options from being used on the 62 | two instances. The method used for retrieving work completions is not 63 | strictly correct, and race conditions may cause failures on some 64 | systems. 65 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/src/.gitignore: -------------------------------------------------------------------------------- 1 | *.la 2 | .dirstamp 3 | .libs 4 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/src/neigh.h: -------------------------------------------------------------------------------- 1 | #ifndef _GET_NEIGH_ 2 | #define _GET_NEIGH_ 3 | 4 | #include 5 | #include 6 | #include "config.h" 7 | #ifdef HAVE_LIBNL1 8 | #include 9 | #else 10 | #include 11 | #endif 12 | 13 | enum get_neigh_status { 14 | GET_NEIGH_STATUS_OK = 0, 15 | GET_NEIGH_STATUS_IN_PROCESS = 1 << 0, 16 | GET_NEIGH_STATUS_ERR = 1 << 1, 17 | }; 18 | 19 | struct get_neigh_handler { 20 | #ifdef HAVE_LIBNL1 21 | struct nl_handle *sock; 22 | #else 23 | struct nl_sock *sock; 24 | #endif 25 | struct nl_cache *link_cache; 26 | struct nl_cache *neigh_cache; 27 | struct nl_cache *route_cache; 28 | int32_t oif; 29 | int vid; 30 | struct rtnl_neigh *filter_neigh; 31 | struct nl_addr *found_ll_addr; 32 | struct nl_addr *dst; 33 | struct nl_addr *src; 34 | enum get_neigh_status neigh_status; 35 | uint64_t timeout; 36 | }; 37 | 38 | int process_get_neigh(struct get_neigh_handler *neigh_handler); 39 | void neigh_free_resources(struct get_neigh_handler *neigh_handler); 40 | void neigh_set_vlan_id(struct get_neigh_handler *neigh_handler, uint16_t vid); 41 | uint16_t neigh_get_vlan_id_from_dev(struct get_neigh_handler *neigh_handler); 42 | int neigh_init_resources(struct get_neigh_handler *neigh_handler, int timeout); 43 | 44 | int neigh_set_src(struct get_neigh_handler *neigh_handler, 45 | int family, void *buf, size_t size); 46 | void neigh_set_oif(struct get_neigh_handler *neigh_handler, int oif); 47 | int neigh_set_dst(struct get_neigh_handler *neigh_handler, 48 | int family, void *buf, size_t size); 49 | int neigh_get_oif_from_src(struct get_neigh_handler *neigh_handler); 50 | int neigh_get_ll(struct get_neigh_handler *neigh_handler, void *addr_buf, 51 | int addr_size); 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /libraries/libibverbs-1.2.1mlnx1/tests/cmn/gtest_cmn.cc: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) Mellanox Technologies Ltd. 2012. ALL RIGHTS RESERVED. 3 | * This software product is a proprietary product of Mellanox Technologies Ltd. 4 | * (the "Company") and all right, title, and interest and to the software product, 5 | * including all associated intellectual property rights, are and shall 6 | * remain exclusively with the Company. 7 | * 8 | * This software product is governed by the End User License Agreement 9 | * provided with the software product. 10 | * $COPYRIGHT$ 11 | * $HEADER$ 12 | */ 13 | 14 | #include "gtest_cmn.h" 15 | 16 | 17 | uint32_t gtest_debug_mask = (GTEST_LOG_FATAL | GTEST_LOG_ERR | GTEST_LOG_WARN); 18 | char *gtest_dev_name; 19 | 20 | 21 | void sys_hexdump(void *ptr, int buflen) 22 | { 23 | unsigned char *buf = (unsigned char*)ptr; 24 | char out_buf[120]; 25 | int ret = 0; 26 | int out_pos = 0; 27 | int i, j; 28 | 29 | VERBS_TRACE("dump data at %p\n", ptr); 30 | for (i=0; i 31 | 32 | 33 | #include "cmn/gtest_cmn.h" 34 | #include "gtest/gtest.h" 35 | #include "gtest/gtest-all.cc" 36 | 37 | 38 | GTEST_API_ int main(int argc, char **argv) { 39 | std::cout << "Running main() from gtest_main.cc\n"; 40 | 41 | sys_getenv(); 42 | testing::GTEST_FLAG(print_time) = true; 43 | testing::InitGoogleTest(&argc, argv); 44 | return RUN_ALL_TESTS(); 45 | } 46 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/.gitignore: -------------------------------------------------------------------------------- 1 | *.o 2 | *.lo 3 | configure 4 | Makefile.in 5 | autom4te.cache 6 | aclocal.m4 7 | stamp-h.in 8 | config.h.in 9 | config.log 10 | config.h 11 | .libs 12 | .deps 13 | libmlx4.spec 14 | Makefile 15 | config.status 16 | stamp-h1 17 | libtool 18 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/.gitreview: -------------------------------------------------------------------------------- 1 | [gerrit] 2 | host=r-webdev02.lab.mtl.com 3 | port=29418 4 | project=mlnx_ofed_2_0/libmlx4.git 5 | defaultbranch=mlnx_ofed_2_1 6 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/AUTHORS: -------------------------------------------------------------------------------- 1 | Roland Dreier 2 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CFLAGS = -g -Wall -Werror -D_GNU_SOURCE 2 | 3 | mlx4_version_script = @MLX4_VERSION_SCRIPT@ 4 | 5 | MLX4_SOURCES = src/buf.c src/cq.c src/dbrec.c src/mlx4.c src/qp.c \ 6 | src/srq.c src/verbs.c src/verbs_exp.c 7 | noinst_HEADERS = src/bitmap.h src/doorbell.h src/list.h src/mlx4-abi.h src/mlx4_exp.h src/mlx4.h src/mmio.h src/wqe.h 8 | 9 | if HAVE_IBV_DEVICE_LIBRARY_EXTENSION 10 | lib_LTLIBRARIES = 11 | else 12 | mlx4lib_LTLIBRARIES = 13 | endif 14 | 15 | if HAVE_IBV_DEVICE_LIBRARY_EXTENSION 16 | lib_LTLIBRARIES += src/libmlx4.la 17 | src_libmlx4_la_SOURCES = $(MLX4_SOURCES) 18 | src_libmlx4_la_LDFLAGS = -avoid-version -release @IBV_DEVICE_LIBRARY_EXTENSION@ \ 19 | $(mlx4_version_script) 20 | mlx4confdir = $(sysconfdir)/libibverbs.d 21 | mlx4conf_DATA = mlx4.driver 22 | else 23 | mlx4libdir = $(libdir)/infiniband 24 | mlx4lib_LTLIBRARIES += src/mlx4.la 25 | src_mlx4_la_SOURCES = $(MLX4_SOURCES) 26 | src_mlx4_la_LDFLAGS = -avoid-version -module $(mlx4_version_script) 27 | endif 28 | 29 | EXTRA_DIST = src/mlx4.map libmlx4.spec.in mlx4.driver 30 | EXTRA_DIST += debian 31 | EXTRA_DIST += autogen.sh 32 | 33 | dist-hook: libmlx4.spec 34 | cp libmlx4.spec $(distdir) 35 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh -eE 2 | 3 | set -x 4 | aclocal -I config 5 | libtoolize --force --copy 6 | autoheader 7 | automake --foreign --add-missing --copy 8 | autoconf 9 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/config/.gitignore: -------------------------------------------------------------------------------- 1 | mkinstalldirs 2 | depcomp 3 | compile 4 | missing 5 | config.guess 6 | config.sub 7 | ltmain.sh 8 | install-sh 9 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/compat: -------------------------------------------------------------------------------- 1 | 7 2 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/control: -------------------------------------------------------------------------------- 1 | Source: libmlx4 2 | Priority: extra 3 | Maintainer: Roland Dreier 4 | Build-Depends: debhelper (>= 7.0.50~), dpkg-dev (>= 1.13.19), libibverbs-dev (>= 1.1.3) 5 | Standards-Version: 3.9.2 6 | Section: libs 7 | Homepage: http://www.openfabrics.org/ 8 | 9 | Package: libmlx4-1 10 | Section: libs 11 | Architecture: any 12 | Depends: ${shlibs:Depends}, ${misc:Depends}, libibverbs1 (>= 1.1.3) 13 | Description: Userspace driver for Mellanox ConnectX InfiniBand HCAs 14 | libmlx4 is a device-specific driver for Mellanox ConnectX InfiniBand 15 | host channel adapters (HCAs) for the libibverbs library. This allows 16 | userspace processes to access Mellanox HCA hardware directly with 17 | low latency and low overhead. 18 | . 19 | This package contains the loadable plug-in. 20 | 21 | Package: libmlx4-dev 22 | Section: libdevel 23 | Architecture: any 24 | Depends: ${misc:Depends}, libmlx4-1 (= ${binary:Version}) 25 | Description: Development files for the libmlx4 driver 26 | libmlx4 is a device-specific driver for Mellanox ConnectX InfiniBand 27 | host channel adapters (HCAs) for the libibverbs library. This allows 28 | userspace processes to access Mellanox HCA hardware directly with 29 | low latency and low overhead. 30 | . 31 | This package contains static versions of libmlx4 that may be linked 32 | directly to an application, which may be useful for debugging. 33 | 34 | Package: libmlx4-1-dbg 35 | Section: debug 36 | Priority: extra 37 | Architecture: any 38 | Depends: ${misc:Depends}, libmlx4-1 (= ${binary:Version}) 39 | Description: Debugging symbols for the libmlx4 driver 40 | libmlx4 is a device-specific driver for Mellanox ConnectX InfiniBand 41 | host channel adapters (HCAs) for the libibverbs library. This allows 42 | userspace processes to access Mellanox HCA hardware directly with 43 | low latency and low overhead. 44 | . 45 | This package contains the debugging symbols associated with 46 | libmlx4-1. They will automatically be used by gdb for debugging 47 | libmlx4-related issues. 48 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/copyright: -------------------------------------------------------------------------------- 1 | Initial Debianization: 2 | This package was debianized by Roland Dreier on 3 | Fri, 6 Apr 2007 10:04:57 -0700 4 | 5 | Source: 6 | It was downloaded from the OpenFabrics web site at 7 | 8 | 9 | Authors: 10 | Roland Dreier 11 | 12 | Portions are copyrighted by: 13 | * Copyright (c) 2005, 2006, 2007 Cisco Systems. All rights reserved. 14 | * Copyright (c) 2004, 2005 Topspin Communications. All rights reserved. 15 | * Copyright (c) 2005 Mellanox Technologies Ltd. All rights reserved. 16 | 17 | libmlx4 is licensed under a choice of one of two licenses. You may 18 | choose to be licensed under the terms of the GNU General Public 19 | License (GPL) Version 2, available from the file 20 | /usr/share/common-licenses/GPL-2 on your Debian system, or the 21 | OpenIB.org BSD license below: 22 | 23 | Redistribution and use in source and binary forms, with or 24 | without modification, are permitted provided that the following 25 | conditions are met: 26 | 27 | - Redistributions of source code must retain the above 28 | copyright notice, this list of conditions and the following 29 | disclaimer. 30 | 31 | - Redistributions in binary form must reproduce the above 32 | copyright notice, this list of conditions and the following 33 | disclaimer in the documentation and/or other materials 34 | provided with the distribution. 35 | 36 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 37 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 38 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 39 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 40 | BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 41 | ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 42 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 43 | SOFTWARE. 44 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/libmlx4-1.install: -------------------------------------------------------------------------------- 1 | usr/lib/libmlx4-rdmav2.so /usr/lib/libibverbs/ 2 | etc/libibverbs.d/mlx4.driver 3 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/libmlx4-dev.install: -------------------------------------------------------------------------------- 1 | usr/lib/libmlx4.a 2 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/patches/driver-plugin-directory.patch: -------------------------------------------------------------------------------- 1 | Description: Tell libibverbs to look in /usr/lib/libibverbs for plugin library 2 | Author: Roland Dreier 3 | 4 | Index: libmlx4.git/mlx4.driver 5 | =================================================================== 6 | --- libmlx4.git.orig/mlx4.driver 2011-07-06 01:27:34.521058451 -0700 7 | +++ libmlx4.git/mlx4.driver 2011-07-06 01:27:47.051074172 -0700 8 | @@ -1 +1 @@ 9 | -driver mlx4 10 | +driver /usr/lib/libibverbs/libmlx4 11 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/patches/series: -------------------------------------------------------------------------------- 1 | driver-plugin-directory.patch 2 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- mode: makefile; coding: utf-8 -*- 3 | 4 | %: 5 | dh $@ 6 | 7 | override_dh_strip: 8 | dh_strip --dbg-package=libmlx4-1-dbg 9 | 10 | override_dh_makeshlibs: 11 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/debian/watch: -------------------------------------------------------------------------------- 1 | version=3 2 | opts="uversionmangle=s/-rc/~rc/" \ 3 | http://www.openfabrics.org/downloads/mlx4/libmlx4-(.+)\.tar\.gz 4 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/mlx4.driver: -------------------------------------------------------------------------------- 1 | driver mlx4 2 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/src/.gitignore: -------------------------------------------------------------------------------- 1 | *.la 2 | .dirstamp 3 | .libs 4 | -------------------------------------------------------------------------------- /libraries/libmlx4-1.2.1mlnx1/src/mlx4.map: -------------------------------------------------------------------------------- 1 | { 2 | global: 3 | openib_driver_init; 4 | local: *; 5 | }; 6 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/.gitignore: -------------------------------------------------------------------------------- 1 | # - see gitignore(5) 2 | # 3 | # http://www.kernel.org/pub/software/scm/git/docs/gitignore.html 4 | # http://git-scm.com/docs/gitignore.html 5 | # 6 | # - ignore files in this current directory with a leading / 7 | # so that files with the same name is a subdirectory 8 | # would not be ignored by mistake. 9 | # 10 | # per directory .gitignore would be used to ignore specific 11 | # files/patterns 12 | # 13 | # - more examples can be found at 14 | # 15 | # https://github.com/github/gitignore 16 | # http://git-scm.com/book/en/Git-Basics-Recording-Changes-to-the-Repository#Ignoring-Files 17 | # 18 | 19 | # global ignore rules: 20 | # 21 | # backup files 22 | # 23 | *~ 24 | 25 | # local (eg. current directory) rules: 26 | # 27 | # / 28 | 29 | # 30 | # files created by autoreconf (autoconf, automake, libtool) 31 | # 32 | 33 | /INSTALL 34 | /config.guess 35 | /config.sub 36 | /missing 37 | /depcomp 38 | /install-sh 39 | /configure 40 | /aclocal.m4 41 | /autom4te.cache/ 42 | /config.h.in 43 | /Makefile.in 44 | /compile 45 | /config 46 | 47 | # 48 | # files created by autoscan 49 | # 50 | 51 | /autoscan.log 52 | /configure.scan 53 | 54 | # 55 | # files created by ./configure 56 | # 57 | 58 | /config.h 59 | /config.status 60 | /config.log 61 | /Makefile 62 | /stamp-h1 63 | /libtool 64 | /librdmacm.spec 65 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/AUTHORS: -------------------------------------------------------------------------------- 1 | Sean Hefty 2 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Freeflow/fa129534b23f23b310667d127da1964b639309c0/libraries/librdmacm-1.1.0mlnx/ChangeLog -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/Freeflow/fa129534b23f23b310667d127da1964b639309c0/libraries/librdmacm-1.1.0mlnx/NEWS -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/README: -------------------------------------------------------------------------------- 1 | This README is for userspace RDMA cm library. 2 | 3 | 4 | Building 5 | ======== 6 | To make this directory, run: 7 | ./autogen.sh && ./configure && make && make install 8 | 9 | Typically the autogen and configure steps only need be done the first 10 | time unless configure.in or Makefile.am changes. 11 | 12 | Libraries are installed by default at /usr/local/lib. 13 | 14 | 15 | Device files 16 | ============ 17 | The userspace CMA uses a single device file regardless of the number 18 | of adapters or ports present. 19 | 20 | To create the appropriate character device file automatically with 21 | udev, a rule like 22 | 23 | KERNEL="rdma_cm", NAME="infiniband/%k", MODE="0666" 24 | 25 | can be used. This will create the device node named 26 | 27 | /dev/infiniband/rdma_cm 28 | 29 | or you can create it manually 30 | 31 | mknod /dev/infiniband/rdma_cm c 231 255 32 | 33 | 34 | Common issues 35 | ============= 36 | 37 | Using multiple interfaces 38 | The librdmacm does support multiple interfaces. To make use 39 | of multiple interfaces, however, you need to instruct linux 40 | to only send ARP reples on the interface targetted in the ARP 41 | request. This can be done using a command similar to the 42 | following: 43 | 44 | sysctl -w net.ipv4.conf.all.arp_ignore=2 45 | 46 | Without this change, it's possible for linux to resopnd to ARP 47 | requests on a different interface (IP address) than the IP 48 | address carried in the ARP request. This causes the RDMA stack 49 | to incorrectly map the remote IP address to the wrong RDMA 50 | device. 51 | 52 | Using loopback 53 | The librdmacm relies on ARP to resolve IP address to RDMA 54 | addresses. To support loopback connections between different 55 | ports on the same system, ARP must be enabled for local 56 | resolution: 57 | 58 | sysctl net.ipv4.conf.all.accept_local=1 59 | 60 | Without this setting, loopback connections may timeout 61 | during address resolution. 62 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/autogen.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | set -x 4 | test -d ./config || mkdir ./config 5 | autoreconf -ifv -I config 6 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/changelog: -------------------------------------------------------------------------------- 1 | librdmacm (1.1.0mlnx-OFED.4.0.1.6.1.40200) unstable; urgency=low 2 | 3 | * Roll 1.1.0mlnx 4 | 5 | -- Alaa Hleihel Tue, 09 Aug 2016 10:28:10 +0200 6 | 7 | librdmacm (1.0.21mlnx-1) unstable; urgency=low 8 | 9 | * rsockets: Delay initializing buffers until the inline size is known 10 | * Remove prints to stderr 11 | 12 | -- Alaa Hleihel Tue, 09 Jun 2015 10:28:10 +0200 13 | 14 | librdmacm (1.0.20mlnx-1) unstable; urgency=low 15 | 16 | * Improved experimental interface 17 | * rping: change imm_data to ex.invalidate_rkey 18 | * Updated rdmacm for changes in libibverbs interface 19 | * Updated rdmacm for the new libibverbs experimental interface 20 | * Removed ts struct and use direct field timestamp 21 | * Fixed compilation issue due to shifting bind_mw struct in ib_send_wr 22 | * Added MW support 23 | * timestamping: ucmatose and udaddy should print connectionid when printing timestamping messages 24 | * cmatose: added support for timestamping 25 | * udaddy: added support for timestamping 26 | 27 | -- Vladimir Sokolovsky Tue, 22 Apr 2014 13:38:10 +0200 28 | 29 | librdmacm (1.0.17mlnx2-1) unstable; urgency=low 30 | 31 | * New Mellanox release. 32 | 33 | -- Vladimir Sokolovsky Mon, 7 Jan 2013 13:38:10 +0200 34 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/compat: -------------------------------------------------------------------------------- 1 | 8 2 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/control: -------------------------------------------------------------------------------- 1 | Source: librdmacm 2 | Priority: extra 3 | Maintainer: Gal Sivan 4 | Build-Depends: debhelper (>= 8.0.0), autotools-dev, libibverbs-dev (>= 1.1) 5 | Standards-Version: 3.9.2 6 | Section: libs 7 | Homepage: http://www.openfabrics.org/ 8 | #Vcs-Git: git://git.debian.org/collab-maint/librdmacm.git 9 | #Vcs-Browser: http://git.debian.org/?p=collab-maint/librdmacm.git;a=summary 10 | 11 | Package: librdmacm-dev 12 | Section: libdevel 13 | Architecture: any 14 | Depends: librdmacm1 (= ${binary:Version}) 15 | Description: Development files for the librdmacm library 16 | Development files for the librdmacm library. 17 | 18 | Package: librdmacm1 19 | Section: libs 20 | Architecture: any 21 | Depends: ${shlibs:Depends}, ${misc:Depends} 22 | Description: Userspace RDMA Connection Manager 23 | librdmacm provides a userspace RDMA Communication Managment API. 24 | 25 | Package: librdmacm-utils 26 | Section: libs 27 | Architecture: any 28 | Depends: ${shlibs:Depends}, ${misc:Depends} 29 | Description: Examples for the librdmacm library 30 | Example test programs for the librdmacm library. 31 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/copyright: -------------------------------------------------------------------------------- 1 | Format: http://dep.debian.net/deps/dep5 2 | Upstream-Name: librdmacm 3 | Source: 4 | 5 | Files: * 6 | Copyright: 7 | 8 | License: 9 | 10 | 11 | . 12 | 13 | 14 | # If you want to use GPL v2 or later for the /debian/* files use 15 | # the following clauses, or change it to suit. Delete these two lines 16 | Files: debian/* 17 | Copyright: 2012 Gal Sivan 18 | License: GPL-2+ 19 | This package is free software; you can redistribute it and/or modify 20 | it under the terms of the GNU General Public License as published by 21 | the Free Software Foundation; either version 2 of the License, or 22 | (at your option) any later version. 23 | . 24 | This package is distributed in the hope that it will be useful, 25 | but WITHOUT ANY WARRANTY; without even the implied warranty of 26 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27 | GNU General Public License for more details. 28 | . 29 | You should have received a copy of the GNU General Public License 30 | along with this program. If not, see 31 | . 32 | On Debian systems, the complete text of the GNU General 33 | Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". 34 | 35 | # Please also look if there are files or directories which have a 36 | # different copyright/license attached and list them here. 37 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/docs: -------------------------------------------------------------------------------- 1 | NEWS 2 | README 3 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/librdmacm-dev.dirs: -------------------------------------------------------------------------------- 1 | usr/lib 2 | usr/include 3 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/librdmacm-dev.install: -------------------------------------------------------------------------------- 1 | usr/include/* 2 | usr/lib/lib*.a 3 | usr/lib/lib*.so 4 | usr/lib/rsocket/lib*.a 5 | usr/lib/rsocket/lib*.so 6 | usr/share/man/man3 7 | usr/share/man/man7 8 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/librdmacm-utils.dirs: -------------------------------------------------------------------------------- 1 | usr/bin 2 | usr/include 3 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/librdmacm-utils.install: -------------------------------------------------------------------------------- 1 | /usr/bin/* 2 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/librdmacm1.dirs: -------------------------------------------------------------------------------- 1 | usr/lib 2 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/librdmacm1.install: -------------------------------------------------------------------------------- 1 | usr/lib/lib*.so.* 2 | usr/lib/rsocket/lib*.so.* 3 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # -*- makefile -*- 3 | # Sample debian/rules that uses debhelper. 4 | # This file was originally written by Joey Hess and Craig Small. 5 | # As a special exception, when this file is copied by dh-make into a 6 | # dh-make output file, you may use that output file without restriction. 7 | # This special exception was added by Craig Small in version 0.37 of dh-make. 8 | 9 | # Uncomment this to turn on verbose mode. 10 | #export DH_VERBOSE=1 11 | 12 | %: 13 | dh $@ 14 | 15 | override_dh_makeshlibs: 16 | dh_makeshlibs -V 'librdmacm1 (>= 1.0.7)' 17 | 18 | override_dh_auto_configure: 19 | autoreconf -f -i 20 | dh_auto_configure 21 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (quilt) 2 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/examples/.gitignore: -------------------------------------------------------------------------------- 1 | # files produced by ./configure 2 | /.deps 3 | 4 | # files produced by make (libtool) 5 | /*.o 6 | /*.lo 7 | /*.la 8 | /.libs 9 | /.dirstamp 10 | 11 | /cmtime 12 | /mckey 13 | /rcopy 14 | /rdma_client 15 | /rdma_server 16 | /rdma_xclient 17 | /rdma_xserver 18 | /riostream 19 | /rping 20 | /rstream 21 | /ucmatose 22 | /udaddy 23 | /udpong 24 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/examples/test.txt: -------------------------------------------------------------------------------- 1 | Hongqiang Harry Liu 2 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/include/rdma/freeflow.h: -------------------------------------------------------------------------------- 1 | #ifndef CM_FREEFLOW_H 2 | #define CM_FREEFLOW_H 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | struct sock_with_lock 9 | { 10 | int sock; 11 | pthread_mutex_t mutex; 12 | }; 13 | 14 | void init_sock(); 15 | struct sock_with_lock* get_unix_sock(RDMA_FUNCTION_CALL req); 16 | void connect_router(struct sock_with_lock *unix_sock); 17 | void request_router(RDMA_FUNCTION_CALL req, void* req_body, void *rsp, int *rsp_size); 18 | 19 | /** 20 | * FreeFlow Function 21 | * Connect to router via unix socket 22 | */ 23 | 24 | static struct sock_with_lock control_sock[PARALLEL_SIZE]; 25 | static struct sock_with_lock write_sock[PARALLEL_SIZE]; 26 | static struct sock_with_lock read_sock[PARALLEL_SIZE]; 27 | static struct sock_with_lock poll_sock[PARALLEL_SIZE]; 28 | static struct sock_with_lock event_sock[PARALLEL_SIZE]; 29 | 30 | extern struct sock_with_lock event_channel_sock_map[MAP_SIZE]; 31 | extern int event_channel_map[MAP_SIZE]; 32 | 33 | static int sock_initialized = 0; 34 | 35 | int recv_fd(struct sock_with_lock *unix_sock); 36 | 37 | #endif /* CM_FREEFLOW_H */ 38 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rcopy.1: -------------------------------------------------------------------------------- 1 | .TH "RCOPY" 1 "2011-12-2" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rcopy \- simple file copy over RDMA. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrcopy\fR source server[:destination] [-p port] 8 | \fIrcopy\fR [-p port] 9 | .fi 10 | .SH "DESCRIPTION" 11 | Uses sockets over RDMA interface to copy a source file to the 12 | specified destination. 13 | .SH "OPTIONS" 14 | .TP 15 | \source 16 | The name and path of the source file to copy. 17 | .TP 18 | \server 19 | The name or address of the destination server. 20 | .TP 21 | \:destination 22 | An optional destination filename and path. If not given, the destination 23 | filename will match that of the source. 24 | .TP 25 | \-p server_port 26 | The server's port number. 27 | .TP 28 | .SH "NOTES" 29 | Basic usage is to start rcopy on a server system, then run 30 | rcopy sourcefile servername. The server application will continue to run after 31 | copying the file, but is currently single-threaded. 32 | .P 33 | Because this test maps RDMA resources to userspace, users must ensure 34 | that they have available system resources and permissions. See the 35 | libibverbs README file for additional details. 36 | .SH "SEE ALSO" 37 | rdma_cm(7) 38 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_ack_cm_event.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_ACK_CM_EVENT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_ack_cm_event \- Free a communication event. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_ack_cm_event 8 | .BI "(struct rdma_cm_event *" event ");" 9 | .SH ARGUMENTS 10 | .IP "event" 12 11 | Event to be released. 12 | .SH "DESCRIPTION" 13 | All events which are allocated by rdma_get_cm_event must be released, 14 | there should be a one-to-one correspondence between successful gets 15 | and acks. This call frees the event structure and any memory that it 16 | references. 17 | .SH "RETURN VALUE" 18 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 19 | set to indicate the failure reason. 20 | .SH "SEE ALSO" 21 | rdma_get_cm_event(3), rdma_destroy_id(3) 22 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_bind_addr.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_BIND_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_bind_addr \- Bind an RDMA identifier to a source address. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_bind_addr 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct sockaddr *" addr ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .IP "addr" 12 14 | Local address information. Wildcard values are permitted. 15 | .SH "DESCRIPTION" 16 | Associates a source address with an rdma_cm_id. The address may be 17 | wildcarded. If binding to a specific local address, the rdma_cm_id 18 | will also be bound to a local RDMA device. 19 | .SH "RETURN VALUE" 20 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 21 | set to indicate the failure reason. 22 | .SH "NOTES" 23 | Typically, this routine is called before calling rdma_listen to bind 24 | to a specific port number, but it may also be called on the active side 25 | of a connection before calling rdma_resolve_addr to bind to a specific 26 | address. 27 | .P 28 | If used to bind to port 0, the rdma_cm will select an available port, 29 | which can be retrieved with rdma_get_src_port(3). 30 | .SH "SEE ALSO" 31 | rdma_create_id(3), rdma_listen(3), rdma_resolve_addr(3), rdma_create_qp(3), 32 | rdma_get_local_addr(3), rdma_get_src_port(3) 33 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_client.1: -------------------------------------------------------------------------------- 1 | .TH "RDMA_CLIENT" 1 "2010-07-19" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rdma_client \- simple RDMA CM connection and ping-pong test. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrdma_client\fR [-s server_address] [-p server_port] 8 | .fi 9 | .SH "DESCRIPTION" 10 | Uses synchronous librdmam calls to establish an RDMA connection between 11 | two nodes. This example is intended to provide a very simple coding 12 | example of how to use RDMA. 13 | .SH "OPTIONS" 14 | .TP 15 | \-s server_address 16 | Specifies the address of the system that the rdma_server is running on. 17 | By default, the client will attempt to connect to the server using 18 | 127.0.0.1. 19 | .TP 20 | \-p server_port 21 | Specifies the port number that the server listens on. By default the server 22 | listens on port 7471. 23 | .SH "NOTES" 24 | Basic usage is to start rdma_server, then connect to the server using the 25 | rdma_client program. 26 | .P 27 | Because this test maps RDMA resources to userspace, users must ensure 28 | that they have available system resources and permissions. See the 29 | libibverbs README file for additional details. 30 | .SH "SEE ALSO" 31 | rdma_cm(7), udaddy(1), mckey(1), rping(1), rdma_server(1) 32 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_create_event_channel.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_CREATE_EVENT_CHANNEL" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_create_event_channel \- Open a channel used to report communication events. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct rdma_event_channel *" rdma_create_event_channel 8 | .BI "(" void ");" 9 | .SH ARGUMENTS 10 | .IP "void" 12 11 | no arguments 12 | .SH "DESCRIPTION" 13 | Asynchronous events are reported to users through event channels. 14 | .SH "RETURN VALUE" 15 | Returns a pointer to the created event channel, or NULL if the request 16 | fails. On failure, errno will be set to indicate the failure reason. 17 | .SH "NOTES" 18 | Event channels are used to direct all events on an rdma_cm_id. For many 19 | clients, a single event channel may be sufficient, however, when managing 20 | a large number of connections or cm_id's, users may find it useful to direct 21 | events for different cm_id's to different channels for processing. 22 | .P 23 | All created event channels must be destroyed by calling 24 | rdma_destroy_event_channel. Users should call rdma_get_cm_event to 25 | retrieve events on an event channel. 26 | .P 27 | Each event channel is mapped to a file descriptor. The associated file 28 | descriptor can be used and manipulated like any other fd to change its 29 | behavior. Users may make the fd non-blocking, poll or select the fd, etc. 30 | .SH "SEE ALSO" 31 | rdma_cm(7), rdma_get_cm_event(3), rdma_destroy_event_channel(3) 32 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_create_srq.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_CREATE_SRQ" 3 "2011-06-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_create_srq \- Allocate a shared receive queue. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_create_srq 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct ibv_pd *" pd "," 10 | .BI "struct ibv_srq_init_attr *" attr ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | RDMA identifier. 14 | .IP "pd" 12 15 | Optional protection domain for the SRQ. 16 | .IP "attr" 12 17 | Initial SRQ attributes. 18 | .SH "DESCRIPTION" 19 | Allocate a SRQ associated with the specified rdma_cm_id. 20 | .SH "RETURN VALUE" 21 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 22 | set to indicate the failure reason. 23 | .SH "NOTES" 24 | The rdma_cm_id must be bound to a local RDMA device before calling this 25 | function, and the protection domain, if provided, must be for that same device. 26 | After being allocated, the SRQ will be ready to handle posting of receives. 27 | .P 28 | If a protection domain is not given - pd parameter is NULL - then 29 | the rdma_cm_id will be created using a default protection domain. One 30 | default protection domain is allocated per RDMA device. 31 | .P 32 | The initial SRQ attributes are specified by the attr parameter. The 33 | ext.xrc.cq fields in the ibv_srq_init_attr is optional. If 34 | a completion queue is not specified for an XRC SRQ, then a CQ will be 35 | allocated by the rdma_cm for the SRQ, along with corresponding completion 36 | channels. Completion channels and CQ data created by the rdma_cm are 37 | exposed to the user through the rdma_cm_id structure. 38 | .P 39 | The actual capabilities and properties of the created SRQ will be 40 | returned to the user through the attr parameter. An rdma_cm_id 41 | may only be associated with a single SRQ. 42 | .SH "SEE ALSO" 43 | rdma_bind_addr(3), rdma_resolve_addr(3), rdma_create_ep(3), 44 | rdma_destroy_srq(3), ibv_create_srq(3), ibv_create_xsrq(3) 45 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_dereg_mr.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DEREG_MR" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_dereg_mr \- deregisters a registered memory region. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_mr *" rdma_dereg_mr 8 | .BI "(struct ibv_mr *" mr ");" 9 | .SH ARGUMENTS 10 | .IP "mr" 12 11 | A reference to a registered memory buffer. 12 | .SH "DESCRIPTION" 13 | Deregisters a memory buffer that had been registered for RDMA 14 | or message operations. A user should call rdma_dereg_mr for all 15 | registered memory associated with an rdma_cm_id before destroying 16 | the rdma_cm_id. 17 | .SH "RETURN VALUE" 18 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 19 | set to indicate the failure reason. 20 | .SH "NOTES" 21 | All memory registered with an rdma_cm_id is associated with the 22 | protection domain associated with the id. Users must deregister 23 | all registered memory before the protection domain can be destroyed. 24 | .SH "SEE ALSO" 25 | rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), 26 | rdma_destroy_id(3), rdma_destroy_ep(3), 27 | rdma_reg_msgs(3), rdma_reg_read(3), rdma_reg_write(3), 28 | ibv_reg_mr(3), ibv_dereg_mr(3) 29 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_destroy_ep.3: -------------------------------------------------------------------------------- 1 | 2 | .TH "RDMA_DESTROY_EP" 3 "2011-06-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 3 | .SH NAME 4 | rdma_destroy_ep \- Release a communication identifier. 5 | .SH SYNOPSIS 6 | .B "#include " 7 | .P 8 | .B "void" rdma_destroy_ep 9 | .BI "(struct rdma_cm_id *" id ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | The communication identifier to destroy. 13 | .SH "DESCRIPTION" 14 | Destroys the specified rdma_cm_id and all associated resources 15 | .SH "NOTES" 16 | rdma_destroy_ep will automatically destroy any QP and SRQ associated with 17 | the rdma_cm_id. 18 | .SH "SEE ALSO" 19 | rdma_create_ep(3) 20 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_destroy_event_channel.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DESTROY_EVENT_CHANNEL" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_destroy_event_channel \- Close an event communication channel. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "void" rdma_destroy_event_channel 8 | .BI "(struct rdma_event_channel *" channel ");" 9 | .SH ARGUMENTS 10 | .IP "channel" 12 11 | The communication channel to destroy. 12 | .SH "DESCRIPTION" 13 | Release all resources associated with an event channel and closes the 14 | associated file descriptor. 15 | .SH "RETURN VALUE" 16 | None 17 | .SH "NOTES" 18 | All rdma_cm_id's associated with the event channel must be destroyed, 19 | and all returned events must be acked before calling this function. 20 | .SH "SEE ALSO" 21 | rdma_create_event_channel(3), rdma_get_cm_event(3), rdma_ack_cm_event(3) 22 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_destroy_id.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DESTROY_ID" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_destroy_id \- Release a communication identifier. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_destroy_id 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | The communication identifier to destroy. 12 | .SH "DESCRIPTION" 13 | Destroys the specified rdma_cm_id and cancels any outstanding 14 | asynchronous operation. 15 | .SH "RETURN VALUE" 16 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 17 | set to indicate the failure reason. 18 | .SH "NOTES" 19 | Users must free any associated QP with the rdma_cm_id before 20 | calling this routine and ack all related events. 21 | .SH "SEE ALSO" 22 | rdma_create_id(3), rdma_destroy_qp(3), rdma_ack_cm_event(3) 23 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_destroy_qp.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DESTROY_QP" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_destroy_qp \- Deallocate a QP. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "void" rdma_destroy_qp 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Destroy a QP allocated on the rdma_cm_id. 14 | .SH "NOTES" 15 | Users must destroy any QP associated with an rdma_cm_id before 16 | destroying the ID. 17 | .SH "SEE ALSO" 18 | rdma_create_qp(3), rdma_destroy_id(3), ibv_destroy_qp(3) 19 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_destroy_srq.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DESTROY_SRQ" 3 "2011-06-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_destroy_srq \- Deallocate a SRQ. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "void" rdma_destroy_srq 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Destroy an SRQ allocated on the rdma_cm_id. 14 | .SH "RETURN VALUE" 15 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 16 | set to indicate the failure reason. 17 | .SH "NOTES" 18 | Users should destroy any SRQ associated with an rdma_cm_id before 19 | destroying the ID. 20 | .SH "SEE ALSO" 21 | rdma_create_srq(3), rdma_destroy_id(3), ibv_destroy_srq(3) 22 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_disconnect.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_DISCONNECT" 3 "2008-01-02" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_disconnect \- This function disconnects a connection. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_disconnect 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Disconnects a connection and transitions any associated QP to the error state, 14 | which will flush any posted work requests to the completion queue. This 15 | routine should be called by both the client and server side of a connection. 16 | After successfully disconnecting, an RDMA_CM_EVENT_DISCONNECTED event will be 17 | generated on both sides of the connection. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. 21 | .SH "SEE ALSO" 22 | rdma_connect(3), rdma_listen(3), rdma_accept(3), rdma_get_cm_event(3) 23 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_event_str.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_EVENT_STR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_event_str \- Returns a string representation of an rdma cm event. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "char *" rdma_event_str 8 | .BI "("enum rdma_cm_event_type " event ");" 9 | .SH ARGUMENTS 10 | .IP "event" 12 11 | Asynchronous event. 12 | .SH "DESCRIPTION" 13 | Returns a string representation of an asynchronous event. 14 | .SH "RETURN VALUE" 15 | Returns a pointer to a static character string corresponding to the event. 16 | .SH "SEE ALSO" 17 | rdma_get_cm_event(3) 18 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_free_devices.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_FREE_DEVICES" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_free_devices \- Frees the list of devices returned by rdma_get_devices. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "void" rdma_free_devices 8 | .BI "(struct ibv_context **" list ");" 9 | .SH ARGUMENTS 10 | .IP "list" 12 11 | List of devices returned from rdma_get_devices. 12 | .SH "DESCRIPTION" 13 | Frees the device array returned by rdma_get_devices. 14 | .SH "RETURN VALUE" 15 | None 16 | .SH "SEE ALSO" 17 | rdma_get_devices(3) 18 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_get_devices.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_DEVICES" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_devices \- Get a list of RDMA devices currently available. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_context **" rdma_get_devices 8 | .BI "(int *" num_devices ");" 9 | .SH ARGUMENTS 10 | .IP "num_devices" 12 11 | If non-NULL, set to the number of devices returned. 12 | .SH "DESCRIPTION" 13 | Return a NULL-terminated array of opened RDMA devices. Callers can use 14 | this routine to allocate resources on specific RDMA devices that will be 15 | shared across multiple rdma_cm_id's. 16 | .SH "RETURN VALUE" 17 | Returns an array of available RDMA devices, or NULL if the request 18 | fails. On failure, errno will be set to indicate the failure reason. 19 | .SH "NOTES" 20 | The returned array must be released by calling rdma_free_devices. Devices 21 | remain opened while the librdmacm is loaded. 22 | .SH "SEE ALSO" 23 | rdma_free_devices(3) 24 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_get_dst_port.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_DST_PORT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_dst_port \- Returns the remote port number of a bound rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "uint16_t" rdma_get_dst_port 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Returns the remote port number for an rdma_cm_id that has been bound to 14 | a remote address. 15 | .SH "RETURN VALUE" 16 | Returns the 16-bit port identifier associated with the peer endpoint. If 17 | the rdma_cm_id is not connected, the returned value is 0. 18 | .SH "SEE ALSO" 19 | rdma_connect(3), rdma_accept(3), rdma_get_cm_event(3), rdma_get_src_port(3), 20 | rdma_get_local_addr(3), rdma_get_peer_addr(3) 21 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_get_local_addr.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_LOCAL_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_local_addr \- Returns the local IP address of a bound rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct sockaddr *" rdma_get_local_addr 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Returns the local IP address for an rdma_cm_id that has been bound to 14 | a local device. 15 | .SH "RETURN VALUE" 16 | Returns a pointer to the local sockaddr address of the rdma_cm_id. If 17 | the rdma_cm_id is not bound to an address, the contents of the sockaddr 18 | structure will be set to all zeroes. 19 | .SH "SEE ALSO" 20 | rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_src_port(3), 21 | rdma_get_dst_port(3), rdma_get_peer_addr(3) 22 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_get_peer_addr.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_PEER_ADDR" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_peer_addr \- Returns the remote IP address of a bound rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct sockaddr *" rdma_get_peer_addr 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Returns the remote IP address associated with an rdma_cm_id. 14 | .SH "RETURN VALUE" 15 | Returns a pointer to the sockaddr address of the connected peer. If 16 | the rdma_cm_id is not connected, the contents of the sockaddr 17 | structure will be set to all zeroes. 18 | .SH "SEE ALSO" 19 | rdma_resolve_addr(3), rdma_get_src_port(3), rdma_get_dst_port(3), 20 | rdma_get_local_addr(3) 21 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_get_recv_comp.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_RECV_COMP" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_recv_comp \- retrieves a completed receive request. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_get_recv_comp 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct ibv_wc *" wc ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | A reference to a communication identifier to check for completions. 13 | .IP "wc" 12 14 | A reference to a work completion structure to fill in. 15 | .SH "DESCRIPTION" 16 | Retrieves a completed work request for a receive 17 | operation. Information about the completed request is returned through 18 | the wc parameter, with the wr_id set to the context of the request. For 19 | details on the work completion structure, see ibv_poll_cq. 20 | .SH "RETURN VALUE" 21 | Returns the number of returned completions (0 or 1) on success, or -1 on error. 22 | If an error occurs, errno will be set to indicate the failure reason. 23 | .SH "NOTES" 24 | This calls polls the receive completion queue associated with an rdma_cm_id. 25 | If a completion is not found, the call blocks until a request completes. 26 | This call should only be used on rdma_cm_id's that do not share CQs 27 | with other rdma_cm_id's, and maintain separate CQs for sends and receive 28 | completions. 29 | .SH "SEE ALSO" 30 | rdma_cm(7), ibv_poll_cq(3), rdma_get_send_comp(3), 31 | rdma_post_send(3), rdma_post_read(3), rdma_post_write(3) 32 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_get_request.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_REQUEST" 3 "2007-10-31" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_request \- Retrieves the next pending connection request event. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_get_request 8 | .BI "(struct rdma_cm_id *" listen "," 9 | .BI "struct rdma_cm_id **" id ");" 10 | .SH ARGUMENTS 11 | .IP "listen" 12 12 | Listening rdma_cm_id. 13 | .IP "id" 12 14 | rdma_cm_id associated with the new connection. 15 | .SH "DESCRIPTION" 16 | Retrieves a connection request event. If no requests are pending, 17 | the call will block until an event is received. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. 21 | .SH "NOTES" 22 | This call may only be used on listening rdma_cm_id's operating 23 | synchronously. On success, a new rdma_cm_id representing the 24 | connection request will be returned to the user. The new rdma_cm_id 25 | will reference event information associated with the request until 26 | the user calls rdma_reject, rdma_accept, or rdma_destroy_id on the 27 | newly created identifier. For a description of the event data, 28 | see rdma_get_cm_event. 29 | .P 30 | If QP attributes are associated with the listening endpoint, the 31 | returned rdma_cm_id will also reference an allocated QP. 32 | .SH "SEE ALSO" 33 | rdma_get_cm_event(3), rdma_accept(3), rdma_reject(3), 34 | rdma_connect(3), rdma_listen(3), rdma_destroy_id(3) 35 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_get_send_comp.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_SEND_COMP" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_send_comp \- retrieves a completed send, read, or write request. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_get_send_comp 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct ibv_wc *" wc ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | A reference to a communication identifier to check for completions. 13 | .IP "wc" 12 14 | A reference to a work completion structure to fill in. 15 | .SH "DESCRIPTION" 16 | Retrieves a completed work request for a send, RDMA read, or RDMA write 17 | operation. Information about the completed request is returned through 18 | the wc parameter, with the wr_id set to the context of the request. For 19 | details on the work completion structure, see ibv_poll_cq. 20 | .SH "RETURN VALUE" 21 | Returns the number of returned completions (0 or 1) on success, or -1 on error. 22 | If an error occurs, errno will be set to indicate the failure reason. 23 | .SH "NOTES" 24 | This calls polls the send completion queue associated with an rdma_cm_id. 25 | If a completion is not found, the call blocks until a request completes. 26 | This call should only be used on rdma_cm_id's that do not share CQs 27 | with other rdma_cm_id's, and maintain separate CQs for sends and receive 28 | completions. 29 | .SH "SEE ALSO" 30 | rdma_cm(7), ibv_poll_cq(3), rdma_get_recv_comp(3), 31 | rdma_post_send(3), rdma_post_read(3), rdma_post_write(3) 32 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_get_src_port.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_GET_SRC_PORT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_get_src_port \- Returns the local port number of a bound rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "uint16_t" rdma_get_src_port 8 | .BI "(struct rdma_cm_id *" id ");" 9 | .SH ARGUMENTS 10 | .IP "id" 12 11 | RDMA identifier. 12 | .SH "DESCRIPTION" 13 | Returns the local port number for an rdma_cm_id that has been bound to 14 | a local address. 15 | .SH "RETURN VALUE" 16 | Returns the 16-bit port identifier associated with the local endpoint. If 17 | the rdma_cm_id is not bound to a port, the returned value is 0. 18 | .SH "SEE ALSO" 19 | rdma_bind_addr(3), rdma_resolve_addr(3), rdma_get_dst_port(3), 20 | rdma_get_local_addr(3), rdma_get_peer_addr(3) 21 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_join_multicast.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_JOIN_MULTICAST" 3 "2008-01-02" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_join_multicast \- Joins a multicast group. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_join_multicast 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct sockaddr *" addr "," 10 | .BI "void *" context ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | Communication identifier associated with the request. 14 | .IP "addr" 12 15 | Multicast address identifying the group to join. 16 | .IP "context" 12 17 | User-defined context associated with the join request. 18 | .SH "DESCRIPTION" 19 | Joins a multicast group and attaches an associated QP to the group. 20 | .SH "RETURN VALUE" 21 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 22 | set to indicate the failure reason. 23 | .SH "NOTES" 24 | Before joining a multicast group, the rdma_cm_id must be bound to 25 | an RDMA device by calling rdma_bind_addr or rdma_resolve_addr. Use of 26 | rdma_resolve_addr requires the local routing tables to resolve the 27 | multicast address to an RDMA device, unless a specific source address 28 | is provided. The user must call rdma_leave_multicast to leave the 29 | multicast group and release any multicast resources. After the join 30 | operation completes, if a QP is associated with the rdma_cm_id, 31 | it is automatically attached to the multicast group when the multicast 32 | event is retrieved by the user. Otherwise, the user is responsible 33 | for calling ibv_attach_mcast to bind the QP to the multicast group. 34 | The join context is returned to the user through the private_data 35 | field in the rdma_cm_event. 36 | .SH "SEE ALSO" 37 | rdma_leave_multicast(3), rdma_bind_addr(3), rdma_resolve_addr(3), rdma_create_qp(3), 38 | rdma_get_cm_event(3) 39 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_leave_multicast.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_LEAVE_MULTICAST" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_leave_multicast \- Leaves a multicast group. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_leave_multicast 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct sockaddr *" addr ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | Communication identifier associated with the request. 13 | .IP "addr" 12 14 | Multicast address identifying the group to leave. 15 | .SH "DESCRIPTION" 16 | Leaves a multicast group and detaches an associated QP from the group. 17 | .SH "RETURN VALUE" 18 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 19 | set to indicate the failure reason. 20 | .SH "NOTES" 21 | Calling this function before a group has been fully joined results in 22 | canceling the join operation. Users should be aware that messages 23 | received from the multicast group may stilled be queued for 24 | completion processing immediately after leaving a multicast group. 25 | Destroying an rdma_cm_id will automatically leave all multicast groups. 26 | .SH "SEE ALSO" 27 | rdma_join_multicast(3), rdma_destroy_qp(3) 28 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_listen.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_LISTEN" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_listen \- Listen for incoming connection requests. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_listen 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "int " backlog ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .IP "backlog" 12 14 | backlog of incoming connection requests. 15 | .SH "DESCRIPTION" 16 | Initiates a listen for incoming connection requests or datagram service 17 | lookup. The listen will be restricted to the locally bound source 18 | address. 19 | .SH "RETURN VALUE" 20 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 21 | set to indicate the failure reason. 22 | .SH "NOTES" 23 | Users must have bound the rdma_cm_id to a local address by calling 24 | rdma_bind_addr before calling this routine. If the rdma_cm_id is 25 | bound to a specific IP address, the listen will be restricted to that 26 | address and the associated RDMA device. If the rdma_cm_id is bound 27 | to an RDMA port number only, the listen will occur across all RDMA 28 | devices. 29 | .SH "SEE ALSO" 30 | rdma_cm(7), rdma_bind_addr(3), rdma_connect(3), rdma_accept(3), rdma_reject(3), 31 | rdma_get_cm_event(3) 32 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_migrate_id.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_MIGRATE_ID" 3 "2007-11-13" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_migrate_id \- Move a communication identifer to a different event channel. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_migrate_id 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "struct rdma_event_channel *" channel ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | An existing communication identifier to migrate. 13 | .IP "channel" 12 14 | The communication channel that events associated with the 15 | allocated rdma_cm_id will be reported on. May be NULL. 16 | .SH "DESCRIPTION" 17 | Migrates a communication identifier to a different event channel. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. 21 | .SH "NOTES" 22 | This routine migrates a communication identifier to the specified event 23 | channel and moves any pending events associated with the rdma_cm_id 24 | to the new channel. Users should not poll for events on the 25 | rdma_cm_id's current event channel or invoke other routines on the 26 | rdma_cm_id while migrating between channels. This call will block while 27 | there are any unacknowledged events on the current event channel. 28 | .P 29 | If the channel parameter is NULL, the specified rdma_cm_id will be 30 | placed into synchronous operation mode. All calls on the id 31 | will block until the operation completes. 32 | .SH "SEE ALSO" 33 | rdma_cm(7), rdma_create_event_channel(3), rdma_create_id(3), 34 | rdma_get_cm_event(3) 35 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_notify.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_NOTIFY" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_notify \- Notifies the librdmacm of an asynchronous event. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_notify 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "enum ibv_event_type " event ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .IP "event" 12 14 | Asynchronous event. 15 | .SH "DESCRIPTION" 16 | Used to notify the librdmacm of asynchronous events that have occurred 17 | on a QP associated with the rdma_cm_id. 18 | .SH "RETURN VALUE" 19 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 20 | set to indicate the failure reason. If errno is set to EISCONN 21 | (transport endpoint is already connected), this indicates that the 22 | the underlying communication manager established the connection before 23 | the call to rdma_notify could be processed. In this case, the error may 24 | safely be ignored. 25 | .SH "NOTES" 26 | Asynchronous events that occur on a QP are reported through the user's 27 | device event handler. This routine is used to notify the librdmacm of 28 | communication events. In most cases, use of this routine is not 29 | necessary, however if connection establishment is done out of band 30 | (such as done through Infiniband), it's possible to receive data on a 31 | QP that is not yet considered connected. This routine forces the 32 | connection into an established state in this case in order to handle 33 | the rare situation where the connection never forms on its own. 34 | Calling this routine ensures the delivery of the RDMA_CM_EVENT_ESTABLISHED 35 | event to the application. 36 | Events that should be reported to the CM are: IB_EVENT_COMM_EST. 37 | .SH "SEE ALSO" 38 | rdma_connect(3), rdma_accept(3), rdma_listen(3) 39 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_post_sendv.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_POST_SENDV" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_post_sendv \- post a work request to send a message. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_post_sendv 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "void *" context "," 10 | .BI "struct ibv_sge *" slg "," 11 | .BI "int " nsge "," 12 | .BI "int " flags ");" 13 | .SH ARGUMENTS 14 | .IP "id" 12 15 | A reference to a communication identifier where the message buffer 16 | will be posted. 17 | .IP "context" 12 18 | User-defined context associated with the request. 19 | .IP "slg" 12 20 | A scatter-gather list of memory buffers posted as a single request. 21 | .IP "nsge" 12 22 | The number of scatter-gather entries in the slg array. 23 | .IP "flags" 12 24 | Optional flags used to control the send operation. 25 | .SH "DESCRIPTION" 26 | Posts a work request to the send queue of the queue pair associated 27 | with the rdma_cm_id. The contents of the posted buffers will be sent 28 | to the remote peer of a connection. 29 | .SH "RETURN VALUE" 30 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 31 | set to indicate the failure reason. 32 | .SH "NOTES" 33 | The user is responsible for ensuring that the remote peer has queued a 34 | receive request before issuing the send operations. For a list of 35 | supported flags, see ibv_post_send. Unless the send request is using 36 | inline data, the message buffers must have been registered 37 | before being posted, and the buffers must remain registered 38 | until the send completes. 39 | .P 40 | Send operations may not be posted to an rdma_cm_id or the corresponding 41 | queue pair until it has been connected. 42 | .P 43 | The user-defined context associated with the send request will be 44 | returned to the user through the work completion wr_id, work request 45 | identifier, field. 46 | .SH "SEE ALSO" 47 | rdma_cm(7), rdma_connect(3), rdma_accept(3), 48 | ibv_post_send(3), rdma_post_send(3), rdma_post_recv(3) 49 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_reg_msgs.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_REG_MSGS" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_reg_msgs \- register data buffer(s) for sending or receiving messages. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_mr *" rdma_reg_msgs 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "void *" addr "," 10 | .BI "size_t " length ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | A reference to a communication identifier where the message buffer(s) 14 | will be used. 15 | .IP "addr" 12 16 | The address of the memory buffer(s) to register. 17 | .IP "length" 12 18 | The total length of the memory to register. 19 | .SH "DESCRIPTION" 20 | Registers an array of memory buffers used for sending and receiving 21 | messages or for RDMA operations. Memory buffers registered using 22 | rdma_reg_msgs may be posted to an rdma_cm_id using 23 | rdma_post_send or rdma_post_recv, or specified as the target of an RDMA 24 | read operation or the source of an RDMA write reqeust. 25 | .SH "RETURN VALUE" 26 | Returns a reference to the registered memory region on success, or NULL on 27 | error. If an error occurs, errno will be set to indicate the failure reason. 28 | .SH "NOTES" 29 | rdma_reg_msgs is used to register an array of data buffers 30 | that will be used send and/or receive messages on a queue pair associated with 31 | an rdma_cm_id. The memory buffer is registered with the proteection 32 | domain associated with the idenfier. The start of the data buffer array 33 | is specified through the addr parameter, and the total size of the array 34 | is given by length. 35 | .P 36 | All data buffers should be registered before being posted as a work request. 37 | Users must deregister all registered memory by calling rdma_dereg_mr. 38 | .SH "SEE ALSO" 39 | rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), 40 | rdma_reg_read(3), rdma_reg_write(3), 41 | ibv_reg_mr(3), ibv_dereg_mr(3), rdma_post_send(3), rdma_post_recv(3), 42 | rdma_post_read(3), rdma_post_readv(3), rdma_post_write(3), rdma_post_writev(3) 43 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_reg_read.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_REG_READ" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_reg_read \- register data buffer(s) for remote RDMA read access. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_mr *" rdma_reg_read 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "void *" addr "," 10 | .BI "size_t " length ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | A reference to a communication identifier where the message buffer(s) 14 | will be used. 15 | .IP "addr" 12 16 | The address of the memory buffer(s) to register. 17 | .IP "length" 12 18 | The total length of the memory to register. 19 | .SH "DESCRIPTION" 20 | Registers a memory buffer that will be accessed by a remote RDMA read 21 | operation. Memory buffers registered using rdma_reg_read may be 22 | targeted in an RDMA read request, allowing the buffer to be 23 | specified on the remote side of an RDMA connection as the remote_addr 24 | of rdma_post_read, or similar call. 25 | .SH "RETURN VALUE" 26 | Returns a reference to the registered memory region on success, or NULL on 27 | error. If an error occurs, errno will be set to indicate the failure reason. 28 | .SH "NOTES" 29 | rdma_reg_read is used to register a data buffer that will be the 30 | target of an RDMA read operation on a queue pair associated with 31 | an rdma_cm_id. The memory buffer is registered with the proteection 32 | domain associated with the idenfier. The start of the data buffer 33 | is specified through the addr parameter, and the total size of the buffer 34 | is given by length. 35 | .P 36 | All data buffers should be registered before being posted as a work request. 37 | Users must deregister all registered memory by calling rdma_dereg_mr. 38 | .SH "SEE ALSO" 39 | rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), 40 | rdma_reg_msgs(3), rdma_reg_write(3), 41 | ibv_reg_mr(3), ibv_dereg_mr(3), rdma_post_read(3) 42 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_reg_write.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_REG_WRITE" 3 "2010-07-19" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_reg_write \- register data buffer(s) for remote RDMA write access. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "struct ibv_mr *" rdma_reg_write 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "void *" addr "," 10 | .BI "size_t " length ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | A reference to a communication identifier where the message buffer(s) 14 | will be used. 15 | .IP "addr" 12 16 | The address of the memory buffer(s) to register. 17 | .IP "length" 12 18 | The total length of the memory to register. 19 | .SH "DESCRIPTION" 20 | Registers a memory buffer that will be accessed by a remote RDMA write 21 | operation. Memory buffers registered using rdma_reg_write may be 22 | targeted in an RDMA write request, allowing the buffer to be 23 | specified on the remote side of an RDMA connection as the remote_addr 24 | of rdma_post_write, or similar call. 25 | .SH "RETURN VALUE" 26 | Returns a reference to the registered memory region on success, or NULL on 27 | error. If an error occurs, errno will be set to indicate the failure reason. 28 | .SH "NOTES" 29 | rdma_reg_write is used to register a data buffer that will be the 30 | target of an RDMA write operation on a queue pair associated with 31 | an rdma_cm_id. The memory buffer is registered with the proteection 32 | domain associated with the idenfier. The start of the data buffer 33 | is specified through the addr parameter, and the total size of the buffer 34 | is given by length. 35 | .P 36 | All data buffers should be registered before being posted as a work request. 37 | Users must deregister all registered memory by calling rdma_dereg_mr. 38 | .SH "SEE ALSO" 39 | rdma_cm(7), rdma_create_id(3), rdma_create_ep(3), 40 | rdma_reg_msgs(3), rdma_reg_read(3), 41 | ibv_reg_mr(3), ibv_dereg_mr(3), rdma_post_write(3) 42 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_reject.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_REJECT" 3 "2007-05-15" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_reject \- Called to reject a connection request. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_reject 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "const void *" private_data "," 10 | .BI "uint8_t " private_data_len ");" 11 | .SH ARGUMENTS 12 | .IP "id" 12 13 | Connection identifier associated with the request. 14 | .IP "private_data" 12 15 | Optional private data to send with the reject message. 16 | .IP "private_data_len" 12 17 | Specifies the size of the user-controlled data buffer. Note that the actual 18 | amount of data transferred to the remote side is transport dependent and may 19 | be larger than that requested. 20 | .SH "DESCRIPTION" 21 | Called from the listening side to reject a connection or datagram 22 | service lookup request. 23 | .SH "RETURN VALUE" 24 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 25 | set to indicate the failure reason. 26 | .SH "NOTES" 27 | After receiving a connection request event, a user may call rdma_reject 28 | to reject the request. If the underlying RDMA transport supports 29 | private data in the reject message, the specified data will be passed to 30 | the remote side. 31 | .SH "SEE ALSO" 32 | rdma_listen(3), rdma_accept(3), rdma_get_cm_event(3) 33 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_resolve_route.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_RESOLVE_ROUTE" 3 "2007-10-31" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_resolve_route \- Resolve the route information needed to establish a connection. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_resolve_route 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "int " timeout_ms ");" 10 | .SH ARGUMENTS 11 | .IP "id" 12 12 | RDMA identifier. 13 | .IP "timeout_ms" 12 14 | Time to wait for resolution to complete. 15 | .SH "DESCRIPTION" 16 | Resolves an RDMA route to the destination address in order to establish 17 | a connection. The destination address must have already been resolved 18 | by calling rdma_resolve_addr. 19 | .SH "RETURN VALUE" 20 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 21 | set to indicate the failure reason. 22 | .SH "NOTES" 23 | This is called on the client side of a connection after calling 24 | rdma_resolve_addr, but before calling rdma_connect. 25 | .SH "INFINIBAND SPECIFIC" 26 | This call obtains a path record that is used by the connection. 27 | .SH "SEE ALSO" 28 | rdma_resolve_addr(3), rdma_connect(3), rdma_get_cm_event(3) 29 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_server.1: -------------------------------------------------------------------------------- 1 | .TH "RDMA_SERVER" 1 "2010-07-19" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rdma_server \- simple RDMA CM connection and ping-pong test. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrdma_server\fR [-p port] 8 | .fi 9 | .SH "DESCRIPTION" 10 | Uses synchronous librdmam calls to establish an RDMA connections between 11 | two nodes. This example is intended to provide a very simple coding 12 | example of how to use RDMA. 13 | .SH "OPTIONS" 14 | .TP 15 | \-p port 16 | Changes the port number that the server listens on. By default the server 17 | listens on port 7471. 18 | .SH "NOTES" 19 | Basic usage is to start rdma_server, then connect to the server using the 20 | rdma_client program. 21 | .P 22 | Because this test maps RDMA resources to userspace, users must ensure 23 | that they have available system resources and permissions. See the 24 | libibverbs README file for additional details. 25 | .SH "SEE ALSO" 26 | rdma_cm(7), udaddy(1), mckey(1), rping(1), rdma_client(1) 27 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_set_option.3: -------------------------------------------------------------------------------- 1 | .TH "RDMA_SET_OPTION" 3 "2007-08-06" "librdmacm" "Librdmacm Programmer's Manual" librdmacm 2 | .SH NAME 3 | rdma_set_option \- Set communication options for an rdma_cm_id. 4 | .SH SYNOPSIS 5 | .B "#include " 6 | .P 7 | .B "int" rdma_set_option 8 | .BI "(struct rdma_cm_id *" id "," 9 | .BI "int " level "," 10 | .BI "int " optname "," 11 | .BI "void *" optval "," 12 | .BI "size_t " optlen ");" 13 | .SH ARGUMENTS 14 | .IP "id" 12 15 | RDMA identifier. 16 | .IP "level" 12 17 | Protocol level of the option to set. 18 | .IP "optname" 12 19 | Name of the option, relative to the level, to set. 20 | .IP "optval" 12 21 | Reference to the option data. The data is dependent on the level and optname. 22 | .IP "optlen" 12 23 | The size of the %optval buffer. 24 | .SH "DESCRIPTION" 25 | Sets communication options for an rdma_cm_id. This call is used to override 26 | the default system settings. 27 | .SH "RETURN VALUE" 28 | Returns 0 on success, or -1 on error. If an error occurs, errno will be 29 | set to indicate the failure reason. 30 | .SH "NOTES" 31 | Option details may be found in the relevent header files. 32 | .SH "SEE ALSO" 33 | rdma_create_id(3) 34 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_xclient.1: -------------------------------------------------------------------------------- 1 | .TH "RDMA_XCLIENT" 1 "2011-06-15" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rdma_xclient \- RDMA CM communication client test program 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrdma_xclient\fR [-s server_address] [-p server_port] [-c comm_type] 8 | .fi 9 | .SH "DESCRIPTION" 10 | Uses synchronous librdmam calls to establish an RDMA connection between 11 | two nodes. This example is intended to provide a very simple coding 12 | example of how to use RDMA. 13 | .SH "OPTIONS" 14 | .TP 15 | \-s server_address 16 | Specifies the address of the system that the rdma_server is running on. 17 | By default, the client will attempt to connect to the server using 18 | 127.0.0.1. 19 | .TP 20 | \-p server_port 21 | Specifies the port number that the server listens on. By default the server 22 | listens on port 7471. 23 | .TP 24 | \-c communication type 25 | Specifies the type of communication established with the server program. 'r' 26 | results in using a reliable-connected QP (the default). 'x' uses 27 | extended reliable-connected XRC QPs. 28 | .SH "NOTES" 29 | Basic usage is to start rdma_xserver, then connect to the server using the 30 | rdma_client program. 31 | .P 32 | Because this test maps RDMA resources to userspace, users must ensure 33 | that they have available system resources and permissions. See the 34 | libibverbs README file for additional details. 35 | .SH "SEE ALSO" 36 | rdma_cm(7), udaddy(1), mckey(1), rping(1), rdma_xserver(1), rdma_client(1) 37 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rdma_xserver.1: -------------------------------------------------------------------------------- 1 | .TH "RDMA_XSERVER" 1 "2011-06-15" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rdma_xserver \- RDMA CM communication server test program 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrdma_xserver\fR [-p port] [-c comm_type] 8 | .fi 9 | .SH "DESCRIPTION" 10 | Uses the librdmacm to establish various forms of communication and exchange 11 | data. 12 | .SH "OPTIONS" 13 | .TP 14 | \-p port 15 | Changes the port number that the server listens on. By default the server 16 | listens on port 7471. 17 | .TP 18 | \-c communication type 19 | Specifies the type of communication established with the client program. 'r' 20 | results in using a reliable-connected QP (the default). 'x' uses 21 | extended reliable-connected XRC QPs. 22 | .SH "NOTES" 23 | Basic usage is to start rdma_xserver, then connect to the server using the 24 | rdma_xclient program. 25 | .P 26 | Because this test maps RDMA resources to userspace, users must ensure 27 | that they have available system resources and permissions. See the 28 | libibverbs README file for additional details. 29 | .SH "SEE ALSO" 30 | rdma_cm(7), udaddy(1), mckey(1), rping(1), rdma_server(1), rdma_xclient(1) 31 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/man/rping.1: -------------------------------------------------------------------------------- 1 | .TH "RPING" 1 "2007-05-15" "librdmacm" "librdmacm" librdmacm 2 | .SH NAME 3 | rping \- RDMA CM connection and RDMA ping-pong test. 4 | .SH SYNOPSIS 5 | .sp 6 | .nf 7 | \fIrping\fR -s [-v] [-V] [-d] [-P] [-a address] [-p port] 8 | [-C message_count] [-S message_size] 9 | \fIrping\fR -c [-v] [-V] [-d] -a address [-p port] 10 | [-C message_count] [-S message_size] 11 | .fi 12 | .SH "DESCRIPTION" 13 | Establishes a reliable RDMA connection between two nodes using the 14 | librdmacm, optionally performs RDMA transfers between the nodes, 15 | then disconnects. 16 | .SH "OPTIONS" 17 | .TP 18 | \-s 19 | Run as the server. 20 | .TP 21 | \-c 22 | Run as the client. 23 | .TP 24 | \-a address 25 | On the server, specifies the network address to bind the connection to. 26 | To bind to any address with IPv6 use -a ::0 . 27 | On the client, specifies the server address to connect to. 28 | .TP 29 | \-p 30 | Port number for listening server. 31 | .TP 32 | \-v 33 | Display ping data. 34 | .TP 35 | \-V 36 | Validate ping data. 37 | .TP 38 | \-d 39 | Display debug information. 40 | .TP 41 | \-C message_count 42 | The number of messages to transfer over each connection. (default infinite) 43 | .TP 44 | \-S message_size 45 | The size of each message transferred, in bytes. (default 100) 46 | .TP 47 | \-P 48 | Run the server in persistent mode. This allows multiple rping clients 49 | to connect to a single server instance. The server will run until killed. 50 | .SH "NOTES" 51 | Because this test maps RDMA resources to userspace, users must ensure 52 | that they have available system resources and permissions. See the 53 | libibverbs README file for additional details. 54 | .SH "SEE ALSO" 55 | rdma_cm(7), ucmatose(1), udaddy(1), mckey(1) 56 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/src/.gitignore: -------------------------------------------------------------------------------- 1 | # files produced by ./configure 2 | /.deps 3 | 4 | # files produced by make (libtool) 5 | /*.o 6 | /*.lo 7 | /*.la 8 | /.libs 9 | /.dirstamp 10 | -------------------------------------------------------------------------------- /libraries/librdmacm-1.1.0mlnx/src/librdmacm.map: -------------------------------------------------------------------------------- 1 | RDMACM_1.0 { 2 | global: 3 | rdma_create_event_channel; 4 | rdma_destroy_event_channel; 5 | rdma_create_id; 6 | rdma_destroy_id; 7 | rdma_bind_addr; 8 | rdma_resolve_addr; 9 | rdma_resolve_route; 10 | rdma_create_qp; 11 | rdma_destroy_qp; 12 | rdma_connect; 13 | rdma_listen; 14 | rdma_accept; 15 | rdma_reject; 16 | rdma_notify; 17 | rdma_disconnect; 18 | rdma_get_cm_event; 19 | rdma_ack_cm_event; 20 | rdma_get_src_port; 21 | rdma_get_dst_port; 22 | rdma_join_multicast; 23 | rdma_leave_multicast; 24 | rdma_get_devices; 25 | rdma_free_devices; 26 | rdma_event_str; 27 | rdma_set_option; 28 | rdma_get_local_addr; 29 | rdma_get_peer_addr; 30 | rdma_migrate_id; 31 | rdma_getaddrinfo; 32 | rdma_freeaddrinfo; 33 | rdma_get_request; 34 | rdma_create_ep; 35 | rdma_destroy_ep; 36 | rdma_create_srq; 37 | rdma_destroy_srq; 38 | rdma_lib_reset; 39 | rsocket; 40 | rbind; 41 | rlisten; 42 | raccept; 43 | rconnect; 44 | rshutdown; 45 | rclose; 46 | rrecv; 47 | rrecvfrom; 48 | rrecvmsg; 49 | rsend; 50 | rsendto; 51 | rsendmsg; 52 | rread; 53 | rreadv; 54 | rwrite; 55 | rwritev; 56 | rpoll; 57 | rselect; 58 | rgetpeername; 59 | rgetsockname; 60 | rsetsockopt; 61 | rgetsockopt; 62 | rfcntl; 63 | rpoll; 64 | rselect; 65 | rdma_get_src_port; 66 | rdma_get_dst_port; 67 | riomap; 68 | riounmap; 69 | riowrite; 70 | rdma_create_srq_ex; 71 | rdma_create_qp_ex; 72 | rdma_create_qp_exp; 73 | local: *; 74 | }; 75 | --------------------------------------------------------------------------------