// L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.18 2004/09/19 23:26:46 fred_nerk Exp $
+// $Id: l2tpns.h,v 1.24 2004/10/29 04:01:11 bodea Exp $
#ifndef __L2TPNS_H__
#define __L2TPNS_H__
#include <sys/types.h>
#include <libcli.h>
-#define VERSION "2.0.1"
+#define VERSION "2.0.2"
// Limits
#define MAXTUNNEL 500 // could be up to 65535
#define BUSY_WAIT_TIMEOUT 3000 // 5 minutes in 1/10th seconds to wait for radius to cleanup on shutdown
// Constants
-#include "config.h"
-#ifndef PLUGINDIR
-#define PLUGINDIR LIBDIR // Plugins
+#ifndef ETCDIR
+#define ETCDIR "/etc/l2tpns"
#endif
-#ifndef PLUGINCONF
-#define PLUGINCONF ETCDIR // Plugin config dir
+#ifndef LIBDIR
+#define LIBDIR "/usr/lib/l2tpns"
#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
+#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
ipt default_dns1, default_dns2;
- unsigned long rl_rate;
+ unsigned long rl_rate; // throttle rate
+ int num_tbfs; // number of throttle buckets
+
int save_state;
char accounting_dir[128];
ipt bind_address;
char bgp_peer[2][64];
u16 bgp_peer_as[2];
#endif
- char hostname[256]; // our hostname - set to gethostname() by default
};
struct config_descriptt
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
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);
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, ...);