From: Eric Dumazet <eric.dumazet@gmail.com>
To: stefani@seibold.net
Cc: linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
davem@davemloft.net, netdev@vger.kernel.org,
shemminger@vyatta.com
Subject: Re: [PATCH] new UDPCP Communication Protocol
Date: Sat, 01 Jan 2011 23:23:21 +0100 [thread overview]
Message-ID: <1293920601.2535.64.camel@edumazet-laptop> (raw)
In-Reply-To: <1293918276-28773-1-git-send-email-stefani@seibold.net>
Le samedi 01 janvier 2011 à 22:44 +0100, stefani@seibold.net a écrit :
> From: Stefani Seibold <stefani@seibold.net>
>
> Changelog:
> 31.12.2010 first proposal
> 01.01.2011 code cleanup and fixes suggest by Eric Dumazet
>
> UDPCP is a communication protocol specified by the Open Base Station
> Architecture Initiative Special Interest Group (OBSAI SIG). The
> protocol is based on UDP and is designed to meet the needs of "Mobile
> Communcation Base Station" internal communications. It is widely used by
> the major networks infrastructure supplier.
>
> The UDPCP communication service supports the following features:
>
> -Connectionless communication for serial mode data transfer
> -Acknowledged and unacknowledged transfer modes
> -Retransmissions Algorithm
> -Checksum Algorithm using Adler32
> -Fragmentation of long messages (disassembly/reassembly) to match to the MTU
> during transport:
> -Broadcasting and multicasting messages to multiple peers in unacknowledged
> transfer mode
>
> UDPCP supports application level messages up to 64 KBytes (limited by 16-bit
> packet data length field). Messages that are longer than the MTU will be
> fragmented to the MTU.
>
> UDPCP provides a reliable transport service that will perform message
> retransmissions in case transport failures occur.
>
> The code is also a nice example how to implement a UDP based protocol as
> a kernel socket modules.
>
> Due the nature of UDPCP which has no sliding windows support, the latency has a
> huge impact. The perfomance increase by implementing as a kernel module is
> about the factor 10, because there are no context switches and data packets or
> ACKs will be handled in the interrupt service.
>
> There are no side effects to the network subsystems so i ask for merge it
> into linux-next. Hope you like it.
>
> The patch is against 2.6.37-rc8
>
Hi Stefani
1) Please base your next trys on net-next-2.6 : This is the reference
for stuff like that. It probably does not matter a lot, but still...
2) I still see some _irq() variants of spinlock(). Its not necessary in
network stack at the level you are working (process context, and
softirqs)
Please only use _bh() variants, it's enough.
3) I see UDPLITE references in your code. Are you sure UDPCP protocol
can really work on top of UDPLITE ? I think not, so please remove dead
code.
4) udpcp_release_sock() seems expensive to me. Why not testing
usk->timeout before releasing sock lock, and save a lock/unlock pair ?
static inline void udpcp_release_sock(struct sock *sk)
{
struct udpcp_sock *usk = udpcp_sk(sk);
if (usk->timeout)
udpcp_handle_timeout(sk);
release_sock(sk);
}
5) In udpcp_timeout(), if you find socket is locked by user, you set
timeout to one and rearm a timer to udpcp_timer(sk, jiffies + 1);
Why is it needed, since user process is going to handle the timeout
indication from udpcp_release_sock() ?
Thanks
next prev parent reply other threads:[~2011-01-01 22:23 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-01 21:44 [PATCH] new UDPCP Communication Protocol stefani
2011-01-01 22:23 ` Eric Dumazet [this message]
2011-01-02 11:17 ` Stefani Seibold
2011-01-02 11:33 ` Eric Dumazet
2011-01-02 11:57 ` Stefani Seibold
-- strict thread matches above, loose matches on Subject: below --
2011-01-02 15:31 stefani
2011-01-02 16:34 ` Eric Dumazet
2011-01-02 19:48 ` Daniel Baluta
2011-01-02 21:33 ` Stefani Seibold
2011-01-02 21:40 ` Jesper Juhl
2011-01-02 19:55 ` Jesper Juhl
2011-01-02 21:46 ` Stefani Seibold
2011-01-02 22:04 ` Jesper Juhl
2011-01-02 22:21 ` Stefani Seibold
2011-01-02 20:16 ` Rémi Denis-Courmont
2011-01-02 21:37 ` Stefani Seibold
2011-01-02 21:55 ` Eric Dumazet
2011-01-02 22:16 ` Stefani Seibold
2011-01-02 22:31 ` Eric Dumazet
2011-01-02 22:39 stefani
2011-01-02 22:49 ` Eric Dumazet
2011-01-02 22:55 ` Stefani Seibold
2011-01-02 23:04 ` Jesper Juhl
2011-01-03 9:08 ` Stefani Seibold
2011-01-03 9:27 ` Eric Dumazet
2011-01-03 9:54 ` Stefani Seibold
2011-01-03 10:39 ` Eric Dumazet
2011-01-03 14:08 ` Stefani Seibold
2011-01-03 14:34 stefani
2011-01-11 16:48 stefani
2011-01-11 17:01 ` Eric Dumazet
2011-01-11 20:50 ` Stefani Seibold
2011-01-11 20:52 ` David Miller
2011-01-11 21:14 ` Stefani Seibold
2011-01-11 21:19 ` David Miller
2011-01-11 21:41 ` Stefani Seibold
2011-01-11 21:46 ` Eric Dumazet
2011-01-11 22:23 ` Stefani Seibold
2011-01-11 21:30 ` Eric Dumazet
2011-01-11 21:40 ` Stefani Seibold
2011-01-11 21:06 ` Eric Dumazet
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=1293920601.2535.64.camel@edumazet-laptop \
--to=eric.dumazet@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=shemminger@vyatta.com \
--cc=stefani@seibold.net \
/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