WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Network questions

To: "Xiaofang Chen" <xiachen@xxxxxxxxxxx>
Subject: Re: [Xen-devel] Network questions
From: Mark Williamson <Mark.Williamson@xxxxxxxxxxxx>
Date: Wed, 30 Jun 2004 15:08:36 +0100
Cc: "Mark Williamson" <Mark.Williamson@xxxxxxxxxxxx>, Xen-devel@xxxxxxxxxxxxxxxxxxxxx, Mark.Williamson@xxxxxxxxxxxx
Delivery-date: Wed, 30 Jun 2004 15:17:23 +0100
Envelope-to: steven.hand@xxxxxxxxxxxx
In-reply-to: Message from "Xiaofang Chen" <xiachen@xxxxxxxxxxx> of "Tue, 29 Jun 2004 22:46:35 MDT." <00a501c45e5d$397eb070$7eb6639b@XFCHEN>
List-archive: <http://sourceforge.net/mailarchive/forum.php?forum=xen-devel>
List-help: <mailto:xen-devel-request@lists.sourceforge.net?subject=help>
List-id: List for Xen developers <xen-devel.lists.sourceforge.net>
List-post: <mailto:xen-devel@lists.sourceforge.net>
List-subscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=subscribe>
List-unsubscribe: <https://lists.sourceforge.net/lists/listinfo/xen-devel>, <mailto:xen-devel-request@lists.sourceforge.net?subject=unsubscribe>
Sender: xen-devel-admin@xxxxxxxxxxxxxxxxxxxxx
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

<Prev in Thread] Current Thread [Next in Thread>