@@ -163,6 +163,7 @@ async def configure_ports_with_etcd(config: Config, etcd_client):
163163 logger .info (f"Allocated ZMQ KV events port: { kv_port } (worker_id={ worker_id } )" )
164164
165165 # Allocate side channel ports
166+ # https://github.com/vllm-project/vllm/blob/releases/v0.10.0/vllm/distributed/kv_transfer/kv_connector/v1/nixl_connector.py#L372
166167 # NIXL calculates ports as: base_port + (dp_rank * tp_size) + tp_rank
167168 # For dp_rank, we need to reserve tp_size consecutive ports
168169 tp_size = config .engine_args .tensor_parallel_size or 1
@@ -180,17 +181,16 @@ async def configure_ports_with_etcd(config: Config, etcd_client):
180181 first_port_for_dp_rank = allocated_ports [0 ]
181182
182183 # Calculate the base port that NIXL expects
183- # first_port_for_dp_rank = base_port + (dp_rank * tp_size)
184- # Therefore: base_port = first_port_for_dp_rank - (dp_rank * tp_size)
184+ # base_port = first_port_for_dp_rank - (dp_rank * tp_size)
185185 nixl_offset = dp_rank * tp_size
186186 base_side_channel_port = first_port_for_dp_rank - nixl_offset
187187
188- # Validate that the base port is still valid
189188 if base_side_channel_port < 0 :
190189 raise ValueError (
191190 f"NIXL base port calculation resulted in negative port: "
192191 f"first_allocated_port={ first_port_for_dp_rank } , offset={ nixl_offset } , "
193- f"base_port={ base_side_channel_port } . Consider using a higher port range."
192+ f"base_port={ base_side_channel_port } . Current range: { config .port_range .min } -{ config .port_range .max } . "
193+ f"Consider using a higher port range."
194194 )
195195
196196 config .side_channel_port = base_side_channel_port
0 commit comments