[ovs-git] [openvswitch/ovs] 01bc91: ofproto-dpif-xlate: Fix check_pkt_larger incomplet...

numansiddique noreply at github.com
Thu Nov 18 00:04:19 UTC 2021


  Branch: refs/heads/branch-2.15
  Home:   https://github.com/openvswitch/ovs
  Commit: 01bc910e57506e6f9e17c4ff8459230113895e38
      https://github.com/openvswitch/ovs/commit/01bc910e57506e6f9e17c4ff8459230113895e38
  Author: Numan Siddique <numans at ovn.org>
  Date:   2021-11-17 (Wed, 17 Nov 2021)

  Changed paths:
    M ofproto/ofproto-dpif-xlate.c
    M tests/ofproto-dpif.at

  Log Message:
  -----------
  ofproto-dpif-xlate: Fix check_pkt_larger incomplete translation.

xlate_check_pkt_larger() sets ctx->exit to 'true' at the end
causing the translation to stop.  This results in incomplete
datapath rules.

For example, for the below OF rules configured on a bridge,

  table=0,in_port=1 actions=load:0x1->NXM_NX_REG1[[]],resubmit(,1),
                            load:0x2->NXM_NX_REG1[[]],resubmit(,1),
                            load:0x3->NXM_NX_REG1[[]],resubmit(,1)
  table=1,in_port=1,reg1=0x1 actions=check_pkt_larger(200)->NXM_NX_REG0[[0]],
                                     resubmit(,4)
  table=1,in_port=1,reg1=0x2 actions=output:2
  table=1,in_port=1,reg1=0x3 actions=output:4
  table=4,in_port=1 actions=output:3

The datapath flow should be:

  check_pkt_len(size=200,gt(3),le(3)),2,4

But right now it is:

  check_pkt_len(size=200,gt(3),le(3))

Actions after the first resubmit(,1) in the first flow in table 0
are never applied.  This patch fixes this issue.

Fixes: 5b34f8fc3b38 ("Add a new OVS action check_pkt_larger")
Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=2018365
Reported-by: Ihar Hrachyshka <ihrachys at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>
Acked-by: Aaron Conole <aconole at redhat.com>
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>




More information about the git mailing list