All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/25] CCID-4 Kconfig and Makefile
@ 2007-10-31 23:18 Leandro
  2007-11-02  8:42 ` Ian McDonald
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Leandro @ 2007-10-31 23:18 UTC (permalink / raw)
  To: dccp

[CCID-4] CCID-4 Kconfig and Makefile

Signed-off-by: Leandro Melo de Sales <leandro@embedded.ufcg.edu.br>
Signed-off-by: Tommi Saviranta <wnd@iki.fi>

Index: leandro.new/net/dccp/ccids/Kconfig
=================================--- leandro.new.orig/net/dccp/ccids/Kconfig
+++ leandro.new/net/dccp/ccids/Kconfig
@@ -106,9 +106,82 @@ config IP_DCCP_CCID3_RTO
 	    is serious network congestion: experimenting with larger values should
 	    therefore not be performed on WANs.
 
-# The TFRC Library: currently only has CCID 3 as customer
+config IP_DCCP_CCID4
+       tristate "CCID4 (TCP-Friendly, Small Packet Variant) (EXPERIMENTAL)"
+       depends on IP_DCCP
+       def_tristate IP_DCCP
+       ---help---
+          CCID-4 denotes Congestion Control Identifier 4, the Small-Packet
+          variant of TCP-Friendly Rate Control (TFRC), in the Datagram
+          Congestion Control Protocol (DCCP).  CCID 4 is for experimental use,
+          and uses TFRC-SP [RFC4828], a variant of TFRC designed for applications
+          that send small packets.  The goal for TFRC-SP is to achieve roughly the
+          same bandwidth in bits per second (bps) as a TCP flow using packets of up
+          to 1500 bytes but experiencing the same level of congestion.  CCID 4 is for
+          experimental use for senders that send small packets and would like a
+          TCP-friendly sending rate, possibly with Explicit Congestion
+          Notification (ECN), while minimizing abrupt rate changes.
+
+          CCID-4 is a Internet-Draft and it can be found at:
+          https://datatracker.ietf.org/drafts/draft-floyd-dccp-ccid4/
+
+          The TFRC-SP congestion control algorithms were initially described in
+          RFC 4828.
+
+          To compile this CCID as a module, choose M here: the module will be
+          called dccp_ccid4.
+
+          If in doubt, say M.
+
+config IP_DCCP_CCID4_DEBUG
+         bool "CCID4 debugging messages"
+         depends on IP_DCCP_CCID4
+         ---help---
+           Enable CCID4-specific debugging messages.
+
+           When compiling CCID4 as a module, this debugging output can
+           additionally be toggled by setting the ccid4_debug module
+           parameter to 0 or 1.
+
+           If in doubt, say N.
+
+config IP_DCCP_CCID4_RTO
+         int "Use higher bound for nofeedback timer"
+         default 100
+         depends on IP_DCCP_CCID4 && EXPERIMENTAL
+         ---help---
+           This help is a copy of CCID3 RTO option. It must be updated, if
+           necessary, according to the CCID-4 internet draft.
+
+           Use higher lower bound for nofeedback timer expiration.
+
+           The TFRC-SP nofeedback timer normally expires after the maximum of 4
+           RTTs and twice the current send interval (RFC 3448, 4.3). On LANs
+           with a small RTT this can mean a high processing load and reduced
+           performance, since then the nofeedback timer is triggered very
+           frequently.
+
+           This option enables to set a higher lower bound for the nofeedback
+           value. Values in units of milliseconds can be set here.
+
+           A value of 0 disables this feature by enforcing the value specified
+           in RFC 3448. The following values have been suggested as bounds for
+           experimental use:
+               * 16-20ms to match the typical multimedia inter-frame interval
+               * 100ms as a reasonable compromise [default]
+               * 1000ms corresponds to the lower TCP RTO bound (RFC 2988, 2.4)
+
+           The default of 100ms is a compromise between a large value for
+           efficient DCCP implementations, and a small value to avoid disrupting
+           the network in times of congestion.
+
+           The purpose of the nofeedback timer is to slow DCCP down when there
+           is serious network congestion: experimenting with larger values should
+           therefore not be performed on WANs.
+
+# The TFRC Library: currently has CCID 3 and CCID 4 as customer
 config IP_DCCP_TFRC_LIB
-	depends on IP_DCCP_CCID3
+	depends on IP_DCCP_CCID3 || IP_DCCP_CCID4
 	def_tristate IP_DCCP_CCID3
 
 config IP_DCCP_TFRC_DEBUG
Index: leandro.new/net/dccp/ccids/Makefile
=================================--- leandro.new.orig/net/dccp/ccids/Makefile
+++ leandro.new/net/dccp/ccids/Makefile
@@ -1,3 +1,7 @@
+obj-$(CONFIG_IP_DCCP_CCID4) += dccp_ccid4.o
+
+dccp_ccid4-y := ccid4.o
+
 obj-$(CONFIG_IP_DCCP_CCID3) += dccp_ccid3.o
 
 dccp_ccid3-y := ccid3.o

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/25] CCID-4 Kconfig and Makefile
  2007-10-31 23:18 [PATCH 1/25] CCID-4 Kconfig and Makefile Leandro
@ 2007-11-02  8:42 ` Ian McDonald
  2007-11-08 10:57 ` Gerrit Renker
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Ian McDonald @ 2007-11-02  8:42 UTC (permalink / raw)
  To: dccp

On 11/1/07, Leandro <leandroal@gmail.com> wrote:
> [CCID-4] CCID-4 Kconfig and Makefile
>
> Signed-off-by: Leandro Melo de Sales <leandro@embedded.ufcg.edu.br>
> Signed-off-by: Tommi Saviranta <wnd@iki.fi>
>
> Index: leandro.new/net/dccp/ccids/Kconfig

Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/25] CCID-4 Kconfig and Makefile
  2007-10-31 23:18 [PATCH 1/25] CCID-4 Kconfig and Makefile Leandro
  2007-11-02  8:42 ` Ian McDonald
