af_packet: set next0 for AF_PACKET_IF_MODE_ETHERNET mode 19/40119/2
authorArtem Glazychev <artem.glazychev@xored.com>
Tue, 19 Dec 2023 07:31:48 +0000 (14:31 +0700)
committerDamjan Marion <dmarion@0xa5.net>
Wed, 17 Jan 2024 14:13:47 +0000 (14:13 +0000)
commit8beddaf5b435a872b844052b506366b7a474004c
treec0242bf7d38c16a24eed7248f771568580463335
parentde04e023cbd469b26e80602f8f91934b7e984fb9
af_packet: set next0 for AF_PACKET_IF_MODE_ETHERNET mode

Normally af_packet sets next0 = next_index on each cycle. It works for the most cases.
But if vlib_validate_buffer_enqueue_x1() changes the next_index (from NEXT_ETHERNET to NEXT_DROP for example)
then the following next0 will have the wrong value, and the correct packet will be dropped.

AF_PACKET_IF_MODE_IP handles this case, but AF_PACKET_IF_MODE_ETHERNET doesn't.

Type: fix

Signed-off-by: Artem Glazychev <artem.glazychev@xored.com>
Change-Id: Ic742043e8b10a2abe56b314bb584277151a9c5eb
src/plugins/af_packet/node.c