Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
grandrew committed Feb 3, 2016
0 parents commit 57a49ac
Show file tree
Hide file tree
Showing 159 changed files with 31,671 additions and 0 deletions.
144 changes: 144 additions & 0 deletions Credits
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
vtrunkd (c) 2015-2016 Vrayo Systems Ltd. team (http://vrayo.com)

Author of vtrunkd core algorithm is Andrew Gryaznov <[email protected]>
with help of Andrey Kuznetsov <[email protected]>

Author of the original vtun package is Maxim Krasnyansky <[email protected]>.

A lot of thanks to the following people for their suggestions and
contributions (original vtun):

Gayaneh Krasnyanskaya(Max's Wife) <[email protected]>
Initial Web site creation. And a lot of other help :)))

Alex Korenkov <[email protected]>
Testing, bug reports.

Shukhrat Zakhidov <[email protected]>
Testing, bug reports, suggestions.

Dag Wieers <[email protected]>
Initial RPM packager specification file.
RedHat startup script.
Several bug reports.
SOCKS support suggestions.

Ted Rolle <[email protected]>
Spelling fixes.

Craig Sanders <[email protected]>
Debian startup script.

Catalin Ciocoiu <[email protected]>
Reported compilation problems.

Timur Danyarhojaev <[email protected]>
Added client source address option.

Andreas Kainz <[email protected]>
RPM package improvements.

Chris Todd <[email protected]>
Idea of challenge based authentication.
Initial BlowFish encryption code.
Suggestions.

Garet Krampe <[email protected]>
A lot of great ideas. Mailing list.
Web site mirror.

Denis Zapolsky <[email protected]>
Testing.

Vadim Zaliva <[email protected]>
Solaris patches. Suggestions.

Hurricane Floyd <[email protected]>
Max had several vacations.
Bishop had no power or water, and was able
to experience the Third World.
:)))))))))))))))))))

James B. MacLean <[email protected]>
Client persist mode fix. Suggestions.

Paul <[email protected]>
Stress tests, bug reports, suggestions.

Maksim Yevenkin <[email protected]>
TAP driver for FreeBSD.

Anthon Walters <[email protected]>
Web site mirror. Testing. Initial FAQ.

Ryan Defelice <[email protected]>
OpenBSD package maintainer. Provided OpenBSD server for
development and testing

Alexander Bergolth <[email protected]>
Initial multiple connection handling and host lock functionalities.
Improvements and fixes of source address option. Incorrect error
handling fix. Ideas. Suggestions.

Hubert Feyrer <[email protected]>
NetBSD package.

Hiroharu Tamaru <[email protected]>
Updated FreeBSD 4.0 TUN driver support.

Terry Donaldson <[email protected]>
Provided Solaris 8.0 server for development and testing.

Daniel Podlejski <[email protected]>
TUN/TAP driver modifications for 2.3.99-pre5 kernel.

Michael Tokarev <[email protected]>
File descriptors and memory leaks fix.
Tons of other bug fixes and patches. Suggestions. Ideas.

Xavier <[email protected]>
European web site mirror.

Chris Snell <[email protected]>
Mailing list archives.

Robert Stone <[email protected]>
Security enhancements. Suggestions. Ideas.
Encryption and other subsystems rework for 3.X.

Steinar H. Gunderson <[email protected]>
Tons of stability fixes and problem reports.
Ideas and suggestions.

Yan Seiner <[email protected]>
Testing. Bug reports. Suggestions.

James Yonan <[email protected]>
Encryption and other fixes. Suggestions.

Greg Olszewski <[email protected]>
Config parser and other fixes. Suggestions.

Kevin P. Fleming <[email protected]>
Makefile and config parser enhancement.
Other minor fixes and suggestions.

Robert R. Wal <[email protected]>
Added support for iproute command.

Willems Luc <[email protected]>
Initial SuSE packaging. Testing.

Nickolai Zeldovich <[email protected]>
mlockall() support to prevent VM collapse.

Dale Fountain <[email protected]>
Added multiple cipher support.
Added multiple cipher modes support.
Added support for different sized keys.
Re-sync ciphers when using non-ECB modes over a UDP connection.
Fixed Bug#908824 (persist=keep not re-applying routes)

