-// l2tpns.c
-clockt now(void);
-clockt backoff(u8 try);
-void routeset(sessionidt, ipt ip, ipt mask, ipt gw, u8 add);
-void inittap(void);
-void initudp(void);
-void initdata(void);
-void initippool();
-sessionidt sessionbyip(ipt ip);
-sessionidt sessionbyuser(char *username);
-void sessionshutdown(sessionidt s, char *reason);
-void sessionsendarp(sessionidt s);
-void send_garp(ipt ip);
-void sessionkill(sessionidt s, char *reason);
-void control16(controlt * c, u16 avp, u16 val, u8 m);
-void control32(controlt * c, u16 avp, u32 val, u8 m);
-void controls(controlt * c, u16 avp, char *val, u8 m);
-void controlb(controlt * c, u16 avp, char *val, unsigned int len, u8 m);
-controlt *controlnew(u16 mtype);
-void controlnull(tunnelidt t);
-void controladd(controlt * c, tunnelidt t, sessionidt s);
-void tunnelsend(u8 * buf, u16 l, tunnelidt t);
-void tunnelkill(tunnelidt t, char *reason);
-void tunnelshutdown(tunnelidt t, char *reason);
-void sendipcp(tunnelidt t, sessionidt s);
-void processipout(u8 * buf, int len);
-void processarp(u8 * buf, int len);
-void processudp(u8 * buf, int len, struct sockaddr_in *addr);
-void processtap(u8 * buf, int len);
-void processcontrol(u8 * buf, int len, struct sockaddr_in *addr);
-int assign_ip_address(sessionidt s);
-void free_ip_address(sessionidt s);
-void snoop_send_packet(char *packet, u16 size, ipt destination, u16 port);
-void dump_acct_info();
-void mainloop(void);
-int cmd_show_ipcache(struct cli_def *cli, char *command, char **argv, int argc);
-int cmd_show_hist_idle(struct cli_def *cli, char *command, char **argv, int argc);
-int cmd_show_hist_open(struct cli_def *cli, char *command, char **argv, int argc);
-
-#define log _log
-#ifndef log_hex
-#define log_hex(a,b,c,d) do{if (a <= config->debug) _log_hex(a,0,0,0,b,c,d);}while (0)
-#endif
-void _log(int level, ipt address, sessionidt s, tunnelidt t, const char *format, ...) __attribute__((format (printf, 5, 6)));
-void _log_hex(int level, ipt address, sessionidt s, tunnelidt t, const char *title, const char *data, int maxsize);
-void build_chap_response(char *challenge, u8 id, u16 challenge_length, char **challenge_response);
-int sessionsetup(tunnelidt t, sessionidt s);
-int cluster_send_session(int s);
-int cluster_send_tunnel(int t);
-int cluster_send_goodbye();
-void init_cli();
-void cli_do_file(FILE *fh);
-void cli_do(int sockfd);
-#ifdef RINGBUFFER
-void ringbuffer_dump(FILE *stream);
-#endif
-void initplugins(void);