+ int next_tbf; // Next HTB id available to use
+ int scheduler_fifo; // If the system has multiple CPUs, use FIFO scheduling
+ // policy for this process.
+ int lock_pages; // Lock pages into memory.
+ int icmp_rate; // Max number of ICMP unreachable per second to send
+ int max_packets; // DoS prevention: per session limit of packets/0.1s
+ char epdis_addr[20]; // MP Endpoint Discriminator address
+
+ in_addr_t 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.
+ in_addr_t 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_bundles; // How many bundles 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_undefined_groupes; // How many groupes we're yet to receive from the master.
+ int cluster_highest_sessionid;
+ int cluster_highest_bundleid;
+ int cluster_highest_groupeid;
+ int cluster_highest_tunnelid;
+ clockt cluster_last_hb; // Last time we saw a heartbeat from the master.
+ int cluster_last_hb_ver; // Heartbeat version last seen from master
+ int cluster_num_changes; // Number of changes queued.
+
+ int cluster_mcast_ttl; // TTL for multicast packets
+ int cluster_hb_interval; // How often to send a heartbeat.
+ int cluster_hb_timeout; // How many missed heartbeats trigger an election.
+ uint64_t cluster_table_version; // # state changes processed by cluster
+
+ struct in6_addr ipv6_prefix; // Our IPv6 network pool.
+
+
+ int cluster_master_min_adv; // Master advertises routes while the number of up to date
+ // slaves is less than this value.
+ in_addr_t cli_bind_address; // bind address for CLI
+ char hostname[MAXHOSTNAME]; // hostname (overridden by -h on command line)
+ // Guest change
+ char guest_user[MAXUSER]; // Guest account username
+
+#ifdef BGP
+#define BGP_NUM_PEERS 2
+ uint16_t as_number;
+ struct {
+ char name[64];
+ uint16_t as;
+ int keepalive;
+ int hold;
+ struct in_addr update_source;
+ } neighbour[BGP_NUM_PEERS];
+ in_addr_t nexthop_address;
+ struct in6_addr nexthop6_address;
+#endif
+
+ int echo_timeout; // Time between last packet sent and LCP ECHO generation
+ int idle_echo_timeout; // Time between last packet seen and
+ // Drop sessions who have not responded within IDLE_ECHO_TIMEOUT seconds
+ in_addr_t iftun_address;
+ int disable_lac_func;
+ int auth_tunnel_change_addr_src;
+ int highest_rlnsid;
+ uint16_t bind_portremotelns;
+ in_addr_t bind_address_remotelns;
+ char pppoe_if_to_bind[IFNAMSIZ]; // Name pppoe interface to bind
+ char pppoe_service_name[64]; // pppoe service name
+ char pppoe_ac_name[64];
+ uint8_t pppoe_hwaddr[ETH_ALEN]; // MAC addr of interface pppoe to bind
+ int pppoe_only_equal_svc_name; // Accept only PADI with service-name equal to server
+ int disable_sending_hello; // Disable l2tp sending HELLO message for Apple compatibility.
+ int disable_no_spoof; // Disable no spoof (permit load balancing client --> internet)
+ int nbudpfd; // number UDP file handle
+ int nbmultiaddress; // number multi address to bind
+ int indexlacudpfd; // Index UDP LAC file handle (in udpfd[])
+ int nbmultihostname; // number hostname, normally the same number as the nbudpfd
+ int grp_txrate_average_time; // caculation txrate average time (default 10s)
+ in_addr_t bind_n_address[MAX_BINDADDR];
+ in_addr_t iftun_n_address[MAX_BINDADDR];
+ char bind_multi_address[256];
+ char multi_hostname[512];
+ char multi_n_hostname[MAX_NBHOSTNAME][MAXHOSTNAME]; // list hostname
+} configt;
+
+enum config_typet { INT, STRING, UNSIGNED_LONG, SHORT, BOOL, IPv4, IPv6 };
+typedef struct