erpc-io / eRPC

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

does eRPC only support Mellanox? #82

Closed shenweihai1 closed 2 years ago

shenweihai1 commented 2 years ago

I'm not sure if eRPC can only support Mellanox NIC.

According to the README For non-Mellanox DPDK-compatible NICs, a system-wide installation from DPDK 19.11.5 LTS sources (i.e., sudo make install T=x86_64-native-linuxapp-gcc DESTDIR=/usr). Other DPDK versions are not supported., it seems to imply eRPC can support non-Mellanox NIC.

However, I can't run eRPC without Mellanox NIC. The implementation also implies eRPC can only support Mellanox NIC. https://github.com/erpc-io/eRPC/blob/d29c4f5c4ae070a9780eaa95aaf644deb0d2b3ba/src/transport_impl/dpdk/dpdk_transport.cc#L177

So, is anyone else there succeeding in running ePRC without Mellanox NIC?

anujkaliaiitd commented 2 years ago
shenweihai1 commented 2 years ago

Thank you so much, it does not work on my side.

My NIC is Broadcom Inc. and subsidiaries BCM57412 NetXtreme-E 10Gb RDMA Ethernet Controller with driver uio_pci_generic. I can run the example in the DPDK itself, but not eRPC which might result in series of errors.

Firstly, the eRPC always core dumps at function rte_eth_dev_configure which is caused by eth_conf, thus I modified eth_conf in dpdk_init.cc.

+  //if (!kIsWindows) {
+  //  eth_conf.rxmode.mq_mode = ETH_MQ_RX_RSS;
+  //  eth_conf.lpbk_mode = 1;
+  //  eth_conf.rx_adv_conf.rss_conf.rss_key =
+  //      const_cast<uint8_t *>(kDefaultRssKey);
+  //  eth_conf.rx_adv_conf.rss_conf.rss_key_len = 40;
+  //  eth_conf.rx_adv_conf.rss_conf.rss_hf = ETH_RSS_UDP;
+  //} else {
+  //  eth_conf.rxmode.mq_mode = ETH_MQ_RX_NONE;
+  //}
+
+  //eth_conf.txmode.mq_mode = ETH_MQ_TX_NONE;
+  //eth_conf.txmode.offloads = kOffloads;
+
+  eth_conf.rxmode.max_rx_pkt_len = RTE_ETHER_MAX_LEN;
   int ret = rte_eth_dev_configure(phy_port, kMaxQueuesPerPort,
                                   kMaxQueuesPerPort, &eth_conf);

Then, eRPC got an assert at function resolve_phy_port. After commenting it out, eRPC core dumps again.

I didn't spend more time on it since SoftRoCE works as you suggested in another issue.

I will buy a Mellanox NIC to install on the server later. Thank you again.