I have the same sysctl configuration.
Perhaps you are missing the ovs flow in br-ex that changes the MAC in the outgoing traffic by the one of br-ex, so that br-ex can pick it up?
$ sudo ovs-ofctl dump-flows br-ex cookie=0x3e7, duration=17401.889s, table=0, n_packets=299, n_bytes=28284, priority=900,ip,in_port="patch-provnet-0" actions=mod_dl_dst:2a:d2:6f:5b:3b:4a,NORMAL cookie=0x3e7, duration=17401.879s, table=0, n_packets=500, n_bytes=50380, priority=900,ipv6,in_port="patch-provnet-0" actions=mod_dl_dst:2a:d2:6f:5b:3b:4a,NORMAL cookie=0x0, duration=21009.799s, table=0, n_packets=901, n_bytes=176415, priority=0 actions=NORMAL
I have the same sysctl configuration.
Perhaps you are missing the ovs flow in br-ex that changes the MAC in the outgoing traffic by the one of br-ex, so that br-ex can pick it up?
$ sudo ovs-ofctl dump-flows br-ex 17401.889s, table=0, n_packets=299, n_bytes=28284, priority= 900,ip, in_port= "patch- provnet- 0" actions= mod_dl_ dst:2a: d2:6f:5b: 3b:4a,NORMAL 17401.879s, table=0, n_packets=500, n_bytes=50380, priority= 900,ipv6, in_port= "patch- provnet- 0" actions= mod_dl_ dst:2a: d2:6f:5b: 3b:4a,NORMAL 21009.799s, table=0, n_packets=901, n_bytes=176415, priority=0 actions=NORMAL
cookie=0x3e7, duration=
cookie=0x3e7, duration=
cookie=0x0, duration=