Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save orimanabu/7103d2cb172bab1212a401a1009f7362 to your computer and use it in GitHub Desktop.
Save orimanabu/7103d2cb172bab1212a401a1009f7362 to your computer and use it in GitHub Desktop.
ovs-appctl ofproto/trace on dst node: OCP4.8 Pod-to-ClusterIP different node
[core@worker-3 ~]$ sudo ovs-vsctl --columns=ofport find interface type=geneve options:remote_ip=172.16.13.108
ofport : 7
[core@worker-3 ~]$ sudo ovs-appctl ofproto/trace --ct-next new,trk br-int in_port=7,tun_id=0x15,tun_metadata0=0x10078,tcp,reg0=0x282,reg11=0xd,reg12=0x8,reg13=0x2d,reg14=0x42,reg15=0x1,metadata=0x16,vlan_tci=0x0000,dl_src=0a:58:0a:83:02:01,dl_dst=0a:58:0a:82:03:2e,nw_src=10.131.2.40,nw_dst=10.130.3.46,nw_ecn=0,nw_ttl=64,nw_frag=no
Flow: tcp,reg0=0x282,reg11=0xd,reg12=0x8,reg13=0x2d,reg14=0x42,reg15=0x1,tun_id=0x15,metadata=0x16,in_port=7,vlan_tci=0x0000,dl_src=0a:58:0a:83:02:01,dl_dst=0a:58:0a:82:03:2e,nw_src=10.131.2.40,nw_dst=10.130.3.46,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=0,tcp_flags=0
bridge("br-int")
----------------
0. in_port=7, priority 100
move:NXM_NX_TUN_ID[0..23]->OXM_OF_METADATA[0..23]
-> OXM_OF_METADATA[0..23] is now 0x15
move:NXM_NX_TUN_METADATA0[16..30]->NXM_NX_REG14[0..14]
-> NXM_NX_REG14[0..14] is now 0x1
move:NXM_NX_TUN_METADATA0[0..15]->NXM_NX_REG15[0..15]
-> NXM_NX_REG15[0..15] is now 0x78
resubmit(,38)
38. reg15=0x78,metadata=0x15, priority 100
set_field:0x34->reg13
set_field:0x17->reg11
set_field:0xd->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,metadata=0x15, priority 100, cookie 0x38a41a98
set_field:0x4000000000000000000000000/0x4000000000000000000000000->xxreg0
resubmit(,41)
41. ip,metadata=0x15, priority 100, cookie 0xddaafe6d
set_field:0x1000000000000000000000000/0x1000000000000000000000000->xxreg0
resubmit(,42)
42. ip,reg0=0x4/0x4,metadata=0x15, priority 110, cookie 0x85953020
ct(table=43,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 43.
-> Sets the packet to an untracked state, and clears all the conntrack fields.
Final flow: tcp,reg0=0x5,reg11=0x17,reg12=0xd,reg13=0x34,reg14=0x1,reg15=0x78,tun_id=0x15,metadata=0x15,in_port=7,vlan_tci=0x0000,dl_src=0a:58:0a:83:02:01,dl_dst=0a:58:0a:82:03:2e,nw_src=10.131.2.40,nw_dst=10.130.3.46,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=0,tcp_flags=0
Megaflow: recirc_id=0,eth,tcp,tun_id=0x15/0xffffff,tun_metadata0=0x10078/0x7fffffff,in_port=7,dl_src=0a:58:0a:83:02:01,nw_frag=no
Datapath actions: ct(zone=52,nat),recirc(0x8927cd)
===============================================================================
recirc(0x8927cd) - resume conntrack with ct_state=new|trk
Replacing src/dst IP/ports to simulate NAT:
Initial flow:
Modified flow:
===============================================================================
Flow: recirc_id=0x8927cd,ct_state=new|trk,ct_zone=52,eth,tcp,reg0=0x5,reg11=0x17,reg12=0xd,reg13=0x34,reg14=0x1,reg15=0x78,tun_id=0x15,metadata=0x15,in_port=7,vlan_tci=0x0000,dl_src=0a:58:0a:83:02:01,dl_dst=0a:58:0a:82:03:2e,nw_src=10.131.2.40,nw_dst=10.130.3.46,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=0,tcp_flags=0
bridge("br-int")
----------------
thaw
Resuming from table 43
43. ct_state=+new-est+trk,metadata=0x15, priority 7, cookie 0xffe13232
set_field:0x80000000000000000000000000/0x80000000000000000000000000->xxreg0
set_field:0x200000000000000000000000000/0x200000000000000000000000000->xxreg0
resubmit(,44)
44. ct_state=-est+trk,ip,metadata=0x15, priority 1, cookie 0xa20334dc
set_field:0x2000000000000000000000000/0x2000000000000000000000000->xxreg0
resubmit(,45)
45. metadata=0x15, priority 0, cookie 0xb2da9db2
resubmit(,46)
46. metadata=0x15, priority 0, cookie 0x37196b01
resubmit(,47)
47. ip,reg0=0x2/0x2,metadata=0x15, priority 100, cookie 0xd49066cb
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(,48)
48. ip,reg15=0x78,metadata=0x15,dl_dst=0a:58:0a:82:03:2e,nw_dst=10.130.3.46, priority 90, cookie 0x51d34066
resubmit(,49)
49. reg15=0x78,metadata=0x15,dl_dst=0a:58:0a:82:03:2e, priority 50, cookie 0x6ce0849b
resubmit(,64)
64. priority 0
resubmit(,65)
65. reg15=0x78,metadata=0x15, priority 100, cookie 0x6fc5c888
output:24
Final flow: recirc_id=0x8927cd,eth,tcp,reg0=0x287,reg11=0x17,reg12=0xd,reg13=0x34,reg14=0x1,reg15=0x78,tun_id=0x15,metadata=0x15,in_port=7,vlan_tci=0x0000,dl_src=0a:58:0a:83:02:01,dl_dst=0a:58:0a:82:03:2e,nw_src=10.131.2.40,nw_dst=10.130.3.46,nw_tos=0,nw_ecn=0,nw_ttl=64,tp_src=0,tp_dst=0,tcp_flags=0
Megaflow: recirc_id=0x8927cd,ct_state=+new-est-rel-rpl-inv+trk,ct_label=0/0x1,eth,ip,in_port=7,dl_src=0a:58:0a:83:02:01,dl_dst=0a:58:0a:82:03:2e,nw_src=10.131.2.32/27,nw_dst=10.130.3.46,nw_frag=no
Datapath actions: ct(commit,zone=52,label=0/0x1),20
[core@worker-3 ~]$ sudo ovs-vsctl --column=external_ids find interface ofport=24
external_ids : {attached_mac="0a:58:0a:82:03:2e", iface-id=proj1_hello-6cdb8c795c-qkpk5, ip_addresses="10.130.3.46/23", ovn-installed="true", sandbox=aa2e69638c485e63fa58b83dfc3e435b96c3b8c65c795a10078807fa61a09cde}
[core@worker-3 ~]$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment