diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2023-09-08 11:49:52 +1000 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2023-09-08 09:16:19 +0200 |
commit | b3f2210b05bc3c5057a6f2a197500df92eb7d71f (patch) | |
tree | cab65316df89b88d3e9751b8bcdef4852260dde6 /netlink.c | |
parent | f984003fdf2cc2dbd0ac55a47d9a4a25776fc2d0 (diff) | |
download | passt-b3f2210b05bc3c5057a6f2a197500df92eb7d71f.tar passt-b3f2210b05bc3c5057a6f2a197500df92eb7d71f.tar.gz passt-b3f2210b05bc3c5057a6f2a197500df92eb7d71f.tar.bz2 passt-b3f2210b05bc3c5057a6f2a197500df92eb7d71f.tar.lz passt-b3f2210b05bc3c5057a6f2a197500df92eb7d71f.tar.xz passt-b3f2210b05bc3c5057a6f2a197500df92eb7d71f.tar.zst passt-b3f2210b05bc3c5057a6f2a197500df92eb7d71f.zip |
tcp: Consolidate paths where we initiate reset on tap interface
There are a number of conditions where we will issue a TCP RST in response
to something unexpected we received from the tap interface. These occur in
both tcp_data_from_tap() and tcp_tap_handler(). In tcp_tap_handler() use
a 'goto out of line' technique to consolidate all these paths into one
place. For the tcp_data_from_tap() cases use a negative return code and
direct that to the same path in tcp_tap_handler(), its caller.
In this case we want to discard all remaining packets in the batch we have
received: even if they're otherwise good, they'll be invalidated when the
guest receives the RST we're sending. This is subtly different from the
case where we *receive* an RST, where we could in theory get a new SYN
immediately afterwards. Clarify that with a common on the now common
reset path.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'netlink.c')
0 files changed, 0 insertions, 0 deletions