PERFORCE change 125474 for review
Marko Zec
zec at FreeBSD.org
Mon Aug 20 17:56:02 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=125474
Change 125474 by zec at 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 \
More information about the p4-projects
mailing list