NetworkStreamReceiveSystem.cs has this code where it sets up the pipelines with simulated delay and packet loss:
if (simulatorParams.PacketDelayMs > 0 || simulatorParams.PacketDropInterval > 0)
{
unreliablePipeline = driver.CreatePipeline(
typeof(SimulatorPipelineStage),
typeof(SimulatorPipelineStageInSend));
reliablePipeline = driver.CreatePipeline(
typeof(SimulatorPipelineStage),
typeof(ReliableSequencedPipelineStage),
typeof(SimulatorPipelineStageInSend));
unreliableFragmentedPipeline = driver.CreatePipeline(
typeof(SimulatorPipelineStage),
typeof(FragmentationPipelineStage),
typeof(SimulatorPipelineStageInSend));
}
It looks to me like the SimulatorPipelineStage drops received packets after the ReliableSequencedPipelineStage in the reliable pipeline making this test a bit misleading. I’m thinking the reliable stage should be first? Or am I misunderstanding how the pipeline works?
And am I correct in just assuming stuff sent is the reliable pipeline is always eventually received as long as the connection doesn’t go and die?