All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vlad Yasevich <vladislav.yasevich@hp.com>
To: Yaogong Wang <ywang15@ncsu.edu>
Cc: linux-sctp@vger.kernel.org, Sridhar Samudrala <sri@us.ibm.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/6] sctp multistream scheduling: declare sctp_sched_ops
Date: Thu, 03 Jun 2010 15:01:12 +0000	[thread overview]
Message-ID: <4C07C3B8.7020003@hp.com> (raw)
In-Reply-To: <AANLkTilgantV3v0T1-ef6ewyinddzfOs1PZW1Re9ZAyQ@mail.gmail.com>



Yaogong Wang wrote:
> Declare sctp_sched_ops structure and related functions
> 
> Signed-off-by: Yaogong Wang <ywang15@ncsu.edu>
> ---
> diff -uprN -X linux-2.6.32.8/Documentation/dontdiff
> linux-2.6.32.8/include/net/sctp/structs.h
> p1/include/net/sctp/structs.h
> --- linux-2.6.32.8/include/net/sctp/structs.h	2010-02-09
> 04:57:19.000000000 -0800
> +++ p1/include/net/sctp/structs.h	2010-05-28 10:33:12.000000000 -0700
> @@ -320,6 +320,9 @@ struct sctp_sock {
>  	/* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */
>  	__u32 param_flags;
> 
> +	/* Multistream scheduling  */
> +	const struct sctp_sched_ops *sched_ops;
> +
>  	struct sctp_initmsg initmsg;
>  	struct sctp_rtoinfo rtoinfo;
>  	struct sctp_paddrparams paddrparam;
> @@ -534,6 +537,36 @@ static inline void sctp_ssn_skip(struct
>  }
> 

BTW, is there a reason you decided to through the sched_ops into the association
and not the queue?  I seems to make more sense to me to put one into the other.

-vlad

>  /*
> + * Interface for adding new SCTP scheduling handlers
> + * This is similar to the pluggable TCP congestion control
> + */
> +struct sctp_sched_ops {
> +	struct list_head	list;
> +
> +	/* initialize out_chunk_list (required) */
> +	int (*init)(struct sctp_outq *q, gfp_t gfp);
> +	/* cleanup out_chunk_list (required) */
> +	void (*release)(struct sctp_outq *q);
> +	/* enqueue head function (required) */
> +	void (*enqueue_head_data)(struct sctp_outq *q, struct sctp_chunk *ch);
> +	/* enqueue tail function (required) */
> +	void (*enqueue_tail_data)(struct sctp_outq *q, struct sctp_chunk *ch);
> +	/* dequeue function (required) */
> +	struct sctp_chunk* (*dequeue_data)(struct sctp_outq *q);
> +	/* is out_chunk_list empty? (required) */
> +	int (*is_empty)(struct sctp_outq *q);
> +
> +	char 		name[SCTP_SCHED_NAME_MAX];
> +	struct module 	*owner;
> +};
> +
> +extern int sctp_register_sched(struct sctp_sched_ops *type);
> +extern void sctp_unregister_sched(struct sctp_sched_ops *type);
> +
> +extern void sctp_cleanup_sched(struct sock *sk);
> +extern int sctp_set_sched(struct sock *sk, const char *name);
> +
> +/*
>   * Pointers to address related SCTP functions.
>   * (i.e. things that depend on the address family.)
>   */
> @@ -1650,6 +1683,9 @@ struct sctp_association {
>  	/* The largest timeout or RTO value to use in attempting an INIT */
>  	unsigned long max_init_timeo;
> 
> +	/* Multistream scheduling  */
> +	const struct sctp_sched_ops *sched_ops;
> +
>  	/* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
>  	 * the destination address every heartbeat interval. This value
>  	 * will be inherited by all new transports.
> diff -uprN -X linux-2.6.32.8/Documentation/dontdiff
> linux-2.6.32.8/include/net/sctp/user.h p1/include/net/sctp/user.h
> --- linux-2.6.32.8/include/net/sctp/user.h	2010-02-09 04:57:19.000000000 -0800
> +++ p1/include/net/sctp/user.h	2010-05-28 10:52:57.000000000 -0700
> @@ -171,6 +171,8 @@ struct sctp_initmsg {
>  	__u16 sinit_max_init_timeo;
>  };
> 
> +#define SCTP_SCHED_NAME_MAX	16
> +
>  /*
>   * 5.2.2 SCTP Header Information Structure (SCTP_SNDRCV)
>   *
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

WARNING: multiple messages have this Message-ID (diff)
From: Vlad Yasevich <vladislav.yasevich@hp.com>
To: Yaogong Wang <ywang15@ncsu.edu>
Cc: linux-sctp@vger.kernel.org, Sridhar Samudrala <sri@us.ibm.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/6] sctp multistream scheduling: declare sctp_sched_ops
Date: Thu, 03 Jun 2010 11:01:12 -0400	[thread overview]
Message-ID: <4C07C3B8.7020003@hp.com> (raw)
In-Reply-To: <AANLkTilgantV3v0T1-ef6ewyinddzfOs1PZW1Re9ZAyQ@mail.gmail.com>



Yaogong Wang wrote:
> Declare sctp_sched_ops structure and related functions
> 
> Signed-off-by: Yaogong Wang <ywang15@ncsu.edu>
> ---
> diff -uprN -X linux-2.6.32.8/Documentation/dontdiff
> linux-2.6.32.8/include/net/sctp/structs.h
> p1/include/net/sctp/structs.h
> --- linux-2.6.32.8/include/net/sctp/structs.h	2010-02-09
> 04:57:19.000000000 -0800
> +++ p1/include/net/sctp/structs.h	2010-05-28 10:33:12.000000000 -0700
> @@ -320,6 +320,9 @@ struct sctp_sock {
>  	/* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */
>  	__u32 param_flags;
> 
> +	/* Multistream scheduling  */
> +	const struct sctp_sched_ops *sched_ops;
> +
>  	struct sctp_initmsg initmsg;
>  	struct sctp_rtoinfo rtoinfo;
>  	struct sctp_paddrparams paddrparam;
> @@ -534,6 +537,36 @@ static inline void sctp_ssn_skip(struct
>  }
> 

BTW, is there a reason you decided to through the sched_ops into the association
and not the queue?  I seems to make more sense to me to put one into the other.

-vlad

>  /*
> + * Interface for adding new SCTP scheduling handlers
> + * This is similar to the pluggable TCP congestion control
> + */
> +struct sctp_sched_ops {
> +	struct list_head	list;
> +
> +	/* initialize out_chunk_list (required) */
> +	int (*init)(struct sctp_outq *q, gfp_t gfp);
> +	/* cleanup out_chunk_list (required) */
> +	void (*release)(struct sctp_outq *q);
> +	/* enqueue head function (required) */
> +	void (*enqueue_head_data)(struct sctp_outq *q, struct sctp_chunk *ch);
> +	/* enqueue tail function (required) */
> +	void (*enqueue_tail_data)(struct sctp_outq *q, struct sctp_chunk *ch);
> +	/* dequeue function (required) */
> +	struct sctp_chunk* (*dequeue_data)(struct sctp_outq *q);
> +	/* is out_chunk_list empty? (required) */
> +	int (*is_empty)(struct sctp_outq *q);
> +
> +	char 		name[SCTP_SCHED_NAME_MAX];
> +	struct module 	*owner;
> +};
> +
> +extern int sctp_register_sched(struct sctp_sched_ops *type);
> +extern void sctp_unregister_sched(struct sctp_sched_ops *type);
> +
> +extern void sctp_cleanup_sched(struct sock *sk);
> +extern int sctp_set_sched(struct sock *sk, const char *name);
> +
> +/*
>   * Pointers to address related SCTP functions.
>   * (i.e. things that depend on the address family.)
>   */
> @@ -1650,6 +1683,9 @@ struct sctp_association {
>  	/* The largest timeout or RTO value to use in attempting an INIT */
>  	unsigned long max_init_timeo;
> 
> +	/* Multistream scheduling  */
> +	const struct sctp_sched_ops *sched_ops;
> +
>  	/* Heartbeat interval: The endpoint sends out a Heartbeat chunk to
>  	 * the destination address every heartbeat interval. This value
>  	 * will be inherited by all new transports.
> diff -uprN -X linux-2.6.32.8/Documentation/dontdiff
> linux-2.6.32.8/include/net/sctp/user.h p1/include/net/sctp/user.h
> --- linux-2.6.32.8/include/net/sctp/user.h	2010-02-09 04:57:19.000000000 -0800
> +++ p1/include/net/sctp/user.h	2010-05-28 10:52:57.000000000 -0700
> @@ -171,6 +171,8 @@ struct sctp_initmsg {
>  	__u16 sinit_max_init_timeo;
>  };
> 
> +#define SCTP_SCHED_NAME_MAX	16
> +
>  /*
>   * 5.2.2 SCTP Header Information Structure (SCTP_SNDRCV)
>   *
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

  parent reply	other threads:[~2010-06-03 15:01 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-03  5:42 [PATCH 1/6] sctp multistream scheduling: declare sctp_sched_ops Yaogong Wang
2010-06-03  5:42 ` Yaogong Wang
2010-06-03 14:45 ` Vlad Yasevich
2010-06-03 14:45   ` Vlad Yasevich
2010-06-03 15:01 ` Vlad Yasevich [this message]
2010-06-03 15:01   ` Vlad Yasevich
2010-06-05 19:11   ` Yaogong Wang
2010-06-05 19:11     ` Yaogong Wang

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=4C07C3B8.7020003@hp.com \
    --to=vladislav.yasevich@hp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sctp@vger.kernel.org \
    --cc=sri@us.ibm.com \
    --cc=ywang15@ncsu.edu \
    /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 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.