netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Wei Yongjun <yjwei@cn.fujitsu.com>
To: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Cc: dccp@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH 25/37] dccp: Feature activation handlers
Date: Tue, 02 Sep 2008 14:34:49 +0800	[thread overview]
Message-ID: <48BCDE89.7060909@cn.fujitsu.com> (raw)
In-Reply-To: <1219945512-7723-26-git-send-email-gerrit@erg.abdn.ac.uk>

Gerrit Renker 写道:
> This patch provides the post-processing of feature negotiation state, after
> the negotiation has completed.
>
> To this purpose, handlers are used and added to the dccp_feat_table. Each
> handler is passed a boolean flag whether the RX or TX side of the feature
> is meant.
>
> Several handlers are provided already, new handlers can easily be added.
>
> The initialisation is now fully dynamic, i.e. CCIDs are activated only
> after the feature negotiation. The integration of this dynamic activation
> is done in the subsequent patches.
>
> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
> Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
> ---
>  net/dccp/dccp.h |    1 +
>  net/dccp/feat.c |  220 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
>  2 files changed, 211 insertions(+), 10 deletions(-)
>
> --- a/net/dccp/dccp.h
> +++ b/net/dccp/dccp.h
> @@ -445,6 +445,7 @@ extern int  dccp_feat_finalise_settings(struct dccp_sock *dp);
>  extern int  dccp_feat_server_ccid_dependencies(struct dccp_request_sock *dreq);
>  extern int  dccp_feat_insert_opts(struct dccp_sock*, struct dccp_request_sock*,
>  				  struct sk_buff *skb);
> +extern int  dccp_feat_activate_values(struct sock *sk, struct list_head *fn);
>  extern void dccp_feat_list_purge(struct list_head *fn_list);
>  
>  extern int dccp_insert_options(struct sock *sk, struct sk_buff *skb);
> --- a/net/dccp/feat.c
> +++ b/net/dccp/feat.c
> @@ -25,11 +25,101 @@
>  
>  #define DCCP_FEAT_SP_NOAGREE (-123)
>  
> +/*
> + * Feature activation handlers.
> + *
> + * These all use an u64 argument, to provide enough room for NN/SP features. At
> + * this stage the negotiated values have been checked to be within their range.
> + */
> +static int dccp_hdlr_ccid(struct sock *sk, u64 ccid, bool rx)
> +{
> +	struct dccp_sock *dp = dccp_sk(sk);
> +	struct ccid *new_ccid = ccid_new(ccid, sk, rx, gfp_any());
> +
> +	if (new_ccid == NULL)
> +		return -ENOMEM;
> +
> +	if (rx) {
> +		ccid_hc_rx_delete(dp->dccps_hc_rx_ccid, sk);
> +		dp->dccps_hc_rx_ccid = new_ccid;
> +	} else {
> +		ccid_hc_tx_delete(dp->dccps_hc_tx_ccid, sk);
> +		dp->dccps_hc_tx_ccid = new_ccid;
> +	}
> +	return 0;
> +}
> +
> +static int dccp_hdlr_seq_win(struct sock *sk, u64 seq_win, bool rx)
> +{
> +	if (!rx)
> +		dccp_msk(sk)->dccpms_sequence_window = seq_win;
> +	return 0;
> +}
> +
> +static int dccp_hdlr_ack_ratio(struct sock *sk, u64 ratio, bool rx)
> +{
> +	if (rx)
> +		dccp_sk(sk)->dccps_r_ack_ratio = ratio;
> +	else
> +		dccp_sk(sk)->dccps_l_ack_ratio = ratio;
> +	return 0;
> +}
> +
> +static int dccp_hdlr_ackvec(struct sock *sk, u64 enable, bool rx)
> +{
> +	struct dccp_sock *dp = dccp_sk(sk);
> +
> +	if (rx) {
> +		if (enable && dp->dccps_hc_rx_ackvec == NULL) {
> +			dp->dccps_hc_rx_ackvec = dccp_ackvec_alloc(gfp_any());
> +			if (dp->dccps_hc_rx_ackvec == NULL)
> +				return -ENOMEM;
> +		} else if (!enable) {
> +			dccp_ackvec_free(dp->dccps_hc_rx_ackvec);
> +			dp->dccps_hc_rx_ackvec = NULL;
> +		}
> +	}
> +	return 0;
> +}
> +
> +static int dccp_hdlr_ndp(struct sock *sk, u64 enable, bool rx)
> +{
> +	if (!rx)
> +		dccp_msk(sk)->dccpms_send_ndp_count = (enable > 0);
> +	return 0;
> +}
> +
> +/*
> + * Minimum Checksum Coverage is located at the RX side (9.2.1). This means that
> + * `rx' holds when the sending peer informs about his partial coverage via a
> + * ChangeR() option. In the other case, we are the sender and the receiver
> + * announces its coverage via ChangeL() options. The policy here is to honour
> + * such communication by enabling the corresponding partial coverage - but only
> + * if it has not been set manually before; the warning here means that all
> + * packets will be dropped.
> + */
> +static int dccp_hdlr_min_cscov(struct sock *sk, u64 cscov, bool rx)
> +{
> +	struct dccp_sock *dp = dccp_sk(sk);
> +
> +	if (rx)
> +		dp->dccps_pcrlen = cscov;
> +	else {
> +		if (dp->dccps_pcslen == 0)
> +			dp->dccps_pcslen = cscov;
> +		else if (cscov > dp->dccps_pcslen)
> +			DCCP_WARN("CsCov %u too small, peer requires >= %u\n",
> +				  dp->dccps_pcslen, (u8)cscov);
> +	}
> +	return 0;
> +}
> +
>  static const struct {
>  	u8			feat_num;		/* DCCPF_xxx */
>  	enum dccp_feat_type	rxtx;			/* RX or TX  */
>  	enum dccp_feat_type	reconciliation;		/* SP or NN  */
>  	u8			default_value;		/* as in 6.4 */
> +	int (*activation_hdlr)(struct sock *sk, u64 val, bool rx);
>  /*
>   *    Lookup table for location and type of features (from RFC 4340/4342)
>   *  +--------------------------+----+-----+----+----+---------+-----------+
> @@ -49,16 +139,16 @@ static const struct {
>   *  +--------------------------+----+-----+----+----+---------+-----------+
>   */
>  } dccp_feat_table[] = {
> -	{ DCCPF_CCID,		 FEAT_AT_TX, FEAT_SP, 2 },
> -	{ DCCPF_SHORT_SEQNOS,	 FEAT_AT_TX, FEAT_SP, 0 },
> -	{ DCCPF_SEQUENCE_WINDOW, FEAT_AT_TX, FEAT_NN, 100 },
> -	{ DCCPF_ECN_INCAPABLE,	 FEAT_AT_RX, FEAT_SP, 0 },
> -	{ DCCPF_ACK_RATIO,	 FEAT_AT_TX, FEAT_NN, 2 },
> -	{ DCCPF_SEND_ACK_VECTOR, FEAT_AT_RX, FEAT_SP, 0 },
> -	{ DCCPF_SEND_NDP_COUNT,  FEAT_AT_TX, FEAT_SP, 0 },
> -	{ DCCPF_MIN_CSUM_COVER,  FEAT_AT_RX, FEAT_SP, 0 },
> -	{ DCCPF_DATA_CHECKSUM,	 FEAT_AT_RX, FEAT_SP, 0 },
> -	{ DCCPF_SEND_LEV_RATE,	 FEAT_AT_RX, FEAT_SP, 0 },
> +	{ DCCPF_CCID,		 FEAT_AT_TX, FEAT_SP, 2,   dccp_hdlr_ccid     },
> +	{ DCCPF_SHORT_SEQNOS,	 FEAT_AT_TX, FEAT_SP, 0,   NULL },
> +	{ DCCPF_SEQUENCE_WINDOW, FEAT_AT_TX, FEAT_NN, 100, dccp_hdlr_seq_win  },
> +	{ DCCPF_ECN_INCAPABLE,	 FEAT_AT_RX, FEAT_SP, 0,   NULL },
> +	{ DCCPF_ACK_RATIO,	 FEAT_AT_TX, FEAT_NN, 2,   dccp_hdlr_ack_ratio},
> +	{ DCCPF_SEND_ACK_VECTOR, FEAT_AT_RX, FEAT_SP, 0,   dccp_hdlr_ackvec   },
> +	{ DCCPF_SEND_NDP_COUNT,  FEAT_AT_TX, FEAT_SP, 0,   dccp_hdlr_ndp      },
> +	{ DCCPF_MIN_CSUM_COVER,  FEAT_AT_RX, FEAT_SP, 0,   dccp_hdlr_min_cscov},
> +	{ DCCPF_DATA_CHECKSUM,	 FEAT_AT_RX, FEAT_SP, 0,   NULL },
> +	{ DCCPF_SEND_LEV_RATE,	 FEAT_AT_RX, FEAT_SP, 0,   NULL },
>  };
>  #define DCCP_FEAT_SUPPORTED_MAX		ARRAY_SIZE(dccp_feat_table)
>  
> @@ -99,6 +189,55 @@ static int dccp_feat_default_value(u8 feat_num)
>  	return idx < 0 ? : dccp_feat_table[idx].default_value;
>  }
>  
> +static int __dccp_feat_activate(struct sock *sk, const int idx,
> +				const bool is_local, dccp_feat_val const *fval)
> +{
> +	bool rx;
> +	u64 val;
> +
> +	if (idx < 0 || idx >= DCCP_FEAT_SUPPORTED_MAX)
> +		return -1;
> +	if (dccp_feat_table[idx].activation_hdlr == NULL)
> +		return 0;
> +
> +	if (fval == NULL) {
> +		val = dccp_feat_table[idx].default_value;
> +	} else if (dccp_feat_table[idx].reconciliation == FEAT_SP) {
> +		if (fval->sp.vec == NULL) {
> +			/*
> +			 * This can happen when an empty Confirm is sent
> +			 * for an SP (i.e. known) feature. In this case
> +			 * we would be using the default anyway.
> +			 */
> +			DCCP_CRIT("Feature #%d undefined: using default", idx);
> +			val = dccp_feat_table[idx].default_value;
> +		} else {
> +			val = fval->sp.vec[0];
> +		}
> +	} else {
> +		val = fval->nn;
> +	}
> +
> +	/* Location is RX if this is a local-RX or remote-TX feature */
> +	rx = (is_local == (dccp_feat_table[idx].rxtx == FEAT_AT_RX));
> +
> +	return dccp_feat_table[idx].activation_hdlr(sk, val, rx);
> +}
> +
> +/**
> + * dccp_feat_activate  -  Activate feature value on socket
> + * @sk: fully connected DCCP socket (after handshake is complete)
> + * @feat_num: feature to activate, one of %dccp_feature_numbers
> + * @local: whether local (1) or remote (0) @feat_num is meant
> + * @fval: the value (SP or NN) to activate, or NULL to mean the default value
> + * For general use this function is preferable over __dccp_feat_activate().
> + */
> +static int dccp_feat_activate(struct sock *sk, u8 feat_num, bool local,
> +			      dccp_feat_val const *fval)
> +{
> +	return __dccp_feat_activate(sk, dccp_feat_index(feat_num), local, fval);
> +}
> +
>  /* Test for "Req'd" feature (RFC 4340, 6.4) */
>  static inline int dccp_feat_must_be_understood(u8 feat_num)
>  {
> @@ -1504,6 +1643,67 @@ out:
>  
>  EXPORT_SYMBOL_GPL(dccp_feat_init);
>  
> +int dccp_feat_activate_values(struct sock *sk, struct list_head *fn_list)
> +{
> +	struct dccp_sock *dp = dccp_sk(sk);
> +	struct dccp_feat_entry *cur, *next;
> +	int idx;
> +	dccp_feat_val *fvals[DCCP_FEAT_SUPPORTED_MAX][2] = {
> +		 [0 ... DCCP_FEAT_SUPPORTED_MAX-1] = { NULL, NULL }
> +	};
> +
> +	list_for_each_entry(cur, fn_list, node) {
> +
> +		idx = dccp_feat_index(cur->feat_num);
> +		if (idx < 0) {
> +			DCCP_BUG("Unknown feature %u", cur->feat_num);
> +			goto activation_failed;
>   

idx < 0 is possible, if you goto activation_failed, the connection from
endpoint which want to change feature we unkonwn, the connection will be
always fail by reset. So I think it should just continue process the next
feature(s).
-----------------------------------
if (idx < 0)
continue;
-----------------------------------

idx < 0 is happended when we recv a change option with unknown feature type.


> +		}
> +		if (cur->state != FEAT_STABLE) {
> +			DCCP_CRIT("Negotiation of %s %u failed in state %u",
> +				  cur->is_local ? "local" : "remote",
> +				  cur->feat_num, cur->state);
> +			goto activation_failed;
> +		}
> +		fvals[idx][cur->is_local] = &cur->val;
> +	}
> +
> +	/*
> +	 * Activate in decreasing order of index, so that the CCIDs are always
> +	 * activated as the last feature. This avoids the case where a CCID
> +	 * relies on the initialisation of one or more features that it depends
> +	 * on (e.g. Send NDP Count, Send Ack Vector, and Ack Ratio features).
> +	 */
> +	for (idx = DCCP_FEAT_SUPPORTED_MAX; --idx >= 0;)
> +		if (__dccp_feat_activate(sk, idx, 0, fvals[idx][0]) ||
> +		    __dccp_feat_activate(sk, idx, 1, fvals[idx][1])) {
> +			DCCP_CRIT("Could not activate %d", idx);
> +			goto activation_failed;
> +		}
> +
> +	/* Clean up Change options which have been confirmed already */
> +	list_for_each_entry_safe(cur, next, fn_list, node)
> +		if (!cur->needs_confirm)
> +			dccp_feat_list_pop(cur);
> +
> +	dccp_pr_debug("Activation OK\n");
> +	return 0;
> +
> +activation_failed:
> +	/*
> +	 * We clean up everything that may have been allocated, since
> +	 * it is difficult to track at which stage negotiation failed.
> +	 * This is ok, since all allocation functions below are robust
> +	 * against NULL arguments.
> +	 */
> +	ccid_hc_rx_delete(dp->dccps_hc_rx_ccid, sk);
> +	ccid_hc_tx_delete(dp->dccps_hc_tx_ccid, sk);
> +	dp->dccps_hc_rx_ccid = dp->dccps_hc_tx_ccid = NULL;
> +	dccp_ackvec_free(dp->dccps_hc_rx_ackvec);
> +	dp->dccps_hc_rx_ackvec = NULL;
> +	return -1;
> +}
> +
>  #ifdef CONFIG_IP_DCCP_DEBUG
>  const char *dccp_feat_typename(const u8 type)
>  {
>   


  parent reply	other threads:[~2008-09-02  6:37 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                                                     ` Wei Yongjun [this message]
2008-09-03  4:38                                                       ` [PATCH 25/37] dccp: Feature activation handlers 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                 ` [PATCH 07/37] dccp: Registration routines for changing feature values Arnaldo Carvalho de Melo
2008-08-29  6:12                   ` 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=48BCDE89.7060909@cn.fujitsu.com \
    --to=yjwei@cn.fujitsu.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).