Uploaded image for project: 'Fast Datapath Product'
  1. Fast Datapath Product
  2. FDP-438

Recirculation conflict with trace-packet-out

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • None
    • openvswitch3.2
    • None
    • False
    • Hide

      None

      Show
      None
    • False
    • rhel-sst-network-fastdatapath
    • ssg_networking

      Tracing this packet out

      2024-03-01T13:11:59.024Z|01345|vconn(ovn_pinctrl0)|DBG|unix:/var/run/openvswitch/br-int.mgmt: sent (Success): OFPT_PACKET_OUT (OF1.5) (xid=0x2418): in_port=CONTROLLER actions=set_field:0x64400001->reg0,set_field:0x64400003->reg1,set_field:0x4->reg9,set_field:0x9->reg10,set_field:0x2->reg11,set_field:0x3->reg13,set_field:0x1->reg14,set_field:0x2->reg15,set_field:0x4->metadata,set_field:0->pkt_mark,resubmit(CONTROLLER,37) data_len=1268
      udp,vlan_tci=0x0000,dl_src=0a:58:64:40:00:03,dl_dst=0a:58:64:40:00:01,nw_src=172.18.0.5,nw_dst=10.244.1.9,nw_tos=0,nw_ecn=0,nw_ttl=63,nw_frag=no,tp_src=48588,tp_dst=90 udp_csum:be5f
      

      gives me

      ❯ kubectl exec -ti -n ovn-kubernetes ovnkube-node-9bn6g -c ovnkube-controller -- ovs-appctl ofproto/trace-packet-out br-int --ct-next trk,new,dnat "in_port=controller,udp,vlan_tci=0x0000,dl_src=0a:58:64:40:00:03,dl_dst=0a:58:64:40:00:01,nw_src=172.18.0.5,nw_dst=10.244.1.9,nw_tos=0,nw_ecn=0,nw_ttl=63,nw_frag=no,udp_src=48588,udp_dst=90" "set_field:0x64400001->reg0,set_field:0x64400003->reg1,set_field:0x4->reg9,set_field:0x9->reg10,set_field:0x2->reg11,set_field:0x3->reg13,set_field:0x1->reg14,set_field:0x2->reg15,set_field:0x4->metadata,set_field:0->pkt_mark,resubmit(controller,37)"
      Flow: udp,in_port=CONTROLLER,vlan_tci=0x0000,dl_src=0a:58:64:40:00:03,dl_dst=0a:58:64:40:00:01,nw_src=172.18.0.5,nw_dst=10.244.1.9,nw_tos=0,nw_ecn=0,nw_ttl=63,nw_frag=no,tp_src=48588,tp_dst=90
      
      bridge("br-int")
      ----------------
          set_field:0x64400001->reg0
          set_field:0x64400003->reg1
          set_field:0x4->reg9
          set_field:0x9->reg10
          set_field:0x2->reg11
          set_field:0x3->reg13
          set_field:0x1->reg14
          set_field:0x2->reg15
          set_field:0x4->metadata
          set_field:0->pkt_mark
          resubmit(CONTROLLER,37)
      37. priority 0
          resubmit(,39)
      39. priority 0
          resubmit(,40)
      40. reg15=0x2,metadata=0x4, priority 100, cookie 0x54fda79f
          set_field:0x7->reg13
          set_field:0x2->reg11
          resubmit(,41)
      41. priority 0
          set_field:0->reg0
          set_field:0->reg1
          set_field:0->reg2
          set_field:0->reg3
          set_field:0->reg4
          set_field:0->reg5
          set_field:0->reg6
          set_field:0->reg7
          set_field:0->reg8
          set_field:0->reg9
          resubmit(,42)
      42. metadata=0x4, priority 0, cookie 0xf6be405e
          set_field:0/0x10->xreg4
          resubmit(,43)
      43. ip,metadata=0x4, priority 50, cookie 0x41d08e1f
          set_field:0x1/0x1->reg10
          ct(table=44,zone=NXM_NX_REG11[0..15],nat)
          nat
           -> A clone of the packet is forked to recirculate. The forked pipeline will be resumed at table 44.
           -> Sets the packet to an untracked state, and clears all the conntrack fields.
      
      Final flow: udp,reg10=0x9,reg11=0x2,reg13=0x7,reg14=0x1,reg15=0x2,metadata=0x4,in_port=CONTROLLER,vlan_tci=0x0000,dl_src=0a:58:64:40:00:03,dl_dst=0a:58:64:40:00:01,nw_src=172.18.0.5,nw_dst=10.244.1.9,nw_tos=0,nw_ecn=0,nw_ttl=63,nw_frag=no,tp_src=48588,tp_dst=90
      Megaflow: pkt_mark=0,recirc_id=0,eth,ip,in_port=CONTROLLER,nw_frag=no
      Datapath actions: ct(zone=2,nat),recirc(0x6e)
      
      ===============================================================================
      recirc(0x6e) - resume conntrack with ct_state=new|trk|dnat
      Replacing src/dst IP/ports to simulate NAT:
       Initial flow: 
       Modified flow: 
      ===============================================================================
      
      Flow: recirc_id=0x6e,ct_state=new|trk|dnat,ct_zone=2,eth,udp,reg10=0x9,reg11=0x2,reg13=0x7,reg14=0x1,reg15=0x2,metadata=0x4,in_port=CONTROLLER,vlan_tci=0x0000,dl_src=0a:58:64:40:00:03,dl_dst=0a:58:64:40:00:01,nw_src=172.18.0.5,nw_dst=10.244.1.9,nw_tos=0,nw_ecn=0,nw_ttl=63,nw_frag=no,tp_src=48588,tp_dst=90
      
      bridge("br-int")
      ----------------
      thaw
           >>>> Recirculation conflict (actions)! <<<<
      
      Final flow: unchanged
      Megaflow: recirc_id=0x6e,eth,ip,in_port=CONTROLLER,nw_frag=no
      Datapath actions: drop
      Translation failed (Recirculation conflict), packet is dropped.
      

      Attached OVN & OVS DBs & br-int flow dump

        1. conf.db
          103 kB
        2. ovnsb_db.db
          1.03 MB
        3. ovnnb_db.db
          468 kB
        4. br-int-flows.txt
          247 kB

              jmeng@redhat.com Jakob Meng
              jcaamano@redhat.com Jaime Caamaño Ruiz
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: