X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/ba1abbbd0588dc4f960b5e8c99d821f9784ddbea..02fac4336bd8515204a5f690f1666bece2aaee84:/l2tpns.h?ds=sidebyside

diff --git a/l2tpns.h b/l2tpns.h
index 43187bf..31ee6a1 100644
--- a/l2tpns.h
+++ b/l2tpns.h
@@ -1,5 +1,5 @@
 // L2TPNS Global Stuff
-// $Id: l2tpns.h,v 1.13 2004/07/26 00:20:41 fred_nerk Exp $
+// $Id: l2tpns.h,v 1.17 2004/09/02 04:18:07 fred_nerk Exp $
 
 #ifndef __L2TPNS_H__
 #define __L2TPNS_H__
@@ -24,7 +24,7 @@
 
 #define RADIUS_SHIFT	5
 #define RADIUS_MASK	((unsigned short)(((unsigned short)~0) >> (16 - RADIUS_SHIFT)))
-#define	MAXRADIUS	((2 << (RADIUS_SHIFT - 1)) * 255)
+#define	MAXRADIUS	((unsigned long)(1L << RADIUS_SHIFT) * 255)
 
 #define T_UNDEF		(0xffff)	// A tunnel ID that won't ever be used. Mark session as undefined.
 #define T_FREE		(0)		// A tunnel ID that won't ever be used. Mark session as free.
@@ -40,6 +40,7 @@
 #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_TIMEOUT	3000	// 5 minutes in 1/10th seconds to wait for radius to cleanup on shutdown
 
 // Constants
 #include "config.h"
@@ -90,7 +91,8 @@ enum
 	ProtocolRej,
 	EchoReq,
 	EchoReply,
-	DiscardRequest
+	DiscardRequest,
+	IdentRequest
 };
 
 // Types
@@ -119,7 +121,7 @@ struct cli_session_actions {
 #define CLI_SESS_NOTHROTTLE	0x10
 
 struct cli_tunnel_actions {
-    	char action;
+	char action;
 };
 
 #define CLI_TUN_KILL		0x01
@@ -147,10 +149,10 @@ typedef struct sessions
 {
 	sessionidt next;		// next session in linked list
 	sessionidt far;			// far end session ID
-	tunnelidt tunnel;		// tunnel ID
+	tunnelidt tunnel;		// near end tunnel ID
 	ipt ip;				// IP of session set by RADIUS response (host byte order).
 	int ip_pool_index;		// index to IP pool
-	unsigned long sid;		// session id for hsddb
+	unsigned long unique_id;	// unique session id
 	u16 nr;				// next receive
 	u16 ns;				// next send
 	u32 magic;			// ppp magic number
@@ -170,6 +172,7 @@ typedef struct sessions
 	u16 tbf_in;			// filter bucket for throttling in from the user.
 	u16 tbf_out;			// filter bucket for throttling out to the user.
 	u8 l2tp_flags;			// various bit flags from the ICCN on the l2tp tunnel.
+	u8 reserved_old_snoop;		// No longer used - remove at some time
 	u8 walled_garden;		// is this session gardened?
 	u8 flags1;			// additional flags (currently unused);
 	char random_vector[MAXTEL];
@@ -182,7 +185,8 @@ typedef struct sessions
 	u32 flags;			// Various session flags.
 	ipt snoop_ip;			// Interception destination IP
 	u16 snoop_port;			// Interception destination port
-	char reserved[28];		// Space to expand structure without changing HB_VERSION
+	u16 sid;			// near end session id.
+	char reserved[20];		// Space to expand structure without changing HB_VERSION
 }
 sessiont;
 
@@ -195,6 +199,7 @@ typedef struct {
 
 #define	SESSIONPFC	1            // PFC negotiated flags
 #define	SESSIONACFC	2           // ACFC negotiated flags
+#define SESSIONLCPACK	4	// LCP negotiated
 
 // 168 bytes per tunnel
 typedef struct tunnels
@@ -379,6 +384,8 @@ struct configt
 	int		debug;				// debugging level
 	time_t		start_time;			// time when l2tpns was started
 	char		bandwidth[256];			// current bandwidth
+	char		pid_file[256];			// file to write PID to on startup
+	int		wrote_pid;
 	clockt		current_time;			// 1/10ths of a second since the process started.
 							// means that we can only run a given process
 							// for 13 years without re-starting!
@@ -584,7 +591,7 @@ if (count++ < max) { \
 extern struct configt *config;
 extern time_t basetime;		// Time when this process started.
 extern time_t time_now;		// Seconds since EPOCH.
-extern u32 last_sid;
+extern u32 last_id;
 extern struct Tstats *_statistics;
 extern ipt my_address;
 extern int tun_write(u8 *data, int size);