LibvirtHybridOVS problem while trying to loopback packets
I have folsom/quantum setup. As we know nova creates per VM bridge and adds a veth pair between the bridge and quantum' s integration bridge. Connections are like this:
{veth1-
Now inside the vm, i am trying to loopback packets that are coming into its eth0 interface. I am using L2 raw PACKET sockets to achieve this. The code for that is
s = socket.socket( socket.AF_PACKET , socket.SOCK_RAW)
s.bind(
packet = s.recvfrom(65565)
/*Then I change the source mac to this vm's mac*/
/*later on*/
s.send(packet)
So now I send packets from my veth pair and they are received in the VM. Similarly normal packets actually originated by the VM(e.g ping) are received on the veth. The problem is with these packets that are looped back, I can see them on the tap device,but cannot see them on my veth pair. The VM's eth0Frame TX count increments properly which means the packets was successfully sent from the it, hence i can see it on the tap interface.
Next device on the return path is the linux bridge. It seems to me that bridge is not getting the packets from the tap dev for some reason. BUT here is the catch, packet actually originated from the VM make it out just fine.
The RX count for the bridge is also not incrementing is this case. What could have happened? Any ideas?
However, if I start a ping from within the VM that packet reaches the tap device and the bridge. Are there any pointers to debug this issue? can we see dropped packets on tap device thats created during vif plugging?
thanks
Asif
Question information
- Language:
- English Edit question
- Status:
- Answered
- For:
- neutron Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask Asif for more information if necessary.