1

I need to access a PCIe card over LAN. I am wondering if there is an existing virtualization solution for this or if I need to create my own solution.

The scenario is as follows: I need to use an PCIe card on a server A, but that PCIe card is physically in server B. Server A and B are connected over LAN. I need to be able to do this for security reasons. Both servers run Linux.

One possible solution I have found is socat. With this tool I could listen on a port on server A, transfer all incoming packets to a socat listener on server B, which then sends the data to the PCIe device. However, this is all theoretical and I have no idea if this will work.

Another possibility I thought of was creating a virtual PCIe device on server A, which sends data over LAN to server B. But again, I do not know if this is feasible.

Can you help me come up with a good solution to this problem?

2 Answers 2

0

If performance is not an issue, you can write a pcie driver on host A that forwards pcie requests over to networking stack, which sends it over LAN to host B, where another driver takes this packet and gives it to pcie card.... If it is performance intensive application and pcie card supports multiple functions then I would suggest you use express fabric switch. This will help you assign different card functions to different host machines. So both hosts shall be able to access the card simultaneously over pcie. You shall have near native pcie performance from a shared pcie card. And that too with native drivers.

0

I saw a time ago some very simple way to do this:

1

https://www.missinglinkelectronics.com/images/files/papers/EW2016-Session18-MLE-PCIeOverIP_r09.pdf

1
  • sorry for comment& the question is very old :) but still intersting
    – Ivan
    Apr 21, 2021 at 23:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .