libbpf: add support for need_wakeup flag in AF_XDP part
This commit adds support for the new need_wakeup flag in AF_XDP. The xsk_socket__create function is updated to handle this and a new function is introduced called xsk_ring_prod__needs_wakeup(). This function can be used by the application to check if Rx and/or Tx processing needs to be explicitly woken up. Signed-off-by: Magnus Karlsson <magnus.karlsson@intel.com> Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
committed by
Daniel Borkmann
parent
5c129241e2
commit
a4500432c2
@ -224,6 +224,7 @@ int xsk_umem__create(struct xsk_umem **umem_ptr, void *umem_area, __u64 size,
|
||||
fill->size = umem->config.fill_size;
|
||||
fill->producer = map + off.fr.producer;
|
||||
fill->consumer = map + off.fr.consumer;
|
||||
fill->flags = map + off.fr.flags;
|
||||
fill->ring = map + off.fr.desc;
|
||||
fill->cached_cons = umem->config.fill_size;
|
||||
|
||||
@ -241,6 +242,7 @@ int xsk_umem__create(struct xsk_umem **umem_ptr, void *umem_area, __u64 size,
|
||||
comp->size = umem->config.comp_size;
|
||||
comp->producer = map + off.cr.producer;
|
||||
comp->consumer = map + off.cr.consumer;
|
||||
comp->flags = map + off.cr.flags;
|
||||
comp->ring = map + off.cr.desc;
|
||||
|
||||
*umem_ptr = umem;
|
||||
@ -564,6 +566,7 @@ int xsk_socket__create(struct xsk_socket **xsk_ptr, const char *ifname,
|
||||
rx->size = xsk->config.rx_size;
|
||||
rx->producer = rx_map + off.rx.producer;
|
||||
rx->consumer = rx_map + off.rx.consumer;
|
||||
rx->flags = rx_map + off.rx.flags;
|
||||
rx->ring = rx_map + off.rx.desc;
|
||||
}
|
||||
xsk->rx = rx;
|
||||
@ -583,6 +586,7 @@ int xsk_socket__create(struct xsk_socket **xsk_ptr, const char *ifname,
|
||||
tx->size = xsk->config.tx_size;
|
||||
tx->producer = tx_map + off.tx.producer;
|
||||
tx->consumer = tx_map + off.tx.consumer;
|
||||
tx->flags = tx_map + off.tx.flags;
|
||||
tx->ring = tx_map + off.tx.desc;
|
||||
tx->cached_cons = xsk->config.tx_size;
|
||||
}
|
||||
|
Reference in New Issue
Block a user