|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Network questions
Thanks a lot for the explainations!
The idea seems clear to me now.
I guess the code I was reading was a "middle" version between the ealy
unstable and latest unstable.
I got such a version by using "bk pull" based on the early unstable version,
so that the code included both VIRQ_NET and "backend".
For the latest unstable version, I am still not clear on how the "backend"
controls the physical network device.
For example, if I use a 3Com 3c59x.c driver, when packets come, after
'vortex_rx()' is called, '/net/core/dev.c: netif_rx()' will be called.
Along this way up, it seems that no functions in "backend" will be called.
Also in /arch/xen/drivers/netif/backend/control.c: netif_ctrlif_init(),
after the cmsg(CMSG_NETIF_BE_DRIVER_STATUS_CHANGED + NETIF_DRIVER_STATUS_UP)
is put into ctrl_if tx_ring, seems no corresponding handlers are called
because of id=0xFF. Confused here.
Am I missing something?
Thanks.
Xiaofang
> Are you using Xen 1.2 or unstable? There have been big changes to
networking
> in the unstable tree. In my previous e-mail I was describing the current
> state of the unstable tree.
>
> The old IO world: (as used by Xen 1.2 and as described in the SOSP paper)
> * Device drivers for physical network devices are in Xen.
> * All domains (including 0) use a "virtual" network driver, which talks to
> Xen. Xen then routes packets between domains or out onto the physical
network.
> * VIRQ_NET is the IRQ associated with a virtual network device. Xen uses
it
> to signal a domain when it has been sent data by another domain or from
the
> physical network.
> * There's no "backend", just Xen.
>
> The new IO world: (as used by the Unstable tree and the forthcoming 2.0
> release)
> * Xen does not contain device drivers anymore.
> * Instead, the device drivers for physical devices run in domains.
Usually,
> all the drivers for your hardware run in dom0.
> * A domain that's controlling physical devices can export virtual devices
to
> other domains. The driver which exports a device to other domains is
called
> the "backend".
> * The driver which imports a virtual device from the backend is called the
> "frontend". This driver runs in unprivileged domains to give them their
> virtual devices. It's a lot like the old (1.2) virtual network interface
> driver except that it talks to another domain instead of to Xen.
> * VIRQ_NET does not exist anymore. Instead, the backend driver (in the
domain
> that controls the hardware) can send an interrupt to the frontend driver
(in
> the domain using the virtual devices) using the event channel mechanism I
> described in my last e-mail.
>
> Does that make sense?
>
> 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
|
|
|
|
|