Skip to content

Commit 1fe257f

Browse files
authored
FEAT: implement RDMA connection (#562)
1 parent 53d2e30 commit 1fe257f

37 files changed

Lines changed: 1274 additions & 102 deletions

configs/fat-tree/network.yml

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,16 @@ presets:
3232
type: tcp
3333
preset-name: default-flow
3434

35-
flow-2:
36-
type: tcp
37-
preset-name: default-flow
35+
# flow-2:
36+
# type: tcp
37+
# preset-name: default-flow
3838

39-
flow-3:
40-
type: tcp
41-
preset-name: default-flow
39+
# flow-3:
40+
# type: tcp
41+
# preset-name: default-flow
4242

4343
connections:
44-
connection-pod1_host1--pod2_host1:
45-
preset-name: default-connection
46-
sender_id: pod-1_edge-1_host-1
47-
receiver_id: pod-2_edge-1_host-1
48-
49-
connection-pod1_host1--pod2_host2:
50-
preset-name: default-connection
51-
sender_id: pod-1_edge-1_host-1
52-
receiver_id: pod-2_edge-1_host-2
53-
54-
connection-pod1_host1--pod2_host3:
55-
preset-name: default-connection
56-
sender_id: pod-1_edge-1_host-1
57-
receiver_id: pod-2_edge-2_host-1
58-
59-
connection-pod1_host1--pod2_host4:
44+
connection-pod1_edge-1_host1--edge-2_host1:
6045
preset-name: default-connection
6146
sender_id: pod-1_edge-1_host-1
62-
receiver_id: pod-2_edge-2_host-2
47+
receiver_id: pod-1_edge-2_host-1

configs/fat-tree/topology.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ switches:
2525
min: 0.2
2626
max: 0.3
2727
probability: 0.7
28-
28+
2929
edge:
3030
ecn:
3131
min: 0.2
@@ -41,4 +41,5 @@ links:
4141
aggr-edge:
4242
preset-name: link
4343
edge-host:
44-
preset-name: link
44+
preset-name: link
45+
throughput: 20Gbps
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
type: custom
2+
topology_config_path: topology.yml
3+
4+
connections:
5+
host-1--host-6:
6+
type: rdma
7+
sender_id: host-1
8+
receiver_id: host-6
9+
ports:
10+
sender: 1
11+
receiver: 1
12+
dcqcn:
13+
initial_alpha_value: 200
14+
start_target_rate: 10Gbps
15+
rpg_time_reset: 10000ns
16+
rate_reduce_monitor_period: 500ns
17+
rpg_min_rate: 1Gbps
18+
rpg_ai_rate: 1Mbps
19+
rpg_hai_rate: 2Gbps
20+
host-2--host-6:
21+
type: rdma
22+
sender_id: host-2
23+
receiver_id: host-6
24+
ports:
25+
sender: 1
26+
receiver: 2
27+
dcqcn:
28+
start_target_rate: 10Gbps
29+
rpg_time_reset: 10000ns
30+
rate_reduce_monitor_period: 500ns
31+
rpg_min_rate: 1Gbps
32+
rpg_ai_rate: 1Mbps
33+
rpg_hai_rate: 2Gbps
34+
host-3--host-6:
35+
type: rdma
36+
sender_id: host-3
37+
receiver_id: host-6
38+
ports:
39+
sender: 1
40+
receiver: 3
41+
dcqcn:
42+
start_target_rate: 10Gbps
43+
rpg_time_reset: 10000ns
44+
rate_reduce_monitor_period: 500ns
45+
rpg_min_rate: 1Gbps
46+
rpg_ai_rate: 1Mbps
47+
rpg_hai_rate: 2Gbps
48+
host-4--host-6:
49+
type: rdma
50+
sender_id: host-4
51+
receiver_id: host-6
52+
ports:
53+
sender: 11
54+
receiver: 4
55+
dcqcn:
56+
start_target_rate: 10Gbps
57+
rpg_time_reset: 10000ns
58+
rate_reduce_monitor_period: 500ns
59+
rpg_min_rate: 1Gbps
60+
rpg_ai_rate: 1Mbps
61+
rpg_hai_rate: 2Gbps
62+
host-5--host-6:
63+
type: rdma
64+
sender_id: host-5
65+
receiver_id: host-6
66+
ports:
67+
sender: 1
68+
receiver: 5
69+
dcqcn:
70+
start_target_rate: 10Gbps
71+
rpg_time_reset: 10000ns
72+
rate_reduce_monitor_period: 500ns
73+
rpg_min_rate: 1Gbps
74+
rpg_ai_rate: 1Mbps
75+
rpg_hai_rate: 2Gbps
76+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
network_config_path: network.yml
2+
3+
scenario:
4+
- action: send_data
5+
id: huge-send_1--6
6+
when: 0ns
7+
size: 10MB
8+
connections: host-1--host-6
9+
- action: send_data
10+
id: small_2--6
11+
when: 100000ns
12+
size: 256KB
13+
connections: host-2--host-6
14+
- action: send_data
15+
id: small_3--6
16+
when: 100000ns
17+
size: 256KB
18+
connections: host-3--host-6
19+
- action: send_data
20+
id: small_4--6
21+
when: 100000ns
22+
size: 256KB
23+
connections: host-4--host-6
24+
# - action: send_data
25+
# id: small_5--6
26+
# when: 100000ns
27+
# size: 256KB
28+
# connections: host-5--host-6
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
type: leaf-spine
2+
3+
presets:
4+
link:
5+
latency: 1000ns
6+
throughput: 10Gbps
7+
ingress_buffer_size: 1MB
8+
egress_buffer_size: 1MB
9+
metrics_filters:
10+
queue_sizes: false
11+
12+
packet-spraying:
13+
# type: ecmp
14+
# type: random
15+
type: flowlet
16+
threshold: 9000ns
17+
18+
switches:
19+
spine:
20+
count: 4
21+
ecn:
22+
min: 0.3
23+
max: 0.5
24+
probability: 0.2
25+
leaf:
26+
ecn:
27+
min: 0.3
28+
max: 0.5
29+
probability: 0.2
30+
count: 6
31+
32+
hosts:
33+
34+
links:
35+
leaf-spine:
36+
preset-name: link
37+
host-leaf:
38+
preset-name: link
39+
throughput: 50Gbps
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
type: custom
2+
topology_config_path: topology.yml
3+
4+
connections:
5+
host-1--host-6:
6+
type: mplb-connection
7+
sender_id: host-1
8+
receiver_id: host-6
9+
mplb:
10+
type: single-cc
11+
packet-size: 1500B
12+
cc:
13+
type: tahoe
14+
path-chooser:
15+
type: round-robin
16+
flows:
17+
flow:
18+
type: tcp
19+
ports:
20+
sender: 1
21+
receiver: 1
22+
host-2--host-6:
23+
type: mplb-connection
24+
sender_id: host-2
25+
receiver_id: host-6
26+
mplb:
27+
type: single-cc
28+
packet-size: 1500B
29+
cc:
30+
type: tahoe
31+
path-chooser:
32+
type: round-robin
33+
flows:
34+
flow:
35+
type: tcp
36+
ports:
37+
sender: 1
38+
receiver: 2
39+
host-3--host-6:
40+
type: mplb-connection
41+
sender_id: host-3
42+
receiver_id: host-6
43+
mplb:
44+
type: single-cc
45+
packet-size: 1500B
46+
cc:
47+
type: tahoe
48+
path-chooser:
49+
type: round-robin
50+
flows:
51+
flow:
52+
type: tcp
53+
ports:
54+
sender: 1
55+
receiver: 3
56+
host-4--host-6:
57+
type: mplb-connection
58+
sender_id: host-4
59+
receiver_id: host-6
60+
mplb:
61+
type: single-cc
62+
packet-size: 1500B
63+
cc:
64+
type: tahoe
65+
path-chooser:
66+
type: round-robin
67+
flows:
68+
flow:
69+
type: tcp
70+
ports:
71+
sender: 1
72+
receiver: 4
73+
host-5--host-6:
74+
type: mplb-connection
75+
sender_id: host-5
76+
receiver_id: host-6
77+
mplb:
78+
type: single-cc
79+
packet-size: 1500B
80+
cc:
81+
type: tahoe
82+
path-chooser:
83+
type: round-robin
84+
flows:
85+
flow:
86+
type: tcp
87+
ports:
88+
sender: 1
89+
receiver: 5
90+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
network_config_path: network.yml
2+
3+
scenario:
4+
- action: send_data
5+
id: huge-send_1--10
6+
when: 0ns
7+
size: 10MB
8+
connections: host-1--host-6
9+
- action: send_data
10+
id: small_2--10
11+
when: 100000ns
12+
size: 256KB
13+
connections: host-2--host-6
14+
- action: send_data
15+
id: small_3--10
16+
when: 100000ns
17+
size: 256KB
18+
connections: host-3--host-6
19+
- action: send_data
20+
id: small_4--10
21+
when: 100000ns
22+
size: 256KB
23+
connections: host-4--host-6
24+
- action: send_data
25+
id: small_5--10
26+
when: 100000ns
27+
size: 256KB
28+
connections: host-5--host-6
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
type: leaf-spine
2+
3+
presets:
4+
link:
5+
latency: 1000ns
6+
throughput: 10Gbps
7+
ingress_buffer_size: 1MB
8+
egress_buffer_size: 1MB
9+
metrics_filters:
10+
queue_sizes: false
11+
12+
packet-spraying:
13+
# type: ecmp
14+
type: random
15+
# type: flowlet
16+
# threshold: 500ns
17+
18+
switches:
19+
spine:
20+
count: 4
21+
ecn:
22+
min: 0.3
23+
max: 0.5
24+
probability: 0.2
25+
leaf:
26+
ecn:
27+
min: 0.3
28+
max: 0.5
29+
probability: 0.2
30+
count: 6
31+
32+
hosts:
33+
34+
links:
35+
leaf-spine:
36+
preset-name: link
37+
host-leaf:
38+
preset-name: link
39+
throughput: 50Gbps

0 commit comments

Comments
 (0)