From: Stefan Weil <Stefan.Weil@weilnetz.de>
Cc: "Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
qemu-devel@nongnu.org, Mark McLoughlin <markmc@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 00/16] Add a -netdev option
Date: Fri, 09 Oct 2009 19:33:34 +0200 [thread overview]
Message-ID: <4ACF73EE.5050303@weilnetz.de> (raw)
In-Reply-To: <20091009062322.GA2776@laped.iglesias.mooo.com>
Edgar E. Iglesias schrieb:
> On Thu, Oct 08, 2009 at 04:37:41PM -0500, Anthony Liguori wrote:
>
>> Stefan Weil wrote:
>>
>>> Hi Mark,
>>>
>>> today, qemu's ethernet devices are a fixed combination of
>>> MAC (Media Access Controller) and PHY (Physical Layer).
>>>
>>> Real hardware is different: the controllers provide a MAC,
>>> and many provide a PHY, too, but all controllers allow
>>> one or even several external PHY(s).
>>>
>>> Most (or all?) controllers use the same standard interface
>>> to address their PHY (internal or external), something
>>> which is completely missing today in qemu.
>>>
>>> A better solution would use separate code for MAC and
>>> PHY, so the controllers could share common code for the
>>> PHY.
>>>
>>> Configuration of a different PHY should be possible,
>>> so users can run a system emulation of different
>>> MAC-PHY combinations.
>>>
>>> In addition to the PHY type, a PHY needs attributes
>>> (link speed and link status).
>>>
>>>
>> But PHY doesn't really exist in the context of QEMU because virtualizing
>> at the ethernet level.
>>
>
> I think PHY's exist, at least with pure emulation.
>
> Regarding the MII path I think you are right. But many if not most ethernet
> controllers expose a way for software to directly communicate with PHY's
> over MDIO. And software drivers usually read/write PHY registers to
> check/change PHY related settings (speed, link status, duplex settings etc).
>
> etraxfs_eth.c has a small dummy model of a PHY at the MDIO level. Enough to
> fool software to think that's there is a one. Off-tree I've got at least 2
> more controllers with emulated PHY's that are needed to please guest
> software.
>
> Cheers
All other controllers do it the same way as etraxfs_eth.c.
And yes, most operating systems do read/write PHY registers.
PHY emulation needs code for the device model, and for
configuration (PHY type, link status (online / offline),
link speed (10, 100, 1000 Mbps), link type (half duplex,
full duplex). There is a 1:n relationship between MAC and PHY.
Maybe the link status is needed for the core packet handling,
too.
Cheers,
Stefan
next prev parent reply other threads:[~2009-10-09 17:33 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-08 18:58 [Qemu-devel] [PATCH 00/16] Add a -netdev option Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 01/16] slirp: fix !CONFIG_SLIRP compilation Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 02/16] hotplug: safely iterate bus's sibling list while removing a device Mark McLoughlin
2009-10-12 13:16 ` [Qemu-devel] " Gerd Hoffmann
2009-10-12 13:22 ` Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 03/16] net: pass monitor handle to client init functions Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 04/16] net: remove unused qemu_handler_true() Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 05/16] net: handle id= parameter for -net Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 06/16] net: remove id field from NICInfo Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 07/16] net: use qtailq for vlan and client lists Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 08/16] net: allow clients not associated with a vlan Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 09/16] net: add QemuOptsList arg to net_client_parse() Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 10/16] net: add -netdev option Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 11/16] net: handle -netdevice options Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 12/16] net: maintain a list of vlan-less clients Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 13/16] net: add -net nic,netdev= option Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 14/16] net: allow NICs to be connected to netdevs Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 15/16] net: refactor packet queueing code Mark McLoughlin
2009-10-08 18:58 ` [Qemu-devel] [PATCH 16/16] net: add queue for peer-to-peer packet forwarding Mark McLoughlin
2009-10-08 20:29 ` [Qemu-devel] [PATCH 00/16] Add a -netdev option Stefan Weil
2009-10-08 21:37 ` Anthony Liguori
2009-10-09 6:23 ` Edgar E. Iglesias
2009-10-09 17:33 ` Stefan Weil [this message]
2009-10-09 7:09 ` Mark McLoughlin
2009-10-09 8:41 ` Edgar E. Iglesias
2009-10-09 15:26 ` Anthony Liguori
2009-10-10 19:26 ` Michael S. Tsirkin
2009-11-10 15:44 ` Paul Brook
2009-11-10 15:45 ` Mark McLoughlin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4ACF73EE.5050303@weilnetz.de \
--to=stefan.weil@weilnetz.de \
--cc=edgar.iglesias@gmail.com \
--cc=markmc@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).