From: Arnaldo Carvalho de Melo <acme@redhat.com>
To: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Cc: dccp@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH 07/37] dccp: Registration routines for changing feature values
Date: Thu, 28 Aug 2008 17:54:47 -0300 [thread overview]
Message-ID: <20080828205447.GN9193@ghostprotocols.net> (raw)
In-Reply-To: <1219945512-7723-8-git-send-email-gerrit@erg.abdn.ac.uk>
Em Thu, Aug 28, 2008 at 07:44:42PM +0200, Gerrit Renker escreveu:
> Two registration routines, for SP and NN features, are provided by this patch,
> replacing a previous routine which was used for both feature types.
>
> These are internal-only routines and therefore start with `__feat_register'.
>
> It further exports the known limits of Sequence Window and Ack Ratio as symbolic
> constants.
>
> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
> Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
> ---
> net/dccp/ccids/ccid2.c | 6 +-
> net/dccp/feat.c | 123 +++++++++++++++++++++++++++++++++++++++---------
> net/dccp/feat.h | 25 +++++++++-
> net/dccp/proto.c | 2 +-
> 4 files changed, 128 insertions(+), 28 deletions(-)
>
> --- a/net/dccp/ccids/ccid2.c
> +++ b/net/dccp/ccids/ccid2.c
> @@ -25,7 +25,7 @@
> /*
> * This implementation should follow RFC 4341
> */
> -
> +#include "../feat.h"
> #include "../ccid.h"
> #include "../dccp.h"
> #include "ccid2.h"
> @@ -147,8 +147,8 @@ static void ccid2_change_l_ack_ratio(struct sock *sk, u32 val)
> DCCP_WARN("Limiting Ack Ratio (%u) to %u\n", val, max_ratio);
> val = max_ratio;
> }
> - if (val > 0xFFFF) /* RFC 4340, 11.3 */
> - val = 0xFFFF;
> + if (val > DCCPF_ACK_RATIO_MAX)
> + val = DCCPF_ACK_RATIO_MAX;
>
> if (val == dp->dccps_l_ack_ratio)
> return;
> --- a/net/dccp/feat.c
> +++ b/net/dccp/feat.c
> @@ -297,6 +297,95 @@ cloning_failed:
> return -ENOMEM;
> }
>
> +static u8 dccp_feat_is_valid_nn_val(u8 feat_num, u64 val)
> +{
> + switch (feat_num) {
> + case DCCPF_ACK_RATIO:
> + return val <= DCCPF_ACK_RATIO_MAX;
> + case DCCPF_SEQUENCE_WINDOW:
> + return val >= DCCPF_SEQ_WMIN && val <= DCCPF_SEQ_WMAX;
> + }
> + return 0; /* feature unknown - so we can't tell */
> +}
> +
> +/* check that SP values are within the ranges defined in RFC 4340 */
> +static u8 dccp_feat_is_valid_sp_val(u8 feat_num, u8 val)
> +{
> + switch (feat_num) {
> + case DCCPF_CCID:
> + return val == DCCPC_CCID2 || val == DCCPC_CCID3;
Shouldn't we look at the registered CCIDs and do validation based on the
modules loaded? Doing it this hardcoded way will prevent testing CCID4,
for instance, or require that the kernel be patched, which can not be
possible with enterprise distros, etc. And defeats the purpose of having
multiple pluggable congestion control algorithms :-)
> + /* Type-check Boolean feature values: */
> + case DCCPF_SHORT_SEQNOS:
> + case DCCPF_ECN_INCAPABLE:
> + case DCCPF_SEND_ACK_VECTOR:
> + case DCCPF_SEND_NDP_COUNT:
> + case DCCPF_DATA_CHECKSUM:
> + case DCCPF_SEND_LEV_RATE:
> + return val < 2;
> + case DCCPF_MIN_CSUM_COVER:
> + return val < 16;
> + }
> + return 0; /* feature unknown */
> +}
> +
> +static u8 dccp_feat_sp_list_ok(u8 feat_num, u8 const *sp_list, u8 sp_len)
> +{
> + if (sp_list == NULL || sp_len < 1)
> + return 0;
> + while (sp_len--)
> + if (!dccp_feat_is_valid_sp_val(feat_num, *sp_list++))
> + return 0;
> + return 1;
> +}
> +
> +/**
> + * __feat_register_nn - Register new NN value on socket
> + * @fn: feature-negotiation list to register with
> + * @feat: an NN feature from %dccp_feature_numbers
> + * @mandatory: use Mandatory option if 1
> + * @nn_val: value to register (restricted to 4 bytes)
> + * Note that NN features are local by definition (RFC 4340, 6.3.2).
> + */
> +static int __feat_register_nn(struct list_head *fn, u8 feat,
> + u8 mandatory, u64 nn_val)
> +{
> + dccp_feat_val fval = { .nn = nn_val };
> +
> + if (dccp_feat_type(feat) != FEAT_NN ||
> + !dccp_feat_is_valid_nn_val(feat, nn_val))
> + return -EINVAL;
> +
> + /* Don't bother with default values, they will be activated anyway. */
> + if (nn_val - (u64)dccp_feat_default_value(feat) == 0)
> + return 0;
> +
> + return dccp_feat_push_change(fn, feat, 1, mandatory, &fval);
> +}
> +
> +/**
> + * __feat_register_sp - Register new SP value/list on socket
> + * @fn: feature-negotiation list to register with
> + * @feat: an SP feature from %dccp_feature_numbers
> + * @is_local: whether the local (1) or the remote (0) @feat is meant
> + * @mandatory: use Mandatory option if 1
> + * @sp_val: SP value followed by optional preference list
> + * @sp_len: length of @sp_val in bytes
> + */
> +static int __feat_register_sp(struct list_head *fn, u8 feat, u8 is_local,
> + u8 mandatory, u8 const *sp_val, u8 sp_len)
> +{
> + dccp_feat_val fval;
> +
> + if (dccp_feat_type(feat) != FEAT_SP ||
> + !dccp_feat_sp_list_ok(feat, sp_val, sp_len))
> + return -EINVAL;
> +
> + if (dccp_feat_clone_sp_val(&fval, sp_val, sp_len))
> + return -ENOMEM;
> +
> + return dccp_feat_push_change(fn, feat, is_local, mandatory, &fval);
> +}
> +
> int dccp_feat_change(struct dccp_minisock *dmsk, u8 type, u8 feature,
> u8 *val, u8 len, gfp_t gfp)
> {
> @@ -833,42 +922,30 @@ out_clean:
>
> EXPORT_SYMBOL_GPL(dccp_feat_clone);
>
> -static int __dccp_feat_init(struct dccp_minisock *dmsk, u8 type, u8 feat,
> - u8 *val, u8 len)
> -{
> - int rc = -ENOMEM;
> - u8 *copy = kmemdup(val, len, GFP_KERNEL);
> -
> - if (copy != NULL) {
> - rc = dccp_feat_change(dmsk, type, feat, copy, len, GFP_KERNEL);
> - if (rc)
> - kfree(copy);
> - }
> - return rc;
> -}
> -
> -int dccp_feat_init(struct dccp_minisock *dmsk)
> +int dccp_feat_init(struct sock *sk)
> {
> + struct dccp_sock *dp = dccp_sk(sk);
> + struct dccp_minisock *dmsk = dccp_msk(sk);
> int rc;
>
> - INIT_LIST_HEAD(&dmsk->dccpms_pending);
> - INIT_LIST_HEAD(&dmsk->dccpms_conf);
> + INIT_LIST_HEAD(&dmsk->dccpms_pending); /* XXX no longer used */
> + INIT_LIST_HEAD(&dmsk->dccpms_conf); /* XXX no longer used */
>
> /* CCID L */
> - rc = __dccp_feat_init(dmsk, DCCPO_CHANGE_L, DCCPF_CCID,
> - &dmsk->dccpms_tx_ccid, 1);
> + rc = __feat_register_sp(&dp->dccps_featneg, DCCPF_CCID, 1, 0,
> + &dmsk->dccpms_tx_ccid, 1);
> if (rc)
> goto out;
>
> /* CCID R */
> - rc = __dccp_feat_init(dmsk, DCCPO_CHANGE_R, DCCPF_CCID,
> - &dmsk->dccpms_rx_ccid, 1);
> + rc = __feat_register_sp(&dp->dccps_featneg, DCCPF_CCID, 0, 0,
> + &dmsk->dccpms_rx_ccid, 1);
> if (rc)
> goto out;
>
> /* Ack ratio */
> - rc = __dccp_feat_init(dmsk, DCCPO_CHANGE_L, DCCPF_ACK_RATIO,
> - &dmsk->dccpms_ack_ratio, 1);
> + rc = __feat_register_nn(&dp->dccps_featneg, DCCPF_ACK_RATIO, 0,
> + dmsk->dccpms_ack_ratio);
> out:
> return rc;
> }
> --- a/net/dccp/feat.h
> +++ b/net/dccp/feat.h
> @@ -14,6 +14,15 @@
> #include <linux/types.h>
> #include "dccp.h"
>
> +/*
> + * Known limits of feature values.
> + */
> +/* Ack Ratio takes 2-byte integer values (11.3) */
> +#define DCCPF_ACK_RATIO_MAX 0xFFFF
> +/* Wmin=32 and Wmax=2^46-1 from 7.5.2 */
> +#define DCCPF_SEQ_WMIN 32
> +#define DCCPF_SEQ_WMAX 0x3FFFFFFFFFFFull
> +
> enum dccp_feat_type {
> FEAT_AT_RX = 1, /* located at RX side of half-connection */
> FEAT_AT_TX = 2, /* located at TX side of half-connection */
> @@ -74,6 +83,20 @@ static inline u8 dccp_feat_genopt(struct dccp_feat_entry *entry)
> return entry->is_local ? DCCPO_CHANGE_L : DCCPO_CHANGE_R;
> }
>
> +/**
> + * struct ccid_dependency - Track changes resulting from choosing a CCID
> + * @dependent_feat: one of %dccp_feature_numbers
> + * @is_local: local (1) or remote (0) @dependent_feat
> + * @is_mandatory: whether presence of @dependent_feat is mission-critical or not
> + * @val: corresponding default value for @dependent_feat (u8 is sufficient here)
> + */
> +struct ccid_dependency {
> + u8 dependent_feat;
> + bool is_local:1,
> + is_mandatory:1;
> + u8 val;
> +};
> +
> #ifdef CONFIG_IP_DCCP_DEBUG
> extern const char *dccp_feat_typename(const u8 type);
> extern const char *dccp_feat_name(const u8 feat);
> @@ -96,6 +119,6 @@ extern int dccp_feat_confirm_recv(struct sock *sk, u8 type, u8 feature,
> extern void dccp_feat_clean(struct dccp_minisock *dmsk);
> extern int dccp_feat_clone(struct sock *oldsk, struct sock *newsk);
> extern int dccp_feat_clone_list(struct list_head const *, struct list_head *);
> -extern int dccp_feat_init(struct dccp_minisock *dmsk);
> +extern int dccp_feat_init(struct sock *sk);
>
> #endif /* _DCCP_FEAT_H */
> --- a/net/dccp/proto.c
> +++ b/net/dccp/proto.c
> @@ -202,7 +202,7 @@ int dccp_init_sock(struct sock *sk, const __u8 ctl_sock_initialized)
> * setsockopt(CCIDs-I-want/accept). -acme
> */
> if (likely(ctl_sock_initialized)) {
> - int rc = dccp_feat_init(dmsk);
> + int rc = dccp_feat_init(sk);
>
> if (rc)
> return rc;
> --
> 1.6.0.rc2
>
> --
> 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
next prev parent reply other threads:[~2008-08-28 20:59 UTC|newest]
Thread overview: 241+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <dccp_featneg_last_call_for_comments>
2008-08-28 17:44 ` [PATCH 0/37] dccp: Feature negotiation - last call for comments Gerrit Renker
2008-08-28 17:44 ` [PATCH 01/37] dccp: Basic data structure for feature negotiation Gerrit Renker
2008-08-28 17:44 ` [PATCH 02/37] dccp: Implement lookup table for feature-negotiation information Gerrit Renker
2008-08-28 17:44 ` [PATCH 03/37] dccp: List management for new feature negotiation Gerrit Renker
2008-08-28 17:44 ` [PATCH 04/37] dccp: Per-socket initialisation of " Gerrit Renker
2008-08-28 17:44 ` [PATCH 05/37] dccp: Cleanup routines for " Gerrit Renker
2008-08-28 17:44 ` [PATCH 06/37] dccp: Limit feature negotiation to connection setup phase Gerrit Renker
2008-08-28 17:44 ` [PATCH 07/37] dccp: Registration routines for changing feature values Gerrit Renker
2008-08-28 17:44 ` [PATCH 08/37] dccp: Query supported CCIDs Gerrit Renker
2008-08-28 17:44 ` [PATCH 09/37] dccp: Resolve dependencies of features on choice of CCID Gerrit Renker
2008-08-28 17:44 ` [PATCH 10/37] dccp: Mechanism to resolve CCID dependencies Gerrit Renker
2008-08-28 17:44 ` [PATCH 11/37] dccp: Deprecate old setsockopt framework Gerrit Renker
2008-08-28 17:44 ` [PATCH 12/37] dccp: Feature negotiation for minimum-checksum-coverage Gerrit Renker
2008-08-28 17:44 ` [PATCH 13/37] dccp: Deprecate Ack Ratio sysctl Gerrit Renker
2008-08-28 17:44 ` [PATCH 14/37] dccp: Tidy up setsockopt calls Gerrit Renker
2008-08-28 17:44 ` [PATCH 15/37] dccp: Set per-connection CCIDs via socket options Gerrit Renker
2008-08-28 17:44 ` [PATCH 16/37] dccp: API to query the current TX/RX CCID Gerrit Renker
2008-08-28 17:44 ` [PATCH 17/37] dccp: Increase the scope of variable-length htonl/ntohl functions Gerrit Renker
2008-08-28 17:44 ` [PATCH 18/37] dccp: Support for Mandatory options Gerrit Renker
2008-08-28 17:44 ` [PATCH 19/37] dccp: Header option insertion routine for feature-negotiation Gerrit Renker
2008-08-28 17:44 ` [PATCH 20/37] dccp: Insert feature-negotiation options into skb Gerrit Renker
2008-08-28 17:44 ` [PATCH 21/37] dccp: Integrate feature-negotiation insertion code Gerrit Renker
2008-08-28 17:44 ` [PATCH 22/37] dccp: Preference list reconciliation Gerrit Renker
2008-08-28 17:44 ` [PATCH 23/37] dccp: Process incoming Change feature-negotiation options Gerrit Renker
2008-08-28 17:44 ` [PATCH 24/37] dccp: Processing Confirm options Gerrit Renker
2008-08-28 17:45 ` [PATCH 25/37] dccp: Feature activation handlers Gerrit Renker
2008-08-28 17:45 ` [PATCH 26/37] dccp: Integration of dynamic feature activation - part 1 (socket setup) Gerrit Renker
2008-08-28 17:45 ` [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) Gerrit Renker
2008-08-28 17:45 ` [PATCH 28/37] dccp: Integration of dynamic feature activation - part 3 (client side) Gerrit Renker
2008-08-28 17:45 ` [PATCH 29/37] dccp: Clean up old feature-negotiation infrastructure Gerrit Renker
2008-08-28 17:45 ` [PATCH 30/37] dccp: Remove obsolete parts of the old CCID interface Gerrit Renker
2008-08-28 17:45 ` [PATCH 31/37] dccp: Remove manual influence on NDP Count feature Gerrit Renker
2008-08-28 17:45 ` [PATCH 32/37] dccp ccid-2: Phase out the use of boolean Ack Vector sysctl Gerrit Renker
2008-08-28 17:45 ` [PATCH 33/37] dccp: Initialisation framework for feature negotiation Gerrit Renker
2008-08-28 17:45 ` [PATCH 34/37] dccp: Auto-load (when supported) CCID plugins for negotiation Gerrit Renker
2008-08-28 17:45 ` [PATCH 35/37] dccp: Implement both feature-local and feature-remote Sequence Window feature Gerrit Renker
2008-08-28 17:45 ` [PATCH 36/37] dccp: Initialisation and type-checking of feature sysctls Gerrit Renker
2008-08-28 17:45 ` [PATCH 37/37] dccp: Debugging functions for feature negotiation Gerrit Renker
2008-09-02 6:34 ` [PATCH 25/37] dccp: Feature activation handlers Wei Yongjun
2008-09-03 4:38 ` Gerrit Renker
2008-09-03 5:42 ` Wei Yongjun
2008-09-04 5:12 ` Gerrit Renker
2008-09-02 5:48 ` [PATCH 19/37] dccp: Header option insertion routine for feature-negotiation Wei Yongjun
2008-09-03 4:40 ` Gerrit Renker
2008-08-28 21:50 ` [PATCH 18/37] dccp: Support for Mandatory options Arnaldo Carvalho de Melo
2008-08-28 21:48 ` [PATCH 17/37] dccp: Increase the scope of variable-length htonl/ntohl functions Arnaldo Carvalho de Melo
2008-08-28 21:47 ` [PATCH 16/37] dccp: API to query the current TX/RX CCID Arnaldo Carvalho de Melo
2008-08-29 7:26 ` Gerrit Renker
2008-08-30 13:52 ` v2 " Gerrit Renker
2008-08-28 21:45 ` [PATCH 15/37] dccp: Set per-connection CCIDs via socket options Arnaldo Carvalho de Melo
2008-08-29 7:17 ` Gerrit Renker
2008-08-30 13:52 ` v2 " Gerrit Renker
2008-08-28 21:35 ` [PATCH 14/37] dccp: Tidy up setsockopt calls Arnaldo Carvalho de Melo
2008-08-29 6:57 ` Gerrit Renker
2008-08-29 9:25 ` Eugene Teo
2008-08-30 13:52 ` Gerrit Renker
2008-08-28 21:26 ` [PATCH 13/37] dccp: Deprecate Ack Ratio sysctl Arnaldo Carvalho de Melo
2008-08-28 21:25 ` [PATCH 12/37] dccp: Feature negotiation for minimum-checksum-coverage Arnaldo Carvalho de Melo
2008-08-29 6:47 ` Gerrit Renker
2008-08-28 21:07 ` [PATCH 09/37] dccp: Resolve dependencies of features on choice of CCID Arnaldo Carvalho de Melo
2008-08-29 6:34 ` Gerrit Renker
2008-09-03 4:51 ` Gerrit Renker
2008-09-04 0:59 ` Arnaldo Carvalho de Melo
2008-08-28 21:00 ` [PATCH 08/37] dccp: Query supported CCIDs Arnaldo Carvalho de Melo
2008-08-29 6:17 ` Gerrit Renker
2008-08-30 13:52 ` Gerrit Renker
2008-08-28 20:54 ` Arnaldo Carvalho de Melo [this message]
2008-08-29 6:12 ` [PATCH 07/37] dccp: Registration routines for changing feature values Gerrit Renker
2008-09-02 6:12 ` Wei Yongjun
2008-09-03 4:46 ` Gerrit Renker
2008-08-28 20:50 ` [PATCH 06/37] dccp: Limit feature negotiation to connection setup phase Arnaldo Carvalho de Melo
2008-08-29 5:54 ` Gerrit Renker
2008-08-28 19:53 ` [PATCH 04/37] dccp: Per-socket initialisation of feature negotiation Arnaldo Carvalho de Melo
2008-08-29 5:41 ` Gerrit Renker
2008-08-28 19:43 ` [PATCH 03/37] dccp: List management for new " Arnaldo Carvalho de Melo
2008-08-29 5:22 ` Gerrit Renker
2008-08-30 13:51 ` v2 " Gerrit Renker
2008-08-30 13:51 ` Gerrit Renker
2008-08-30 17:25 ` [PATCH 0/37] --- Summary of revision changes so far Gerrit Renker
2008-09-01 16:46 ` net-next-2.6 [pull-request] [PATCH 0/37] dccp: Revised set of feature-negotiation patches Gerrit Renker
2008-09-01 21:20 ` David Miller
2008-09-02 13:50 ` Arnaldo Carvalho de Melo
2008-09-03 4:24 ` Gerrit Renker
2008-09-03 6:06 ` David Miller
2008-09-03 8:18 ` Gerrit Renker
2008-09-04 6:15 ` Gerrit Renker
2008-09-09 0:32 ` David Miller
2008-09-09 8:09 ` Gerrit Renker
2008-09-09 8:57 ` David Miller
2008-09-09 11:59 ` Gerrit Renker
2008-09-09 12:15 ` David Miller
2008-09-10 5:01 ` Gerrit Renker
2008-09-10 5:19 ` David Miller
2008-09-11 5:41 ` Gerrit Renker
2008-09-11 5:51 ` David Miller
2008-09-11 14:02 ` Arnaldo Carvalho de Melo
2008-09-11 15:57 ` Gerrit Renker
2008-09-11 5:45 ` What to do with DCCP (was: net-next-2.6 [pull-request] [PATCH 0/37]...) Gerrit Renker
2008-09-11 5:53 ` What to do with DCCP David Miller
2008-09-12 5:16 ` Gerrit Renker
2008-09-22 4:57 ` net-next-2.6 [pull-request] [PATCH 0/37] dccp: Revised set of feature-negotiation patches Gerrit Renker
2008-09-22 5:09 ` David Miller
2008-09-22 6:28 ` Gerrit Renker
2008-09-22 6:58 ` David Miller
2008-09-22 7:21 ` [PATCH 0/5] dccp: Feature negotiation, Part I - Underlying data structures Gerrit Renker
2008-09-22 7:21 ` [PATCH 1/5] dccp: Basic data structure for feature negotiation Gerrit Renker
2008-09-22 7:21 ` [PATCH 2/5] dccp: Implement lookup table for feature-negotiation information Gerrit Renker
2008-09-22 7:21 ` [PATCH 3/5] dccp: List management for new feature negotiation Gerrit Renker
2008-09-22 7:21 ` [PATCH 4/5] dccp: Per-socket initialisation of " Gerrit Renker
2008-09-22 7:21 ` [PATCH 5/5] dccp: Cleanup routines for " Gerrit Renker
2008-09-22 14:21 ` [PATCH 2/5] dccp: Implement lookup table for feature-negotiation information Arnaldo Carvalho de Melo
2008-09-22 15:45 ` Gerrit Renker
2008-09-22 16:49 ` Arnaldo Carvalho de Melo
2008-09-22 17:00 ` Arnaldo Carvalho de Melo
2008-09-24 4:41 ` Gerrit Renker
2008-09-24 13:58 ` Arnaldo Carvalho de Melo
2008-09-23 3:20 ` David Miller
2008-09-24 5:18 ` v2 " Gerrit Renker
2008-09-24 5:23 ` v2 [PATCH 1/5] dccp: Basic data structure for feature negotiation Gerrit Renker
2008-09-24 13:59 ` Arnaldo Carvalho de Melo
2008-10-02 5:05 ` [PATCH 0/5] dccp: First part of feature-negotiation patch set Gerrit Renker
2008-10-02 19:52 ` David Miller
2008-10-04 9:13 ` v2 [PATCH 0/5] dccp: Feature negotiation, Part I - Underlying data structures Gerrit Renker
2008-10-04 9:13 ` [PATCH 1/5] dccp: Basic data structure for feature negotiation Gerrit Renker
2008-10-04 9:13 ` [PATCH 2/5] dccp: Implement lookup table for feature-negotiation information Gerrit Renker
2008-10-04 9:13 ` [PATCH 3/5] dccp: List management for new feature negotiation Gerrit Renker
2008-10-04 9:13 ` [PATCH 4/5] dccp: Per-socket initialisation of " Gerrit Renker
2008-10-04 9:13 ` [PATCH 5/5] dccp: Cleanup routines for " Gerrit Renker
2008-10-05 16:13 ` v2 [PATCH 0/5] dccp: Feature negotiation, Part I - Underlying data structures David Miller
2008-10-06 4:14 ` Gerrit Renker
2008-10-11 7:31 ` v3 " Gerrit Renker
2008-10-11 18:07 ` David Miller
2008-10-13 14:58 ` Gerrit Renker
2008-10-13 18:50 ` David Miller
2008-11-05 6:51 ` v3 [Re-Send] " Gerrit Renker
2008-11-05 7:56 ` David Miller
2008-11-06 5:40 ` net-next-2.6 [PATCH 0/4] dccp: Feature negotiation - conclusion of Part I (basis) Gerrit Renker
2008-11-06 5:40 ` [PATCH 1/4] dccp: Limit feature negotiation to connection setup phase Gerrit Renker
2008-11-06 5:40 ` [PATCH 2/4] dccp: Registration routines for changing feature values Gerrit Renker
2008-11-06 5:40 ` [PATCH 3/4] dccp: Query supported CCIDs Gerrit Renker
2008-11-06 5:40 ` [PATCH 4/4] dccp: Resolve dependencies of features on choice of CCID Gerrit Renker
2008-11-10 21:17 ` David Miller
2008-11-10 21:20 ` David Miller
2008-11-12 6:14 ` Gerrit Renker
2008-11-12 6:37 ` v2 " Gerrit Renker
2008-11-12 8:49 ` David Miller
2008-11-10 21:16 ` [PATCH 3/4] dccp: Query supported CCIDs David Miller
2008-11-12 6:37 ` v2 " Gerrit Renker
2008-11-12 8:49 ` David Miller
2008-11-10 21:16 ` [PATCH 2/4] dccp: Registration routines for changing feature values David Miller
2008-11-12 6:37 ` v2 " Gerrit Renker
2008-11-12 8:49 ` David Miller
2008-11-10 21:15 ` [PATCH 1/4] dccp: Limit feature negotiation to connection setup phase David Miller
2008-11-12 6:37 ` v2 " Gerrit Renker
2008-11-12 8:49 ` David Miller
2008-11-12 6:36 ` v2 [PATCH 0/4] dccp: Feature negotiation - conclusion of Part I (basis) Gerrit Renker
2008-11-15 12:11 ` net-next-2.6 [PATCH 0/5] dccp: Feature negotiation - begin of Part II (core) Gerrit Renker
2008-11-15 12:11 ` [PATCH 1/5] dccp: Mechanism to resolve CCID dependencies Gerrit Renker
2008-11-15 12:11 ` [PATCH 2/5] dccp: Deprecate old setsockopt framework Gerrit Renker
2008-11-15 12:11 ` [PATCH 3/5] dccp: Feature negotiation for minimum-checksum-coverage Gerrit Renker
2008-11-15 12:11 ` [PATCH 4/5] dccp: Deprecate Ack Ratio sysctl Gerrit Renker
2008-11-15 12:11 ` [PATCH 5/5] dccp: Tidy up setsockopt calls Gerrit Renker
2008-11-17 6:57 ` David Miller
2008-11-17 6:56 ` [PATCH 4/5] dccp: Deprecate Ack Ratio sysctl David Miller
2008-11-17 6:53 ` [PATCH 3/5] dccp: Feature negotiation for minimum-checksum-coverage David Miller
2008-11-17 6:53 ` [PATCH 2/5] dccp: Deprecate old setsockopt framework David Miller
2008-11-17 15:31 ` Gerrit Renker
2008-11-17 6:50 ` [PATCH 1/5] dccp: Mechanism to resolve CCID dependencies David Miller
2008-11-18 5:03 ` Gerrit Renker
2008-11-20 9:03 ` David Miller
2008-11-22 10:30 ` net-next-2.6 [PATCH 0/5] dccp: Feature negotiation - continuation of Part II (core) Gerrit Renker
2008-11-22 10:30 ` [PATCH 1/5] dccp: Set per-connection CCIDs via socket options Gerrit Renker
2008-11-22 10:30 ` [PATCH 2/5] dccp: API to query the current TX/RX CCID Gerrit Renker
2008-11-22 10:30 ` [PATCH 3/5] dccp: Increase the scope of variable-length htonl/ntohl functions Gerrit Renker
2008-11-22 10:30 ` [PATCH 4/5] dccp: Support for Mandatory options Gerrit Renker
2008-11-22 10:30 ` [PATCH 5/5] dccp: Header option insertion routine for feature-negotiation Gerrit Renker
2008-11-24 0:09 ` [PATCH 4/5] dccp: Support for Mandatory options David Miller
2008-11-30 13:22 ` [PATCH 0/6] dccp: Feature negotiation - conclusion of Part II (core) Gerrit Renker
2008-11-30 13:22 ` [PATCH 1/6] dccp: Insert feature-negotiation options into skb Gerrit Renker
2008-11-30 13:22 ` [PATCH 2/6] dccp: Integrate feature-negotiation insertion code Gerrit Renker
2008-11-30 13:22 ` [PATCH 3/6] dccp: Preference list reconciliation Gerrit Renker
2008-11-30 13:22 ` [PATCH 4/6] dccp: Process incoming Change feature-negotiation options Gerrit Renker
2008-11-30 13:22 ` [PATCH 5/6] dccp: Processing Confirm options Gerrit Renker
2008-11-30 13:22 ` [PATCH 6/6] dccp: Feature activation handlers Gerrit Renker
2008-12-02 7:34 ` [PATCH 0/6] dccp: Feature negotiation - conclusion of Part II (core) David Miller
2008-12-06 16:40 ` net-next-2.6 [PATCH 0/7] dccp: Feature negotiation - Part III (integration) Gerrit Renker
2008-12-06 16:40 ` [PATCH 1/7] dccp: Integration of dynamic feature activation - part 1 (socket setup) Gerrit Renker
2008-12-06 16:40 ` [PATCH 2/7] dccp: Integration of dynamic feature activation - part 2 (server side) Gerrit Renker
2008-12-06 16:40 ` [PATCH 3/7] dccp: Integration of dynamic feature activation - part 3 (client side) Gerrit Renker
2008-12-06 16:40 ` [PATCH 4/7] dccp: Clean up old feature-negotiation infrastructure Gerrit Renker
2008-12-06 16:40 ` [PATCH 5/7] dccp: Remove obsolete parts of the old CCID interface Gerrit Renker
2008-12-06 16:40 ` [PATCH 6/7] dccp: Remove manual influence on NDP Count feature Gerrit Renker
2008-12-06 16:40 ` [PATCH 7/7] dccp ccid-2: Phase out the use of boolean Ack Vector sysctl Gerrit Renker
2008-12-08 9:19 ` David Miller
2008-12-13 13:41 ` net-next-2.6 [PATCH 0/5] dccp: Feature negotiation part III -- complete Gerrit Renker
2008-12-13 13:41 ` [PATCH 1/5] dccp: Initialisation framework for feature negotiation Gerrit Renker
2008-12-13 13:41 ` [PATCH 2/5] dccp: Auto-load (when supported) CCID plugins for negotiation Gerrit Renker
2008-12-13 13:41 ` [PATCH 3/5] dccp: Implement both feature-local and feature-remote Sequence Window feature Gerrit Renker
2008-12-13 13:41 ` [PATCH 4/5] dccp: Initialisation and type-checking of feature sysctls Gerrit Renker
2008-12-13 13:41 ` [PATCH 5/5] dccp: Debugging functions for feature negotiation Gerrit Renker
2008-12-15 14:15 ` [PATCH 4/5] dccp: Initialisation and type-checking of feature sysctls Arnaldo Carvalho de Melo
2008-12-15 14:23 ` walter harms
2008-12-13 13:55 ` [PATCH 2/5] dccp: Auto-load (when supported) CCID plugins for negotiation Michał Mirosław
2008-12-13 14:56 ` Gerrit Renker
2008-12-14 14:50 ` Michał Mirosław
2008-12-15 16:25 ` gerrit
2008-12-16 5:29 ` Gerrit Renker
2008-12-16 9:40 ` David Miller
2008-12-16 11:19 ` Arnaldo Carvalho de Melo
2008-12-16 21:32 ` David Miller
2008-12-16 22:25 ` Arnaldo Carvalho de Melo
2008-12-16 23:11 ` David Miller
2008-12-17 13:13 ` Arnaldo Carvalho de Melo
[not found] ` <20081217182038.GV14518@ghostprotocols.net>
2008-12-17 18:30 ` [RFC][PATCH] static builtin CCIDs was " Arnaldo Carvalho de Melo
2008-12-18 5:41 ` Gerrit Renker
2008-12-18 10:55 ` Arnaldo Carvalho de Melo
2008-12-18 5:46 ` Gerrit Renker
2008-12-18 14:01 ` Arnaldo Carvalho de Melo
2008-12-16 5:55 ` Gerrit Renker
2008-12-16 11:31 ` Michał Mirosław
2008-12-18 5:56 ` Gerrit Renker
2008-12-15 13:48 ` Arnaldo Carvalho de Melo
2008-12-16 5:44 ` Gerrit Renker
2008-12-08 9:18 ` [PATCH 6/7] dccp: Remove manual influence on NDP Count feature David Miller
2008-12-08 9:18 ` [PATCH 5/7] dccp: Remove obsolete parts of the old CCID interface David Miller
2008-12-08 9:17 ` [PATCH 4/7] dccp: Clean up old feature-negotiation infrastructure David Miller
2008-12-08 9:16 ` [PATCH 3/7] dccp: Integration of dynamic feature activation - part 3 (client side) David Miller
2008-12-08 9:16 ` [PATCH 2/7] dccp: Integration of dynamic feature activation - part 2 (server side) David Miller
2008-12-08 9:15 ` [PATCH 1/7] dccp: Integration of dynamic feature activation - part 1 (socket setup) David Miller
[not found] ` <1223312049-25967-1-git-send-email-gerrit@erg.abdn.ac.uk>
2008-10-11 7:31 ` [PATCH 1/5] dccp: Basic data structure for feature negotiation Gerrit Renker
[not found] ` <20081105065208.GC3482@gerrit.erg.abdn.ac.uk>
[not found] ` <20081105070109.GH3482@gerrit.erg.abdn.ac.uk>
2008-11-05 7:03 ` Gerrit Renker
[not found] ` <1223312049-25967-2-git-send-email-gerrit@erg.abdn.ac.uk>
2008-10-11 7:31 ` [PATCH 2/5] dccp: Implement lookup table for feature-negotiation information Gerrit Renker
2008-11-05 6:52 ` Gerrit Renker
[not found] ` <1223312049-25967-3-git-send-email-gerrit@erg.abdn.ac.uk>
2008-10-11 7:31 ` [PATCH 3/5] dccp: List management for new feature negotiation Gerrit Renker
2008-11-05 6:53 ` Gerrit Renker
[not found] ` <1223312049-25967-4-git-send-email-gerrit@erg.abdn.ac.uk>
2008-10-11 7:31 ` [PATCH 4/5] dccp: Per-socket initialisation of " Gerrit Renker
2008-11-05 6:53 ` Gerrit Renker
[not found] ` <1223312049-25967-5-git-send-email-gerrit@erg.abdn.ac.uk>
2008-10-11 7:32 ` [PATCH 5/5] dccp: Cleanup routines for " Gerrit Renker
2008-11-05 6:54 ` Gerrit Renker
2008-09-24 14:01 ` v2 [PATCH 2/5] dccp: Implement lookup table for feature-negotiation information Arnaldo Carvalho de Melo
2008-09-22 14:10 ` [PATCH 1/5] dccp: Basic data structure for feature negotiation Arnaldo Carvalho de Melo
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=20080828205447.GN9193@ghostprotocols.net \
--to=acme@redhat.com \
--cc=dccp@vger.kernel.org \
--cc=gerrit@erg.abdn.ac.uk \
--cc=netdev@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).