#include <errno.h>
#include <string.h>
-#include <sys/socket.h>
#include <linux/rtnetlink.h>
+#include <netinet/ip6.h>
#include "md5.h"
+#include "dhcp6.h"
#include "l2tpns.h"
#include "util.h"
#include "cluster.h"
tunnel[t].port = pconfigrlns[i_conf].port;
tunnel[t].window = 4; // default window
tunnel[t].isremotelns = i_conf;
+ tunnel[t].indexudp = config->indexlacudpfd;
STAT(tunnel_created);
random_data(pconfigrlns[i_conf].auth, sizeof(pconfigrlns[i_conf].auth));
}
// Forward session to LAC or Remote LNS
-int lac_session_forward(uint8_t *buf, int len, sessionidt sess, uint16_t proto, in_addr_t s_addr, int sin_port)
+int lac_session_forward(uint8_t *buf, int len, sessionidt sess, uint16_t proto, in_addr_t s_addr, int sin_port, uint16_t indexudpfd)
{
uint16_t t = 0, s = 0;
uint8_t *p = buf + 2; // First word L2TP options
(proto == PPPCCP) )
{
session[sess].last_packet = time_now;
- master_forward_packet(buf, len, s_addr, sin_port);
+ master_forward_packet(buf, len, s_addr, sin_port, indexudpfd);
return 1;
}
}
// Update STAT OUT
increment_counter(&session[s].cout, &session[s].cout_wrap, len); // byte count
session[s].cout_delta += len;
- session[s].coutgrp_delta += len;
session[s].pout++;
sess_local[s].cout += len;
sess_local[s].pout++;