The until a few weeks ago, the unstable tree had a compile-time choice between
"old" and "new" IO world. Recently, the old IO world has been removed, so if
you have pulled recently, the VIRQ_NET and the drivers in Xen, etc should
disappear.
The backend driver creates an virtual "ethernet interface" for each
unprivileged domain whose frontend connects to it. The kernel that is running
the backend driver thinks that it's connected to all the other domains by
ethernet interfaces as well as to the physical network by the physical
ethernet hardware.
Getting packets between virtual interfaces of domains and the physical network
is then just a task of bridging or routing, which is dealt with by the same
code that would transfer packets between multiple ethernet interfaces in any
Linux system. Currently, we use bridging by default. See the code in
linux/net/bridge/ for more details about how the Linux bridging code works.
In your example, when the packet is received on the Vortex card, it eventually
gets passed to the bridging code, which identifies that it should be passed
out on one of the virtual interfaces connected to another domain. It then
passes the packet to the backend driver, which transfers it to the frontend
driver of the destination domain and notifies that domain of the arrival.
Since this stuff happens in the bridging code, you wouldn't be able to find an
obvious call path.
As for the control messages, you should remember that the control interface is
only used for a domain to talk to xend. The backend driver uses the message
you described to tell Xend that it is UP and ready to accept connections from
other domains. When other domains want to connect their network interfaces,
they use their control interface to tell Xend. Xend co-ordinates the process
of connecting, then once the connection is established, the two domains can
talk directly using shared memory. You can find relevant code in
tools/python/xen/xend/server/netif.py (I think) but you'll need to read other
bits of Xend to understand how this all fits together.
It would be nice to have some documentation for this stuff (and we probably
need some diagrams) in the interface manual...
HTH,
Mark
-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
digital self defense, top technical experts, no vendor pitches,
unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel
|