On Thu, May 11, 2023 at 11:22:09AM +0800, Vladimir Nikishkin wrote:
If a packet needs to be encapsulated towards a local destination IP, the packet will be injected into the Rx path as if it was received by the target VXLAN device without undergoing encapsulation. If such a device does not exist, the packet will be dropped.
There are scenarios where we do not want to drop such packets and instead want to let them be encapsulated and locally received by a user space program that post-processes these VXLAN packets.
To that end, add a new VXLAN device attribute that controls whether such packets are dropped or not. When set ("localbypass") packets are dropped and when unset ("nolocalbypass") the packets are encapsulated and locally delivered to the listening user space application. Default to "localbypass" to maintain existing behavior.
Signed-off-by: Vladimir Nikishkin vladimir@nikishkin.pw
The code looks fine to me, so:
Reviewed-by: Ido Schimmel idosch@nvidia.com
But the commit message needs to be aligned to the code changes made in this version (which need to be noted the under the '---' [1]). I suggest:
" If a packet needs to be encapsulated towards a local destination IP, the packet will undergo a "local bypass" and be injected into the Rx path as if it was received by the target VXLAN device without undergoing encapsulation. If such a device does not exist, the packet will be dropped.
There are scenarios where we do not want to perform such a bypass, but instead want the packet to be encapsulated and locally received by a user space program for post-processing.
To that end, add a new VXLAN device attribute that controls whether a "local bypass" is performed or not. Default to performing a bypass to maintain existing behavior. "
[1] https://www.kernel.org/doc/html/latest/process/submitting-patches.html#the-c...