-
Epic
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
-
Recirculation conflict with trace-packet-out
-
False
-
-
False
-
-
rhel-net-ovs-dpdk
-
100% To Do, 0% In Progress, 0% Done
-
ssg_networking
This epic tracks all the effort needed to deliver the solution related to the bug described below.
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