Commit 533b96e
Rudra Pratap SIngh
Add full-duplex mode to NTTTCP networking workload
Enable bidirectional network testing where both nodes run sender and receiver
simultaneously, producing separate TX/RX throughput metrics per direction.
Core changes:
- NTttcpExecutor: Add DuplexMode property, ExecuteFullDuplexWorkloadAsync with
parallel sender+receiver processes, CaptureDirectionalMetrics for per-direction
telemetry, role-aware port assignment (forward/reverse), direction-aware -m IP
mapping for correct sender→receiver targeting
- NetworkingWorkloadState: Add DuplexMode property for client-server state sync
- NetworkingWorkloadExecutor: Pass DuplexMode through orchestration instructions
Profile:
- PERF-NETWORK-NTTTCP-FULLDUPLEX.json: 6 TCP scenarios (T1/T32 x 4K/64K/256K)
with DuplexMode=Full, same dependencies as half-duplex profile
Tests (21 tests):
- NTttcpFullDuplexTests: IsFullDuplex property, ReversePort offset, command-line
flag/port/buffer verification for both platforms, execution tests for client
send+receive on Linux/Windows, results file separation, half-duplex backward
compatibility, NetworkingWorkloadState serialization with DuplexMode
Upstream fixes (pre-existing bugs in main):
- ProcessProxy.cs: Fix catch clause ordering (general catch before specific)
- CommandBase.cs: Fix NullReferenceException on isolationTargets.TargetPackages
Verified on real hardware: win-x64 (10.177.236.133) <-> win-arm64 (10.199.102.112)
TCP 4K T1: Send 3226 Mbps / Receive 1455 Mbps
TCP 64K T1: Send 6490 Mbps / Receive 6163 Mbps1 parent e250dde commit 533b96e
6 files changed
Lines changed: 1212 additions & 39 deletions
File tree
- src/VirtualClient
- VirtualClient.Actions.UnitTests/Network/NTttcp
- VirtualClient.Actions/Network/NetworkingWorkload
- NTttcp
- VirtualClient.Main/profiles
- website/docs/workloads/network-suite
0 commit comments