shaping
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 224
Simple PHP Internet Traffic Shaping 0.0.9b
Simple PHP Internet Traffic Shaping is a PHP Web Interface for managing traffic control queueing disciplines. more>>
Simple PHP Internet Traffic Shaping in short SPITS, is a PHP Web Interface for managing traffic control queueing disciplines (qdiscs) and classes. Iptables rules are used in order to classify the packets. It currently only supports few qdiscs and iptables rules with few matches.
<<less Download (0.017MB)
Added: 2006-09-06 License: GPL (GNU General Public License) Price:
1153 downloads
IPChains 0.5
IPChains is a Perl module to create and manipulate ipchains via Perl. more>>
IPChains is a Perl module to create and manipulate ipchains via Perl.
SYNOPSIS
use IPChains;
$fw = IPChains->new(-option => value, ... ); $fw->append(chain);
This module acts as an interface to the ipchains(8) userspace utility by Paul "Rusty" Russell (http://www.rustcorp.com/linux/ipchains/). It attempts to include all the functionality of the original code with a simplified user interface via Perl. In addition, plans for log parsing facilities, an integrated interface to ipmasqadm, and possibly traffic shaping are slated for up and coming versions.
The new() and attribute() methods support the following options:
Source
Specifies origination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see SourceMask).
SourceMask
Hostmask for origination address. Can either be in 24 or 255.255.255.0 style.
SourcePort
Specific port or port range (use xxx:xxx to denote range), requires specific protocol specification.
Dest
Specifies destination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see DestMask)
DestMask
Destination address, (see SourceMask).
DestPort
Destination Port, (see SourcePort).
Prot
Protocol. Can be tcp, udp, icmp, or all. Required for specifying specific port(s).
ICMP
ICMP Name/Code (in place of port when ICMP is specified as protocol).
Here is a small table of some of the most common ICMP packets:
Number Name Required by
0 echo-reply ping
3 destination-unreachable Any TCP/UDP traffic.
5 redirect routing if not running
routing daemon
8 echo-request ping
11 time-exceeded traceroute
Rule
Target. Can be ACCEPT, DENY, REJECT, MASQ, REDIRECT, RETURN, or a user-defined chain. Note: This is case sensitive.
Interface
Specify a specify interface as part of the criteria (ie, eth0, ppp0, etc.).
Fragment
Rule only refers to second and further fragments of fragmented packets (1 or 0).
Bidir
Makes criteria effective in both directions (1 or 0).
Verbose
Set verbose option for setting rules or list() (1 or 0).
Numeric
Show output from list() in numeric format. No DNS lookups, etc.. (1 or 0).
Log
Enable kernel logging (via syslog, kern.info) of matched packets (1 or 0).
Output
Copy matching packets to the userspace device (advanced).
Mark
Mark matching packets with specified number (advanced).
TOS
Used for modifying the TOS field in the IP header. Takes 2 args, AND and XOR masks, (ie, (TOS => ["0x01", "0x10"])). This feature is highly untested.
The first mask is ANDed with the packets current TOS, and the second mask is XORed with it. Use the following table for reference:
TOS Name Value Typical Uses
Minimum Delay 0x01 0x10 ftp, telnet
Maximum Throughput 0x01 0x08 ftp-data
Maximum Reliability 0x01 0x04 snmp
Minimum Cost 0x01 0x02 nntp
Exact
Display exact numbers in byte counters instead of numbers rounded in Ks, Ms, or Gs (1 or 0).
SYN
Only match TCP packets with the SYN bit set and the ACK and FIN bits cleared (1 or 0).
<<lessSYNOPSIS
use IPChains;
$fw = IPChains->new(-option => value, ... ); $fw->append(chain);
This module acts as an interface to the ipchains(8) userspace utility by Paul "Rusty" Russell (http://www.rustcorp.com/linux/ipchains/). It attempts to include all the functionality of the original code with a simplified user interface via Perl. In addition, plans for log parsing facilities, an integrated interface to ipmasqadm, and possibly traffic shaping are slated for up and coming versions.
The new() and attribute() methods support the following options:
Source
Specifies origination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see SourceMask).
SourceMask
Hostmask for origination address. Can either be in 24 or 255.255.255.0 style.
SourcePort
Specific port or port range (use xxx:xxx to denote range), requires specific protocol specification.
Dest
Specifies destination address of packet. Appending hostmask to this address using a / is OK, as well as specifying it separately (see DestMask)
DestMask
Destination address, (see SourceMask).
DestPort
Destination Port, (see SourcePort).
Prot
Protocol. Can be tcp, udp, icmp, or all. Required for specifying specific port(s).
ICMP
ICMP Name/Code (in place of port when ICMP is specified as protocol).
Here is a small table of some of the most common ICMP packets:
Number Name Required by
0 echo-reply ping
3 destination-unreachable Any TCP/UDP traffic.
5 redirect routing if not running
routing daemon
8 echo-request ping
11 time-exceeded traceroute
Rule
Target. Can be ACCEPT, DENY, REJECT, MASQ, REDIRECT, RETURN, or a user-defined chain. Note: This is case sensitive.
Interface
Specify a specify interface as part of the criteria (ie, eth0, ppp0, etc.).
Fragment
Rule only refers to second and further fragments of fragmented packets (1 or 0).
Bidir
Makes criteria effective in both directions (1 or 0).
Verbose
Set verbose option for setting rules or list() (1 or 0).
Numeric
Show output from list() in numeric format. No DNS lookups, etc.. (1 or 0).
Log
Enable kernel logging (via syslog, kern.info) of matched packets (1 or 0).
Output
Copy matching packets to the userspace device (advanced).
Mark
Mark matching packets with specified number (advanced).
TOS
Used for modifying the TOS field in the IP header. Takes 2 args, AND and XOR masks, (ie, (TOS => ["0x01", "0x10"])). This feature is highly untested.
The first mask is ANDed with the packets current TOS, and the second mask is XORed with it. Use the following table for reference:
TOS Name Value Typical Uses
Minimum Delay 0x01 0x10 ftp, telnet
Maximum Throughput 0x01 0x08 ftp-data
Maximum Reliability 0x01 0x04 snmp
Minimum Cost 0x01 0x02 nntp
Exact
Display exact numbers in byte counters instead of numbers rounded in Ks, Ms, or Gs (1 or 0).
SYN
Only match TCP packets with the SYN bit set and the ACK and FIN bits cleared (1 or 0).
Download (0.050MB)
Added: 2007-05-10 License: Perl Artistic License Price:
897 downloads
Easy Shape 0.1
Easy Shape is a web-based frontend written in HTML/PHP for managing and graphing traffic/bandwidth flows under Linux. more>> <<less
Download (0.015MB)
Added: 2005-09-26 License: GPL (GNU General Public License) Price:
1498 downloads
Shaperd 0.2.1
Shaperd is a user-mode program that can shape traffic passing through a Linux box. more>>
Shaperd is a user-mode program that can shape traffic passing through a Linux box. I egan to write it because I was tired of waiting for the echoes when I telnet other machines over my slow ppp link to the internet. I did try cbq and shaper, but none satisfied me (It wasnt well-documented at the time, but now this is history. Besides, I was looking for something cool to play with. Cbq is very powerful and generic (try it!), but is a little bit harder to learn.
Enhancements:
- This is a maintenance update for iptables 1.2.5. Ive discovered and fixed a couple of alignment problems while working on a sparc64 machine, plus other minor, miscellaneous fixes.
<<lessEnhancements:
- This is a maintenance update for iptables 1.2.5. Ive discovered and fixed a couple of alignment problems while working on a sparc64 machine, plus other minor, miscellaneous fixes.
Download (0.038MB)
Added: 2006-07-04 License: GPL (GNU General Public License) Price:
1209 downloads
vpn-shaper 0.1
vpn-shaper provides a dynamic traffic shaper for vpn, poptop, and similar programs, using iproute2. more>>
vpn-shaper provides a dynamic traffic shaper for vpn, poptop, and similar programs, using iproute2.
vpn-shaper is a dynamic traffic shaper for openvpn, poptop, and similar programs, using iproute2. It allows shaping of traffic between many users conected to one server, and it supports different prioritiy schemes for different users and different types of traffic.
Trafic shaping uses the HTB qdisc. Prioritization uses l7-filter and ipp2p and some of the patch-o-matic extensions.
Classification of trafic in HTB classes is done by using the IPMARC patch-o-matic extension.
<<lessvpn-shaper is a dynamic traffic shaper for openvpn, poptop, and similar programs, using iproute2. It allows shaping of traffic between many users conected to one server, and it supports different prioritiy schemes for different users and different types of traffic.
Trafic shaping uses the HTB qdisc. Prioritization uses l7-filter and ipp2p and some of the patch-o-matic extensions.
Classification of trafic in HTB classes is done by using the IPMARC patch-o-matic extension.
Download (0.005MB)
Added: 2007-04-26 License: GPL (GNU General Public License) Price:
920 downloads
pyshaper 0.1.3
pyshaper is a simple yet very versatile dynamic bandwidth manager application for Linux platforms. more>>
pyshaper is a simple yet very versatile dynamic bandwidth manager application for Linux platforms.
Development of pyshaper was started by a number of factors:
Broadband internet access within New Zealand is abysmal, due to the local telco mafia controlling the local loop. You have to either put up with 128kb/s up/down (with 5-15GB monthly traffic), or suffer stupidly restrictive traffic caps (as little as 400MB/month) if you want faster connections
Existing traffic shaping software is either extremely limited or extremely complicated
I like to participate in a few different Peer2peer networks (eg Freenet, I2P etc - not your typical warez/MP3-type networks, but more privacy/anonymity networks), and I needed a simple way to stop these programs from blowing out my traffic
tc has a steep learning curve, and doesnt allow easy filtering on any criteria other than source/destination host/port.
I scoured the net, and came across the wondershaper script, as well as a prototype easy-shaper program called snitch. These programs helped me to start fathoming the occult mysteries of the arcane tc utility (part of the iproute2 suite). tc in its present state is very lacking in doco and examples, so these programs helped heaps.
So, as is an Open Source motto - If you cant find it, write it! - I realised I had to pull my finger out and write something myself.
Main features:
- pyshaper lets you set bandwidth minimum and maximum limits on several criteria:
-
- remote host/port, and local host/port (most shaper apps have this)
- pid of locally connected program
- username under which local program is running
- command line and arguments under which local program was launched
- country in which remmote peer resides
-
- With all these filtering criteria available, you can set up some pretty sophisticated filters.
-
- For instance, you can use the by program filtering to put bandwidth caps on peer2peer programs that often talk via several different protocols, to different ports (which evades most other traffic-shaping programs).
-
- Or, you can set individual inbound and/or outbound limits based on specific countries (or all countries other than your own).
-
- Configuration file syntax is pretty simple and straightforward. No arcane nutsnbolts TCP/IP grease-monkey bit-bashing knowledge needed. After a quick pass through the doco and examples, youll be building your shaping configuration within a few short minutes.
<<lessDevelopment of pyshaper was started by a number of factors:
Broadband internet access within New Zealand is abysmal, due to the local telco mafia controlling the local loop. You have to either put up with 128kb/s up/down (with 5-15GB monthly traffic), or suffer stupidly restrictive traffic caps (as little as 400MB/month) if you want faster connections
Existing traffic shaping software is either extremely limited or extremely complicated
I like to participate in a few different Peer2peer networks (eg Freenet, I2P etc - not your typical warez/MP3-type networks, but more privacy/anonymity networks), and I needed a simple way to stop these programs from blowing out my traffic
tc has a steep learning curve, and doesnt allow easy filtering on any criteria other than source/destination host/port.
I scoured the net, and came across the wondershaper script, as well as a prototype easy-shaper program called snitch. These programs helped me to start fathoming the occult mysteries of the arcane tc utility (part of the iproute2 suite). tc in its present state is very lacking in doco and examples, so these programs helped heaps.
So, as is an Open Source motto - If you cant find it, write it! - I realised I had to pull my finger out and write something myself.
Main features:
- pyshaper lets you set bandwidth minimum and maximum limits on several criteria:
-
- remote host/port, and local host/port (most shaper apps have this)
- pid of locally connected program
- username under which local program is running
- command line and arguments under which local program was launched
- country in which remmote peer resides
-
- With all these filtering criteria available, you can set up some pretty sophisticated filters.
-
- For instance, you can use the by program filtering to put bandwidth caps on peer2peer programs that often talk via several different protocols, to different ports (which evades most other traffic-shaping programs).
-
- Or, you can set individual inbound and/or outbound limits based on specific countries (or all countries other than your own).
-
- Configuration file syntax is pretty simple and straightforward. No arcane nutsnbolts TCP/IP grease-monkey bit-bashing knowledge needed. After a quick pass through the doco and examples, youll be building your shaping configuration within a few short minutes.
Download (0.055MB)
Added: 2006-07-04 License: (FDL) GNU Free Documentation License Price:
1209 downloads
Geo::ShapeFile 2.51
Geo::ShapeFile is a Perl extension for handling ESRI GIS Shapefiles. more>>
Geo::ShapeFile is a Perl extension for handling ESRI GIS Shapefiles.
SYNOPSIS
use Geo::ShapeFile;
my $shapefile = new Geo::ShapeFile("roads");
for(1 .. $shapefile->shapes()) {
my $shape = $shapefile->get_shp_record($_);
# see Geo::ShapeFile::Shape docs for what to do with $shape
my %db = $shapefile->get_dbf_record($_);
}
ABSTRACT
The Geo::ShapeFile module reads ESRI ShapeFiles containing GIS mapping data, it has support for shp (shape), shx (shape index), and dbf (data base) formats.
The Geo::ShapeFile module reads ESRI ShapeFiles containing GIS mapping data, it has support for shp (shape), shx (shape index), and dbf (data base) formats.
METHODS
new($filename_base)
Creates a new shapefile object, the only argument it takes is the basename for your data (dont include the extension, the module will automatically find the extensions it supports). For example if you have data files called roads.shp, roads.shx, and roads.dbf, use new Geo::ShapeFile("roads"); to create a new object, and the module will load the data it needs from the files as it needs it.
type_is($numeric_type)
Returns true if the major type of this data file is the same as the type passed to type_is().
get_dbf_record($record_index)
Returns the data from the dbf file associated with the specified record index (shapefile indexes start at 1). If called in a list context, returns a hash, if called in a scalar context, returns a hashref.
x_min() x_max() y_min() y_max()
m_min() m_max() z_min() z_max()
Returns the minimum and maximum values for x, y, z, and m fields as indicated in the shp file header.
upper_left_corner() upper_right_corner()
lower_left_corner() lower_right_corner()
Returns a Geo::ShapeFile::Point object indicating the respective corners.
height() width()
Returns the height and width of the area contained in the shp file. Note that this likely does not return miles, kilometers, or any other useful measure, it simply returns x_max - x_min, or y_max - y_min. Whether this data is a useful measure or not depends on your data.
corners()
Returns a four element array consisting of the corners of the area contained in the shp file. The corners are listed clockwise starting with the upper left. (upper_left_corner, upper_right_corner, lower_right_corner, lower_left_corner)
area_contains_point($point,$x_min,$y_min,$x_max,$y_max)
Utility function that returns true if the Geo::ShapeFile::Point object in point falls within the bounds of the rectangle defined by the area indicated. See bounds_contains_point() if you want to check if a point falls within the bounds of the current shp file.
bounds_contains_point($point)
Returns true if the specified point falls within the bounds of the current shp file.
file_version()
Returns the ShapeFile version number of the current shp/shx file.
shape_type()
Returns the shape type contained in the current shp/shx file. The ESRI spec currently allows for a file to contain only a single type of shape (null shapes are the exception, they may appear in any data file). This returns the numeric value for the type, use type() to find the text name of this value.
shapes()
Returns the number of shapes contained in the current shp/shx file. This is the value that allows you to iterate through all the shapes using for(1 .. $obj->shapes()) {.
records()
Returns the number of records contained in the current data. This is similar to
shapes(), but can be used even if you dont have shp/shx files, so you can access data that is stored as dbf, but does not have shapes associated with it.
shape_type_text()
Returns the shape type of the current shp/shx file (see shape_type()), but as the human-readable string type, rather than an integer.
get_shx_record($record_index) =item get_shx_record_header($record_index)
Get the contents of an shx record or record header (for compatibility with the other get_* functions, both are provided, but in the case of shx data, they return the same information). The return value is a two element array consisting of the offset in the shp file where the indicated record begins, and the content length of that record.
get_shp_record_header($record_index)
Retrieve an shp record header for the specified index. Returns a two element array consisting of the record number and the content length of the record.
get_shp_record($record_index)
Retrieve an shp record for the specified index. Returns a Geo::ShapeFile::Shape object.
shapes_in_area($x_min,$y_min,$x_max,$y_max)
Returns an array of integers, consisting of the indices of the shapes that overlap with the area specified. Currently this is a very oversimplified function that actually finds shapes that have any point that falls within the specified bounding box. Currently it may miss some shapes that actually do overlap with the specified area, if there are two points outside the area that cause an edge to pass through the area, but neither of the end points of that edge actually fall within the area specified. Patches to make this function more useful would be welcome.
check_in_area($x1_min,$y1_min,$x1_max,$y1_max,$x2_min,$x2_max,$y2_min,$y2_max)
Returns true if the two specified areas overlap.
bounds()
Returns the bounds for the current shp file. (x_min, y_min, x_max, y_max)
shx_handle() shp_handle() dbf_handle()
Returns the file handles associated with the respective data files.
type($shape_type_number)
Returns the name of the type associated with the given type id number.
find_bounds(@shapes)
Takes an array of Geo::ShapeFile::Shape objects, and returns a hash, with keys of x_min,y_min,x_max,y_max, with the values for each of those ranges.
<<lessSYNOPSIS
use Geo::ShapeFile;
my $shapefile = new Geo::ShapeFile("roads");
for(1 .. $shapefile->shapes()) {
my $shape = $shapefile->get_shp_record($_);
# see Geo::ShapeFile::Shape docs for what to do with $shape
my %db = $shapefile->get_dbf_record($_);
}
ABSTRACT
The Geo::ShapeFile module reads ESRI ShapeFiles containing GIS mapping data, it has support for shp (shape), shx (shape index), and dbf (data base) formats.
The Geo::ShapeFile module reads ESRI ShapeFiles containing GIS mapping data, it has support for shp (shape), shx (shape index), and dbf (data base) formats.
METHODS
new($filename_base)
Creates a new shapefile object, the only argument it takes is the basename for your data (dont include the extension, the module will automatically find the extensions it supports). For example if you have data files called roads.shp, roads.shx, and roads.dbf, use new Geo::ShapeFile("roads"); to create a new object, and the module will load the data it needs from the files as it needs it.
type_is($numeric_type)
Returns true if the major type of this data file is the same as the type passed to type_is().
get_dbf_record($record_index)
Returns the data from the dbf file associated with the specified record index (shapefile indexes start at 1). If called in a list context, returns a hash, if called in a scalar context, returns a hashref.
x_min() x_max() y_min() y_max()
m_min() m_max() z_min() z_max()
Returns the minimum and maximum values for x, y, z, and m fields as indicated in the shp file header.
upper_left_corner() upper_right_corner()
lower_left_corner() lower_right_corner()
Returns a Geo::ShapeFile::Point object indicating the respective corners.
height() width()
Returns the height and width of the area contained in the shp file. Note that this likely does not return miles, kilometers, or any other useful measure, it simply returns x_max - x_min, or y_max - y_min. Whether this data is a useful measure or not depends on your data.
corners()
Returns a four element array consisting of the corners of the area contained in the shp file. The corners are listed clockwise starting with the upper left. (upper_left_corner, upper_right_corner, lower_right_corner, lower_left_corner)
area_contains_point($point,$x_min,$y_min,$x_max,$y_max)
Utility function that returns true if the Geo::ShapeFile::Point object in point falls within the bounds of the rectangle defined by the area indicated. See bounds_contains_point() if you want to check if a point falls within the bounds of the current shp file.
bounds_contains_point($point)
Returns true if the specified point falls within the bounds of the current shp file.
file_version()
Returns the ShapeFile version number of the current shp/shx file.
shape_type()
Returns the shape type contained in the current shp/shx file. The ESRI spec currently allows for a file to contain only a single type of shape (null shapes are the exception, they may appear in any data file). This returns the numeric value for the type, use type() to find the text name of this value.
shapes()
Returns the number of shapes contained in the current shp/shx file. This is the value that allows you to iterate through all the shapes using for(1 .. $obj->shapes()) {.
records()
Returns the number of records contained in the current data. This is similar to
shapes(), but can be used even if you dont have shp/shx files, so you can access data that is stored as dbf, but does not have shapes associated with it.
shape_type_text()
Returns the shape type of the current shp/shx file (see shape_type()), but as the human-readable string type, rather than an integer.
get_shx_record($record_index) =item get_shx_record_header($record_index)
Get the contents of an shx record or record header (for compatibility with the other get_* functions, both are provided, but in the case of shx data, they return the same information). The return value is a two element array consisting of the offset in the shp file where the indicated record begins, and the content length of that record.
get_shp_record_header($record_index)
Retrieve an shp record header for the specified index. Returns a two element array consisting of the record number and the content length of the record.
get_shp_record($record_index)
Retrieve an shp record for the specified index. Returns a Geo::ShapeFile::Shape object.
shapes_in_area($x_min,$y_min,$x_max,$y_max)
Returns an array of integers, consisting of the indices of the shapes that overlap with the area specified. Currently this is a very oversimplified function that actually finds shapes that have any point that falls within the specified bounding box. Currently it may miss some shapes that actually do overlap with the specified area, if there are two points outside the area that cause an edge to pass through the area, but neither of the end points of that edge actually fall within the area specified. Patches to make this function more useful would be welcome.
check_in_area($x1_min,$y1_min,$x1_max,$y1_max,$x2_min,$x2_max,$y2_min,$y2_max)
Returns true if the two specified areas overlap.
bounds()
Returns the bounds for the current shp file. (x_min, y_min, x_max, y_max)
shx_handle() shp_handle() dbf_handle()
Returns the file handles associated with the respective data files.
type($shape_type_number)
Returns the name of the type associated with the given type id number.
find_bounds(@shapes)
Takes an array of Geo::ShapeFile::Shape objects, and returns a hash, with keys of x_min,y_min,x_max,y_max, with the values for each of those ranges.
Download (0.27MB)
Added: 2007-05-18 License: Perl Artistic License Price:
899 downloads
MasterShaper 0.44
MasterShaper is an network traffic shaper. more>>
MasterShaper is an network traffic shaper which provides an Web Interface for Quality of Servcie (QoS) functions of newer Linux 2.4- & 2.6-Kernel-Seriesexternal link.
It targets to let users learn and use traffic shaping mechanism. This should be possible for everyone who has no deeper knowledge of Linux and the difficult syntax of the tc commands from the iproute2external link package.
It provides an Web Interface which lets you define bandwidth pipes and filter (IP, MAC, ports, protocols, ipp2pexternal link, layer7-filterexternal link, ...). Also it draws some graphs about the current bandwidth usage and distribution. There is no more need for any shell access or privileged users.
<<lessIt targets to let users learn and use traffic shaping mechanism. This should be possible for everyone who has no deeper knowledge of Linux and the difficult syntax of the tc commands from the iproute2external link package.
It provides an Web Interface which lets you define bandwidth pipes and filter (IP, MAC, ports, protocols, ipp2pexternal link, layer7-filterexternal link, ...). Also it draws some graphs about the current bandwidth usage and distribution. There is no more need for any shell access or privileged users.
Download (0.72MB)
Added: 2006-03-22 License: GPL (GNU General Public License) Price:
1317 downloads
QPong 0.7.1
QPong project is another clone of the game pong. more>>
QPong project is another clone of the game "pong".
It features some nice graphics and is very flexible.
You can configure the images, sizes, speeds, and shapes of the pads and balls.
Most importantly, its fun to play.
<<lessIt features some nice graphics and is very flexible.
You can configure the images, sizes, speeds, and shapes of the pads and balls.
Most importantly, its fun to play.
Download (MB)
Added: 2006-11-16 License: GPL (GNU General Public License) Price:
1072 downloads
SuperShaper-SOHO 1.1
SuperShaper-SOHO is a traffic shaping setup for DSL connections. more>>
SuperShaper-SOHO is a traffic shaping setup for DSL connections which prioritizes VoIP and interactive traffic and makes sure P2P traffic doesnt saturate your uplink.
IPCop 1.3 and newer is known to work and is the preferred deployment setup. Firstly, be sure to disable the integrated traffic shaper in IPCop 1.4 if you use SuperShaper-SOHO.
<<lessIPCop 1.3 and newer is known to work and is the preferred deployment setup. Firstly, be sure to disable the integrated traffic shaper in IPCop 1.4 if you use SuperShaper-SOHO.
Download (0.009MB)
Added: 2006-07-03 License: GPL (GNU General Public License) Price:
1211 downloads
Fair NAT 0.80
Fair NAT is a script for configuring NAT on dedicated Linux routers. more>>
Fair NAT is a script for configuring NAT on dedicated Linux routers. This is the home of my linux router shaper script which allows something like fair bandwidth sharing among clients in the local network. The script is not great or anything - please dont expect the holy grail here - I just thought Id publish it because many people helped me write it and maybe someone has some use for it. I bet there are still lots of things that can be improved. Sorry about the crappy design of this page, I dont have time to put more effort in better looks.
You have a certain number of Clients (User A - User N) in your LAN which are connected by a Switch (or a Hub or BNC) to the Linux Router which is supposed to act as a gateway to the internet. The trouble now is, User B has a lot of downloads running and User C uploads stuff day and night, which leaves User A who only wants to use an interactive SSH shell in the rain, since B and C already use up all bandwidth the internet connection offers.
What we need to do is to share available bandwidth fairly among clients. In order to achieve this, I first tried several searches at Google and Freshmeat. This turned up quite a lot of results, like the Linux Advanced Routing & Traffic Control HOWTO which is a must-read and also contains great scripts, like the Wondershaper for single users. Another great general purpose script I found was HTB.init, which doesnt do anything by default, but gives you an easy way to setup HTB queues. In case you prefer CBQ, theres a CBQ.init too. If you dont know what Im talking about, read the HOWTO above or continue reading here.
Since I never found a script that did exactly what I wanted, I decided to write my own. Its designed to be an all-I-need script, therefore it does not just setup Traffic Shaping, but Masquerading and Port Forwarding too. In short, it does everything that has to do with IPTables and Traffic Control. I use HTB (Hierarchical Token Bucket) to share bandwidth among clients (one class per client). On top of that I added a PRIO queue to prioritize interactive traffic on a per-user basis. On top of PRIO I set SFQ to treat connections fairly. In version 0.72, experimental support for IPP2P to recognize peer-to-peer traffic was added.
This is the simplified scheme for routing:
HTB class (for bandwidth sharing)
|
-- PRIO (for prioritizing interactive traffic)
|
--- Interactive: SFQ (to treat concurrent connections fairly)
--- Normal: SFQ
--- High-Traffic: SFQ
[ --- P2P: SFQ (if IPP2P support is enabled only) ]
I bet this can still be improved and Im always interested in ways to do so. In case you want another class structure, this can be done by replacing the parent_class and user_class functions in the script. See CLASS_MODE in Configuration section and the function documentation in the script for details. Feel free to send me your own functions with a short explanation, if you want me to make them available for everybody.
Heres a "real" graphic, which shows the complete qdisc/class structure on $DEV_LAN if you use the unmodified example configuration file. This graphic was created using a hacked version of Stef Coenes show.pl script and GraphViz. Click here to see it, but I warn you: its quite big. Heres a similar picture, which includes IPP2P support. Note that there are more filter rules (the blue arrows) now which put the filesharing traffic into the users prio band 4.
Main features:
- This is a variable with a space-separated list of features that should be enabled. Default is all enabled if you dont set this variable.
- PROC:
- Allow Fair NAT to change some system variables in /proc, like setting /proc/sys/net/ipv4/ip_forward to 1.
- MODULES:
- Try to load kernel modules for QoS first.
- RESET:
- Fair NAT will replace all existing iptables rules with a very basic (empty) configuration. Not healthy for firewalls. You can disable this feature to keep the original rules in place. See Firewall Support below.
- NAT:
- Allow Fair NAT to configure NAT. You could disable this if you prefer to set this up yourself / let your firewall do it.
- FORWARD:
- Allow Fair NAT to configure Port Forwarding. Same as NAT, you can disable this if you dont need it.
- QOS_DOWN:
- Shape download traffic. If you know a little bit about traffic shaping and believe that download shaping is completely useless, feel free to disable this.
- QOS_UP:
- Shaping upload traffic can be disabled also. If you disable this and QOS_DOWN also, you could use Fair NAT for setting up NAT and Port Forwarding only, although thats not really the purpose of the script ;-)
- TOS:
- Allow Fair NAT to modify the TOS (type-of-service) field of packets. Right now, Fair NAT relies on this TOS field for shaping, so using this feature is highly recommended.
<<lessYou have a certain number of Clients (User A - User N) in your LAN which are connected by a Switch (or a Hub or BNC) to the Linux Router which is supposed to act as a gateway to the internet. The trouble now is, User B has a lot of downloads running and User C uploads stuff day and night, which leaves User A who only wants to use an interactive SSH shell in the rain, since B and C already use up all bandwidth the internet connection offers.
What we need to do is to share available bandwidth fairly among clients. In order to achieve this, I first tried several searches at Google and Freshmeat. This turned up quite a lot of results, like the Linux Advanced Routing & Traffic Control HOWTO which is a must-read and also contains great scripts, like the Wondershaper for single users. Another great general purpose script I found was HTB.init, which doesnt do anything by default, but gives you an easy way to setup HTB queues. In case you prefer CBQ, theres a CBQ.init too. If you dont know what Im talking about, read the HOWTO above or continue reading here.
Since I never found a script that did exactly what I wanted, I decided to write my own. Its designed to be an all-I-need script, therefore it does not just setup Traffic Shaping, but Masquerading and Port Forwarding too. In short, it does everything that has to do with IPTables and Traffic Control. I use HTB (Hierarchical Token Bucket) to share bandwidth among clients (one class per client). On top of that I added a PRIO queue to prioritize interactive traffic on a per-user basis. On top of PRIO I set SFQ to treat connections fairly. In version 0.72, experimental support for IPP2P to recognize peer-to-peer traffic was added.
This is the simplified scheme for routing:
HTB class (for bandwidth sharing)
|
-- PRIO (for prioritizing interactive traffic)
|
--- Interactive: SFQ (to treat concurrent connections fairly)
--- Normal: SFQ
--- High-Traffic: SFQ
[ --- P2P: SFQ (if IPP2P support is enabled only) ]
I bet this can still be improved and Im always interested in ways to do so. In case you want another class structure, this can be done by replacing the parent_class and user_class functions in the script. See CLASS_MODE in Configuration section and the function documentation in the script for details. Feel free to send me your own functions with a short explanation, if you want me to make them available for everybody.
Heres a "real" graphic, which shows the complete qdisc/class structure on $DEV_LAN if you use the unmodified example configuration file. This graphic was created using a hacked version of Stef Coenes show.pl script and GraphViz. Click here to see it, but I warn you: its quite big. Heres a similar picture, which includes IPP2P support. Note that there are more filter rules (the blue arrows) now which put the filesharing traffic into the users prio band 4.
Main features:
- This is a variable with a space-separated list of features that should be enabled. Default is all enabled if you dont set this variable.
- PROC:
- Allow Fair NAT to change some system variables in /proc, like setting /proc/sys/net/ipv4/ip_forward to 1.
- MODULES:
- Try to load kernel modules for QoS first.
- RESET:
- Fair NAT will replace all existing iptables rules with a very basic (empty) configuration. Not healthy for firewalls. You can disable this feature to keep the original rules in place. See Firewall Support below.
- NAT:
- Allow Fair NAT to configure NAT. You could disable this if you prefer to set this up yourself / let your firewall do it.
- FORWARD:
- Allow Fair NAT to configure Port Forwarding. Same as NAT, you can disable this if you dont need it.
- QOS_DOWN:
- Shape download traffic. If you know a little bit about traffic shaping and believe that download shaping is completely useless, feel free to disable this.
- QOS_UP:
- Shaping upload traffic can be disabled also. If you disable this and QOS_DOWN also, you could use Fair NAT for setting up NAT and Port Forwarding only, although thats not really the purpose of the script ;-)
- TOS:
- Allow Fair NAT to modify the TOS (type-of-service) field of packets. Right now, Fair NAT relies on this TOS field for shaping, so using this feature is highly recommended.
Download (0.031MB)
Added: 2006-06-29 License: GPL (GNU General Public License) Price:
1214 downloads
barvinok 0.24
barvinok is a library for counting the number of points in parametrized and non-parametrized polytopes based on polylib. more>>
barvinok library can count the number of integer points in parametrized and non-parametrized polytopes.
For parametrized polytopes an explicit function in the shape of a piece-wise step-polynomial is constructed.
This is a generalization of both Ehrhart quasi-polynomials and vector partition functions. Alternatively, a generalized Ehrhart series can be constructed as well.
Enhancements:
- This release supports exponential substitution for non-parametric problems, primal and stopped decomposition for parametric problems, and a polynomial approximation based on nested sums.
<<lessFor parametrized polytopes an explicit function in the shape of a piece-wise step-polynomial is constructed.
This is a generalization of both Ehrhart quasi-polynomials and vector partition functions. Alternatively, a generalized Ehrhart series can be constructed as well.
Enhancements:
- This release supports exponential substitution for non-parametric problems, primal and stopped decomposition for parametric problems, and a polynomial approximation based on nested sums.
Download (0.39MB)
Added: 2007-07-02 License: BSD License Price:
846 downloads
OpenCSG 1.1.0
OpenCSG project is a library that does image-based CSG rendering using OpenGL. more>>
OpenCSG project is a library that does image-based CSG rendering using OpenGL. OpenCSG is written in C++ and supports most modern graphics hardware using Microsoft Windows or the Linux operating system. OpenCSG-1.1.0 is the current version.
What is CSG, anyway? CSG is short for Constructive Solid Geometry and denotes an approach to model complex 3D-shapes using simpler ones. I.e., two shapes can be combined by taking the union of them, by intersecting them, or by subtracting one shape of the other. The most basic shapes, which are not result of such a CSG operation, are called primitives. Primitives must be solid, i.e., they must have a clearly defined interior and exterior. By construction, a CSG shape is also solid then.
Image-based CSG rendering (also z-buffer CSG rendering) is a term that denotes algorithms for rendering CSG shapes without an explicit calculation of the geometric boundary of a CSG shape. Such algorithms use frame-buffer settings of the graphics hardware, e.g., the depth and stencil buffer, to compose CSG shapes. OpenCSG implements a variety of those algorithms, namely the Goldfeather algorithm and the SCS algorithm, both of them in several variants.
Benefits:
CSG is often used as fundamental modeling technique in CAD/CAM applications. Here, image-based CSG rendering is the key to interactively manipulate CSG shapes. Since OpenCSG renders even complex CSG shapes fast, it can be advantageously used in such applications.
Raytracers such as PovRay have used CSG for shape modeling since long ago. Interactive modeling toolkits for such raytracers normally just ignore CSG commands, though. OpenCSG represents a valuable addition for such applications.
Overall, up to the present CSG rendering has been hardly used in interactive applications, since the necessary algorithms are complicated and error-prone. We hope that by providing a free library that is easy to use, fast, and versatile, CSG rendering can be made more mainstream than it currently is.
Usage:
The interface of OpenCSG is very easy to use. There is only a single abstract class called OpenCSG::Primitive. A Primitive object has an attribute Operation that denotes whether the primitive is intersected or subtracted. To use OpenCSG, create a derived concrete primitive class by implementing the render() method.
To actually do the CSG rendering, there is the function OpenCSG::render() that takes a std::vector as argument. The render function evaluates the CSG expression given by the array of primitives and initializes the z-buffer with the proper values for the CSG expression. The color buffer remains unchanged, so afterwards, you must shade the primitives in the array using a GL_EQUAL depth function.
Note that the render function does not evaluate a generic CSG tree that also would contain unions of CSG shapes. It has been shown that a generic CSG tree can be converted into an equivalent set of CSG expressions that the render function can handle. OpenCSG does not contain the functionality for this conversion since, after all, it is a rendering library.
Enhancements:
- OpenCSG can now use OpenGL frame buffer objects as an alternative to pbuffers to do the internal CSG rendering calculations.
- This potentially reduces the rendering overhead because no switching between different rendering contexts is required.
- Several other bugs have been fixed.
<<lessWhat is CSG, anyway? CSG is short for Constructive Solid Geometry and denotes an approach to model complex 3D-shapes using simpler ones. I.e., two shapes can be combined by taking the union of them, by intersecting them, or by subtracting one shape of the other. The most basic shapes, which are not result of such a CSG operation, are called primitives. Primitives must be solid, i.e., they must have a clearly defined interior and exterior. By construction, a CSG shape is also solid then.
Image-based CSG rendering (also z-buffer CSG rendering) is a term that denotes algorithms for rendering CSG shapes without an explicit calculation of the geometric boundary of a CSG shape. Such algorithms use frame-buffer settings of the graphics hardware, e.g., the depth and stencil buffer, to compose CSG shapes. OpenCSG implements a variety of those algorithms, namely the Goldfeather algorithm and the SCS algorithm, both of them in several variants.
Benefits:
CSG is often used as fundamental modeling technique in CAD/CAM applications. Here, image-based CSG rendering is the key to interactively manipulate CSG shapes. Since OpenCSG renders even complex CSG shapes fast, it can be advantageously used in such applications.
Raytracers such as PovRay have used CSG for shape modeling since long ago. Interactive modeling toolkits for such raytracers normally just ignore CSG commands, though. OpenCSG represents a valuable addition for such applications.
Overall, up to the present CSG rendering has been hardly used in interactive applications, since the necessary algorithms are complicated and error-prone. We hope that by providing a free library that is easy to use, fast, and versatile, CSG rendering can be made more mainstream than it currently is.
Usage:
The interface of OpenCSG is very easy to use. There is only a single abstract class called OpenCSG::Primitive. A Primitive object has an attribute Operation that denotes whether the primitive is intersected or subtracted. To use OpenCSG, create a derived concrete primitive class by implementing the render() method.
To actually do the CSG rendering, there is the function OpenCSG::render() that takes a std::vector as argument. The render function evaluates the CSG expression given by the array of primitives and initializes the z-buffer with the proper values for the CSG expression. The color buffer remains unchanged, so afterwards, you must shade the primitives in the array using a GL_EQUAL depth function.
Note that the render function does not evaluate a generic CSG tree that also would contain unions of CSG shapes. It has been shown that a generic CSG tree can be converted into an equivalent set of CSG expressions that the render function can handle. OpenCSG does not contain the functionality for this conversion since, after all, it is a rendering library.
Enhancements:
- OpenCSG can now use OpenGL frame buffer objects as an alternative to pbuffers to do the internal CSG rendering calculations.
- This potentially reduces the rendering overhead because no switching between different rendering contexts is required.
- Several other bugs have been fixed.
Download (0.46MB)
Added: 2006-12-05 License: GPL (GNU General Public License) Price:
1059 downloads
Pipepanic 0.1.3
Pipepanic is a pipe connecting game using libSDL. more>>
Pipepanic is a pipe connecting game using libSDL. It is playable on Linux PCs and the Sharp Zaurus. Connect as many different shaped pipes together as possible within the time given.
Comes with built-in help, is primarily mouse/stylus driven and can be played in different resolutions and orientations.
<<lessComes with built-in help, is primarily mouse/stylus driven and can be played in different resolutions and orientations.
Download (0.22MB)
Added: 2006-05-19 License: GPL (GNU General Public License) Price:
1254 downloads
Voyage Linux 0.1
Voyage Linux is a Debian sarge-based distro (voyage) built from scratch. more>>
Voyage Linux is a Debian sarge-based distro (voyage) built from scratch. It is best run on a x86-based embedded platform such as Soekris 45xx/48xx and WRAP boards.
Main features:
- based on Debian Sarge r3.1
- 2.6.8.1 kernel
- prism54, hostap, madwifi, ipw2100, rt2400 drivers
- hostapd, wpa_supplicant from sarge
ToDo:
- improving installation scripts to allow different flavour for building customized distro
- scripts for setting up network configuration
- more wireless drivers (ipw2200, rt2500, etc.)
- further reducing in size
- light-weighted web server (thttpd + php) for system configuration
- bootable CD with voyage installer, pxeboot support
- more software features, like zebra/quagga, OpenVPN, FreeSWAN, traffic shaping/QoS, Asterisk/VoIP, etc.
<<lessMain features:
- based on Debian Sarge r3.1
- 2.6.8.1 kernel
- prism54, hostap, madwifi, ipw2100, rt2400 drivers
- hostapd, wpa_supplicant from sarge
ToDo:
- improving installation scripts to allow different flavour for building customized distro
- scripts for setting up network configuration
- more wireless drivers (ipw2200, rt2500, etc.)
- further reducing in size
- light-weighted web server (thttpd + php) for system configuration
- bootable CD with voyage installer, pxeboot support
- more software features, like zebra/quagga, OpenVPN, FreeSWAN, traffic shaping/QoS, Asterisk/VoIP, etc.
Download (52.5MB)
Added: 2005-10-17 License: GPL (GNU General Public License) Price:
1472 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above shaping search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed