diff options
author | Laurent Vivier <lvivier@redhat.com> | 2024-11-22 17:43:34 +0100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2024-11-27 16:47:32 +0100 |
commit | 28997fcb29b560fc0dcfd91bad5eece3ded5eb72 (patch) | |
tree | 34aad38ecc628c37bb88413a3c809498c45ae9cb /packet.h | |
parent | b2e62f7e85ac77a91daf5d77b7f32198ef0e59c2 (diff) | |
download | passt-28997fcb29b560fc0dcfd91bad5eece3ded5eb72.tar passt-28997fcb29b560fc0dcfd91bad5eece3ded5eb72.tar.gz passt-28997fcb29b560fc0dcfd91bad5eece3ded5eb72.tar.bz2 passt-28997fcb29b560fc0dcfd91bad5eece3ded5eb72.tar.lz passt-28997fcb29b560fc0dcfd91bad5eece3ded5eb72.tar.xz passt-28997fcb29b560fc0dcfd91bad5eece3ded5eb72.tar.zst passt-28997fcb29b560fc0dcfd91bad5eece3ded5eb72.zip |
vhost-user: add vhost-user
add virtio and vhost-user functions to connect with QEMU.
$ ./passt --vhost-user
and
# qemu-system-x86_64 ... -m 4G \
-object memory-backend-memfd,id=memfd0,share=on,size=4G \
-numa node,memdev=memfd0 \
-chardev socket,id=chr0,path=/tmp/passt_1.socket \
-netdev vhost-user,id=netdev0,chardev=chr0 \
-device virtio-net,mac=9a:2b:2c:2d:2e:2f,netdev=netdev0 \
...
Signed-off-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
[sbrivio: as suggested by lvivier, include <netinet/if_ether.h>
before including <linux/if_ether.h> as C libraries such as musl
__UAPI_DEF_ETHHDR in <netinet/if_ether.h> if they already have
a definition of struct ethhdr]
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'packet.h')
-rw-r--r-- | packet.h | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -8,8 +8,10 @@ /** * struct pool - Generic pool of packets stored in a buffer - * @buf: Buffer storing packet descriptors - * @buf_size: Total size of buffer + * @buf: Buffer storing packet descriptors, + * a struct vu_dev_region array for passt vhost-user mode + * @buf_size: Total size of buffer, + * 0 for passt vhost-user mode * @size: Number of usable descriptors for the pool * @count: Number of used descriptors for the pool * @pkt: Descriptors: see macros below @@ -22,6 +24,8 @@ struct pool { struct iovec pkt[1]; }; +int vu_packet_check_range(void *buf, size_t offset, size_t len, + const char *start); void packet_add_do(struct pool *p, size_t len, const char *start, const char *func, int line); void *packet_get_do(const struct pool *p, const size_t idx, |