netdev
[Top] [All Lists]

Re: [PATCH] Improve behaviour of Netlink Sockets

To: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [PATCH] Improve behaviour of Netlink Sockets
From: jamal <hadi@xxxxxxxxxx>
Date: 19 Sep 2004 22:39:04 -0400
Cc: Pablo Neira <pablo@xxxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <20040919231734.GA10124@xxxxxxxxxxxxxxxxxxx>
Organization: jamalopolous
References: <414D0CCD.90209@xxxxxxxxxxx> <E1C8way-0000aH-00@xxxxxxxxxxxxxxxxxxxxxxxx> <20040919120249.GA5963@xxxxxxxxxxxxxxxxxxx> <414DF11C.1080505@xxxxxxxxxxx> <20040919215915.GB9573@xxxxxxxxxxxxxxxxxxx> <1095633569.1047.107.camel@xxxxxxxxxxxxxxxx> <20040919231734.GA10124@xxxxxxxxxxxxxxxxxxx>
Reply-to: hadi@xxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
On Sun, 2004-09-19 at 19:17, Herbert Xu wrote:
> Congestion control would be a good alternative to overruns.  I too would
> love to see netlink made more reliable if possible.  But hopefully without
> sacrificing the good bits in it like performance.

Agreed.
Note the fact that netlink can set the socket error flag provides it
with the workings needed for reliability i.e you get to know about lost
messages. If an overun occurs you (app) gets to know about it. You just
have to poll, unfortunately, for everything _again_.
 
> However, in the scenarios that's been cited so far I can't see how it can
> work.  For example, in the ip_queue context, the kernel really doesn't
> have any alternative to dropping the packet, right?

I havent paid a lot of attention to ip_queue workings. But something
that will get the kernel to backoff when a certain socket threshold gets
exceeded then get it going again when a below a low watermak. Dumps
already have markers stored in the callbacks, maybe something a long the
same line of thinking. You may have to tell user space "theres more
coming". Not sure how to achieve this, just brainstorming.
Essentially this is where the improvements over std overun signaling is,
IMO.

cheers,
jamal


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