Skip to content

Instantly share code, notes, and snippets.

@trozet
Created March 17, 2022 21:27
Show Gist options
  • Save trozet/732604ea85acf037c119ce8dc76ab06a to your computer and use it in GitHub Desktop.
Save trozet/732604ea85acf037c119ce8dc76ab06a to your computer and use it in GitHub Desktop.
[root@ovn-worker ~]# ovs-appctl ofproto/trace br-int in_port=2,dl_src=02:42:ac:12:00:02,dl_dst=02:42:ac:12:00:03,tcp,nw_src=172.18.0.2,nw_dst=172.18.0.3,nw_ttl=64,tp_src=80,tp_dst=9999 --ct-next 'trk,est,rpl' --ct-next 'trk,est,rpl' --ct-next 'trk,est,rpl' --ct-next 'trk,est,rpl' --ct-next 'trk,est,rpl'
Flow: tcp,in_port=2,vlan_tci=0x0000,dl_src=02:42:ac:12:00:02,dl_dst=02:42:ac:12:00:03,nw_src=172.18.0.2,nw_dst=172.18.0.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=80,tp_dst=9999,tcp_flags=0
bridge("br-int")
----------------
0. in_port=2, priority 100, cookie 0x68790a6
set_field:0xa->reg13
set_field:0x6->reg11
set_field:0x8->reg12
set_field:0x4->metadata
set_field:0x2->reg14
resubmit(,8)
8. reg14=0x2,metadata=0x4, priority 50, cookie 0x89dc5d78
resubmit(,9)
9. metadata=0x4, priority 0, cookie 0x324cc9be
resubmit(,10)
10. metadata=0x4, priority 0, cookie 0x9321a798
resubmit(,11)
11. metadata=0x4, priority 0, cookie 0xa9970d7e
resubmit(,12)
12. metadata=0x4, priority 0, cookie 0xdd0f0f5d
resubmit(,13)
13. ip,metadata=0x4, priority 100, cookie 0x1e070bd6
set_field:0x1000000000000000000000000/0x1000000000000000000000000->xxreg0
resubmit(,14)
14. ip,metadata=0x4, priority 100, cookie 0x49a95aee
set_field:0x4000000000000000000000000/0x4000000000000000000000000->xxreg0
resubmit(,15)
15. tcp,reg0=0x4/0x4,metadata=0x4, priority 120, cookie 0x3089216
move:NXM_OF_IP_DST[]->NXM_NX_XXREG0[64..95]
-> NXM_NX_XXREG0[64..95] is now 0xac120003
move:NXM_OF_TCP_DST[]->NXM_NX_XXREG0[32..47]
-> NXM_NX_XXREG0[32..47] is now 0x270f
ct(table=16,zone=NXM_NX_REG13[0..15],nat)
nat
-> A clone of the packet is forked to recirculate. The forked pipeline will be resumed at table 16.
-> Sets the packet to an untracked state, and clears all the conntrack fields.
Final flow: tcp,reg0=0x5,reg1=0xac120003,reg2=0x270f,reg11=0x6,reg12=0x8,reg13=0xa,reg14=0x2,metadata=0x4,in_port=2,vlan_tci=0x0000,dl_src=02:42:ac:12:00:02,dl_dst=02:42:ac:12:00:03,nw_src=172.18.0.2,nw_dst=172.18.0.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=80,tp_dst=9999,tcp_flags=0
Megaflow: recirc_id=0,ct_state=-new-est-trk,ct_label=0/0x2,eth,tcp,in_port=2,dl_src=00:00:00:00:00:00/01:00:00:00:00:00,dl_dst=02:42:ac:12:00:03,nw_dst=172.18.0.3,nw_frag=no,tp_dst=9999
Datapath actions: ct(zone=10,nat),recirc(0x5f7)
===============================================================================
recirc(0x5f7) - resume conntrack with ct_state=est|rpl|trk
Replacing src/dst IP/ports to simulate NAT:
Initial flow:
Modified flow:
===============================================================================
Flow: recirc_id=0x5f7,ct_state=est|rpl|trk,ct_zone=10,eth,tcp,reg0=0x5,reg1=0xac120003,reg2=0x270f,reg11=0x6,reg12=0x8,reg13=0xa,reg14=0x2,metadata=0x4,in_port=2,vlan_tci=0x0000,dl_src=02:42:ac:12:00:02,dl_dst=02:42:ac:12:00:03,nw_src=172.18.0.2,nw_dst=172.18.0.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=80,tp_dst=9999,tcp_flags=0
bridge("br-int")
----------------
thaw
Resuming from table 16
16. ct_state=+est+trk,ct_label=0/0x1,metadata=0x4, priority 1, cookie 0xebcb26ff
set_field:0x400000000000000000000000000/0x400000000000000000000000000->xxreg0
resubmit(,17)
17. ct_state=-new+est-rel+rpl-inv+trk,ct_label=0/0x1,metadata=0x4, priority 65532, cookie 0xe80bb234
resubmit(,18)
18. metadata=0x4, priority 0, cookie 0x1dc65daf
resubmit(,19)
19. metadata=0x4, priority 0, cookie 0x4aad95bd
resubmit(,20)
20. metadata=0x4, priority 0, cookie 0x171f68c
resubmit(,21)
21. ct_state=+trk,ip,metadata=0x4, priority 100, cookie 0xcdbc8b4a
set_field:0/0x80->reg10
resubmit(,68)
68. No match.
drop
move:NXM_NX_REG10[7]->NXM_NX_XXREG0[102]
-> NXM_NX_XXREG0[102] is now 0
set_field:0/0x80->reg10
resubmit(,69)
69. No match.
drop
move:NXM_NX_REG10[7]->NXM_NX_XXREG0[108]
-> NXM_NX_XXREG0[108] is now 0
resubmit(,22)
22. metadata=0x4, priority 0, cookie 0xb108a794
resubmit(,23)
23. metadata=0x4, priority 0, cookie 0xeecff4a9
resubmit(,24)
24. metadata=0x4, priority 0, cookie 0x7399ba4e
resubmit(,25)
25. metadata=0x4, priority 0, cookie 0x28a82278
resubmit(,26)
26. metadata=0x4, priority 0, cookie 0x8ae50402
resubmit(,27)
27. metadata=0x4, priority 0, cookie 0xf3e6add5
resubmit(,28)
28. metadata=0x4, priority 0, cookie 0x2fbba520
resubmit(,29)
29. metadata=0x4, priority 0, cookie 0xe2976e99
resubmit(,30)
30. metadata=0x4, priority 0, cookie 0xe4cee4f6
set_field:0->reg15
resubmit(,71)
71. No match.
drop
resubmit(,31)
31. reg15=0,metadata=0x4, priority 50, cookie 0x4e1a2213
drop
Final flow: recirc_id=0x5f7,ct_state=est|rpl|trk,ct_zone=10,eth,tcp,reg0=0x405,reg1=0xac120003,reg2=0x270f,reg11=0x6,reg12=0x8,reg13=0xa,reg14=0x2,metadata=0x4,in_port=2,vlan_tci=0x0000,dl_src=02:42:ac:12:00:02,dl_dst=02:42:ac:12:00:03,nw_src=172.18.0.2,nw_dst=172.18.0.3,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=80,tp_dst=9999,tcp_flags=0
Megaflow: recirc_id=0x5f7,ct_state=-new+est-rel+rpl-inv+trk,ct_label=0/0x3,eth,ip,in_port=2,dl_src=02:42:ac:12:00:02,dl_dst=02:42:ac:12:00:03,nw_frag=no
Datapath actions: drop
##### no flows in table 71???
[root@ovn-worker ~]# ovs-ofctl dump-flows br-int table=30 | grep 71
cookie=0xe4cee4f6, duration=2261.395s, table=30, n_packets=0, n_bytes=0, idle_age=2261, priority=0,metadata=0x2 actions=load:0->NXM_NX_REG15[],resubmit(,71),resubmit(,31)
cookie=0xe4cee4f6, duration=2261.392s, table=30, n_packets=0, n_bytes=0, idle_age=2261, priority=0,metadata=0x4 actions=load:0->NXM_NX_REG15[],resubmit(,71),resubmit(,31)
cookie=0xe4cee4f6, duration=2260.342s, table=30, n_packets=12000, n_bytes=2072687, idle_age=1, priority=0,metadata=0x6 actions=load:0->NXM_NX_REG15[],resubmit(,71),resubmit(,31)
[root@ovn-worker ~]# ovs-ofctl dump-flows br-int table=71
[root@ovn-worker ~]#
table=22(ls_in_l2_lkup ), priority=0 , match=(1), action=(outport = get_fdb(eth.dst); next;)
table=30 metadata=0x3 actions=set_field:0->reg15,resubmit(,71),resubmit(,31)
table=30 metadata=0x8 actions=set_field:0->reg15,resubmit(,71),resubmit(,31)
table=30 metadata=0x2 actions=set_field:0->reg15,resubmit(,71),resubmit(,31)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment