projects
/
l2tpns.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
release 2.0.3
[l2tpns.git]
/
l2tpns.h
diff --git
a/l2tpns.h
b/l2tpns.h
index
d4c8ff7
..
1288233
100644
(file)
--- a/
l2tpns.h
+++ b/
l2tpns.h
@@
-1,5
+1,5
@@
// L2TPNS Global Stuff
// L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.
18 2004/09/19 23:26:46 fred_nerk
Exp $
+// $Id: l2tpns.h,v 1.
27 2004/11/02 23:43:52 bodea
Exp $
#ifndef __L2TPNS_H__
#define __L2TPNS_H__
#ifndef __L2TPNS_H__
#define __L2TPNS_H__
@@
-15,7
+15,7
@@
#include <sys/types.h>
#include <libcli.h>
#include <sys/types.h>
#include <libcli.h>
-#define VERSION "2.0.
1
"
+#define VERSION "2.0.
3
"
// Limits
#define MAXTUNNEL 500 // could be up to 65535
// Limits
#define MAXTUNNEL 500 // could be up to 65535
@@
-40,26
+40,37
@@
#define MAX_LOG_LENGTH 512 // Maximum size of log message
#define ECHO_TIMEOUT 60 // Time between last packet sent and LCP ECHO generation
#define IDLE_TIMEOUT 240 // Time between last packet sent and LCP ECHO generation
#define MAX_LOG_LENGTH 512 // Maximum size of log message
#define ECHO_TIMEOUT 60 // Time between last packet sent and LCP ECHO generation
#define IDLE_TIMEOUT 240 // Time between last packet sent and LCP ECHO generation
-#define BUSY_WAIT_TIME
OUT 3000
// 5 minutes in 1/10th seconds to wait for radius to cleanup on shutdown
+#define BUSY_WAIT_TIME
3000
// 5 minutes in 1/10th seconds to wait for radius to cleanup on shutdown
// Constants
// Constants
-#include "config.h"
-#ifndef PLUGINDIR
-#define PLUGINDIR LIBDIR // Plugins
+#ifndef ETCDIR
+#define ETCDIR "/etc/l2tpns"
#endif
#endif
-#ifndef
PLUGINCONF
-#define
PLUGINCONF ETCDIR // Plugin config dir
+#ifndef
LIBDIR
+#define
LIBDIR "/usr/lib/l2tpns"
#endif
#endif
-#ifndef DATADIR
-#define DATADIR "/tmp"
+#ifndef STATEDIR
+#define STATEDIR "/var/lib/l2tpns"
+#endif
+
+#ifndef PLUGINDIR
+#define PLUGINDIR LIBDIR // Plugins
+#endif
+
+#ifndef PLUGINCONF
+#define PLUGINCONF ETCDIR // Plugin config dir
#endif
#ifndef FLASHDIR
#define FLASHDIR ETCDIR
#endif
#endif
#ifndef FLASHDIR
#define FLASHDIR ETCDIR
#endif
+#ifndef DATADIR
+#define DATADIR STATEDIR
+#endif
+
#define TUNDEVICE "/dev/net/tun"
#define STATEFILE DATADIR "/state.dump" // State dump file
#define CONFIGFILE FLASHDIR "/startup-config" // Configuration file
#define TUNDEVICE "/dev/net/tun"
#define STATEFILE DATADIR "/state.dump" // State dump file
#define CONFIGFILE FLASHDIR "/startup-config" // Configuration file
@@
-111,7
+122,8
@@
struct cli_session_actions {
char action;
ipt snoop_ip;
u16 snoop_port;
char action;
ipt snoop_ip;
u16 snoop_port;
- int throttle;
+ int throttle_in;
+ int throttle_out;
};
#define CLI_SESS_KILL 0x01
};
#define CLI_SESS_KILL 0x01
@@
-161,7
+173,8
@@
typedef struct sessions
u32 total_cin; // This counter is never reset while a session is open
u32 total_cout; // This counter is never reset while a session is open
u32 id; // session id
u32 total_cin; // This counter is never reset while a session is open
u32 total_cout; // This counter is never reset while a session is open
u32 id; // session id
- u32 throttle; // non-zero if this session is throttled.
+ u16 throttle_in; // upstream throttle rate (kbps)
+ u16 throttle_out; // downstream throttle rate
clockt opened; // when started
clockt die; // being closed, when to finally free
time_t last_packet; // Last packet from the user (used for idle timeouts)
clockt opened; // when started
clockt die; // being closed, when to finally free
time_t last_packet; // Last packet from the user (used for idle timeouts)
@@
-408,7
+421,9
@@
struct configt
ipt default_dns1, default_dns2;
ipt default_dns1, default_dns2;
- unsigned long rl_rate;
+ unsigned long rl_rate; // default throttle rate
+ int num_tbfs; // number of throttle buckets
+
int save_state;
char accounting_dir[128];
ipt bind_address;
int save_state;
char accounting_dir[128];
ipt bind_address;
@@
-448,7
+463,6
@@
struct configt
char bgp_peer[2][64];
u16 bgp_peer_as[2];
#endif
char bgp_peer[2][64];
u16 bgp_peer_as[2];
#endif
- char hostname[256]; // our hostname - set to gethostname() by default
};
struct config_descriptt
};
struct config_descriptt
@@
-456,7
+470,7
@@
struct config_descriptt
char *key;
int offset;
int size;
char *key;
int offset;
int size;
- enum { INT, STRING, UNSIGNED_LONG, SHORT, BOOL, IP } type;
+ enum { INT, STRING, UNSIGNED_LONG, SHORT, BOOL, IP
, MAC
} type;
};
// arp.c
};
// arp.c
@@
-485,17
+499,6
@@
void radiusretry(u16 r);
u16 radiusnew(sessionidt s);
void radiusclear(u16 r, sessionidt s);
u16 radiusnew(sessionidt s);
void radiusclear(u16 r, sessionidt s);
-// throttle.c
-int throttle_session(sessionidt s, int throttle);
-
-
-// rl.c
-void init_rl();
-u16 rl_create_tbf();
-u16 rl_get_tbf();
-void rl_done_tbf(u16 t);
-void rl_destroy_tbf(u16 t);
-
// l2tpns.c
clockt now(void);
// l2tpns.c
clockt now(void);
@@
-503,7
+506,7
@@
clockt backoff(u8 try);
void routeset(sessionidt, ipt ip, ipt mask, ipt gw, u8 add);
void inittun(void);
void initudp(void);
void routeset(sessionidt, ipt ip, ipt mask, ipt gw, u8 add);
void inittun(void);
void initudp(void);
-void initdata(
void
);
+void initdata(
int optdebug, char *optconfig
);
void initippool();
sessionidt sessionbyip(ipt ip);
sessionidt sessionbyuser(char *username);
void initippool();
sessionidt sessionbyip(ipt ip);
sessionidt sessionbyuser(char *username);
@@
-547,7
+550,7
@@
int sessionsetup(tunnelidt t, sessionidt s);
int cluster_send_session(int s);
int cluster_send_tunnel(int t);
int cluster_send_goodbye();
int cluster_send_session(int s);
int cluster_send_tunnel(int t);
int cluster_send_goodbye();
-void init_cli();
+void init_cli(
char *hostname
);
void cli_do_file(FILE *fh);
void cli_do(int sockfd);
int cli_arg_help(struct cli_def *cli, int cr_ok, char *entry, ...);
void cli_do_file(FILE *fh);
void cli_do(int sockfd);
int cli_arg_help(struct cli_def *cli, int cr_ok, char *entry, ...);
@@
-564,7
+567,7
@@
void host_unreachable(ipt destination, u16 id, ipt source, char *packet, int pac
void fix_address_pool(int sid);
void rebuild_address_pool(void);
void send_ipin(sessionidt s, u8 * buf, int len);
void fix_address_pool(int sid);
void rebuild_address_pool(void);
void send_ipin(sessionidt s, u8 * buf, int len);
-
int throttle_session(sessionidt s, int throttle
);
+
void throttle_session(sessionidt s, int rate_in, int rate_out
);
int load_session(sessionidt, sessiont *);
void become_master(void); // We're the master; kick off any required master initializations.
extern tunnelt *tunnel;
int load_session(sessionidt, sessiont *);
void become_master(void); // We're the master; kick off any required master initializations.
extern tunnelt *tunnel;
@@
-596,6
+599,7
@@
extern u32 last_id;
extern struct Tstats *_statistics;
extern ipt my_address;
extern int tun_write(u8 *data, int size);
extern struct Tstats *_statistics;
extern ipt my_address;
extern int tun_write(u8 *data, int size);
+extern int clifd;
#define TIME (config->current_time)
#define TIME (config->current_time)