projects
/
l2tpns.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: No RADIUS Stop message sent (regression due to the patch to avoid sending multip...
[l2tpns.git]
/
l2tpns.h
diff --git
a/l2tpns.h
b/l2tpns.h
index
0d07ae3
..
e690ec6
100644
(file)
--- a/
l2tpns.h
+++ b/
l2tpns.h
@@
-9,6
+9,7
@@
#include <signal.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <signal.h>
#include <stdlib.h>
#include <netinet/in.h>
+#include <net/ethernet.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/types.h>
@@
-24,6
+25,9
@@
#define MAXSESSION 60000 // could be up to 65535
#define MAXTBFS 6000 // Maximum token bucket filters. Might need up to 2 * session.
#define MAXSESSION 60000 // could be up to 65535
#define MAXTBFS 6000 // Maximum token bucket filters. Might need up to 2 * session.
+// Tunnel Id reserved for pppoe
+#define TUNNEL_ID_PPPOE 1
+
#define RADIUS_SHIFT 6
#define RADIUS_FDS (1 << RADIUS_SHIFT)
#define RADIUS_MASK ((1 << RADIUS_SHIFT) - 1)
#define RADIUS_SHIFT 6
#define RADIUS_FDS (1 << RADIUS_SHIFT)
#define RADIUS_MASK ((1 << RADIUS_SHIFT) - 1)
@@
-323,9
+327,11
@@
typedef struct
struct in6_addr ipv6route; // Static IPv6 route
#ifdef LAC
sessionidt forwardtosession; // LNS id_session to forward
struct in6_addr ipv6route; // Static IPv6 route
#ifdef LAC
sessionidt forwardtosession; // LNS id_session to forward
- char reserved[10]; // Space to expand structure without changing HB_VERSION
+ uint8_t src_hwaddr[ETH_ALEN]; // MAC addr source (for pppoe sessions 6 bytes)
+ char reserved[4]; // Space to expand structure without changing HB_VERSION
#else
#else
- char reserved[12]; // Space to expand structure without changing HB_VERSION
+ uint8_t src_hwaddr[ETH_ALEN]; // MAC addr source (for pppoe sessions 6 bytes)
+ char reserved[6]; // Space to expand structure without changing HB_VERSION
#endif
}
sessiont;
#endif
}
sessiont;
@@
-658,7
+664,7
@@
typedef struct
int reload_config; // flag to re-read config (set by cli)
int multi_read_count; // amount of packets to read per fd in processing loop
int reload_config; // flag to re-read config (set by cli)
int multi_read_count; // amount of packets to read per fd in processing loop
- char tundevice
[IFNAMSIZ];
// tun device name
+ char tundevice
name[IFNAMSIZ];
// tun device name
char log_filename[128];
char l2tp_secret[64]; // L2TP shared secret
char log_filename[128];
char l2tp_secret[64]; // L2TP shared secret
@@
-764,10
+770,15
@@
typedef struct
in_addr_t iftun_address;
#ifdef LAC
int disable_lac_func;
in_addr_t iftun_address;
#ifdef LAC
int disable_lac_func;
+ int auth_tunnel_change_addr_src;
int highest_rlnsid;
uint16_t bind_portremotelns;
in_addr_t bind_address_remotelns;
#endif
int highest_rlnsid;
uint16_t bind_portremotelns;
in_addr_t bind_address_remotelns;
#endif
+ 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
} configt;
enum config_typet { INT, STRING, UNSIGNED_LONG, SHORT, BOOL, IPv4, IPv6 };
} configt;
enum config_typet { INT, STRING, UNSIGNED_LONG, SHORT, BOOL, IPv4, IPv6 };
@@
-989,18
+1000,20
@@
extern int epollfd;
struct event_data {
enum {
struct event_data {
enum {
- FD_TYPE_CLI,
- FD_TYPE_CLUSTER,
- FD_TYPE_TUN,
- FD_TYPE_UDP,
- FD_TYPE_CONTROL,
- FD_TYPE_DAE,
+ FD_TYPE_CLI,
+ FD_TYPE_CLUSTER,
+ FD_TYPE_TUN,
+ FD_TYPE_UDP,
+ FD_TYPE_CONTROL,
+ FD_TYPE_DAE,
FD_TYPE_RADIUS,
FD_TYPE_BGP,
FD_TYPE_NETLINK,
#ifdef LAC
FD_TYPE_UDPLAC,
#endif
FD_TYPE_RADIUS,
FD_TYPE_BGP,
FD_TYPE_NETLINK,
#ifdef LAC
FD_TYPE_UDPLAC,
#endif
+ FD_TYPE_PPPOEDISC,
+ FD_TYPE_PPPOESESS
} type;
int index; // for RADIUS, BGP
};
} type;
int index; // for RADIUS, BGP
};