X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/ddffeb1ceb781cfb17ca83e846de835ffd4bda54..11996ba4147678c1d400dcc16e33d83a9a3ede9c:/l2tpns.h diff --git a/l2tpns.h b/l2tpns.h index 5dbaee7..b4ab8e8 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -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. +// 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) @@ -323,9 +327,11 @@ typedef struct 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 - 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; @@ -769,6 +775,10 @@ typedef struct uint16_t bind_portremotelns; in_addr_t bind_address_remotelns; #endif + char pppoe_if_name[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 }; @@ -990,18 +1000,20 @@ extern int epollfd; 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_PPPOEDISC, + FD_TYPE_PPPOESESS } type; int index; // for RADIUS, BGP };