@ 2007-11-08 10:57 ` Gerrit Renker
  2007-11-13 16:24 ` Łeandro Sales
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Gerrit Renker @ 2007-11-08 10:57 UTC (permalink / raw)
  To: dccp

| +config IP_DCCP_CCID4_DEBUG
| +         bool "CCID4 debugging messages"
| +         depends on IP_DCCP_CCID4
<snip>
| +# The TFRC Library: currently has CCID 3 and CCID 4 as customer
|  config IP_DCCP_TFRC_LIB
| -	depends on IP_DCCP_CCID3
| +	depends on IP_DCCP_CCID3 || IP_DCCP_CCID4
|  	def_tristate IP_DCCP_CCID3
|  
|  config IP_DCCP_TFRC_DEBUG
Suggestion: if CCID3 is not compiled as module, there will currently be
no TFRC debugging output for dccp_tfrc_lib when only CCID4 is enabled.
Something like

config IP_DCCP_TFRC_DEBUG
	bool
	default y if IP_DCCP_CCID3_DEBUG || IP_DCCP_CCID4_DEBUG 

would enable this.

On the other hand, the number of `debugs' keeps continually growing.
Maybe it is possible to just use tfrc_debug for everything that speaks
TFRC, otherwise we currently have
 * tfrc_debug   to enable debug messages in dccp_tfrc_lib
 * ccid3_debug            "                 dccp_ccid3
 * ccid4_debug            "                 dccp_ccid4
 * dccp_debug   to see the rest

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/25] CCID-4 Kconfig and Makefile
  2007-10-31 23:18 [PATCH 1/25] CCID-4 Kconfig and Makefile Leandro
  2007-11-02  8:42 ` Ian McDonald
  2007-11-08 10:57 ` Gerrit Renker
@ 2007-11-13 16:24 ` Łeandro Sales
  2007-11-13 16:27 ` Gerrit Renker
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Łeandro Sales @ 2007-11-13 16:24 UTC (permalink / raw)
  To: dccp

2007/11/8, Gerrit Renker <gerrit@erg.abdn.ac.uk>:
> | +config IP_DCCP_CCID4_DEBUG
> | +         bool "CCID4 debugging messages"
> | +         depends on IP_DCCP_CCID4
> <snip>
> | +# The TFRC Library: currently has CCID 3 and CCID 4 as customer
> |  config IP_DCCP_TFRC_LIB
> | -     depends on IP_DCCP_CCID3
> | +     depends on IP_DCCP_CCID3 || IP_DCCP_CCID4
> |       def_tristate IP_DCCP_CCID3
> |
> |  config IP_DCCP_TFRC_DEBUG
> Suggestion: if CCID3 is not compiled as module, there will currently be
> no TFRC debugging output for dccp_tfrc_lib when only CCID4 is enabled.
> Something like
>
> config IP_DCCP_TFRC_DEBUG
>         bool
>         default y if IP_DCCP_CCID3_DEBUG || IP_DCCP_CCID4_DEBUG
>
> would enable this.
>
> On the other hand, the number of `debugs' keeps continually growing.
> Maybe it is possible to just use tfrc_debug for everything that speaks
> TFRC, otherwise we currently have
>  * tfrc_debug   to enable debug messages in dccp_tfrc_lib
>  * ccid3_debug            "                 dccp_ccid3
>  * ccid4_debug            "                 dccp_ccid4
>  * dccp_debug   to see the rest
> -
> To unsubscribe from this list: send the line "unsubscribe dccp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

