X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/58d994f8f4aa2a6465dc9a2f13e7ba8ddf412ec7..refs/tags/2.2.1-2sames3.12:/l2tpns.h diff --git a/l2tpns.h b/l2tpns.h index bce434f..d28f3e7 100644 --- a/l2tpns.h +++ b/l2tpns.h @@ -72,6 +72,8 @@ // Multi bind address constants #define MAX_UDPFD 4 #define MAX_BINDADDR MAX_UDPFD +// + 1 for the LAC Hostname +#define MAX_NBHOSTNAME (MAX_UDPFD + 1) // 4 + 1 for the udplac #define INIT_TABUDPFD {-1, -1, -1, -1, -1} #define INIT_TABUDPVAR {0, 0, 0, 0, 0} @@ -736,6 +738,7 @@ typedef struct int num_tbfs; // number of throttle buckets char accounting_dir[128]; + int account_all_origin; // Accouting all origin (LAC data + Remote LNS Data + PPPOE data) in_addr_t bind_address; in_addr_t peer_address; int send_garp; // Set to true to garp for vip address on startup @@ -815,15 +818,19 @@ typedef struct 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 + int pppoe_only_equal_svc_name; // Accept only PADI with service-name equal to server int disable_sending_hello; // Disable l2tp sending HELLO message for Apple compatibility. int disable_no_spoof; // Disable no spoof (permit load balancing client --> internet) int nbudpfd; // number UDP file handle int nbmultiaddress; // number multi address to bind int indexlacudpfd; // Index UDP LAC file handle (in udpfd[]) + int nbmultihostname; // number hostname, normally the same number as the nbudpfd + int grp_txrate_average_time; // caculation txrate average time (default 10s) in_addr_t bind_n_address[MAX_BINDADDR]; in_addr_t iftun_n_address[MAX_BINDADDR]; char bind_multi_address[256]; - int grp_txrate_average_time; // caculation txrate average time (default 10s) + char multi_hostname[512]; + char multi_n_hostname[MAX_NBHOSTNAME][MAXHOSTNAME]; // list hostname } configt; enum config_typet { INT, STRING, UNSIGNED_LONG, SHORT, BOOL, IPv4, IPv6 }; @@ -984,13 +991,12 @@ void processipout(uint8_t *buf, int len); void snoop_send_packet(uint8_t *packet, uint16_t size, in_addr_t destination, uint16_t port); int find_filter(char const *name, size_t len); int ip_filter(uint8_t *buf, int len, uint8_t filter); -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); +int cmd_show_ipcache(struct cli_def *cli, const char *command, char **argv, int argc); +int cmd_show_hist_idle(struct cli_def *cli, const char *command, char **argv, int argc); +int cmd_show_hist_open(struct cli_def *cli, const char *command, char **argv, int argc); void netlink_addattr(struct nlmsghdr *nh, int type, const void *data, int alen); ssize_t netlink_send(struct nlmsghdr *nh); void cache_ipmap(in_addr_t ip, sessionidt s); - tunnelidt lac_new_tunnel(); void lac_tunnelclear(tunnelidt t); void lac_send_SCCRQ(tunnelidt t, uint8_t * auth, unsigned int auth_len); @@ -998,7 +1004,7 @@ void lac_send_ICRQ(tunnelidt t, sessionidt s); void lac_tunnelshutdown(tunnelidt t, char *reason, int result, int error, char *msg); // grpsess.c -sessionidt grp_getnextsession(groupidt g, in_addr_t ip); +sessionidt grp_getnextsession(groupidt g, in_addr_t ip, in_addr_t ip_src); void grp_initdata(void); void grp_processvendorspecific(sessionidt s, uint8_t *pvs); groupidt grp_groupbysession(sessionidt s);