diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2023-11-07 12:40:16 +1100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2023-11-07 09:53:45 +0100 |
commit | f6d8dc235553761a2541f7a6b782488160db03a7 (patch) | |
tree | bd91d104ba900c99cc9dbabdc277e95bf628d845 /udp.c | |
parent | 732e24937618f5848e182dc8a38eb170cf079394 (diff) | |
download | passt-f6d8dc235553761a2541f7a6b782488160db03a7.tar passt-f6d8dc235553761a2541f7a6b782488160db03a7.tar.gz passt-f6d8dc235553761a2541f7a6b782488160db03a7.tar.bz2 passt-f6d8dc235553761a2541f7a6b782488160db03a7.tar.lz passt-f6d8dc235553761a2541f7a6b782488160db03a7.tar.xz passt-f6d8dc235553761a2541f7a6b782488160db03a7.tar.zst passt-f6d8dc235553761a2541f7a6b782488160db03a7.zip |
pif: Pass originating pif to tap handler functions
For now, packets passed to the various *_tap_handler() functions always
come from the single "tap" interface. We want to allow the possibility to
broaden that in future. As preparation for that, have the code in tap.c
pass the pif id of the originating interface to each of those handler
functions.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
Diffstat (limited to 'udp.c')
-rw-r--r-- | udp.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -787,6 +787,7 @@ void udp_sock_handler(const struct ctx *c, union epoll_ref ref, uint32_t events, /** * udp_tap_handler() - Handle packets from tap * @c: Execution context + * @pif: pif on which the packet is arriving * @af: Address family, AF_INET or AF_INET6 * @saddr: Source address * @daddr: Destination address @@ -798,7 +799,8 @@ void udp_sock_handler(const struct ctx *c, union epoll_ref ref, uint32_t events, * * #syscalls sendmmsg */ -int udp_tap_handler(struct ctx *c, int af, const void *saddr, const void *daddr, +int udp_tap_handler(struct ctx *c, uint8_t pif, + int af, const void *saddr, const void *daddr, const struct pool *p, int idx, const struct timespec *now) { struct mmsghdr mm[UIO_MAXIOV]; @@ -813,6 +815,7 @@ int udp_tap_handler(struct ctx *c, int af, const void *saddr, const void *daddr, (void)c; (void)saddr; + (void)pif; uh = packet_get(p, idx, 0, sizeof(*uh), NULL); if (!uh) |