Yes, it is better to have tfrc_debug for everything related to TFRC. I
will also fix the IP_DCCP_TFRC_DEBUG kconfig option like you
suggested.

Leandro.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/25] CCID-4 Kconfig and Makefile
  2007-10-31 23:18 [PATCH 1/25] CCID-4 Kconfig and Makefile Leandro
                   ` (2 preceding siblings ...)
  2007-11-13 16:24 ` Łeandro Sales
@ 2007-11-13 16:27 ` Gerrit Renker
  2007-11-13 16:32 ` Łeandro Sales
  2007-11-16 13:39 ` Gerrit Renker
  5 siblings, 0 replies; 7+ messages in thread
From: Gerrit Renker @ 2007-11-13 16:27 UTC (permalink / raw)
  To: dccp

Quoting Leandro:
| 2007/11/8, Gerrit Renker <gerrit@erg.abdn.ac.uk>:
| > | +config IP_DCCP_CCID4_DEBUG
| > | +         bool "CCID4 debugging messages"
| > | +         depends on IP_DCCP_CCID4
| > <snip>
| > | +# The TFRC Library: currently has CCID 3 and CCID 4 as customer
| > |  config IP_DCCP_TFRC_LIB
| > | -     depends on IP_DCCP_CCID3
| > | +     depends on IP_DCCP_CCID3 || IP_DCCP_CCID4
| > |       def_tristate IP_DCCP_CCID3
| > |
| > |  config IP_DCCP_TFRC_DEBUG
| > Suggestion: if CCID3 is not compiled as module, there will currently be
| > no TFRC debugging output for dccp_tfrc_lib when only CCID4 is enabled.
| > Something like
| >
| > config IP_DCCP_TFRC_DEBUG
| >         bool
| >         default y if IP_DCCP_CCID3_DEBUG || IP_DCCP_CCID4_DEBUG
| >
| > would enable this.
| >
| > On the other hand, the number of `debugs' keeps continually growing.
| > Maybe it is possible to just use tfrc_debug for everything that speaks
| > TFRC, otherwise we currently have
| >  * tfrc_debug   to enable debug messages in dccp_tfrc_lib
| >  * ccid3_debug            "                 dccp_ccid3
| >  * ccid4_debug            "                 dccp_ccid4
| >  * dccp_debug   to see the rest
| > -
| 
| Yes, it is better to have tfrc_debug for everything related to TFRC. I
| will also fix the IP_DCCP_TFRC_DEBUG kconfig option like you
| suggested.
| 
Please do as you see fit, but don't worry too much at this stage - this
can all be resolved later (i.e. further abstraction can be done later).

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/25] CCID-4 Kconfig and Makefile
  2007-10-31 23:18 [PATCH 1/25] CCID-4 Kconfig and Makefile Leandro
                   ` (3 preceding siblings ...)
  2007-11-13 16:27 ` Gerrit Renker
@ 2007-11-13 16:32 ` Łeandro Sales
  2007-11-16 13:39 ` Gerrit Renker
  5 siblings, 0 replies; 7+ messages in thread
From: Łeandro Sales @ 2007-11-13 16:32 UTC (permalink / raw)
  To: dccp

