projects
/
l2tpns.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
always call filter_session on CoA
[l2tpns.git]
/
cluster.h
diff --git
a/cluster.h
b/cluster.h
index
1fb2789
..
931c007
100644
(file)
--- a/
cluster.h
+++ b/
cluster.h
@@
-1,5
+1,5
@@
// L2TPNS Clustering Stuff
// L2TPNS Clustering Stuff
-// $Id: cluster.h,v 1.
8 2004-12-03 06:40:02
bodea Exp $
+// $Id: cluster.h,v 1.
13 2005-06-28 14:48:19
bodea Exp $
#ifndef __CLUSTER_H__
#define __CLUSTER_H__
#ifndef __CLUSTER_H__
#define __CLUSTER_H__
@@
-14,13
+14,15
@@
#define C_LASTSEEN 7 // Tell master the last heartbeat that I handled.
#define C_KILL 8 // Tell a slave to die.
#define C_FORWARD 9 // Forwarded packet..
#define C_LASTSEEN 7 // Tell master the last heartbeat that I handled.
#define C_KILL 8 // Tell a slave to die.
#define C_FORWARD 9 // Forwarded packet..
-#define C_BYTES 10 // Update byte counters.
+#define C_BYTES
10 // Update byte counters.
#define C_THROTTLE 11 // A packet for the master to throttle. (The TBF tells direction).
#define C_CSESSION 12 // Compressed session structure.
#define C_CTUNNEL 13 // Compressed tunnel structure.
#define C_GARDEN 14 // Gardened packet
#define C_THROTTLE 11 // A packet for the master to throttle. (The TBF tells direction).
#define C_CSESSION 12 // Compressed session structure.
#define C_CTUNNEL 13 // Compressed tunnel structure.
#define C_GARDEN 14 // Gardened packet
+#define C_MASTER 15 // Tell a slave the address of the master.
+#define C_FORWARD_DAE 16 // A DAE packet for the master to handle
-#define HB_VERSION
4
// Protocol version number..
+#define HB_VERSION
5
// Protocol version number..
#define HB_MAX_SEQ (1<<30) // Maximum sequence number. (MUST BE A POWER OF 2!)
#define HB_HISTORY_SIZE 64 // How many old heartbeats we remember?? (Must be a factor of HB_MAX_SEQ)
#define HB_MAX_SEQ (1<<30) // Maximum sequence number. (MUST BE A POWER OF 2!)
#define HB_HISTORY_SIZE 64 // How many old heartbeats we remember?? (Must be a factor of HB_MAX_SEQ)
@@
-34,44
+36,47
@@
#define DEFAULT_MCAST_INTERFACE "eth0"
typedef struct {
#define DEFAULT_MCAST_INTERFACE "eth0"
typedef struct {
- u
32 version;
// protocol version.
- u
32 seq;
// Sequence number for this heatbeat.
- u
32 basetime;
// What time I started
- u
32 clusterid;
// Id for this cluster?
+ u
int32_t version;
// protocol version.
+ u
int32_t seq;
// Sequence number for this heatbeat.
+ u
int32_t basetime;
// What time I started
+ u
int32_t clusterid;
// Id for this cluster?
- u
32 highsession;
// Id of the highest in-use session.
- u
32 freesession;
// Id of the first free session.
- u
32 hightunnel;
// Id of the highest used tunnel.
- u
32 size_sess;
// Size of the session structure.
+ u
int32_t highsession;
// Id of the highest in-use session.
+ u
int32_t freesession;
// Id of the first free session.
+ u
int32_t hightunnel;
// Id of the highest used tunnel.
+ u
int32_t size_sess;
// Size of the session structure.
- u
32 size_tunn;
// size of the tunnel structure.
- u
32 interval;
// ping/heartbeat interval
- u
32 timeout;
// heartbeat timeout
+ u
int32_t size_tunn;
// size of the tunnel structure.
+ u
int32_t interval;
// ping/heartbeat interval
+ u
int32_t timeout;
// heartbeat timeout
- u
64 table_version;
// # state changes processed by cluster
+ u
int64_t table_version;
// # state changes processed by cluster
- char reserved[128 - 13*sizeof(u
32)];
// Pad out to 128 bytes.
+ char reserved[128 - 13*sizeof(u
int32_t)];
// Pad out to 128 bytes.
} heartt;
typedef struct { /* Used to update byte counters on the */
/* master. */
} heartt;
typedef struct { /* Used to update byte counters on the */
/* master. */
- u32 sid;
- u32 in;
- u32 out;
+ uint32_t sid;
+ uint32_t pin;
+ uint32_t pout;
+ uint32_t cin;
+ uint32_t cout;
} bytest;
typedef struct {
} bytest;
typedef struct {
- u32 addr; //
- u
32 ver;
// version of structure.
- u
32 undef;
// Number of undefined structures. 0 if up-to-date.
- u
32 basetime;
// start time of this peer.
+ in_addr_t addr; // peer address
+ u
int32_t ver;
// version of structure.
+ u
int32_t undef;
// Number of undefined structures. 0 if up-to-date.
+ u
int32_t basetime;
// start time of this peer.
} pingt;
int cluster_init(void);
} pingt;
int cluster_init(void);
-int processcluster(char *buf, int size,
u32
addr);
+int processcluster(char *buf, int size,
in_addr_t
addr);
int cluster_send_session(int sid);
int cluster_send_tunnel(int tid);
int cluster_send_session(int sid);
int cluster_send_tunnel(int tid);
-int master_forward_packet(char *data, int size, u32 addr, int port);
+int master_forward_packet(char *data, int size, in_addr_t addr, int port);
+int master_forward_dae_packet(char *data, int size, in_addr_t addr, int port);
int master_throttle_packet(int tid, char *data, int size);
int master_garden_packet(sessionidt s, char *data, int size);
void master_update_counts(void);
int master_throttle_packet(int tid, char *data, int size);
int master_garden_packet(sessionidt s, char *data, int size);
void master_update_counts(void);