1a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown/*
2a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * Copyright 2011 Daniel Drown
3a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown *
4a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * Licensed under the Apache License, Version 2.0 (the "License");
5a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * you may not use this file except in compliance with the License.
6a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * You may obtain a copy of the License at
7a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown *
8a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * http://www.apache.org/licenses/LICENSE-2.0
9a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown *
10a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * Unless required by applicable law or agreed to in writing, software
11a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * distributed under the License is distributed on an "AS IS" BASIS,
12a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * See the License for the specific language governing permissions and
14a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * limitations under the License.
15a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown *
16a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown * clatd.h - main system definitions
17a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown */
18a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown#ifndef __CLATD_H__
19a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown#define __CLATD_H__
20a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown
21f9390605bacda7bbe8ea33aa0a39c1581ff6aea2Lorenzo Colitti#include <linux/if.h>
22a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown#include <linux/if_tun.h>
23a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown
24a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown#define MAXMTU 1500
25a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown#define PACKETLEN (MAXMTU+sizeof(struct tun_pi))
267612916deb5f40a8dcf3a31db8849450e146fc8dLorenzo Colitti#define CLATD_VERSION "1.4"
27a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown
28dce3ddf54083ccd0e3752c4c08013688f79baa7aLorenzo Colitti#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
29dce3ddf54083ccd0e3752c4c08013688f79baa7aLorenzo Colitti
30a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown// how frequently (in seconds) to poll for an address change while traffic is passing
31a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown#define INTERFACE_POLL_FREQUENCY 30
32a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown
33a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown// how frequently (in seconds) to poll for an address change while there is no traffic
34a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown#define NO_TRAFFIC_INTERFACE_POLL_FREQUENCY 90
35a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown
36f9390605bacda7bbe8ea33aa0a39c1581ff6aea2Lorenzo Colittistruct tun_data {
37d44fac888a441cf21111358f43384f3942399d5dLorenzo Colitti  char device4[IFNAMSIZ];
3810e8827d636a72a7bcdfd52d15bad9342ae2a0a6Lorenzo Colitti  int read_fd6, write_fd6, fd4;
39f9390605bacda7bbe8ea33aa0a39c1581ff6aea2Lorenzo Colitti};
40f9390605bacda7bbe8ea33aa0a39c1581ff6aea2Lorenzo Colitti
41a45056e35c1af2a0f0a6eed258fd5fdf4846a79fDaniel Drown#endif /* __CLATD_H__ */
42