Enable dual udp ports feature in Soft RoCE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Since SoftRoCE is routable, that is, the packets will cross the LAN. It
is very possible that the udp port 4791 is blocked. So another udp port
is necessary to act as a backup. This will enhance the robustness of
SoftRoCE.

After this feature is enabled, when the rxe is intialized, there are 2
udp ports created. The udp port 4791 is used firstly.

Host1                          Host2
+---------------+              +------------+
|  udp4791 eth0 |<------------>|eth0 0xc000 |
|  oxc000  eth0 |<------------>|eth0 udp4791|
|  udp4891 eth0 |              |eth0 udp4891|
+---------------+              +------------+

When some errors occur, for example, the port 4791 is blocked by iptable rule:

iptables -I OUTPUT -p udp  --dport 4791 -j DROP

The port 4891 is used as below.

Host1                          Host2
+---------------+              +------------+
|  udp4891 eth0 |<------------>|eth0 0xd000 |
|  oxd000  eth0 |<------------>|eth0 udp4891|
|  udp4791 eth0 |              |eth0 udp4791|
+---------------+              +------------+

The followings are the steps to simulate the feature introduced into Soft RoCE.

The steps to make tests:
1. Enable the following kernel options:

CONFIG_RDMA_RXE_DUAL_PORT <---this feature, default is disable
CONFIG_DEBUG_KMEMLEAK <---Check the kernel memory leak
CONFIG_DEBUG_OBJECTS  <---Check kernel memory double free

2. Follow the above network, run the following commands:
Server:
rping -s -a 192.168.200.131 -v -C 100000
Client:
rping -c -a 192.168.200.131 -v -C 100000

3. run the following iptable rule:
iptables -I OUTPUT -p udp  --dport 4791 -j DROP

4. tcpdump -ni ethXX udp
We will find the udp dest port is changed to 4891 from 4791.

Now this feature is dependent on the commit
9fd4350 ("IB/rxe: avoid double kfree_skb").
Without this commit, the host will crash because of double free skb.

Zhu Yanjun
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux