+struct configt
+{
+ int debug; // debugging level
+ time_t start_time; // time when l2tpns was started
+ char bandwidth[256]; // current bandwidth
+ clockt current_time;
+
+ char config_file[128];
+ int reload_config; // flag to re-read config (set by cli)
+ int cleanup_interval; // interval between regular cleanups (in seconds)
+ int multi_read_count; // amount of packets to read per fd in processing loop
+
+ char tapdevice[10]; // tap device name
+ char log_filename[128];
+ char l2tpsecret[64];
+
+ char radiussecret[64];
+ int radius_accounting;
+ ipt radiusserver[MAXRADSERVER]; // radius servers
+ u8 numradiusservers; // radius server count
+ short num_radfds; // Number of radius filehandles allocated
+
+ ipt default_dns1, default_dns2;
+
+ unsigned long rl_rate;
+ int save_state;
+ char accounting_dir[128];
+ ipt bind_address;
+ int send_garp; // Set to true to garp for vip address on startup
+
+ int target_uid;
+ int dump_speed;
+ char plugins[64][MAXPLUGINS];
+ char old_plugins[64][MAXPLUGINS];
+
+ int next_tbf; // Next HTB id available to use
+ int scheduler_fifo; // If 1, will force scheduler to use SCHED_FIFO.
+ // Don't use this unless you have a dual processor machine!
+ int icmp_rate; // Max number of ICMP unreachable per second to send
+
+ u32 cluster_address; // Multicast address of cluster.
+ // Send to this address to have everyone hear.
+ char cluster_interface[64]; // Which interface to listen for multicast on.
+ int cluster_iam_master; // Are we the cluster master???
+ int cluster_iam_uptodate; // Set if we've got a full set of state from the master.
+ u32 cluster_master_address; // The network address of the cluster master.
+ // Zero if i am the cluster master.
+ int cluster_seq_number; // Sequence number of the next heartbeat we'll send out
+ // (or the seq number we're next expecting if we're a slave).
+ int cluster_undefined_sessions; // How many sessions we're yet to receive from the master.
+ int cluster_undefined_tunnels; // How many tunnels we're yet to receive from the master.
+ int cluster_highest_sessionid;
+ int cluster_highest_tunnelid;
+ clockt cluster_last_hb; // Last time we saw a heartbeat from the master.
+ int cluster_num_changes; // Number of changes queued.
+
+#ifdef BGP
+ u16 as_number;
+ char bgp_peer[2][64];
+ u16 bgp_peer_as[2];
+#endif
+};
+
+struct config_descriptt
+{
+ char *key;
+ int offset;
+ int size;
+ enum { INT, STRING, UNSIGNED_LONG, SHORT, BOOL, IP } type;
+};
+