Alan Grow <agrow-at-thegotonerd.com>
Added a Listening Address/Interface (rfe936523)
Cleaned up the code around that portion of the config.
10 changes: 10 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
System requirements:

- Linux. Kernel 2.6.25+ recommended
- Additional software:
bison
flex
zlib-dev
liblzo-dev
libssl-dev

137 changes: 137 additions & 0 deletions Makefile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
#
# vtrunkd - Virtual Tunnel Trunking over TCP/IP network.
#
# Copyright (C) 2011-2016 Vrayo Systems Ltd. team
#
# Vtrunkd has been derived from VTUN package by Maxim Krasnyansky.
# vtun Copyright (C) 1998-2000 Maxim Krasnyansky <[email protected]>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# Makefile.in,v 1.6.2.4.2.1 2006/11/16 04:03:44 mtbishop Exp
#

VERSION=\"$(shell git describe --abbrev=4 --dirty --always)\"
CC = @CC@
CFLAGS = @CFLAGS@ @CPPFLAGS@ -W
LDFLAGS = @LIBS@ -lm

YACC = @YACC@
YACCFLAGS = -d

LEX = @LEX@
LEXFLAGS = -t

INSTALL = @INSTALL@
INSTALL_OWNER = -o root -g 0

prefix = @prefix@
exec_prefix = @exec_prefix@

SBIN_DIR = @sbindir@
MAN_DIR = @mandir@
ETC_DIR = @sysconfdir@
VAR_DIR = @localstatedir@

PID_FILE = ${VAR_DIR}/run/vtrunkd.pid
CFG_FILE = ${ETC_DIR}/vtrunkd.conf
STAT_DIR = ${VAR_DIR}/log/vtrunkd
LOCK_DIR = ${VAR_DIR}/lock/vtrunkd

DEFS = -DVTUN_CONFIG_FILE=\"$(CFG_FILE)\" -DVTUN_PID_FILE=\"$(PID_FILE)\" \
-DVTUN_STAT_DIR=\"$(STAT_DIR)\" -DVTUN_LOCK_DIR=\"$(LOCK_DIR)\" \
-DVERSION_NUMBER=$(VERSION)

OBJS = main.o cfg_file.tab.o cfg_file.lex.o server.o client.o lib.o \
frame_llist.o llist.o auth.o tunnel.o lock.o netlib.o \
tun_dev.o tap_dev.o pty_dev.o pipe_dev.o \
tcp_proto.o udp_proto.o log.o \
linkfd.o lfd_shaper.o lfd_zlib.o lfd_lzo.o lfd_encrypt.o speed_algo.o timer.o packet_code.o udp_states.o pid.o

CONFIGURE_FILES = Makefile config.status config.cache config.h config.log

%.o: %.c vtun.h lib.h log.h
$(CC) $(CFLAGS) $(DEFS) -c $<

all: vtrunkd vshm_start_debug get_cong_status

vtrunkd: $(OBJS)
$(CC) $(CFLAGS) -o vtrunkd $(OBJS) $(FSSOBJS) $(LFD_OBJS) $(LDFLAGS)

vshm_start_debug: $(OBJS)
$(CC) $(CFLAGS) -o vshm_debug_enable vshm_start_debug.c $(LDFLAGS)

get_cong_status: $(OBJS)
$(CC) $(CFLAGS) -o get_cong_status get_cong_status.c $(LDFLAGS)

cfg_file.tab.c: cfg_file.y cfg_kwords.h config.h
$(YACC) $(YACCFLAGS) -b cfg_file cfg_file.y

cfg_file.lex.c: cfg_file.l cfg_kwords.h config.h
$(LEX) $(LEXFLAGS) cfg_file.l > cfg_file.lex.c

depend:
makedepend -- $(CFLAGS) -- *.c

clean:
rm -f core cfg_file.tab.* cfg_file.lex.* *.o *~ *.bak vtrunkd vshm_debug_enable get_cong_status

distclean: clean
rm -f $(CONFIGURE_FILES)
rm -f `cat vtun.drivers`

