Hi team
The version is below:
OVN version: branch-21.09
OVS version: branch-2.16.2
we encounter a issue that ovn-controller generates some non-expected
openflows to forward packets to tunnel ports in table 37 when a localnet
port existed on the datapath. The related information is below:
- Related datapath and ports.
```
switch d9954742-5f9a-440d-8f4a-e9cba08ff5b3
(neutron-102c1351-65a6-4640-8310-c3cd446a5b69) (aka JSNX_APP_VLAN121)
port b4decafe-1948-4214-b021-393953bf94c3 (aka
sc-arm-lnbp-clbatch-13_JSNX_APP_VLAN121_d36c91ab)
addresses: ["fa:16:3e:32:ca:7e 32.12.121.150"]
port 87e5ac12-80b8-4477-af59-dfb0fc0a43ff (aka
sc-arm-lnbp-pfservice-6_JSNX_APP_VLAN121_109c4c56)
addresses: ["fa:16:3e:e7:58:37 32.12.121.103"]
port ad722de8-20ca-4f52-97bf-df29f9512d6e
type: localport
addresses: ["fa:16:3e:3d:96:cd 32.12.121.10"]
...
port 067b57c8-2e50-4a86-a255-31e799a24ac5 (aka
sc-arm-lnbp-taebatch-5_JSNX_APP_VLAN121_a029cd93)
addresses: ["fa:16:3e:e5:0e:10 32.12.121.151"]
port d2479952-a2e2-4c94-b5d9-5086f5a177ee (aka
sc-arm-lnbp-mars-3_JSNX_APP_VLAN121_319305dc)
addresses: ["fa:16:3e:7c:4e:35 32.12.121.194"]
port 64ddd42f-6a70-4060-8782-bd5cad7c4983 (aka
sc-arm-lnbp-clbatch-8_JSNX_APP_VLAN121_7a4ca62f)
addresses: ["fa:16:3e:9c:56:aa 32.12.121.213"]
port provnet-6612e9ff-5364-4788-9b27-0a8c6053bec3
type: localnet
tag: 121
addresses: ["unknown"]
port f004de9d-5e52-43c7-9094-364a07ac420f (aka
sc-arm-lnbp-influxdb-3_JSNX_APP_VLAN121_7527d6dc)
addresses: ["fa:16:3e:96:6b:45 32.12.121.231"]
```
- Related openflows.
```
cookie=0xd9b58719, duration=3803793.502s, table=37, n_packets=0,
n_bytes=0, idle_age=65535, priority=100,reg15=0x37,metadata=0xd
actions=set_field:0xd/0xffffff->tun_id,set_field:0x37->tun_metadata0,move:NXM_NX_REG14[0..14]->NXM_NX_TUN_METADATA0[16..30],output:13
cookie=0x997eb173, duration=3803793.502s, table=37, n_packets=0,
n_bytes=0, idle_age=65535, priority=100,reg15=0x8005,metadata=0xd
actions=set_field:0x2->reg15,resubmit(,39),set_field:0x8005->reg15,set_field:0xd/0xffffff->tun_id,set_field:0x8005->tun_metadata0,move:NXM_NX_REG14[0..14]->NXM_NX_TUN_METADATA0[16..30],output:300,output:14,output:138,output:137,output:299,output:140,output:304,output:303,output:142,output:1,output:302,output:139,output:301,output:13,output:11,output:10,resubmit(,38)
cookie=0xce52adfe, duration=3803793.502s, table=37, n_packets=2475804,
n_bytes=162274574, idle_age=0, priority=100,reg15=0x8000,metadata=0xd
actions=set_field:0x2->reg15,resubmit(,39),set_field:0x8000->reg15,set_field:0xd/0xffffff->tun_id,set_field:0x8000->tun_metadata0,move:NXM_NX_REG14[0..14]->NXM_NX_TUN_METADATA0[16..30],output:300,output:14,output:138,output:137,output:299,output:140,output:304,output:303,output:142,output:1,output:302,output:139,output:301,output:13,output:11,output:10,resubmit(,38)
cookie=0xb9dee9ea, duration=3803793.502s, table=37, n_packets=0,
n_bytes=0, idle_age=65535, priority=100,reg15=0x8003,metadata=0xd
actions=set_field:0xd/0xffffff->tun_id,set_field:0x8003->tun_metadata0,move:NXM_NX_REG14[0..14]->NXM_NX_TUN_METADATA0[16..30],output:300,output:14,output:138,output:137,output:299,output:140,output:304,output:303,output:142,output:1,output:302,output:139,output:301,output:13,output:11,output:10,resubmit(,38)
```
The datapath tunnel_key is 0xd, its localnet port tunnel_key is 0x1
and its localport port tunnel_key is 0x2. From openflows related 0xd
datapath, the localnet port has not been acquired to generate the table
37 non-expected openflows. And other tables can identify the localnet
port, so other tables which generate openflows are correct. For example,
a openflow from table 38
```
cookie=0xce52adfe, duration=3803727.055s, table=38, n_packets=2475787,
n_bytes=162273290, idle_age=0, priority=100,reg15=0x8000,metadata=0xd
actions=set_field:0x1->reg15,resubmit(,39),set_field:0x70->reg13,set_field:0x3->reg15,resubmit(,39),set_field:0x72->reg13,set_field:0x26->reg13,set_field:0x29->reg15,resubmit(,39),set_field:0x39->reg13,set_field:0x33->reg15,resubmit(,39),set_field:0x8000->reg15
```
Based on the above information, we analyze the related ovn-controller
codes. Only one condition that the localnet port is not queried by
get_localnet_port function, the issue will occur.
However, a deeper analysis of the code did not yield more useful
information.
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss