netdev
[Top] [All Lists]

Re: Opening more than 65000 sockets

To: Sridhar Samudrala <sri@xxxxxxxxxx>, Ben Greear <greearb@xxxxxxxxxxxxxxx>
Subject: Re: Opening more than 65000 sockets
From: Yan-Fa Li <yanfali@xxxxxxxxx>
Date: Fri, 29 Mar 2002 11:46:08 -0800 (PST)
Cc: Yan-Fa Li <yanfali@xxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <Pine.LNX.4.21.0203291054530.1910-100000@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: owner-netdev@xxxxxxxxxxx
Thanks for the tip.  I tried it out and it doesn't
appear to work.  It actually fails with a different
return code EINVAL (22).  Which isn't even a listed
return code on the connect() man page :(

Anybody else got any more ideas I can try ?

Here's what I used:

k=tcp and on=1

setsockopt(*opensock,k->p_proto,SO_REUSEADDR,&on,sizeof(on));

Is this the wrong syntax ?

Anyway what I really want seems to be SO_REUSEPORT,
and looking at the source code I see this in
/usr/src/linux/include/asm/socket.h:

#define SO_BSDCOMPAT    14
/* To add :#define SO_REUSEPORT 15 */
#define SO_PASSCRED     16

I guess we don't support this feature by design :(
Any clues on if the support is in the kernel but not
turned on ?  Or is this something for 2.5 only ?

Thanks

Yan

p.s. this is 2.4.19-pre3aa2 with /dev/epoll-31 patches.

--- Sridhar Samudrala <sri@xxxxxxxxxx> wrote:
> On Fri, 29 Mar 2002, Ben Greear wrote:
> 
> > 
> > 
> > Yan-Fa Li wrote:
> > 
> > > It fails in the connect() call.  I get EAGAIN messages.
> > > They are TCP socekts.  I have my file-max at 1 Million
> > > files, and ulimit the same.
> > > 
> > >>Port space is unique for a protocol (i.e.: TCP or UDP)
> > >>across a host, independent of interfaces.
> > >>
> > 
> > 
> > That really looks like a bug or mis-feature to me.  Why
> > would we want this limitation?  What would be the problems
> > with fixing it to be per-local-interface?
> 
> you can use the socket option SO_REUSEADDR to bind the same port to 
> multiple sockets, as long as each bind specifies a different 
> localFrom
>  owner-netdev@xxxxxxxxxxx Fri Mar 29 12:49:39 2002
Received: (from majordomo@localhost)
        by oss.sgi.com (8.11.2/8.11.3) id g2TJhsf23216
        for netdev-outgoing; Fri, 29 Mar 2002 11:43:54 -0800
Received: from web13007.mail.yahoo.com (web13007.mail.yahoo.com 
[216.136.174.17])
        by oss.sgi.com (8.11.2/8.11.3) with SMTP id g2TJhkq23212
        for <netdev@xxxxxxxxxxx>; Fri, 29 Mar 2002 11:43:46 -0800
Message-ID: <20020329194608.32090.qmail@xxxxxxxxxxxxxxxxxxxxxxx>
Received: from [65.209.235.11] by web13007.mail.yahoo.com via HTTP; Fri, 29 Mar 
2002 11:46:08 PST
Date: Fri, 29 Mar 2002 11:46:08 -0800 (PST)
From: Yan-Fa Li <yanfali@xxxxxxxxx>
Subject: Re: Opening more than 65000 sockets
To: Sridhar Samudrala <sri@xxxxxxxxxx>, Ben Greear <greearb@xxxxxxxxxxxxxxx>
Cc: Yan-Fa Li <yanfali@xxxxxxxxx>, netdev@xxxxxxxxxxx
In-Reply-To: 
<Pine.LNX.4.21.0203291054530.1910-100000@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: owner-netdev@xxxxxxxxxxx
Precedence: bulk

Thanks for the tip.  I tried it out and it doesn't
appear to work.  It actually fails with a different
return code EINVAL (22).  Which isn't even a listed
return code on the connect() man page :(

Anybody else got any more ideas I can try ?

Here's what I used:

k=tcp and on=1

setsockopt(*opensock,k->p_proto,SO_REUSEADDR,&on,sizeof(on));

Is this the wrong syntax ?

Anyway what I really want seems to be SO_REUSEPORT,
and looking at the source code I see this in
/usr/src/linux/include/asm/socket.h:

#define SO_BSDCOMPAT    14
/* To add :#define SO_REUSEPORT 15 */
#define SO_PASSCRED     16

I guess we don't support this feature by design :(
Any clues on if the support is in the kernel but not
turned on ?  Or is this something for 2.5 only ?

Thanks

Yan

p.s. this is 2.4.19-pre3aa2 with /dev/epoll-31 patches.

--- Sridhar Samudrala <sri@xxxxxxxxxx> wrote:
> On Fri, 29 Mar 2002, Ben Greear wrote:
> 
> > 
> > 
> > Yan-Fa Li wrote:
> > 
> > > It fails in the connect() call.  I get EAGAIN messages.
> > > They are TCP socekts.  I have my file-max at 1 Million
> > > files, and ulimit the same.
> > > 
> > >>Port space is unique for a protocol (i.e.: TCP or UDP)
> > >>across a host, independent of interfaces.
> > >>
> > 
> > 
> > That really looks like a bug or mis-feature to me.  Why
> > would we want this limitation?  What would be the problems
> > with fixing it to be per-local-interface?
> 
> you can use the socket option SO_REUSEADDR to bind the same port to 
> multiple sockets, as long as each bind specifies a different local IP
> address.
> In this way the port space becomes unique for each local ip address. 
> 
> Thanks
> Sridhar
> 


__________________________________________________
Do You Yahoo!?
Yahoo! Greetings - send holiday greetings for Easter, Passover
http://greetings.yahoo.com/

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