install_man:
$(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(MAN_DIR)/man8
$(INSTALL) -m 644 $(INSTALL_OWNER) vtrunkd.8 $(DESTDIR)$(MAN_DIR)/man8
$(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(MAN_DIR)/man5
$(INSTALL) -m 644 $(INSTALL_OWNER) vtrunkd.conf.5 $(DESTDIR)$(MAN_DIR)/man5
rm -f $(DESTDIR)$(MAN_DIR)/man8/vtrunkd.8
ln -s vtrunkd.8 $(DESTDIR)$(MAN_DIR)/man8/vtrunkd.8

install_config:
$(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(ETC_DIR)
if [ ! -f $(ETC_DIR)/vtrunkd.conf ]; then \
$(INSTALL) -m 600 $(INSTALL_OWNER) vtrunkd.conf $(DESTDIR)$(ETC_DIR)/; \
fi
#if [ ! -f $(ETC_DIR)/vtrunkd-srv.test.conf ]; then \
# $(INSTALL) -m 600 $(INSTALL_OWNER) test/vtrunkd-srv.test.conf $(DESTDIR)$(ETC_DIR)/; \
#fi
#if [ ! -f $(ETC_DIR)/vtrunkd-cli.test.conf ]; then \
# $(INSTALL) -m 600 $(INSTALL_OWNER) test/vtrunkd-cli.test.conf $(DESTDIR)$(ETC_DIR)/; \
#fi
install_scripts:
#if [ ! -f $(prefix)/cli.sh ]; then \
# $(INSTALL) -m 755 $(INSTALL_OWNER) test/cli.sh $(DESTDIR)$(prefix)/; \
#fi
#if [ ! -f $(prefix)/srv.sh ]; then \
# $(INSTALL) -m 755 $(INSTALL_OWNER) test/srv.sh $(DESTDIR)$(prefix)/; \
#fi


install: vtrunkd install_config install_man install_scripts
$(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(VAR_DIR)/run
$(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(STAT_DIR)
$(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(LOCK_DIR)
$(INSTALL) -d -m 755 $(INSTALL_OWNER) $(DESTDIR)$(SBIN_DIR)
$(INSTALL) -m 755 $(INSTALL_OWNER) vtrunkd $(DESTDIR)$(SBIN_DIR)/

# DO NOT DELETE THIS LINE -- make depend depends on it.
remove: remove_config remove_start_bin remove_docs

remove_config:
rm -f $(DESTDIR)$(ETC_DIR)/vtrunkd*
remove_start_bin:
rm -f $(DESTDIR)$(prefix)/srv.sh
rm -f $(DESTDIR)$(prefix)/cli.sh
rm -f $(DESTDIR)$(prefix)/sbin/vtrunkd
remove_docs:
rm -f $(DESTDIR)$(MAN_DIR)/man5/vtrunkd.conf.5
rm -f $(DESTDIR)$(MAN_DIR)/man8/vtrunkd.8
45 changes: 45 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
vtrunkd - universal network link bonding and multichannel VPN.
Copyright (C) 2011-2016 Vrayo Systems Ltd. team

Vtrunkd is a Linux VPN daemon used to combine several connection paths
into one aggregated channel. Features latency, reordering and jitter
management, behaviour analysis optimizations for encapsulated protocols,
bufferbloat control, packet redundancy, and multiple cpu cores utilization.
Up to 30 heterogenous links bonding supported. Used for live streaming,
LTE/3G/Wi-Fi link bonding. 32/64-bit, x86, MIPS and ARM supported.
Supports python plug-ins for new algorithms implementation.

Based on original package vtun - Copyright (C) 1998-2004
Maxim Krasnyansky <[email protected]>

This product includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/).
Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved.

Compilation and Installation:

In order to compile VTun you need several software packages.
Required packages:
- Good C compiler (gcc, egcs, etc)
- GNU Make (make)
- GNU libtool (libtool)
- Lexical Analyzer (flex, lex)
- YACC (yacc, bison, byacc)
- Universal TUN/TAP driver http://vtun.sourceforge.net/tun

On ubuntu, run:
$ sudo apt-get install build-essential flex bison

To configure run:
./configure

To compile and install run:
make install

If you have any suggestions, ideas, wishes send them to
Andrew Gryaznov
[email protected],
https://www.linkedin.com/in/grandrew

vtrunkd and vtrunkd algorithm (C) Andrew Gryaznov
Vtun (c) Maxim Krasnyansky
Loading

0 comments on commit 57a49ac

Please sign in to comment.