lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 14 Oct 2010 14:07:26 -0400 From: Yaogong Wang <ywang15@...u.edu> To: Shan Wei <shanwei@...fujitsu.com> Cc: linux-sctp@...r.kernel.org, Vlad Yasevich <vladislav.yasevich@...com>, linux-kernel@...r.kernel.org Subject: Re: [PATCHv2 4/5] sctp: a sample module of strict priority queue On Wed, Oct 13, 2010 at 4:36 AM, Shan Wei <shanwei@...fujitsu.com> wrote: > Yaogong Wang wrote, at 09/12/2010 09:13 AM: >> Provide a sample kernel module that uses the pluggable multistream >> scheduling framework. This module implements strict priority queue. >> >> Signed-off-by: Yaogong Wang <ywang15@...u.edu> >> --- >> net/sctp/Kconfig | 12 ++++++ >> net/sctp/Makefile | 1 + >> net/sctp/sctp_prio.c | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++ >> 3 files changed, 116 insertions(+), 0 deletions(-) >> create mode 100644 net/sctp/sctp_prio.c >> >> diff --git a/net/sctp/Kconfig b/net/sctp/Kconfig >> index 126b014..85c8ded 100644 >> --- a/net/sctp/Kconfig >> +++ b/net/sctp/Kconfig >> @@ -37,6 +37,18 @@ menuconfig IP_SCTP >> >> if IP_SCTP >> >> +config SCTP_SCHED_PRIO >> + tristate "SCTP Multistream Scheduling: Priority Queue" >> + default m >> + help >> + This module provides the ability to use priority queue >> + to schedule multiple streams within an association. >> + >> + To compile this code as a module, choose M here: the >> + module will be called sctp_prio. >> + >> + If in doubt, say N. >> + >> config NET_SCTPPROBE >> tristate "SCTP: Association probing" >> depends on PROC_FS && KPROBES >> diff --git a/net/sctp/Makefile b/net/sctp/Makefile >> index 4e8b65d..89be03a 100644 >> --- a/net/sctp/Makefile >> +++ b/net/sctp/Makefile >> @@ -4,6 +4,7 @@ >> >> obj-$(CONFIG_IP_SCTP) += sctp.o >> obj-$(CONFIG_NET_SCTPPROBE) += sctp_probe.o >> +obj-$(CONFIG_SCTP_SCHED_PRIO) += sctp_prio.o >> >> sctp-y := sm_statetable.o sm_statefuns.o sm_sideeffect.o \ >> protocol.o endpointola.o associola.o \ >> diff --git a/net/sctp/sctp_prio.c b/net/sctp/sctp_prio.c >> new file mode 100644 >> index 0000000..11e7e11 >> --- /dev/null >> +++ b/net/sctp/sctp_prio.c >> @@ -0,0 +1,103 @@ >> +/* >> + * SCTP multistream scheduling: priority queue >> + */ >> + >> +#include <linux/module.h> >> +#include <linux/types.h> >> +#include <linux/list.h> >> +#include <net/sctp/sctp.h> >> + >> +static int prio_init(struct sctp_outq *q, gfp_t gfp) >> +{ >> + __u16 i; >> + q->out_chunk_list = kmalloc(q->asoc->c.sinit_num_ostreams >> + * sizeof(struct list_head), gfp); >> + if (!q->out_chunk_list) >> + return -ENOMEM; >> + for (i = 0; i < q->asoc->c.sinit_num_ostreams; i++) >> + INIT_LIST_HEAD(&q->out_chunk_list[i]); >> + >> + return 0; >> +} >> + >> +static void prio_release(struct sctp_outq *q) >> +{ >> + kfree(q->out_chunk_list); >> + return; >> +} >> + >> +static void prio_enqueue_head_data(struct sctp_outq *q, >> + struct sctp_chunk *ch) >> +{ >> + list_add(&ch->list, &q->out_chunk_list[ch->sinfo.sinfo_stream]); > > User can using SCTP_SNDRCV option to specific stream number. > So, It is necessary to check stream number with q->asoc->c.sinit_num_ostreams. Isn't this check already performed in sctp_sendmsg() before it comes to sctp_outq? > >> + q->out_qlen += ch->skb->len; >> + return; >> +} >> + >> +static void prio_enqueue_tail_data(struct sctp_outq *q, struct sctp_chunk *ch) >> +{ >> + list_add_tail(&ch->list, &q->out_chunk_list[ch->sinfo.sinfo_stream]); > > need to check too. > > > > -- > Best Regards > ----- > Shan Wei > > -- ======================== Yaogong Wang, PhD candidate Department of Computer Science North Carolina State University http://www4.ncsu.edu/~ywang15/ ======================== -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists