-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failed to compile 'raw' transport #66
Comments
Hi @syspro4. Thanks for your interest. The current version of eRPC does not support the Raw transport anymore. I will mark it as broken in the CMakeLists.txt to avoid future confusion. If you wish to use the Raw transport, please use this version (https://github.com/erpc-io/eRPC/releases/tag/v0.1). You'll need to install an old version of Mellanox OFED (4.4 or older). I'd recommend using eRPC's DPDK transport instead with DPDK 19.11 LTS. That will require installing Mellanox userspace drivers from |
Thanks for the reply. Regarding support for latest OFED drivers how difficult it is to fix the issue? Can it be possible to change the Experimental IBVERBs and use the standard IBVERBs? If the changes are straight forward then I can fix it with some help. |
It's not difficult if we ignore the I will be happy to test and merge a PR that migrates eRPC's raw transport to standard ibverbs, while ignoring the |
Great! Thanks for the help! |
Hi, Following are the Mellanox versions I used: Note: In the patch I have kept kDumb code commented so that in the future we can fix it if needed. I can remove the kDumb code if it is not needed. TODO: Questions:
Please let me know if any changes needed. Thanks, |
Thanks so much! I've tested that it seems to work in the latency benchmark with rdma_core. May I suggest the following:
If you are unable to, I will make the required changes soon and merge. Answers to your questions:
|
Thank you for testing the patch. I tried the server_rate app & I fixed some compilation issue and then ran ./scripts/do.sh from serve & client but I see following messages and I am not sure what to make out of the messages: Note: I enabled LOG_LEVEL=info On server side I only see following messages continuously. I do not see any progress On client side I see following message & nothing is happening after that: Detailed logs: server_dev :: ~/eRPC » ./scripts/do.sh 0 0 ====================== client side ==================================== client_dev :: ~/eRPC » ./scripts/do.sh 1 0 50:210277 INFOR: Rpc 15: Received connect response from [H: 192.168.2.222:31850, R: 0, S: 15] for session 0. Issue: None. Session connected. |
I pushed the required compilation fixes to In your case, I suspect that the datapath packets are getting dropped somewhere. You could try re-compiling eRPC with detailed packet-level logging (ex: |
You are correct. In the log I see packet drop error. I am getting it for hello_server/client test too. Log: /tmp/erpc_trace_31850-rpc_0: I did rping test between server & client and it is working fine. server_dev :: ~/eRPC 1 » rping -s -C 10 -v <<< client_dev :: ~/eRPC » /usr/bin/rping -c -a 192.168.2.222 -C 10 -v Please help. Thanks |
Hi, Thanks! |
Couple of suggestions:
|
Ah, I just remembered that you were able to run the hello_world test, so CRC is likely not an issue. Still, it might be worth trying with the DPDK transport. Other suggestions:
|
Thanks for the suggestions. Actually earlier hello_world also did not work. I retested it and I see same pkt loss message. When you tested my patch on your setup did you changed anything in your code base? |
I tried erpc dpdk but that is giving following errors. server_dev :: ~/eRPC » ./build/hello_server server_dev :: ~/eRPC » I tried running dpdk-helloworld test program to check if dpdk is configured and working correctly and it is working fine. server_dev :: ~/dpdk-stable-19.11.5/build » examples/dpdk-helloworld -l 0-3 -n 4 |
It's strange that the port reports zero as the max number of RX descriptors. Could you try:
This should show the number of RX ring descriptors detected by testpmd. Also: I see your system has two CX3 ports. Are both connected to the switch? If not, please ensure that eRPC is using the correct port. |
Thanks for the reply. testpmd> show port info 0 ********************* Infos for port 0 ********************* testpmd> show config rxtx I don't see the ring descriptors in "info port" command but in "show config rxtx" I see 0 for descriptor value. Regarding the CX3 ports, yes I have a card with 2 ports and the program is picking up correct port. If we manually select the port then how can I do that? Thanks! |
Hi,
I am trying to compile latest eRPC and getting some compilation errors. Can you please help?
Thanks!
Following are the setup details:
[root@dev_mc eRPC]# cat /etc/release | grep release
cat: /etc/lsb-release.d: Is a directory
Oracle Linux Server release 8.4
Red Hat Enterprise Linux release 8.4 (Ootpa)
Oracle Linux Server release 8.4
[root@dev_mc eRPC]#
[root@dev_mc eRPC]# ofed_info -s
MLNX_OFED_LINUX-5.4-1.0.3.0:
[root@dev_mc eRPC]#
[root@dev_mc eRPC]# lspci | grep Mellanox
04:00.0 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
04:00.1 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
[root@dev_mc eRPC]#
[root@dev_mc eRPC]# cmake . -DPERF=ON -DTRANSPORT=raw; make -j
.
.
.
[ 48%] Building CXX object CMakeFiles/erpc.dir/src/util/numautils.cc.o
[ 49%] Building CXX object CMakeFiles/erpc.dir/src/transport_impl/fake/fake_transport.cc.o
[ 50%] Building CXX object CMakeFiles/erpc.dir/src/util/tls_registry.cc.o
[ 51%] Linking C shared library libhdr_histogram.so
[ 51%] Built target hdr_histogram
[ 52%] Linking C static library libhdr_histogram_static.a
[ 52%] Built target hdr_histogram_static
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc: In member function ‘void erpc::RawTransport::tx_burst(const erpc::Transport::tx_burst_item_t*, size_t)’:
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:12:40: error: ‘const struct erpc::Transport::tx_burst_item_t’ has no member named ‘msg_buffer’; did you mean ‘msg_buffer_’?
const MsgBuffer* msg_buffer = item.msg_buffer;
^~~~~~~~~~
msg_buffer_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:27:14: error: ‘const struct erpc::Transport::tx_burst_item_t’ has no member named ‘pkt_idx’; did you mean ‘pkt_idx_’?
if (item.pkt_idx == 0) {
^~~~~~~
pkt_idx_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:32:33: error: ‘const class erpc::MsgBuffer’ has no member named ‘buffer’; did you mean ‘buffer_’?
sgl[0].lkey = msg_buffer->buffer.lkey;
^~~~~~
buffer_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:43:46: error: ‘const struct erpc::Transport::tx_burst_item_t’ has no member named ‘pkt_idx’; did you mean ‘pkt_idx_’?
pkthdr = msg_buffer->get_pkthdr_n(item.pkt_idx);
^~~~~~~
pkt_idx_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:46:33: error: ‘const class erpc::MsgBuffer’ has no member named ‘buffer’; did you mean ‘buffer_’?
sgl[0].lkey = msg_buffer->buffer.lkey;
^~~~~~
buffer_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:48:28: error: ‘const struct erpc::Transport::tx_burst_item_t’ has no member named ‘pkt_idx’; did you mean ‘pkt_idx_’?
size_t offset = item.pkt_idx * kMaxDataPerPkt;
^~~~~~~
pkt_idx_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:49:61: error: ‘const class erpc::MsgBuffer’ has no member named ‘buf’; did you mean ‘buf_’?
sgl[1].addr = reinterpret_cast<uint64_t>(&msg_buffer->buf[offset]);
^~~
buf_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:50:62: error: ‘const class erpc::MsgBuffer’ has no member named ‘data_size’; did you mean ‘data_size_’?
sgl[1].length = (std::min)(kMaxDataPerPkt, msg_buffer->data_size - offset);
^~~~~~~~~
data_size_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:51:33: error: ‘const class erpc::MsgBuffer’ has no member named ‘buffer’; did you mean ‘buffer_’?
sgl[1].lkey = msg_buffer->buffer.lkey;
^~~~~~
buffer_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:60:21: error: ‘struct erpc::pkthdr_t’ has no member named ‘headroom’; did you mean ‘headroom_’?
memcpy(&pkthdr->headroom[0], item.routing_info, hdr_copy_sz);
^~~~~~~~
headroom_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:60:39: error: ‘const struct erpc::Transport::tx_burst_item_t’ has no member named ‘routing_info’; did you mean ‘routing_info_’?
memcpy(&pkthdr->headroom[0], item.routing_info, hdr_copy_sz);
^~~~~~~~~~~~
routing_info_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:62:26: error: ‘const struct erpc::Transport::tx_burst_item_t’ has no member named ‘drop’; did you mean ‘drop_’?
if (kTesting && item.drop) {
^~~~
drop_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:64:60: error: ‘struct erpc::pkthdr_t’ has no member named ‘headroom’; did you mean ‘headroom_’?
auto* eth_hdr = reinterpret_cast<eth_hdr_t*>(pkthdr->headroom);
^~~~~~~~
headroom_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:69:48: error: ‘struct erpc::pkthdr_t’ has no member named ‘headroom’; did you mean ‘headroom_’?
reinterpret_cast<ipv4_hdr_t*>(&pkthdr->headroom[sizeof(eth_hdr_t)]);
^~~~~~~~
headroom_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc: In member function ‘void erpc::RawTransport::tx_flush()’:
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:106:19: error: ‘huge_alloc’ was not declared in this scope
Buffer buffer = huge_alloc->alloc(pkt_size); // Get a registered buffer
^~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:106:19: note: suggested alternative: ‘huge_alloc_’
Buffer buffer = huge_alloc->alloc(pkt_size); // Get a registered buffer
^~~~~~~~~~
huge_alloc_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:109:17: error: ‘class erpc::Buffer’ has no member named ‘buf’; did you mean ‘buf_’?
memset(buffer.buf, 0, pkt_size);
^~~
buf_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:110:53: error: ‘class erpc::Buffer’ has no member named ‘buf’; did you mean ‘buf_’?
auto* pkthdr = reinterpret_cast<pkthdr_t*>(buffer.buf);
^~~
buf_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:139:24: error: ‘class erpc::Buffer’ has no member named ‘lkey’; did you mean ‘lkey_’?
sgl[0].lkey = buffer.lkey;
^~~~
lkey_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:159:3: error: ‘testing’ was not declared in this scope
testing.tx_flush_count++;
^~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:159:3: note: suggested alternative: ‘testing_’
testing.tx_flush_count++;
^~~~~~~
testing_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc: In member function ‘size_t erpc::RawTransport::rx_burst()’:
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:171:52: error: ‘class erpc::Buffer’ has no member named ‘buf’; did you mean ‘buf_’?
reinterpret_cast<pkthdr_t*>(&ring_extent.buf[recv_head * kRecvSize]);
^~~
buf_
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc: In member function ‘void erpc::RawTransport::post_recvs(size_t)’:
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:200:24: error: invalid use of incomplete type ‘struct erpc::ibv_exp_wq_family’
int ret = wq_family->recv_burst(wq, &mp_recv_sge[mp_sge_idx], 1);
^~
In file included from /root/dev/test/eRPC/src/transport_impl/raw/raw_transport_datapath.cc:3:
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.h:202:10: note: forward declaration of ‘struct erpc::ibv_exp_wq_family’
struct ibv_exp_wq_family *wq_family;
^~~~~~~~~~~~~~~~~
At global scope:
cc1plus: error: unrecognized command line option ‘-Wno-keyword-macro’ [-Werror]
cc1plus: error: unrecognized command line option ‘-Wno-nested-anon-types’ [-Werror]
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/erpc.dir/build.make:454: CMakeFiles/erpc.dir/src/transport_impl/raw/raw_transport_datapath.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc: In destructor ‘erpc::RawTransport::~RawTransport()’:
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:58:40: error: aggregate ‘erpc::RawTransport::~RawTransport()::ibv_exp_release_intf_params rel_intf_params’ has incomplete type and cannot be defined
struct ibv_exp_release_intf_params rel_intf_params;
^~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:61:9: error: ‘ibv_exp_release_intf’ was not declared in this scope
ibv_exp_release_intf(resolve.ib_ctx, wq_family, &rel_intf_params) == 0,
^~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:61:9: note: suggested alternative: ‘ibv_exp_release_intf_params’
ibv_exp_release_intf(resolve.ib_ctx, wq_family, &rel_intf_params) == 0,
^~~~~~~~~~~~~~~~~~~~
ibv_exp_release_intf_params
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:64:17: error: ‘ibv_exp_destroy_flow’ was not declared in this scope
exit_assert(ibv_exp_destroy_flow(recv_flow) == 0,
^~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:64:17: note: suggested alternative: ‘ibv_destroy_flow’
exit_assert(ibv_exp_destroy_flow(recv_flow) == 0,
^~~~~~~~~~~~~~~~~~~~
ibv_destroy_flow
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:70:17: error: ‘ibv_exp_destroy_rwq_ind_table’ was not declared in this scope
exit_assert(ibv_exp_destroy_rwq_ind_table(ind_tbl) == 0,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:70:17: note: suggested alternative: ‘ibv_destroy_rwq_ind_table’
exit_assert(ibv_exp_destroy_rwq_ind_table(ind_tbl) == 0,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ibv_destroy_rwq_ind_table
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:73:17: error: ‘ibv_exp_destroy_wq’ was not declared in this scope
exit_assert(ibv_exp_destroy_wq(wq) == 0, "Failed to destroy WQ");
^~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:73:17: note: suggested alternative: ‘ibv_destroy_wq’
exit_assert(ibv_exp_destroy_wq(wq) == 0, "Failed to destroy WQ");
^~~~~~~~~~~~~~~~~~
ibv_destroy_wq
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:75:17: error: ‘ibv_exp_destroy_flow’ was not declared in this scope
exit_assert(ibv_exp_destroy_flow(recv_flow) == 0,
^~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:75:17: note: suggested alternative: ‘ibv_destroy_flow’
exit_assert(ibv_exp_destroy_flow(recv_flow) == 0,
^~~~~~~~~~~~~~~~~~~~
ibv_destroy_flow
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc: In member function ‘void erpc::RawTransport::init_basic_qp()’:
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:125:31: error: aggregate ‘erpc::RawTransport::init_basic_qp()::ibv_exp_cq_init_attr cq_init_attr’ has incomplete type and cannot be defined
struct ibv_exp_cq_init_attr cq_init_attr;
^~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:127:13: error: ‘ibv_exp_create_cq’ was not declared in this scope
send_cq = ibv_exp_create_cq(resolve.ib_ctx, kSQDepth, nullptr, nullptr, 0,
^~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:127:13: note: suggested alternative: ‘ibv_create_cq’
send_cq = ibv_exp_create_cq(resolve.ib_ctx, kSQDepth, nullptr, nullptr, 0,
^~~~~~~~~~~~~~~~~
ibv_create_cq
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:138:31: error: aggregate ‘erpc::RawTransport::init_basic_qp()::ibv_exp_qp_init_attr qp_init_attr’ has incomplete type and cannot be defined
struct ibv_exp_qp_init_attr qp_init_attr;
^~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:140:28: error: ‘IBV_EXP_QP_INIT_ATTR_PD’ was not declared in this scope
qp_init_attr.comp_mask = IBV_EXP_QP_INIT_ATTR_PD;
^~~~~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:140:28: note: suggested alternative: ‘IBV_QP_INIT_ATTR_PD’
qp_init_attr.comp_mask = IBV_EXP_QP_INIT_ATTR_PD;
^~~~~~~~~~~~~~~~~~~~~~~
IBV_QP_INIT_ATTR_PD
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:152:8: error: ‘ibv_exp_create_qp’ was not declared in this scope
qp = ibv_exp_create_qp(resolve.ib_ctx, &qp_init_attr);
^~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:152:8: note: suggested alternative: ‘ibv_create_qp’
qp = ibv_exp_create_qp(resolve.ib_ctx, &qp_init_attr);
^~~~~~~~~~~~~~~~~
ibv_create_qp
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:155:26: error: aggregate ‘erpc::RawTransport::init_basic_qp()::ibv_exp_qp_attr qp_attr’ has incomplete type and cannot be defined
struct ibv_exp_qp_attr qp_attr;
^~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:159:13: error: ‘ibv_exp_modify_qp’ was not declared in this scope
rt_assert(ibv_exp_modify_qp(qp, &qp_attr, IBV_QP_STATE | IBV_QP_PORT) == 0);
^~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:159:13: note: suggested alternative: ‘ibv_modify_qp’
rt_assert(ibv_exp_modify_qp(qp, &qp_attr, IBV_QP_STATE | IBV_QP_PORT) == 0);
^~~~~~~~~~~~~~~~~
ibv_modify_qp
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc: In member function ‘void erpc::RawTransport::init_mp_recv_qp()’:
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:175:31: error: aggregate ‘erpc::RawTransport::init_mp_recv_qp()::ibv_exp_cq_init_attr cq_init_attr’ has incomplete type and cannot be defined
struct ibv_exp_cq_init_attr cq_init_attr;
^~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:177:13: error: ‘ibv_exp_create_cq’ was not declared in this scope
recv_cq = ibv_exp_create_cq(resolve.ib_ctx, kRecvCQDepth / 2, nullptr,
^~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:177:13: note: suggested alternative: ‘ibv_create_cq’
recv_cq = ibv_exp_create_cq(resolve.ib_ctx, kRecvCQDepth / 2, nullptr,
^~~~~~~~~~~~~~~~~
ibv_create_cq
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:182:26: error: aggregate ‘erpc::RawTransport::init_mp_recv_qp()::ibv_exp_cq_attr cq_attr’ has incomplete type and cannot be defined
struct ibv_exp_cq_attr cq_attr;
^~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:184:23: error: ‘IBV_EXP_CQ_ATTR_CQ_CAP_FLAGS’ was not declared in this scope
cq_attr.comp_mask = IBV_EXP_CQ_ATTR_CQ_CAP_FLAGS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:184:23: note: suggested alternative: ‘IBV_QP_INIT_ATTR_CREATE_FLAGS’
cq_attr.comp_mask = IBV_EXP_CQ_ATTR_CQ_CAP_FLAGS;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
IBV_QP_INIT_ATTR_CREATE_FLAGS
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:185:26: error: ‘IBV_EXP_CQ_IGNORE_OVERRUN’ was not declared in this scope
cq_attr.cq_cap_flags = IBV_EXP_CQ_IGNORE_OVERRUN;
^~~~~~~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:185:26: note: suggested alternative: ‘IBV_CREATE_CQ_ATTR_IGNORE_OVERRUN’
cq_attr.cq_cap_flags = IBV_EXP_CQ_IGNORE_OVERRUN;
^~~~~~~~~~~~~~~~~~~~~~~~~
IBV_CREATE_CQ_ATTR_IGNORE_OVERRUN
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:186:50: error: ‘IBV_EXP_CQ_CAP_FLAGS’ was not declared in this scope
rt_assert(ibv_exp_modify_cq(recv_cq, &cq_attr, IBV_EXP_CQ_CAP_FLAGS) == 0);
^~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:186:50: note: suggested alternative: ‘IBV_QP_ACCESS_FLAGS’
rt_assert(ibv_exp_modify_cq(recv_cq, &cq_attr, IBV_EXP_CQ_CAP_FLAGS) == 0);
^~~~~~~~~~~~~~~~~~~~
IBV_QP_ACCESS_FLAGS
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:186:13: error: ‘ibv_exp_modify_cq’ was not declared in this scope
rt_assert(ibv_exp_modify_cq(recv_cq, &cq_attr, IBV_EXP_CQ_CAP_FLAGS) == 0);
^~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:186:13: note: suggested alternative: ‘ibv_modify_cq’
rt_assert(ibv_exp_modify_cq(recv_cq, &cq_attr, IBV_EXP_CQ_CAP_FLAGS) == 0);
^~~~~~~~~~~~~~~~~
ibv_modify_cq
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:188:31: error: aggregate ‘erpc::RawTransport::init_mp_recv_qp()::ibv_exp_wq_init_attr wq_init_attr’ has incomplete type and cannot be defined
struct ibv_exp_wq_init_attr wq_init_attr;
^~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:191:26: error: ‘IBV_EXP_WQT_RQ’ was not declared in this scope
wq_init_attr.wq_type = IBV_EXP_WQT_RQ;
^~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:191:26: note: suggested alternative: ‘IBV_WQT_RQ’
wq_init_attr.wq_type = IBV_EXP_WQT_RQ;
^~~~~~~~~~~~~~
IBV_WQT_RQ
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:197:29: error: ‘IBV_EXP_CREATE_WQ_MP_RQ’ was not declared in this scope
wq_init_attr.comp_mask |= IBV_EXP_CREATE_WQ_MP_RQ;
^~~~~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:197:29: note: suggested alternative: ‘IBV_QP_RATE_LIMIT’
wq_init_attr.comp_mask |= IBV_EXP_CREATE_WQ_MP_RQ;
^~~~~~~~~~~~~~~~~~~~~~~
IBV_QP_RATE_LIMIT
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:198:34: error: ‘IBV_EXP_MP_RQ_NO_SHIFT’ was not declared in this scope
wq_init_attr.mp_rq.use_shift = IBV_EXP_MP_RQ_NO_SHIFT;
^~~~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:198:34: note: suggested alternative: ‘IBV_WC_IP_CSUM_OK_SHIFT’
wq_init_attr.mp_rq.use_shift = IBV_EXP_MP_RQ_NO_SHIFT;
^~~~~~~~~~~~~~~~~~~~~~
IBV_WC_IP_CSUM_OK_SHIFT
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:201:8: error: ‘ibv_exp_create_wq’ was not declared in this scope
wq = ibv_exp_create_wq(resolve.ib_ctx, &wq_init_attr);
^~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:201:8: note: suggested alternative: ‘ibv_create_wq’
wq = ibv_exp_create_wq(resolve.ib_ctx, &wq_init_attr);
^~~~~~~~~~~~~~~~~
ibv_create_wq
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:205:26: error: aggregate ‘erpc::RawTransport::init_mp_recv_qp()::ibv_exp_wq_attr wq_attr’ has incomplete type and cannot be defined
struct ibv_exp_wq_attr wq_attr;
^~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:207:23: error: ‘IBV_EXP_WQ_ATTR_STATE’ was not declared in this scope
wq_attr.attr_mask = IBV_EXP_WQ_ATTR_STATE;
^~~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:207:23: note: suggested alternative: ‘IBV_WQ_ATTR_STATE’
wq_attr.attr_mask = IBV_EXP_WQ_ATTR_STATE;
^~~~~~~~~~~~~~~~~~~~~
IBV_WQ_ATTR_STATE
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:208:22: error: ‘IBV_EXP_WQS_RDY’ was not declared in this scope
wq_attr.wq_state = IBV_EXP_WQS_RDY;
^~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:208:22: note: suggested alternative: ‘IBV_WQS_RDY’
wq_attr.wq_state = IBV_EXP_WQS_RDY;
^~~~~~~~~~~~~~~
IBV_WQS_RDY
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:209:13: error: ‘ibv_exp_modify_wq’ was not declared in this scope
rt_assert(ibv_exp_modify_wq(wq, &wq_attr) == 0, "Failed to ready WQ");
^~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:209:13: note: suggested alternative: ‘ibv_modify_wq’
rt_assert(ibv_exp_modify_wq(wq, &wq_attr) == 0, "Failed to ready WQ");
^~~~~~~~~~~~~~~~~
ibv_modify_wq
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:212:8: error: use of enum ‘ibv_exp_query_intf_status’ without previous declaration
enum ibv_exp_query_intf_status intf_status = IBV_EXP_INTF_STAT_OK;
^~~~~~~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:212:48: error: ‘IBV_EXP_INTF_STAT_OK’ was not declared in this scope
enum ibv_exp_query_intf_status intf_status = IBV_EXP_INTF_STAT_OK;
^~~~~~~~~~~~~~~~~~~~
/root/dev/test/eRPC/src/transport_impl/raw/raw_transport.cc:212:48: note: suggested alternative: ‘IBV_QP_CUR_STATE’
enum ibv_exp_query_intf_status intf_status = IBV_EXP_INTF_STAT_OK;
^~~~~~~~~~~~~~~~~~~~
IBV_QP_CUR_STATE
~
The text was updated successfully, but these errors were encountered: