erpc-io / eRPC

Efficient RPCs for datacenter networks
https://erpc.io/
Other
835 stars 137 forks source link

Compiling Error with MLNX_OFED_LINUX-5.3-1.0.0.1 #54

Closed 492859780 closed 2 years ago

492859780 commented 3 years ago

Hi,

l am trying to compile the project with cmake . -DPERF=OFF -DTRANSPORT=raw; make. Although l have already installed OFED in version 5.3-1.0.0.1, l still met the following ibv related errors.The NIC l used is Mellanox ConnectX-5 MCX516-CCAT on ubuntu 18.04.

[  1%] Building CXX object CMakeFiles/erpc.dir/src/transport_impl/raw/raw_transport.cc.o
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc: In destructor ‘erpc::RawTransport::~RawTransport()’:
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:57: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;
                                        ^~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:60: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,
         ^~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:60: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:63:17: error: ‘ibv_exp_destroy_flow’ was not declared in this scope
     exit_assert(ibv_exp_destroy_flow(recv_flow) == 0,
                 ^~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:63:17: note: suggested alternative: ‘ibv_destroy_flow’
     exit_assert(ibv_exp_destroy_flow(recv_flow) == 0,
                 ^~~~~~~~~~~~~~~~~~~~
                 ibv_destroy_flow
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:69: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,
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:69: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:72:17: error: ‘ibv_exp_destroy_wq’ was not declared in this scope
     exit_assert(ibv_exp_destroy_wq(wq) == 0, "Failed to destroy WQ");
                 ^~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:72:17: note: suggested alternative: ‘ibv_destroy_wq’
     exit_assert(ibv_exp_destroy_wq(wq) == 0, "Failed to destroy WQ");
                 ^~~~~~~~~~~~~~~~~~
                 ibv_destroy_wq
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:74:17: error: ‘ibv_exp_destroy_flow’ was not declared in this scope
     exit_assert(ibv_exp_destroy_flow(recv_flow) == 0,
                 ^~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:74:17: note: suggested alternative: ‘ibv_destroy_flow’
     exit_assert(ibv_exp_destroy_flow(recv_flow) == 0,
                 ^~~~~~~~~~~~~~~~~~~~
                 ibv_destroy_flow
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc: In member function ‘void erpc::RawTransport::init_basic_qp()’:
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:124: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;
                               ^~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:126: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,
             ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:126:13: note: suggested alternative: ‘ibv_create_cq’
   send_cq = ibv_exp_create_cq(resolve.ib_ctx, kSQDepth, nullptr, nullptr, 0,
             ^~~~~~~~~~~~~~~~~
             ibv_create_cq
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:137: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;
                               ^~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:139: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;
                            ^~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:139: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:151:8: error: ‘ibv_exp_create_qp’ was not declared in this scope
   qp = ibv_exp_create_qp(resolve.ib_ctx, &qp_init_attr);
        ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:151:8: note: suggested alternative: ‘ibv_create_qp’
   qp = ibv_exp_create_qp(resolve.ib_ctx, &qp_init_attr);
        ^~~~~~~~~~~~~~~~~
        ibv_create_qp
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:154: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;
                          ^~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:158: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);
             ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:158: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc: In member function ‘void erpc::RawTransport::init_mp_recv_qp()’:
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:174: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;
                               ^~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:176:13: error: ‘ibv_exp_create_cq’ was not declared in this scope
   recv_cq = ibv_exp_create_cq(resolve.ib_ctx, kRecvCQDepth / 2, nullptr,
             ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:176:13: note: suggested alternative: ‘ibv_create_cq’
   recv_cq = ibv_exp_create_cq(resolve.ib_ctx, kRecvCQDepth / 2, nullptr,
             ^~~~~~~~~~~~~~~~~
             ibv_create_cq
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:181: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;
                          ^~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:183: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;
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:183: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:184:26: error: ‘IBV_EXP_CQ_IGNORE_OVERRUN’ was not declared in this scope
   cq_attr.cq_cap_flags = IBV_EXP_CQ_IGNORE_OVERRUN;
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:184: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:185: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);
                                                  ^~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:185: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:185: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);
             ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:185: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:187: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;
                               ^~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:190:26: error: ‘IBV_EXP_WQT_RQ’ was not declared in this scope
   wq_init_attr.wq_type = IBV_EXP_WQT_RQ;
                          ^~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:190:26: note: suggested alternative: ‘IBV_WQT_RQ’
   wq_init_attr.wq_type = IBV_EXP_WQT_RQ;
                          ^~~~~~~~~~~~~~
                          IBV_WQT_RQ
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:196: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;
                             ^~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:196:29: note: suggested alternative: ‘IBV_QP_RATE_LIMIT’
   wq_init_attr.comp_mask |= IBV_EXP_CREATE_WQ_MP_RQ;
                             ^~~~~~~~~~~~~~~~~~~~~~~
                             IBV_QP_RATE_LIMIT
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:197: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;
                                  ^~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:197: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:200:8: error: ‘ibv_exp_create_wq’ was not declared in this scope
   wq = ibv_exp_create_wq(resolve.ib_ctx, &wq_init_attr);
        ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:200:8: note: suggested alternative: ‘ibv_create_wq’
   wq = ibv_exp_create_wq(resolve.ib_ctx, &wq_init_attr);
        ^~~~~~~~~~~~~~~~~
        ibv_create_wq
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:204: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;
                          ^~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:206:23: error: ‘IBV_EXP_WQ_ATTR_STATE’ was not declared in this scope
   wq_attr.attr_mask = IBV_EXP_WQ_ATTR_STATE;
                       ^~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:206:23: note: suggested alternative: ‘IBV_WQ_ATTR_STATE’
   wq_attr.attr_mask = IBV_EXP_WQ_ATTR_STATE;
                       ^~~~~~~~~~~~~~~~~~~~~
                       IBV_WQ_ATTR_STATE
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:207:22: error: ‘IBV_EXP_WQS_RDY’ was not declared in this scope
   wq_attr.wq_state = IBV_EXP_WQS_RDY;
                      ^~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:207:22: note: suggested alternative: ‘IBV_WQS_RDY’
   wq_attr.wq_state = IBV_EXP_WQS_RDY;
                      ^~~~~~~~~~~~~~~
                      IBV_WQS_RDY
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:208: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");
             ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:208:13: note: suggested alternative: ‘ibv_modify_wq’
   rt_assert(ibv_exp_modify_wq(wq, &wq_attr) == 0, "Failed to ready WQ");
             ^~~~~~~~~~~~~~~~~
             ibv_modify_wq
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:211: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;
        ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:211: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;
                                                ^~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:211: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
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:212:36: error: aggregate ‘erpc::RawTransport::init_mp_recv_qp()::ibv_exp_query_intf_params query_intf_params’ has incomplete type and cannot be defined
   struct ibv_exp_query_intf_params query_intf_params;
                                    ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:214:34: error: ‘IBV_EXP_INTF_GLOBAL’ was not declared in this scope
   query_intf_params.intf_scope = IBV_EXP_INTF_GLOBAL;
                                  ^~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:214:34: note: suggested alternative: ‘IBV_ATOMIC_GLOB’
   query_intf_params.intf_scope = IBV_EXP_INTF_GLOBAL;
                                  ^~~~~~~~~~~~~~~~~~~
                                  IBV_ATOMIC_GLOB
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:215:28: error: ‘IBV_EXP_INTF_WQ’ was not declared in this scope
   query_intf_params.intf = IBV_EXP_INTF_WQ;
                            ^~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:218:7: error: ‘ibv_exp_query_intf’ was not declared in this scope
       ibv_exp_query_intf(resolve.ib_ctx, &query_intf_params, &intf_status));
       ^~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:218:7: note: suggested alternative: ‘ibv_exp_peer_buf’
       ibv_exp_query_intf(resolve.ib_ctx, &query_intf_params, &intf_status));
       ^~~~~~~~~~~~~~~~~~
       ibv_exp_peer_buf
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:222:42: error: aggregate ‘erpc::RawTransport::init_mp_recv_qp()::ibv_exp_rwq_ind_table_init_attr rwq_ind_table_init_attr’ has incomplete type and cannot be defined
   struct ibv_exp_rwq_ind_table_init_attr rwq_ind_table_init_attr;
                                          ^~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:229:7: error: ‘ibv_exp_create_rwq_ind_table’ was not declared in this scope
       ibv_exp_create_rwq_ind_table(resolve.ib_ctx, &rwq_ind_table_init_attr);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:229:7: note: suggested alternative: ‘ibv_create_rwq_ind_table’
       ibv_exp_create_rwq_ind_table(resolve.ib_ctx, &rwq_ind_table_init_attr);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
       ibv_create_rwq_ind_table
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:241:31: error: aggregate ‘erpc::RawTransport::init_mp_recv_qp()::ibv_exp_rx_hash_conf rx_hash_conf’ has incomplete type and cannot be defined
   struct ibv_exp_rx_hash_conf rx_hash_conf;
                               ^~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:243:35: error: ‘IBV_EXP_RX_HASH_FUNC_TOEPLITZ’ was not declared in this scope
   rx_hash_conf.rx_hash_function = IBV_EXP_RX_HASH_FUNC_TOEPLITZ;
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:243:35: note: suggested alternative: ‘IBV_RX_HASH_FUNC_TOEPLITZ’
   rx_hash_conf.rx_hash_function = IBV_EXP_RX_HASH_FUNC_TOEPLITZ;
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                   IBV_RX_HASH_FUNC_TOEPLITZ
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:246:38: error: ‘IBV_EXP_RX_HASH_DST_PORT_UDP’ was not declared in this scope
   rx_hash_conf.rx_hash_fields_mask = IBV_EXP_RX_HASH_DST_PORT_UDP;
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:246:38: note: suggested alternative: ‘IBV_RX_HASH_DST_PORT_UDP’
   rx_hash_conf.rx_hash_fields_mask = IBV_EXP_RX_HASH_DST_PORT_UDP;
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                      IBV_RX_HASH_DST_PORT_UDP
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:249:31: error: aggregate ‘erpc::RawTransport::init_mp_recv_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;
                               ^~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:251:28: error: ‘IBV_EXP_QP_INIT_ATTR_CREATE_FLAGS’ was not declared in this scope
   qp_init_attr.comp_mask = IBV_EXP_QP_INIT_ATTR_CREATE_FLAGS |
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:251:28: note: suggested alternative: ‘IBV_QP_INIT_ATTR_CREATE_FLAGS’
   qp_init_attr.comp_mask = IBV_EXP_QP_INIT_ATTR_CREATE_FLAGS |
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            IBV_QP_INIT_ATTR_CREATE_FLAGS
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:252:28: error: ‘IBV_EXP_QP_INIT_ATTR_PD’ was not declared in this scope
                            IBV_EXP_QP_INIT_ATTR_PD |
                            ^~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:252:28: note: suggested alternative: ‘IBV_QP_INIT_ATTR_PD’
                            IBV_EXP_QP_INIT_ATTR_PD |
                            ^~~~~~~~~~~~~~~~~~~~~~~
                            IBV_QP_INIT_ATTR_PD
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:253:28: error: ‘IBV_EXP_QP_INIT_ATTR_RX_HASH’ was not declared in this scope
                            IBV_EXP_QP_INIT_ATTR_RX_HASH;
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:253:28: note: suggested alternative: ‘IBV_QP_INIT_ATTR_RX_HASH’
                            IBV_EXP_QP_INIT_ATTR_RX_HASH;
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            IBV_QP_INIT_ATTR_RX_HASH
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:259:16: error: ‘ibv_exp_create_qp’ was not declared in this scope
   mp_recv_qp = ibv_exp_create_qp(resolve.ib_ctx, &qp_init_attr);
                ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:259:16: note: suggested alternative: ‘ibv_create_qp’
   mp_recv_qp = ibv_exp_create_qp(resolve.ib_ctx, &qp_init_attr);
                ^~~~~~~~~~~~~~~~~
                ibv_create_qp
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc: In member function ‘void erpc::RawTransport::install_flow_rule()’:
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:273:14: error: ‘ibv_exp_flow_attr’ was not declared in this scope
       sizeof(ibv_exp_flow_attr) + sizeof(ibv_exp_flow_spec_eth) +
              ^~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:273:14: note: suggested alternative: ‘ibv_flow_attr’
       sizeof(ibv_exp_flow_attr) + sizeof(ibv_exp_flow_spec_eth) +
              ^~~~~~~~~~~~~~~~~
              ibv_flow_attr
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:273:42: error: ‘ibv_exp_flow_spec_eth’ was not declared in this scope
       sizeof(ibv_exp_flow_attr) + sizeof(ibv_exp_flow_spec_eth) +
                                          ^~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:273:42: note: suggested alternative: ‘ibv_flow_spec_eth’
       sizeof(ibv_exp_flow_attr) + sizeof(ibv_exp_flow_spec_eth) +
                                          ^~~~~~~~~~~~~~~~~~~~~
                                          ibv_flow_spec_eth
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:274:14: error: ‘ibv_exp_flow_spec_ipv4_ext’ was not declared in this scope
       sizeof(ibv_exp_flow_spec_ipv4_ext) + sizeof(ibv_exp_flow_spec_tcp_udp);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:274:14: note: suggested alternative: ‘ibv_flow_spec_ipv4_ext’
       sizeof(ibv_exp_flow_spec_ipv4_ext) + sizeof(ibv_exp_flow_spec_tcp_udp);
              ^~~~~~~~~~~~~~~~~~~~~~~~~~
              ibv_flow_spec_ipv4_ext
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:274:51: error: ‘ibv_exp_flow_spec_tcp_udp’ was not declared in this scope
       sizeof(ibv_exp_flow_spec_ipv4_ext) + sizeof(ibv_exp_flow_spec_tcp_udp);
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:274:51: note: suggested alternative: ‘ibv_flow_spec_tcp_udp’
       sizeof(ibv_exp_flow_spec_ipv4_ext) + sizeof(ibv_exp_flow_spec_tcp_udp);
                                                   ^~~~~~~~~~~~~~~~~~~~~~~~~
                                                   ibv_flow_spec_tcp_udp
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:276:28: error: size of array ‘flow_rule’ is not an integral constant-expression
   uint8_t flow_rule[rule_sz];
                            ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:280:63: error: expected ‘>’ before ‘*’ token
   auto *flow_attr = reinterpret_cast<struct ibv_exp_flow_attr *>(flow_rule);
                                                               ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:280:63: error: expected ‘(’ before ‘*’ token
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:280:64: error: expected primary-expression before ‘>’ token
   auto *flow_attr = reinterpret_cast<struct ibv_exp_flow_attr *>(flow_rule);
                                                                ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:280:76: error: expected ‘)’ before ‘;’ token
   auto *flow_attr = reinterpret_cast<struct ibv_exp_flow_attr *>(flow_rule);
                                                                            ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:281:21: error: ‘IBV_EXP_FLOW_ATTR_NORMAL’ was not declared in this scope
   flow_attr->type = IBV_EXP_FLOW_ATTR_NORMAL;
                     ^~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:281:21: note: suggested alternative: ‘IBV_FLOW_ATTR_NORMAL’
   flow_attr->type = IBV_EXP_FLOW_ATTR_NORMAL;
                     ^~~~~~~~~~~~~~~~~~~~~~~~
                     IBV_FLOW_ATTR_NORMAL
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:291:66: error: expected ‘>’ before ‘*’ token
   auto *eth_spec = reinterpret_cast<struct ibv_exp_flow_spec_eth *>(buf);
                                                                  ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:291:66: error: expected ‘(’ before ‘*’ token
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:291:67: error: expected primary-expression before ‘>’ token
   auto *eth_spec = reinterpret_cast<struct ibv_exp_flow_spec_eth *>(buf);
                                                                   ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:291:73: error: expected ‘)’ before ‘;’ token
   auto *eth_spec = reinterpret_cast<struct ibv_exp_flow_spec_eth *>(buf);
                                                                         ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:292:20: error: ‘IBV_EXP_FLOW_SPEC_ETH’ was not declared in this scope
   eth_spec->type = IBV_EXP_FLOW_SPEC_ETH;
                    ^~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:292:20: note: suggested alternative: ‘IBV_FLOW_SPEC_ETH’
   eth_spec->type = IBV_EXP_FLOW_SPEC_ETH;
                    ^~~~~~~~~~~~~~~~~~~~~
                    IBV_FLOW_SPEC_ETH
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:299:72: error: expected ‘>’ before ‘*’ token
   auto *spec_ipv4 = reinterpret_cast<struct ibv_exp_flow_spec_ipv4_ext *>(buf);
                                                                        ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:299:72: error: expected ‘(’ before ‘*’ token
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:299:73: error: expected primary-expression before ‘>’ token
   auto *spec_ipv4 = reinterpret_cast<struct ibv_exp_flow_spec_ipv4_ext *>(buf);
                                                                         ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:299:79: error: expected ‘)’ before ‘;’ token
   auto *spec_ipv4 = reinterpret_cast<struct ibv_exp_flow_spec_ipv4_ext *>(buf);
                                                                               ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:300:21: error: ‘IBV_EXP_FLOW_SPEC_IPV4_EXT’ was not declared in this scope
   spec_ipv4->type = IBV_EXP_FLOW_SPEC_IPV4_EXT;
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:300:21: note: suggested alternative: ‘IBV_FLOW_SPEC_IPV4_EXT’
   spec_ipv4->type = IBV_EXP_FLOW_SPEC_IPV4_EXT;
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~
                     IBV_FLOW_SPEC_IPV4_EXT
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:305:70: error: expected ‘>’ before ‘*’ token
   auto *udp_spec = reinterpret_cast<struct ibv_exp_flow_spec_tcp_udp *>(buf);
                                                                      ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:305:70: error: expected ‘(’ before ‘*’ token
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:305:71: error: expected primary-expression before ‘>’ token
   auto *udp_spec = reinterpret_cast<struct ibv_exp_flow_spec_tcp_udp *>(buf);
                                                                       ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:305:77: error: expected ‘)’ before ‘;’ token
   auto *udp_spec = reinterpret_cast<struct ibv_exp_flow_spec_tcp_udp *>(buf);
                                                                             ^
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:306:20: error: ‘IBV_EXP_FLOW_SPEC_UDP’ was not declared in this scope
   udp_spec->type = IBV_EXP_FLOW_SPEC_UDP;
                    ^~~~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:306:20: note: suggested alternative: ‘IBV_FLOW_SPEC_UDP’
   udp_spec->type = IBV_EXP_FLOW_SPEC_UDP;
                    ^~~~~~~~~~~~~~~~~~~~~
                    IBV_FLOW_SPEC_UDP
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:311:15: error: ‘ibv_exp_create_flow’ was not declared in this scope
   recv_flow = ibv_exp_create_flow(qp_for_flow, flow_attr);
               ^~~~~~~~~~~~~~~~~~~
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:311:15: note: suggested alternative: ‘ibv_create_flow’
   recv_flow = ibv_exp_create_flow(qp_for_flow, flow_attr);
               ^~~~~~~~~~~~~~~~~~~
               ibv_create_flow
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc: In member function ‘void erpc::RawTransport::init_recvs(uint8_t**)’:
/home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:397:16: error: invalid use of incomplete type ‘struct erpc::ibv_exp_wq_family’
       wq_family->recv_burst(wq, &mp_recv_sge[i], 1);
                ^~
In file included from /home/hjh/eRPC/src/transport_impl/raw/raw_transport.cc:6:0:
/home/hjh/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]

Is there any version related problem in OFED or something else?

Look forward for you comments. Thanks.

anujkaliaiitd commented 3 years ago

Thanks for your interest. eRPC's "raw" transport doesn't work with current versions of verbs drivers (rdma-core or Mellanox OFED). Please use an older version of eRPC (https://github.com/erpc-io/eRPC/releases/tag/v1.0), which works with Mellanox OFED 4.2--4.4.