Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a basic requirement for most switching/routing algorithms.
Example - most trivial possible "hub" - two ports wired to a replicator and two Linux instances off them:
UnixSocketPort(name='u0', path="/var/tmp/uml-test-0")
UnixSocketPort(name='u1', path="/var/tmp/uml-test-1")
PortInc(port="u0") -> repl::Replicate(gates=[0,1])
PortInc(port="u1") -> repl
repl:0 -> PortOut(port="u0")
repl:1 -> PortOut(port="u1")
This behaves pretty badly with BESS as is because the packets sent out of port 0 are also received on port 0 and vice versa.
Adding this change and enabling it results in the correct expected behaviour and correct high throughput.
UnixSocketPort(name='u0', path="/var/tmp/uml-test-0")
UnixSocketPort(name='u1', path="/var/tmp/uml-test-1")
PortInc(port="u0") -> repl::Replicate(gates=[0,1])
PortInc(port="u1") -> repl
repl:0 -> PortOut(port="u0", rpfcheck=1)
repl:1 -> PortOut(port="u1", rpfcheck=1)
I have tried to preserve packet batching to the extent possible for packets being sent. As a result of the "drops" the batches may now be a bit smaller, but it will still batch.
A.