diff options
author | Artem Glazychev <artem.glazychev@xored.com> | 2023-11-02 19:47:23 +0700 |
---|---|---|
committer | Damjan Marion <dmarion@0xa5.net> | 2023-11-07 14:03:01 +0000 |
commit | 29d07dbef986dd5ebe180b6bfcac9089946e95df (patch) | |
tree | ffc547aff58196d8cd16e3e425bf10dc07f6bbfa | |
parent | dab1dfeea9fec04a9a90a82dc5d770fbff344540 (diff) |
af_packet: remove UNIX_FILE_EVENT_EDGE_TRIGGERED flag
af_packet does not process data until the interface is UP. If after interface creation, but before it is UP, the host interfaces are flooded, then blocking case may occur - VPP interface will never be able to process the data.
If the EDGE_TRIGGERED flag is set, the event will not arrive, because nothing new is happening anymore (probably because the queue is already full).
Therefore, we need to use LEVEL_TRIGGERED (default value), which indicates that there is still unprocessed data (accumulated after interface creation, but before it was UP).
Type: fix
Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: Ied459fd194149d09f226bcb0a5907b3e327b148a
-rw-r--r-- | src/plugins/af_packet/af_packet.c | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/plugins/af_packet/af_packet.c b/src/plugins/af_packet/af_packet.c index f505fac9e2c..51aa11c9b1c 100644 --- a/src/plugins/af_packet/af_packet.c +++ b/src/plugins/af_packet/af_packet.c @@ -169,7 +169,6 @@ af_packet_set_rx_queues (vlib_main_t *vm, af_packet_if_t *apif) template.error_function = af_packet_fd_error; template.file_descriptor = rx_queue->fd; template.private_data = rx_queue->queue_index; - template.flags = UNIX_FILE_EVENT_EDGE_TRIGGERED; template.description = format (0, "%U queue %u", format_af_packet_device_name, apif->dev_instance, rx_queue->queue_id); |