On 4/4/22 00:26, [email protected] wrote: > From: Jan Scheurich <[email protected]> > > 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 <[email protected]> > Signed-off-By: Jan Scheurich <[email protected]> > Signed-off-By: Dincer Beken <[email protected]> > > v1->v2: > A specific test has been added to tunnel-push-pop.at to verify the > correct behavior. > --- > ofproto/ofproto-dpif-xlate.c | 4 ++++ > tests/tunnel-push-pop.at | 22 ++++++++++++++++++++++ > 2 files changed, 26 insertions(+)
I had to slightly adjust the test case as it was failing frequently in CI on a later datapath flow check due to recirc_id mismatch. So, I filtered it out. With that, applied and backported down to 2.13. Thanks! Best regards, Ilya Maximets. _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