2007/11/13, Gerrit Renker <gerrit@erg.abdn.ac.uk>:
> Quoting Leandro:
> | 2007/11/8, Gerrit Renker <gerrit@erg.abdn.ac.uk>:
> | > | +config IP_DCCP_CCID4_DEBUG
> | > | +         bool "CCID4 debugging messages"
> | > | +         depends on IP_DCCP_CCID4
> | > <snip>
> | > | +# The TFRC Library: currently has CCID 3 and CCID 4 as customer
> | > |  config IP_DCCP_TFRC_LIB
> | > | -     depends on IP_DCCP_CCID3
> | > | +     depends on IP_DCCP_CCID3 || IP_DCCP_CCID4
> | > |       def_tristate IP_DCCP_CCID3
> | > |
> | > |  config IP_DCCP_TFRC_DEBUG
> | > Suggestion: if CCID3 is not compiled as module, there will currently be
> | > no TFRC debugging output for dccp_tfrc_lib when only CCID4 is enabled.
> | > Something like
> | >
> | > config IP_DCCP_TFRC_DEBUG
> | >         bool
> | >         default y if IP_DCCP_CCID3_DEBUG || IP_DCCP_CCID4_DEBUG
> | >
> | > would enable this.
> | >
> | > On the other hand, the number of `debugs' keeps continually growing.
> | > Maybe it is possible to just use tfrc_debug for everything that speaks
> | > TFRC, otherwise we currently have
> | >  * tfrc_debug   to enable debug messages in dccp_tfrc_lib
> | >  * ccid3_debug            "                 dccp_ccid3
> | >  * ccid4_debug            "                 dccp_ccid4
> | >  * dccp_debug   to see the rest
> | > -
> |
> | Yes, it is better to have tfrc_debug for everything related to TFRC. I
> | will also fix the IP_DCCP_TFRC_DEBUG kconfig option like you
> | suggested.
> |
> Please do as you see fit, but don't worry too much at this stage - this
> can all be resolved later (i.e. further abstraction can be done later).
> -
> To unsubscribe from this list: send the line "unsubscribe dccp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

Then I will let this as it is and after we can working on this. Ok?

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/25] CCID-4 Kconfig and Makefile
  2007-10-31 23:18 [PATCH 1/25] CCID-4 Kconfig and Makefile Leandro
                   ` (4 preceding siblings ...)
  2007-11-13 16:32 ` Łeandro Sales
@ 2007-11-16 13:39 ` Gerrit Renker
  5 siblings, 0 replies; 7+ messages in thread
From: Gerrit Renker @ 2007-11-16 13:39 UTC (permalink / raw)
  To: dccp

| > | > Suggestion: if CCID3 is not compiled as module, there will currently be
| > | > no TFRC debugging output for dccp_tfrc_lib when only CCID4 is enabled.
| > | > Something like
| > | >
| > | > config IP_DCCP_TFRC_DEBUG
| > | >         bool
| > | >         default y if IP_DCCP_CCID3_DEBUG || IP_DCCP_CCID4_DEBUG
| > | >
| > | > would enable this.
| > | >
| > | > On the other hand, the number of `debugs' keeps continually growing.
| > | > Maybe it is possible to just use tfrc_debug for everything that speaks
| > | > TFRC, otherwise we currently have
| > | >  * tfrc_debug   to enable debug messages in dccp_tfrc_lib
| > | >  * ccid3_debug            "                 dccp_ccid3
| > | >  * ccid4_debug            "                 dccp_ccid4
| > | >  * dccp_debug   to see the rest
| > | > -
<snip>
| 
| Then I will let this as it is and after we can working on this. Ok?
| 
Yes that's absolutely fine. I just checked: none of the trees
(origin|dccp|ccid4) currently uses tfrc_pr_debug(), so this is something
to be investigated when thinking of sharing code between ccid4/ccid3.

Either that macro / variable should then be obsoleted, or it could be
shared between CCID3/4.
-- 

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-11-16 13:39 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-31 23:18 [PATCH 1/25] CCID-4 Kconfig and Makefile Leandro
2007-11-02  8:42 ` Ian McDonald
2007-11-08 10:57 ` Gerrit Renker
2007-11-13 16:24 ` Łeandro Sales
2007-11-13 16:27 ` Gerrit Renker
2007-11-13 16:32 ` Łeandro Sales
2007-11-16 13:39 ` Gerrit Renker

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.