IP communication not working between SRIOV and docker bridge network

IP communication not working between SRIOV and docker bridge network
Procedure for testing :
1.We have one linux machine which is connected to host via L2 Switch.
2.In Host linux machine, we are running a Centos VM, Centos VM is using SRIOV based interface, it means one vf is allocated to centos VM (Eth1)
3.Inside Centos VM, I am creating a docker bridge say “br0” and adding SRIOV interface (Eth1) under the bridge (br0), then launching a docker container which is attaching to br0
4.Now I am sending ping from linux machine (192.168.31.100) to docker container (192.168.31.200), But this is not working.
5.But when I am allocating (192.168.31.200) IP on SRIOV interface(Eth1) in CENTOS VM then it is working fine.

When i ping from 192.168.31.100 machine to 192.168.31.200(Docker container), ARP resolution is working, it means container is sending ARP response for ARP broadcast to external machine, after that ICMP request is reaching in host interface ens1f0, but we are unable to see ICMP request inside VM.

I am suspecting some problem with docker bridge. Because if i assign same IP in 192.168.31.200 on VMs eth1 interface then everything is working fine.

Please let us know why communication is not working when we are using SRIOV and docker bridge network in CENTOS VM.

Command used for docker bridge creation :docker network create --driver=bridge --subnet=192.168.31.0/24 --gateway=192.168.31.101 --ip-range=192.168.31.200/25 testbridge -o "com.docker.network.bridge.name"="br0"

I have attached the setup diagram for the same.


Docker engine is : Docker version 18.03.0-ce-rc1, build c160c73

This problem is resolved by making trust parameter ON, on virtual function in host linux machine

Command executed : ip link set ens1f0 vf 1 trust on

Command Syntax : ip link set <physical_function> vf <vf_index> trust on

After change, VF will be looks like below :
vf 1 MAC c6:f0:ae:f6:b6:f5, vlan 161, spoof checking on, link-state auto, trust on, query_rss off