qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4] net: add the support for -netdev socket, lis


From: Zhi Yong Wu
Subject: Re: [Qemu-devel] [PATCH v4] net: add the support for -netdev socket, listen
Date: Thu, 7 Jun 2012 20:49:18 +0800

On Thu, Jun 7, 2012 at 6:08 PM, Stefan Hajnoczi
<address@hidden> wrote:
> On Wed, Jun 06, 2012 at 09:26:23PM +0800, address@hidden wrote:
>> From: Zhi Yong Wu <address@hidden>
>>
>> The -net socket,listen option does not work with the newer -netdev
>> syntax:
>>  http://lists.gnu.org/archive/html/qemu-devel/2011-11/msg01508.html
>>
>> This patch makes it work now.
>>
>> For the case where one vlan has multiple listenning sockets,
>> the patch will also provide the support.
>>
>> Supported syntax:
>>  1.) -net socket,listen=127.0.0.1:1234,vlan=0
>>  2.) -net socket,listen=127.0.0.1:1234,vlan=0 -net 
>> socket,listen=127.0.0.1:1235,vlan=0
>>  3.) -netdev socket,listen=127.0.0.1:1234,id=socket0
>>
>> Suggested-by: Stefan Hajnoczi <address@hidden>
>> Signed-off-by: Zhi Yong Wu <address@hidden>
>> ---
>>  net.c        |   24 +++++++++++
>>  net.h        |    3 +
>>  net/socket.c |  123 
>> ++++++++++++++++++++++++++++++++++++++++++---------------
>>  3 files changed, 117 insertions(+), 33 deletions(-)
>
> Please include changelogs in new versions of patches.
>
> It looks like you have implemented "1 connection at a time" semantics.
> This is good, I think it maps best to the netdev peer model.  Allowing
> multiple clients to connect to a single listen socket at the same time
> doesn't fit into the netdev peer model.
>
> I think the patch can be simplified a lot though.  There's no need to
> modify net.c or add consumed booleans.
>
> Instead, drop the NetSocketListenState struct and add a listen_fd field
> to NetSocketState.  When a -netdev socket,listen= instance is created
> there will be a NetSocketState with fd=-1 and a valid listen_fd.  The
Have you considered the case where there're mulitple -net
socket,listen= instance in one vlan?
> net_socket_accept() handler waits for listen_fd to become readable and
> then accepts the connection.  When this state transition happens, we no
> longer monitor listen_fd for incoming connections...until the client
> disconnects again.
>
> This approach doesn't need to change net.c or VLANClientState.  It also
> makes memory allocation simpler because we only have 1 struct:
> NetSocketState.
>
> Stefan
>



-- 
Regards,

Zhi Yong Wu



reply via email to

[Prev in Thread] Current Thread [Next in Thread]