On Wed, Sep 09, 2026 at 10:47:25AM +0200, Laurent Vivier wrote:
Subject: s/tap_hdr file/tap_hdr structure/
On 9/4/26 23:28, aerosouund wrote:
From: Ammar Yasser
It was defined in tap.h, put it on its own so that future callers won't need to depend on all definitions in tap.h. Also turn it into a union of a vnet_len and virtio_net_mrg_rxbuf because for vhost acceleration the frames will have this virtio net header prepended to them.
Signed-off-by: Eugenio Pérez
If Eugenio is the author, you should set it as the author, otherwise you should remove his Signed-off-by
I don't think that's necessarily correct. If the patch has been changed substantially enough from the original, it makes sense to change the author. However, the S-o-b should remain if some fragments of the original remain, so as to still record the chain of hands through which it has passed for the DCO.
Signed-off-by: Ammar Yasser
--- tap.h | 9 +-------- tap_hdr.h | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 tap_hdr.h diff --git a/tap.h b/tap.h index b335933..1625975 100644 --- a/tap.h +++ b/tap.h @@ -10,6 +10,7 @@ #include
#include "passt.h" +#include "tap_hdr.h" /** L2_MAX_LEN_PASTA - Maximum frame length for pasta mode (with L2 header) * @@ -38,14 +39,6 @@ struct udphdr; -/** - * struct tap_hdr - tap backend specific headers - * @vnet_len: Frame length (for qemu socket transport) - */ -struct tap_hdr { - uint32_t vnet_len; -} __attribute__((packed)); - /** * tap_hdr_iov() - struct iovec for a tap header * @c: Execution context diff --git a/tap_hdr.h b/tap_hdr.h new file mode 100644 index 0000000..aa270b7 --- /dev/null +++ b/tap_hdr.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later + * Copyright (c) 2021 Red Hat GmbH + * Author: Stefano Brivio + */ + +#ifndef TAP_HDR_H +#define TAP_HDR_H + +#include +#include + +/** + * struct tap_hdr - tap backend specific headers + * @vnet_len: Frame length (for qemu socket transport) missing @hdr description
+ */ +struct tap_hdr { + union { + uint32_t vnet_len; + struct virtio_net_hdr_mrg_rxbuf hdr; + }; +};
This will break passt.
In tap.h, we have: static inline struct iovec tap_hdr_iov(const struct ctx *c, struct tap_hdr *thdr) { return (struct iovec){ .iov_base = thdr, .iov_len = c->mode == MODE_PASST ? sizeof(*thdr) : 0, }; }
before this patch sizeof(*thdr) is 4, now it's 12.
+ +#endif /* TAP_HDR_H */
-- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson