aboutgitcodebugslistschat
path: root/tcp.c
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2024-03-08 17:53:22 +1100
committerStefano Brivio <sbrivio@redhat.com>2024-03-14 16:57:28 +0100
commit2d0e0084b60851f3d032d9b91454fcbebfb67061 (patch)
tree30438a9820b2810e1a245c3048de0cb083eade0d /tcp.c
parentf67238aa864d92e0c73af660c7f166f53ab688bc (diff)
downloadpasst-2d0e0084b60851f3d032d9b91454fcbebfb67061.tar
passt-2d0e0084b60851f3d032d9b91454fcbebfb67061.tar.gz
passt-2d0e0084b60851f3d032d9b91454fcbebfb67061.tar.bz2
passt-2d0e0084b60851f3d032d9b91454fcbebfb67061.tar.lz
passt-2d0e0084b60851f3d032d9b91454fcbebfb67061.tar.xz
passt-2d0e0084b60851f3d032d9b91454fcbebfb67061.tar.zst
passt-2d0e0084b60851f3d032d9b91454fcbebfb67061.zip
tap: Extend tap_send_frames() to allow multi-buffer frames
tap_send_frames() takes a vector of buffers and requires exactly one frame per buffer. We have future plans where we want to have multiple buffers per frame in some circumstances, so extend tap_send_frames() to take the number of buffers per frame as a parameter. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: Improve comment to rembufs calculation] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'tcp.c')
-rw-r--r--tcp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/tcp.c b/tcp.c
index d5eedf4..9d90108 100644
--- a/tcp.c
+++ b/tcp.c
@@ -1289,10 +1289,10 @@ static void tcp_rst_do(struct ctx *c, struct tcp_tap_conn *conn);
*/
static void tcp_l2_flags_buf_flush(const struct ctx *c)
{
- tap_send_frames(c, tcp6_l2_flags_iov, tcp6_l2_flags_buf_used);
+ tap_send_frames(c, tcp6_l2_flags_iov, 1, tcp6_l2_flags_buf_used);
tcp6_l2_flags_buf_used = 0;
- tap_send_frames(c, tcp4_l2_flags_iov, tcp4_l2_flags_buf_used);
+ tap_send_frames(c, tcp4_l2_flags_iov, 1, tcp4_l2_flags_buf_used);
tcp4_l2_flags_buf_used = 0;
}
@@ -1305,12 +1305,12 @@ static void tcp_l2_data_buf_flush(const struct ctx *c)
unsigned i;
size_t m;
- m = tap_send_frames(c, tcp6_l2_iov, tcp6_l2_buf_used);
+ m = tap_send_frames(c, tcp6_l2_iov, 1, tcp6_l2_buf_used);
for (i = 0; i < m; i++)
*tcp6_l2_buf_seq_update[i].seq += tcp6_l2_buf_seq_update[i].len;
tcp6_l2_buf_used = 0;
- m = tap_send_frames(c, tcp4_l2_iov, tcp4_l2_buf_used);
+ m = tap_send_frames(c, tcp4_l2_iov, 1, tcp4_l2_buf_used);
for (i = 0; i < m; i++)
*tcp4_l2_buf_seq_update[i].seq += tcp4_l2_buf_seq_update[i].len;
tcp4_l2_buf_used = 0;