Update changelog
[l2tpns.git] / l2tpns.h
index a5a89f4..45428e6 100644 (file)
--- a/l2tpns.h
+++ b/l2tpns.h
@@ -27,6 +27,7 @@
 #define MAXSESSINGRP   12              // Maximum number of member links in grouped session
 #define MAXGROUPE              300     // could be up to 65535, Maximum number of grouped session
 #define MAXROUTEINGRP  15              // max static routes per group
+#define MAXROUTE6INGRP 15              // max static Ipv6 routes per group
 
 // Tunnel Id reserved for pppoe
 #define TUNNEL_ID_PPPOE        1
@@ -371,17 +372,14 @@ typedef struct
        sessionidt smin;
        groupsesslistt sesslist[MAXSESSINGRP];
        routet route[MAXROUTEINGRP];            // static routes
+       routet6 route6[MAXROUTE6INGRP];         // static IPv6 routes
+       uint8_t ipv6cp_opened;
        uint8_t nbroutesgrp;
+       uint8_t nbroutes6grp;
        uint8_t nbsession;
 }
 groupsesst;
 
-union iphash
-{
-       sessionidt sess;
-       union iphash *idx;
-};                     // Mapping from IP address to session structures.
-
 typedef struct
 {
         int state;                              // current state (bundlestate enum)
@@ -1026,12 +1024,14 @@ 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, in_addr_t ip_src);
+sessionidt grp_getnextsession(groupidt g, void *p_ip, void *p_ip_src, int is_ipv6);
 void grp_initdata(void);
 void grp_processvendorspecific(sessionidt s, uint8_t *pvs);
 groupidt grp_groupbysession(sessionidt s);
 groupidt grp_groupbyip(in_addr_t ip);
+groupidt grp_groupbyipv6(struct in6_addr ip);
 void grp_setgrouproute(groupidt g, int add);
+void grp_setgrouproute6(groupidt g, int add);
 void grp_time_changed(void);
 void grp_removesession(groupidt g, sessionidt s);
 int grp_cluster_load_groupe(groupidt g, groupsesst *new);
@@ -1085,7 +1085,6 @@ extern in_addr_t my_address;
 extern int clifd;
 extern int epollfd;
 extern int tunidx;             // ifr_ifindex of tun device
-extern union iphash ip_hash[256];
 
 struct event_data {
        enum {