Per-user upload and download throttle rates - Yuri
Make autothrottle.so understand cisco lcp:interface-config - Yuri Show filter stats in show session - Yuri
This commit is contained in:
parent
32febcb0c7
commit
90ebb19a3d
6 changed files with 198 additions and 97 deletions
37
tbf.c
37
tbf.c
|
|
@ -1,6 +1,6 @@
|
|||
// L2TPNS: token bucket filters
|
||||
|
||||
char const *cvs_id_tbf = "$Id: tbf.c,v 1.4 2004/07/08 16:54:35 bodea Exp $";
|
||||
char const *cvs_id_tbf = "$Id: tbf.c,v 1.5 2004/08/26 06:22:37 fred_nerk Exp $";
|
||||
|
||||
#define _GNU_SOURCE
|
||||
|
||||
|
|
@ -12,40 +12,7 @@ char const *cvs_id_tbf = "$Id: tbf.c,v 1.4 2004/07/08 16:54:35 bodea Exp $";
|
|||
#include "util.h"
|
||||
#include "tbf.h"
|
||||
|
||||
// Need a time interval.
|
||||
|
||||
#define TBF_MAX_QUEUE 2 // Maximum of 2 queued packet per
|
||||
#define TBF_MAX_SIZE 3000 // Maxiumum queued packet size is 2048.
|
||||
|
||||
#define TBF_MAX_CREDIT 6000 // Maximum 6000 bytes of credit.
|
||||
#define TBF_RATE 360 // 360 bytes per 1/10th of a second.
|
||||
|
||||
typedef struct {
|
||||
int credit;
|
||||
int lasttime;
|
||||
int queued;
|
||||
int oldest; // Position of packet in the ring buffer.
|
||||
sessionidt sid; // associated session ID.
|
||||
int max_credit; // Maximum amount of credit available (burst size).
|
||||
int rate; // How many bytes of credit per second we get? (sustained rate)
|
||||
void (*send)(sessionidt s, u8 *, int); // Routine to actually send out the data.
|
||||
int prev; // Timer chain position.
|
||||
int next; // Timer chain position.
|
||||
|
||||
u32 b_queued; // Total bytes sent through this TBF
|
||||
u32 b_sent; // Total bytes sucessfully made it to the network.
|
||||
u32 p_queued; // ditto packets.
|
||||
u32 p_sent; // ditto packets.
|
||||
u32 b_dropped; // Total bytes dropped.
|
||||
u32 p_dropped; // Total packets dropped.
|
||||
u32 p_delayed; // Total packets not sent immediately.
|
||||
|
||||
int sizes[TBF_MAX_QUEUE];
|
||||
char packets[TBF_MAX_QUEUE][TBF_MAX_SIZE];
|
||||
} tbft;
|
||||
|
||||
|
||||
static tbft *filter_list = NULL;
|
||||
tbft *filter_list = NULL;
|
||||
static int filter_list_size = 0;
|
||||
|
||||
static int timer_chain = -1; // Head of timer chain.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue