Skip to content

Instantly share code, notes, and snippets.

@trozet
Created March 14, 2022 20:40
Show Gist options
  • Save trozet/acd74622a55bd7a0fbd83b625a912713 to your computer and use it in GitHub Desktop.
Save trozet/acd74622a55bd7a0fbd83b625a912713 to your computer and use it in GitHub Desktop.
[root@ovn-worker ~]# ovs-appctl ofproto/trace br-int in_port=4,dl_src=0a:58:0a:f4:01:03,dl_dst=0a:58:0a:f4:01:01,tcp,tp_dst=80,nw_dst=8.8.8.8,nw_src=10.244.1.3,nw_ttl=254
Flow: tcp,in_port=4,vlan_tci=0x0000,dl_src=0a:58:0a:f4:01:03,dl_dst=0a:58:0a:f4:01:01,nw_src=10.244.1.3,nw_dst=8.8.8.8,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=0,tp_dst=80,tcp_flags=0
bridge("br-int")
----------------
0. in_port=4, priority 100, cookie 0x6deecb21
set_field:0x3->reg13
set_field:0x4->reg11
set_field:0x8->reg12
set_field:0x4->metadata
set_field:0x3->reg14
resubmit(,8)
8. reg14=0x3,metadata=0x4,dl_src=0a:58:0a:f4:01:03, priority 50, cookie 0x458f1408
resubmit(,9)
9. ip,reg14=0x3,metadata=0x4,dl_src=0a:58:0a:f4:01:03,nw_src=10.244.1.3, priority 90, cookie 0x942a808b
resubmit(,10)
10. metadata=0x4, priority 0, cookie 0x1edbf914
resubmit(,11)
11. metadata=0x4, priority 0, cookie 0x73e6d209
resubmit(,12)
12. metadata=0x4, priority 0, cookie 0x1374175b
resubmit(,13)
13. ip,metadata=0x4, priority 100, cookie 0x6618d988
set_field:0x1000000000000000000000000/0x1000000000000000000000000->xxreg0
resubmit(,14)
14. ip,metadata=0x4, priority 100, cookie 0x80cf1902
set_field:0x4000000000000000000000000/0x4000000000000000000000000->xxreg0
resubmit(,15)
15. tcp,reg0=0x4/0x4,metadata=0x4, priority 120, cookie 0x9c15c849
move:NXM_OF_IP_DST[]->NXM_NX_XXREG0[64..95]
-> NXM_NX_XXREG0[64..95] is now 0x8080808
move:NXM_OF_TCP_DST[]->NXM_NX_XXREG0[32..47]
-> NXM_NX_XXREG0[32..47] is now 0x50
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=0x8080808,reg2=0x50,reg11=0x4,reg12=0x8,reg13=0x3,reg14=0x3,metadata=0x4,in_port=4,vlan_tci=0x0000,dl_src=0a:58:0a:f4:01:03,dl_dst=0a:58:0a:f4:01:01,nw_src=10.244.1.3,nw_dst=8.8.8.8,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=0,tp_dst=80,tcp_flags=0
Megaflow: recirc_id=0,ct_state=-new-est-trk,ct_label=0/0x2,eth,tcp,in_port=4,dl_src=0a:58:0a:f4:01:03,dl_dst=0a:58:0a:f4:01:01,nw_src=10.244.1.3,nw_dst=8.8.8.8,nw_frag=no,tp_dst=80
Datapath actions: ct(zone=3,nat),recirc(0x65)
===============================================================================
recirc(0x65) - resume conntrack with default ct_state=trk|new (use --ct-next to customize)
Replacing src/dst IP/ports to simulate NAT:
Initial flow:
Modified flow:
===============================================================================
Flow: recirc_id=0x65,ct_state=new|trk,ct_zone=3,eth,tcp,reg0=0x5,reg1=0x8080808,reg2=0x50,reg11=0x4,reg12=0x8,reg13=0x3,reg14=0x3,metadata=0x4,in_port=4,vlan_tci=0x0000,dl_src=0a:58:0a:f4:01:03,dl_dst=0a:58:0a:f4:01:01,nw_src=10.244.1.3,nw_dst=8.8.8.8,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=0,tp_dst=80,tcp_flags=0
bridge("br-int")
----------------
thaw
Resuming from table 16
16. ct_state=+new-est+trk,metadata=0x4, priority 7, cookie 0xb7c78e43
set_field:0x80000000000000000000000000/0x80000000000000000000000000->xxreg0
set_field:0x200000000000000000000000000/0x200000000000000000000000000->xxreg0
resubmit(,17)
17. ct_state=-est+trk,ip,metadata=0x4, priority 1, cookie 0xd7edfa11
set_field:0x2000000000000000000000000/0x2000000000000000000000000->xxreg0
resubmit(,18)
18. metadata=0x4, priority 0, cookie 0x1f5e1f6
resubmit(,19)
19. metadata=0x4, priority 0, cookie 0x29deac01
resubmit(,20)
20. ip,reg0=0x2/0x2002,metadata=0x4, priority 100, cookie 0x7307dead
ct(commit,zone=NXM_NX_REG13[0..15],exec(set_field:0/0x1->ct_label))
set_field:0/0x1->ct_label
-> Sets the packet to an untracked state, and clears all the conntrack fields.
resubmit(,21)
21. metadata=0x4, priority 0, cookie 0x965a3953
resubmit(,22)
22. metadata=0x4, priority 0, cookie 0x11f7f6e9
resubmit(,23)
23. metadata=0x4, priority 0, cookie 0x9bfbb5c9
resubmit(,24)
24. metadata=0x4, priority 0, cookie 0xc78c9182
resubmit(,25)
25. metadata=0x4, priority 0, cookie 0xdd13d1b7
resubmit(,26)
26. metadata=0x4, priority 0, cookie 0x7a217e3b
resubmit(,27)
27. metadata=0x4, priority 0, cookie 0xa9b4b5ea
resubmit(,28)
28. metadata=0x4, priority 0, cookie 0xe2145443
resubmit(,29)
29. metadata=0x4, priority 0, cookie 0xdcfdc68
resubmit(,30)
30. metadata=0x4,dl_dst=0a:58:0a:f4:01:01, priority 50, cookie 0x3373ca1a
set_field:0x1->reg15
resubmit(,37)
37. priority 0
resubmit(,38)
38. reg15=0x1,metadata=0x4, priority 100, cookie 0x9e5cfe7
set_field:0x4->reg11
set_field:0x8->reg12
resubmit(,39)
39. 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(,40)
40. ip,reg15=0x1,metadata=0x4, priority 110, cookie 0x7466bb01
resubmit(,41)
41. ip,reg15=0x1,metadata=0x4, priority 110, cookie 0x28b06151
resubmit(,42)
42. metadata=0x4, priority 0, cookie 0xbed1ff7d
resubmit(,43)
43. ct_state=-trk,metadata=0x4, priority 5, cookie 0x9f42a88c
set_field:0x100000000000000000000000000/0x100000000000000000000000000->xxreg0
set_field:0x200000000000000000000000000/0x200000000000000000000000000->xxreg0
resubmit(,44)
44. metadata=0x4, priority 0, cookie 0x165ca917
resubmit(,45)
45. metadata=0x4, priority 0, cookie 0x731284a2
resubmit(,46)
46. metadata=0x4, priority 0, cookie 0xb0ba8276
resubmit(,47)
47. metadata=0x4, priority 0, cookie 0x73d41492
resubmit(,48)
48. metadata=0x4, priority 0, cookie 0x156c6c0a
resubmit(,49)
49. reg15=0x1,metadata=0x4, priority 50, cookie 0x9eb24547
resubmit(,64)
64. priority 0
resubmit(,65)
65. reg15=0x1,metadata=0x4, priority 100, cookie 0x9e5cfe7
clone(ct_clear,set_field:0->reg11,set_field:0->reg12,set_field:0->reg13,set_field:0x7->reg11,set_field:0x1->reg12,set_field:0x1->metadata,set_field:0x3->reg14,set_field:0->reg10,set_field:0->reg15,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(,8))
ct_clear
set_field:0->reg11
set_field:0->reg12
set_field:0->reg13
set_field:0x7->reg11
set_field:0x1->reg12
set_field:0x1->metadata
set_field:0x3->reg14
set_field:0->reg10
set_field:0->reg15
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(,8)
8. reg14=0x3,metadata=0x1,dl_dst=0a:58:0a:f4:01:01, priority 50, cookie 0xdb6c19f5
set_field:0xa580af401010000000000000000/0xffffffffffff0000000000000000->xxreg0
resubmit(,9)
9. metadata=0x1, priority 0, cookie 0x4913dfb4
set_field:0x4/0x4->xreg4
resubmit(,10)
10. reg9=0/0x8,metadata=0x1, priority 100, cookie 0x8ef7d8e7
resubmit(,11)
11. metadata=0x1, priority 0, cookie 0x8a5d3a3e
resubmit(,12)
12. metadata=0x1, priority 0, cookie 0xae5560a3
resubmit(,13)
13. metadata=0x1, priority 0, cookie 0xc3177d0d
resubmit(,14)
14. metadata=0x1, priority 0, cookie 0xc897f99d
resubmit(,15)
15. metadata=0x1, priority 0, cookie 0x85ee74cc
resubmit(,16)
16. metadata=0x1, priority 0, cookie 0xec366a0
resubmit(,17)
17. metadata=0x1, priority 0, cookie 0xcddd6264
resubmit(,18)
18. metadata=0x1, priority 0, cookie 0x527bd2cb
set_field:0/0xffffffff->xxreg1
resubmit(,19)
19. ip,metadata=0x1,nw_src=10.244.1.0/24, priority 72, cookie 0xf87d4645
dec_ttl()
set_field:0/0xffff00000000->xreg4
set_field:0x64400002000000000000000000000000/0xffffffff000000000000000000000000->xxreg0
set_field:0x644000010000000000000000/0xffffffff0000000000000000->xxreg0
set_field:0a:58:64:40:00:01->eth_src
set_field:0x1->reg15
set_field:0x1/0x1->reg10
resubmit(,20)
20. reg8=0/0xffff,metadata=0x1, priority 150, cookie 0xfa3a3b89
resubmit(,21)
21. metadata=0x1, priority 0, cookie 0x99c63047
set_field:0/0xffff00000000->xreg4
resubmit(,22)
22. reg8=0/0xffff,metadata=0x1, priority 150, cookie 0xf313d584
resubmit(,23)
23. reg0=0x64400002,reg15=0x1,metadata=0x1, priority 100, cookie 0x504f3e1b
set_field:0a:58:64:40:00:02->eth_dst
resubmit(,24)
24. metadata=0x1, priority 0, cookie 0xf8fd8c0f
resubmit(,25)
25. metadata=0x1, priority 0, cookie 0x8a53b052
resubmit(,26)
26. metadata=0x1, priority 0, cookie 0xcb393cbd
resubmit(,27)
27. metadata=0x1, priority 0, cookie 0x8ce74c26
resubmit(,37)
37. priority 0
resubmit(,38)
38. reg15=0x1,metadata=0x1, priority 100, cookie 0x82f5cf3c
set_field:0x7->reg11
set_field:0x1->reg12
resubmit(,39)
39. 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(,40)
40. metadata=0x1, priority 0, cookie 0xccb26db2
set_field:0/0x10->xreg4
resubmit(,41)
41. metadata=0x1, priority 0, cookie 0xc2267155
resubmit(,42)
42. metadata=0x1, priority 0, cookie 0xfed8fb31
resubmit(,43)
43. metadata=0x1, priority 0, cookie 0xcf3dbe93
resubmit(,44)
44. metadata=0x1, priority 0, cookie 0x609f11b6
resubmit(,45)
45. metadata=0x1, priority 0, cookie 0xc4465aac
resubmit(,46)
46. reg15=0x1,metadata=0x1, priority 100, cookie 0xeeb4d3aa
resubmit(,64)
64. reg10=0x1/0x1,reg15=0x1,metadata=0x1, priority 100, cookie 0x82f5cf3c
push:NXM_OF_IN_PORT[]
set_field:ANY->in_port
resubmit(,65)
65. reg15=0x1,metadata=0x1, priority 100, cookie 0x82f5cf3c
clone(ct_clear,set_field:0->reg11,set_field:0->reg12,set_field:0->reg13,set_field:0x2->reg11,set_field:0x5->reg12,set_field:0x2->metadata,set_field:0x1->reg14,set_field:0->reg10,set_field:0->reg15,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(,8))
ct_clear
set_field:0->reg11
set_field:0->reg12
set_field:0->reg13
set_field:0x2->reg11
set_field:0x5->reg12
set_field:0x2->metadata
set_field:0x1->reg14
set_field:0->reg10
set_field:0->reg15
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(,8)
8. reg14=0x1,metadata=0x2, priority 50, cookie 0xc1db670d
resubmit(,9)
9. metadata=0x2, priority 0, cookie 0x685c302d
resubmit(,10)
10. metadata=0x2, priority 0, cookie 0x1edbf914
resubmit(,11)
11. metadata=0x2, priority 0, cookie 0x73e6d209
resubmit(,12)
12. metadata=0x2, priority 0, cookie 0x1374175b
resubmit(,13)
13. metadata=0x2, priority 0, cookie 0xdf4c4ba4
resubmit(,14)
14. ip,reg14=0x1,metadata=0x2, priority 110, cookie 0x4292e08a
resubmit(,15)
15. metadata=0x2, priority 0, cookie 0x67c4174b
resubmit(,16)
16. metadata=0x2, priority 0, cookie 0x937cc89c
resubmit(,17)
17. metadata=0x2, priority 0, cookie 0x2a5a582c
resubmit(,18)
18. metadata=0x2, priority 0, cookie 0x1f5e1f6
resubmit(,19)
19. metadata=0x2, priority 0, cookie 0x29deac01
resubmit(,20)
20. metadata=0x2, priority 0, cookie 0xc44e9ae8
resubmit(,21)
21. metadata=0x2, priority 0, cookie 0x965a3953
resubmit(,22)
22. metadata=0x2, priority 0, cookie 0x11f7f6e9
resubmit(,23)
23. metadata=0x2, priority 0, cookie 0x9bfbb5c9
resubmit(,24)
24. metadata=0x2, priority 0, cookie 0xc78c9182
resubmit(,25)
25. metadata=0x2, priority 0, cookie 0xdd13d1b7
resubmit(,26)
26. metadata=0x2, priority 0, cookie 0x7a217e3b
resubmit(,27)
27. metadata=0x2, priority 0, cookie 0xa9b4b5ea
resubmit(,28)
28. metadata=0x2, priority 0, cookie 0xe2145443
resubmit(,29)
29. metadata=0x2, priority 0, cookie 0xdcfdc68
resubmit(,30)
30. metadata=0x2,dl_dst=0a:58:64:40:00:02, priority 50, cookie 0x687cbb3f
set_field:0x2->reg15
resubmit(,37)
37. priority 0
resubmit(,38)
38. reg15=0x2,metadata=0x2, priority 100, cookie 0xefe80b68
set_field:0x2->reg11
set_field:0x5->reg12
resubmit(,39)
39. 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(,40)
40. ip,reg15=0x2,metadata=0x2, priority 110, cookie 0xb3b4d16c
resubmit(,41)
41. metadata=0x2, priority 0, cookie 0xfe9ad52e
resubmit(,42)
42. metadata=0x2, priority 0, cookie 0xbed1ff7d
resubmit(,43)
43. metadata=0x2, priority 0, cookie 0x458d539a
resubmit(,44)
44. metadata=0x2, priority 0, cookie 0x165ca917
resubmit(,45)
45. metadata=0x2, priority 0, cookie 0x731284a2
resubmit(,46)
46. metadata=0x2, priority 0, cookie 0xb0ba8276
resubmit(,47)
47. metadata=0x2, priority 0, cookie 0x73d41492
resubmit(,48)
48. metadata=0x2, priority 0, cookie 0x156c6c0a
resubmit(,49)
49. reg15=0x2,metadata=0x2, priority 50, cookie 0xf28ae9e2
resubmit(,64)
64. priority 0
resubmit(,65)
65. reg15=0x2,metadata=0x2, priority 100, cookie 0xefe80b68
clone(ct_clear,set_field:0->reg11,set_field:0->reg12,set_field:0->reg13,set_field:0x9->reg11,set_field:0x5->metadata,set_field:0x1->reg14,set_field:0->reg10,set_field:0->reg15,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(,8))
ct_clear
set_field:0->reg11
set_field:0->reg12
set_field:0->reg13
set_field:0x9->reg11
set_field:0x5->metadata
set_field:0x1->reg14
set_field:0->reg10
set_field:0->reg15
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(,8)
8. reg14=0x1,metadata=0x5,dl_dst=0a:58:64:40:00:02, priority 50, cookie 0x3517dd76
set_field:0xa58644000020000000000000000/0xffffffffffff0000000000000000->xxreg0
resubmit(,9)
9. metadata=0x5, priority 0, cookie 0x4913dfb4
set_field:0x4/0x4->xreg4
resubmit(,10)
10. reg9=0/0x8,metadata=0x5, priority 100, cookie 0x8ef7d8e7
resubmit(,11)
11. metadata=0x5, priority 0, cookie 0x8a5d3a3e
resubmit(,12)
12. metadata=0x5, priority 0, cookie 0xae5560a3
resubmit(,13)
13. metadata=0x5, priority 0, cookie 0xc3177d0d
resubmit(,14)
14. metadata=0x5, priority 0, cookie 0xc897f99d
resubmit(,15)
15. metadata=0x5, priority 0, cookie 0x85ee74cc
resubmit(,16)
16. metadata=0x5, priority 0, cookie 0xec366a0
resubmit(,17)
17. metadata=0x5, priority 0, cookie 0xcddd6264
resubmit(,18)
18. metadata=0x5, priority 0, cookie 0x527bd2cb
set_field:0/0xffffffff->xxreg1
resubmit(,19)
19. ip,reg7=0,metadata=0x5, priority 1, cookie 0x3bb55d0
dec_ttl()
set_field:0/0xffff00000000->xreg4
set_field:0xac120001000000000000000000000000/0xffffffff000000000000000000000000->xxreg0
set_field:0xac1200020000000000000000/0xffffffff0000000000000000->xxreg0
set_field:02:42:ac:12:00:02->eth_src
set_field:0x2->reg15
set_field:0x1/0x1->reg10
resubmit(,20)
20. reg8=0/0xffff,metadata=0x5, priority 150, cookie 0xfa3a3b89
resubmit(,21)
21. metadata=0x5, priority 0, cookie 0x99c63047
set_field:0/0xffff00000000->xreg4
resubmit(,22)
22. reg8=0/0xffff,metadata=0x5, priority 150, cookie 0xf313d584
resubmit(,23)
23. ip,metadata=0x5, priority 0, cookie 0x8aa31e2c
push:NXM_NX_REG0[]
push:NXM_NX_XXREG0[96..127]
pop:NXM_NX_REG0[]
-> NXM_NX_REG0[] is now 0xac120001
set_field:00:00:00:00:00:00->eth_dst
resubmit(,66)
66. reg0=0xac120001,reg15=0x2,metadata=0x5, priority 100, cookie 0x3b15b35c
set_field:02:42:c2:9b:02:d4->eth_dst
set_field:0x40/0x40->reg10
pop:NXM_NX_REG0[]
-> NXM_NX_REG0[] is now 0xac120001
resubmit(,24)
24. metadata=0x5, priority 0, cookie 0xf8fd8c0f
resubmit(,25)
25. metadata=0x5, priority 0, cookie 0x8a53b052
resubmit(,26)
26. metadata=0x5, priority 0, cookie 0xcb393cbd
resubmit(,27)
27. metadata=0x5, priority 0, cookie 0x8ce74c26
resubmit(,37)
37. priority 0
resubmit(,38)
38. reg15=0x2,metadata=0x5, priority 100, cookie 0xccc7a9f6
set_field:0x9->reg11
resubmit(,39)
39. 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(,40)
40. metadata=0x5, priority 0, cookie 0xccb26db2
set_field:0/0x10->xreg4
resubmit(,41)
41. ip,metadata=0x5, priority 50, cookie 0xd95b3713
set_field:0x1/0x1->reg10
ct(table=42,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 42.
-> Sets the packet to an untracked state, and clears all the conntrack fields.
pop:NXM_OF_IN_PORT[]
-> NXM_OF_IN_PORT[] is now 4
Final flow: recirc_id=0x65,eth,tcp,reg0=0x300,reg11=0x4,reg12=0x8,reg13=0x3,reg14=0x3,reg15=0x1,metadata=0x4,in_port=4,vlan_tci=0x0000,dl_src=0a:58:0a:f4:01:03,dl_dst=0a:58:0a:f4:01:01,nw_src=10.244.1.3,nw_dst=8.8.8.8,nw_tos=0,nw_ecn=0,nw_ttl=254,tp_src=0,tp_dst=80,tcp_flags=0
Megaflow: recirc_id=0x65,ct_state=+new-est-rel-rpl-inv+trk-dnat,ct_label=0/0x3,eth,tcp,in_port=4,dl_src=0a:58:0a:f4:01:03,dl_dst=0a:58:0a:f4:01:01,nw_src=10.244.1.3,nw_dst=8.0.0.0/7,nw_ttl=254,nw_frag=no
Datapath actions: ct(commit,zone=3,label=0/0x1),ct_clear,ct_clear,ct_clear,set(eth(src=02:42:ac:12:00:02,dst=02:42:c2:9b:02:d4)),set(ipv4(ttl=252)),ct(zone=9,nat),recirc(0x66)
===============================================================================
recirc(0x66) - resume conntrack with default ct_state=trk|new (use --ct-next to customize)
Replacing src/dst IP/ports to simulate NAT:
Initial flow:
Modified flow:
===============================================================================
Flow: recirc_id=0x66,ct_state=new|trk,ct_zone=9,eth,tcp,reg10=0x41,reg11=0x9,reg14=0x1,reg15=0x2,metadata=0x5,in_port=ANY,vlan_tci=0x0000,dl_src=02:42:ac:12:00:02,dl_dst=02:42:c2:9b:02:d4,nw_src=10.244.1.3,nw_dst=8.8.8.8,nw_tos=0,nw_ecn=0,nw_ttl=252,tp_src=0,tp_dst=80,tcp_flags=0
bridge("br-int")
----------------
thaw
Resuming from table 42
42. ct_state=+new+trk,ip,metadata=0x5, priority 50, cookie 0xe549210e
ct(commit,zone=NXM_NX_REG11[0..15])
drop
-> Sets the packet to an untracked state, and clears all the conntrack fields.
resubmit(,43)
43. ip,metadata=0x5,nw_src=10.244.0.0/16, priority 17, cookie 0xdb3a134e
ct(commit,table=44,zone=NXM_NX_REG12[0..15],nat(src=172.18.0.2))
nat(src=172.18.0.2)
-> 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: recirc_id=0x66,eth,tcp,reg10=0x41,reg11=0x9,reg14=0x1,reg15=0x2,metadata=0x5,in_port=ANY,vlan_tci=0x0000,dl_src=02:42:ac:12:00:02,dl_dst=02:42:c2:9b:02:d4,nw_src=10.244.1.3,nw_dst=8.8.8.8,nw_tos=0,nw_ecn=0,nw_ttl=252,tp_src=0,tp_dst=80,tcp_flags=0
Megaflow: recirc_id=0x66,ct_state=+new+trk,eth,ip,in_port=ANY,nw_src=10.244.0.0/16,nw_frag=no
Datapath actions: ct(commit,zone=9),ct(commit,nat(src=172.18.0.2)),recirc(0x67)
===============================================================================
recirc(0x67) - resume conntrack with default ct_state=trk|new (use --ct-next to customize)
Replacing src/dst IP/ports to simulate NAT:
Initial flow: nw_src=10.244.1.3,tp_src=0,nw_dst=8.8.8.8,tp_dst=80
Modified flow: nw_src=172.18.0.2,tp_src=0,nw_dst=8.8.8.8,tp_dst=80
===============================================================================
Flow: recirc_id=0x67,ct_state=new|trk,eth,tcp,reg10=0x41,reg11=0x9,reg14=0x1,reg15=0x2,metadata=0x5,in_port=ANY,vlan_tci=0x0000,dl_src=02:42:ac:12:00:02,dl_dst=02:42:c2:9b:02:d4,nw_src=172.18.0.2,nw_dst=8.8.8.8,nw_tos=0,nw_ecn=0,nw_ttl=252,tp_src=0,tp_dst=80,tcp_flags=0
bridge("br-int")
----------------
thaw
Resuming from table 44
44. metadata=0x5, priority 0, cookie 0x609f11b6
resubmit(,45)
45. metadata=0x5, priority 0, cookie 0xc4465aac
resubmit(,46)
46. reg15=0x2,metadata=0x5, priority 100, cookie 0xc20dbcb2
resubmit(,64)
64. reg10=0x1/0x1,reg15=0x2,metadata=0x5, priority 100, cookie 0xccc7a9f6
push:NXM_OF_IN_PORT[]
set_field:ANY->in_port
resubmit(,65)
65. reg15=0x2,metadata=0x5, priority 100, cookie 0xccc7a9f6
clone(ct_clear,set_field:0->reg11,set_field:0->reg12,set_field:0->reg13,set_field:0xc->reg11,set_field:0xa->reg12,set_field:0x6->metadata,set_field:0x1->reg14,set_field:0->reg10,set_field:0->reg15,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(,8))
ct_clear
set_field:0->reg11
set_field:0->reg12
set_field:0->reg13
set_field:0xc->reg11
set_field:0xa->reg12
set_field:0x6->metadata
set_field:0x1->reg14
set_field:0->reg10
set_field:0->reg15
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(,8)
8. reg14=0x1,metadata=0x6, priority 50, cookie 0x10c7048a
resubmit(,9)
9. metadata=0x6, priority 0, cookie 0x685c302d
resubmit(,10)
10. metadata=0x6, priority 0, cookie 0x1edbf914
resubmit(,11)
11. metadata=0x6, priority 0, cookie 0x73e6d209
resubmit(,12)
12. metadata=0x6, priority 0, cookie 0x1374175b
resubmit(,13)
13. metadata=0x6, priority 0, cookie 0xdf4c4ba4
resubmit(,14)
14. ip,reg14=0x1,metadata=0x6, priority 110, cookie 0x6c0e6a12
resubmit(,15)
15. metadata=0x6, priority 0, cookie 0x67c4174b
resubmit(,16)
16. metadata=0x6, priority 65535, cookie 0x59b9a866
resubmit(,17)
17. metadata=0x6, priority 65535, cookie 0x3dee752a
resubmit(,18)
18. metadata=0x6, priority 0, cookie 0x1f5e1f6
resubmit(,19)
19. metadata=0x6, priority 0, cookie 0x29deac01
resubmit(,20)
20. metadata=0x6, priority 0, cookie 0xc44e9ae8
resubmit(,21)
21. metadata=0x6, priority 0, cookie 0x965a3953
resubmit(,22)
22. metadata=0x6, priority 0, cookie 0x11f7f6e9
resubmit(,23)
23. metadata=0x6, priority 0, cookie 0x9bfbb5c9
resubmit(,24)
24. metadata=0x6, priority 0, cookie 0xc78c9182
resubmit(,25)
25. metadata=0x6, priority 0, cookie 0xdd13d1b7
resubmit(,26)
26. metadata=0x6, priority 0, cookie 0x7a217e3b
resubmit(,27)
27. metadata=0x6, priority 0, cookie 0xa9b4b5ea
resubmit(,28)
28. metadata=0x6, priority 0, cookie 0xe2145443
resubmit(,29)
29. metadata=0x6, priority 0, cookie 0xdcfdc68
resubmit(,30)
30. metadata=0x6, priority 0, cookie 0x63ddd7d5
set_field:0->reg15
resubmit(,71)
71. No match.
drop
resubmit(,31)
31. reg15=0,metadata=0x6, priority 50, cookie 0xab88dba6
set_field:0x8001->reg15
resubmit(,37)
37. priority 0
resubmit(,38)
38. reg15=0x8001,metadata=0x6, priority 100, cookie 0xe928110a
set_field:0x2->reg15
resubmit(,39)
39. 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(,40)
40. ip,reg15=0x2,metadata=0x6, priority 110, cookie 0x47c2d513
resubmit(,41)
41. metadata=0x6, priority 0, cookie 0xfe9ad52e
resubmit(,42)
42. metadata=0x6, priority 0, cookie 0xbed1ff7d
resubmit(,43)
43. metadata=0x6, priority 65535, cookie 0xc1e7cb7e
resubmit(,44)
44. metadata=0x6, priority 65535, cookie 0xb252e8dd
resubmit(,45)
45. metadata=0x6, priority 0, cookie 0x731284a2
resubmit(,46)
46. metadata=0x6, priority 0, cookie 0xb0ba8276
resubmit(,47)
47. metadata=0x6, priority 0, cookie 0x73d41492
resubmit(,48)
48. metadata=0x6, priority 0, cookie 0x156c6c0a
resubmit(,49)
49. reg15=0x2,metadata=0x6, priority 50, cookie 0xff737dd0
resubmit(,64)
64. priority 0
resubmit(,65)
65. reg15=0x2,metadata=0x6, priority 100, cookie 0xabca73f
output:3
bridge("breth0")
----------------
0. ip,in_port=2, priority 100, cookie 0xdeff105
ct(commit,zone=64000,exec(set_field:0x1->ct_mark))
set_field:0x1->ct_mark
-> Sets the packet to an untracked state, and clears all the conntrack fields.
output:1
set_field:0x8001->reg15
pop:NXM_OF_IN_PORT[]
-> NXM_OF_IN_PORT[] is now ANY
Final flow: unchanged
Megaflow: recirc_id=0x67,ct_state=+new-est-rel-rpl-inv+trk-dnat,ct_label=0/0x3,eth,tcp,in_port=ANY,dl_src=02:42:ac:12:00:02,dl_dst=02:42:c2:9b:02:d4,nw_src=172.18.0.2,nw_dst=8.0.0.0/7,nw_frag=no,tp_src=0x0/0xc000
Datapath actions: ct_clear,ct(commit,zone=64000,mark=0x1/0xffffffff),4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment