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