Differences between version 46 and revision by previous author of DCCP.
Other diffs: Previous Major Revision, Previous Revision, or view the Annotated Edit History
Newer page: | version 46 | Last edited on Friday, November 4, 2005 2:47:55 pm | by IanMcDonald | Revert |
Older page: | version 37 | Last edited on Tuesday, October 4, 2005 8:53:13 am | by BruceBarnett | Revert |
@@ -10,9 +10,9 @@
There is also a [writeup at LWN|http://lwn.net/Articles/149756/].
!!DCCP stack for Linux
-Much of this page is shifting to http://developer
.osdl.org/shemminger/wiki
/index.php/DCCP - please update both webpages at present until [OSDL] becomes a production machine
.
+Much of this page is shifting to http://linux-net
.osdl.org/index.php/DCCP - that page is considered the definitive reference for the DCCP implementation for Linux
.
There is a [GPL] version of DCCP being produced at present for the [LinuxKernel]. This is being maintained by ArnaldoMelo at present. The history of this is that it draws from the code of Patrick ~McManus, Lulea and the [WAND] group that IanMcDonald is part of. The status of this is that it has been accepted by LinusTorvalds into his 2.6.14 tree.
The core DCCP stack was written by ArnaldoMelo using the Linux [TCP] implementation as a model, with DCCP being used as a way to identify code in the [TCP] implementation that could be made generic and shared with other INET transport level implementations. This resulted in the generalisation of code related to the minisockets representing both TCP_SYN_RECV/DCCP_RESPOND and TCP_TIME_WAIT/DCCP_TIME_WAIT status, code related to established/timewait/listen sockets (inet_lookup, inet_lookup_established, etc), the interface to get sock information (tcp_diag), and many other functions and data structures, with more expected to be generalised and eventually used by [SCTP] and any other INET transport protocols that may be introduced in the future.
@@ -66,22 +66,56 @@
http://www1.ietf.org/mail-archive/web/dccp/current/index.html - A discussion of the DCCP protocol by the IETF
http://www.mail-archive.com/dccp@vger.kernel.org/ - a discussion of the Linux implementation of DCCP
+!!To do & testing
+There is a [Todo list|http://linux-net.osdl.org/index.php/TODO#DCCP] also which tracks the issues needing working on.
+There is a [DCCPTesting] page which also talks about the status of testing in [DCCP].
-!!To do & testing
+There is sample code at http://wand.net.nz/~iam4/dccp/sample/ that uses the mmap interface for the 2.4 kernel.
-There is
a [DCCPToDo
] list also which tracks the issues needing working on
. The
[WLUG
] wiki is currently
the master maintainer
for this
.
+There are
a couple of ttcp implementations for DCCP available for the 2.6
[LinuxKernel
]:
+* http://wand
.net.nz/~iam4/dccp/ttcp_new.c that works with earlier versions of
[DCCP
]
+* http://wand.net.nz/~iam4/dccp/ttcp_acme.c that works with later versions of [DCCP] that require
the service option to be set (gives ERRNO of 22 otherwise). This has had include files altered slightly from [ArnaldoMelo]s version (just
for TFRC) and should be compiled like
+<pre>
+gcc ttcp_acme.c -o ttcp_acme -I ~~/linuxsrc/dccpwork/include/
+</pre>
+change is:
+<pre>
+-#include <netinet/tfrc.h>
++// #include <netinet/tfrc.h>
++#include <linux/tfrc
.h>
+</pre>
-There is a
[DCCPTesting
] page which also talks about the status of testing in [DCCP].
+!!
[Iperf
]
-There is sample code at
http://wand.net.nz/~iam4/dccp/sample/ that uses the mmap interface for the
2.4 kernel, and a ttcp implementation for DCCP at http://wand
.net
.nz/~iam4/dccp/ttcp_new
.c that works with
the 2
.6 kernel
+There is an [Iperf] patch available [here|
http://wand.net.nz/~iam4/dccp/dccp-iperf-
2.
.2-1
.diff]
+
+!!FAQ
+Q: Why do I get an errno 13 ([EACCES]) or permission denied?<br>
+A: You are running [SELinux] which does not yet have DCCP support
. Disable [SELinux].
+
+Q: Why do I get an errno 71 ([EPROTO]) or Protocol error?<br>
+A: It might be because you haven't set
the service option which is compulsory
. Sample code below:
+<verbatim>
+#define SOL_DCCP 269
+#define DCCP_SOCKOPT_SERVICE 2
+
+void SetDCCPSocketOptions( thread_Settings *inSettings ) {
+ char *dummy_svc = "junk";
+ Socklen_t len = sizeof(dummy_svc);
+ int rc;
+
+ rc = setsockopt( inSettings->mSock, SOL_DCCP, DCCP_SOCKOPT_SERVICE,
+ (char*) &dummy_svc, len );
+}
+</verbatim>
For more details, ask IanMcDonald from the WandGroup.
See also:
* KernelDevelopment
----
CategoryProtocols