On Wed, Jul 17, 2024 at 6:07 AM Jun Gu <[email protected]> wrote:
>
> 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.

Seems to me this could be a bug in the ovn-controller's incremental
processing (I-P) and should be fixed in recent versions.

Can you please run the command - "ovn-appctl -t ovn-controller
recompute" or "ovn-appctl -t ovn-controller inc-engine/recompute"
and see if the non-expected openflows are deleted ?  This would
confirm if its an I-P bug or not.

Thanks
Numan

>
>
>
>
> _______________________________________________
> dev mailing list
> [email protected]
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to