Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
When using devmap to redirect packets between interfaces, xdp_do_flush() is usually a must to flush any batched packets. Unfortunately this is missed in current tuntap implementation. Unlike most hardware driver which did XDP inside NAPI loop and call xdp_do_flush() at then end of each round of poll. TAP did it in the context of process e.g tun_get_user(). So fix this by count the pending redirected packets and flush when it exceeds NAPI_POLL_WEIGHT or MSG_MORE was cleared by sendmsg() caller. With this fix, xdp_redirect_map works again between two TAPs. Fixes: 761876c ("tap: XDP support") Signed-off-by: Jason Wang <[email protected]> Signed-off-by: David S. Miller <[email protected]>
- Loading branch information