Synthetic portnet generation with controllable complexity for testing and benchmarking