[ovs-git] [ovn-org/ovn] e1ee35: ovn-controller: Fix wrong conj_id match flows when...

numansiddique noreply at github.com
Wed Jan 27 11:43:17 UTC 2021


  Branch: refs/heads/branch-20.12
  Home:   https://github.com/ovn-org/ovn
  Commit: e1ee35f7ca56db479d035867c437399106ff69e8
      https://github.com/ovn-org/ovn/commit/e1ee35f7ca56db479d035867c437399106ff69e8
  Author: Numan Siddique <numans at ovn.org>
  Date:   2021-01-27 (Wed, 27 Jan 2021)

  Changed paths:
    M controller/lflow.c
    M include/ovn/expr.h
    M lib/expr.c
    M tests/ovn.at

  Log Message:
  -----------
  ovn-controller: Fix wrong conj_id match flows when caching is enabled.

When the below ACL is added -
ovn-nbctl acl-add ls1 to-lport 3
  '(ip4.src==10.0.0.1 || ip4.src==10.0.0.2) &&
   (ip4.dst == 10.0.0.3 || ip4.dst == 10.0.0.4)' allow

ovn-controller installs the below OF flows

table=45, priority=1003,ip,metadata=0x1,nw_dst=10.0.0.4 actions=conjunction(2,1/2)
table=45, priority=1003,ip,metadata=0x1,nw_dst=10.0.0.3 actions=conjunction(2,1/2)
table=45, priority=1003,ip,metadata=0x1,nw_src=10.0.0.2 actions=conjunction(2,2/2)
table=45, priority=1003,ip,metadata=0x1,nw_src=10.0.0.1 actions=conjunction(2,2/2)
table=45, priority=1003,conj_id=2,ip,metadata=0x1 actions=resubmit(,46)

When a full recompute is triggered, ovn-controller deletes the last
OF flow with the match conj_id=2 and adds the below OF flow

table=45, priority=1003,conj_id=3,ip,metadata=0x1 actions=resubmit(,46)

For subsequent recomputes, the conj_id keeps increasing by 1.

This disrupts the traffic which matches on conjuction action flows.

This patch fixes this issue.

Fixes: 1213bc8270("ovn-controller: Cache logical flow expr matches.")
Suggested-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Dumitru Ceara <dceara at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>

(cherry-picked from master commit c83294970c62f662015a7979b12250580bee3001)




More information about the git mailing list