All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.