Date: Tue, 21 Aug 2007 00:56:01 GMT From: Marko Zec <zec@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 125474 for review Message-ID: <200708210056.l7L0u1E9024985@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=125474 Change 125474 by zec@zec_tpx32 on 2007/08/21 00:55:28 Welcome ng_pipe: a trafic shaping and delay emulation netgraph node. Traffic flows through ng_pipe upstream and downstream, through two queues in each direction. The first queue provides bandwidth emulation along with configurable queueing options selectable from FIFO, DRR and WFQ, with front or tail dropping, as well as duplicate packet generation. The second queue simply delays all traffic for preconfigured amount of time, while optionally dropping some packets based on BER setting. Except for propagation delay all settings are independently configurable on per-direction basis. ng_pipe originally appeared as a kernel module for 4.11, and this is a first-cut attempt at porting the code to -CURRENT. To simplify the initial debugging efforts the port has been stripped off of some goodies present in the original incarnation, namely support for XCP-compliant queuing and packet marking, and a few configurable variations of RED (GRED / ARED / WRED). Those might or might not reappear at some future time, after more experiences are gained about (future) interaction between ng_pipe and ALTQ as well as ng_car. As of now all ng_pipe state is protected by a single mutex lock, which as a locking strategy should be revised as throughput / performance comes more into the focus. Affected files ... .. //depot/projects/vimage/src/sys/conf/files#18 edit .. //depot/projects/vimage/src/sys/conf/options#18 edit .. //depot/projects/vimage/src/sys/modules/netgraph/Makefile#6 edit .. //depot/projects/vimage/src/sys/modules/netgraph/pipe/Makefile#1 add .. //depot/projects/vimage/src/sys/netgraph/ng_pipe.c#1 add .. //depot/projects/vimage/src/sys/netgraph/ng_pipe.h#1 add Differences ... ==== //depot/projects/vimage/src/sys/conf/files#18 (text+ko) ==== @@ -1820,6 +1820,7 @@ netgraph/ng_nat.c optional netgraph_nat netgraph/ng_one2many.c optional netgraph_one2many netgraph/ng_parse.c optional netgraph +netgraph/ng_pipe.c optional netgraph_pipe netgraph/ng_ppp.c optional netgraph_ppp netgraph/ng_pppoe.c optional netgraph_pppoe netgraph/ng_pptpgre.c optional netgraph_pptpgre ==== //depot/projects/vimage/src/sys/conf/options#18 (text+ko) ==== @@ -452,6 +452,7 @@ NETGRAPH_NAT opt_netgraph.h NETGRAPH_NETFLOW opt_netgraph.h NETGRAPH_ONE2MANY opt_netgraph.h +NETGRAPH_PIPE opt_netgraph.h NETGRAPH_PPP opt_netgraph.h NETGRAPH_PPPOE opt_netgraph.h NETGRAPH_PPTPGRE opt_netgraph.h ==== //depot/projects/vimage/src/sys/modules/netgraph/Makefile#6 (text+ko) ==== @@ -34,6 +34,7 @@ netflow \ netgraph \ one2many \ + pipe \ ppp \ pppoe \ pptpgre \
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708210056.l7L0u1E9024985>