diff options
author | Jan Scheurich <jan.scheurich@ericsson.com> | 2022-04-04 00:26:17 +0200 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2022-04-27 00:32:38 +0200 |
commit | 0e0eef533fe725e496604174914e48da3747e8b5 (patch) | |
tree | 2953aa13974d2d2f8d81c7e21a046629c36a0dad /AUTHORS.rst | |
parent | 4ea1bb63914198ad08ed29cc64d5d73e33a9d739 (diff) | |
download | openvswitch-0e0eef533fe725e496604174914e48da3747e8b5.tar.gz |
ofproto-xlate: Fix crash when forwarding packet between legacy_l3 tunnels.
A packet received from a tunnel port with legacy_l3 packet-type (e.g.
lisp, L3 gre, gtpu) is conceptually wrapped in a dummy Ethernet header
for processing in an OF pipeline that is not packet-type-aware. Before
transmission of the packet to another legacy_l3 tunnel port, the dummy
Ethernet header is stripped again.
In ofproto-xlate, wrapping in the dummy Ethernet header is done by
simply changing the packet_type to PT_ETH. The generation of the
push_eth datapath action is deferred until the packet's flow changes
need to be committed, for example at output to a normal port. The
deferred Ethernet encapsulation is marked in the pending_encap flag.
This patch fixes a bug in the translation of the output action to a
legacy_l3 tunnel port, where the packet_type of the flow is reverted
from PT_ETH to PT_IPV4 or PT_IPV6 (depending on the dl_type) to remove
its Ethernet header without clearing the pending_encap flag if it was
set. At the subsequent commit of the flow changes, the unexpected
combination of pending_encap == true with an PT_IPV4 or PT_IPV6
packet_type hit the OVS_NOT_REACHED() abortion clause.
The pending_encap is now cleared in this situation.
Reported-by: Dincer Beken <dbeken@blackned.de>
Signed-off-by: Jan Scheurich <jan.scheurich@ericsson.com>
Co-authored-by: Dincer Beken <dbeken@blackned.de>
Signed-off-by: Dincer Beken <dbeken@blackned.de>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'AUTHORS.rst')
0 files changed, 0 insertions, 0 deletions