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
@@ -0,0 +1,144 @@
vtrunkd (c) 2015-2016 Vrayo Systems Ltd. team (http://vrayo.com)

Author of vtrunkd core algorithm is Andrew Gryaznov <realgrandrew@gmail.com>
with help of Andrey Kuznetsov <andreykyz@gmail.com>

Author of the original vtun package is Maxim Krasnyansky <max_mk@yahoo.com>.

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

Gayaneh Krasnyanskaya(Max's Wife) <gayaneh@yahoo.com>
Initial Web site creation. And a lot of other help :)))

Alex Korenkov <alex@uznet.net>
Testing, bug reports.

Shukhrat Zakhidov <shukhrat@ishonch.uz>
Testing, bug reports, suggestions.

Dag Wieers <dag@mind.be>
Initial RPM packager specification file.
RedHat startup script.
Several bug reports.
SOCKS support suggestions.

Ted Rolle <ted@acacia.datacomm.com>
Spelling fixes.

Craig Sanders <cas@taz.net.au>
Debian startup script.

Catalin Ciocoiu <catalin@ccp.pub.ro>
Reported compilation problems.

Timur Danyarhojaev <tid@podolsk.ru>
Added client source address option.

Andreas Kainz <aka@gams.at>
RPM package improvements.

Chris Todd <christ@insynq.com>
Idea of challenge based authentication.
Initial BlowFish encryption code.
Suggestions.

Garet Krampe <garet@satix.net>
A lot of great ideas. Mailing list.
Web site mirror.

Denis Zapolsky <denis@granch.com.my>
Testing.

Vadim Zaliva <lord@crocodile.org>
Solaris patches. Suggestions.

Hurricane Floyd <floyd@hurricanes.org>
Max had several vacations.
Bishop had no power or water, and was able
to experience the Third World.
:)))))))))))))))))))

James B. MacLean <macleajb@Trademart-1.EDnet.NS.CA>
Client persist mode fix. Suggestions.

Paul <xerox@httpd.net>
Stress tests, bug reports, suggestions.

Maksim Yevenkin <m_evmenkin@yahoo.com>
TAP driver for FreeBSD.

Anthon Walters <anthon@ws.co.za>
Web site mirror. Testing. Initial FAQ.

Ryan Defelice <ryand@mobiletel.com>
OpenBSD package maintainer. Provided OpenBSD server for
development and testing

Alexander Bergolth <leo@strike.wu-wien.ac.at>
Initial multiple connection handling and host lock functionalities.
Improvements and fixes of source address option. Incorrect error
handling fix. Ideas. Suggestions.

Hubert Feyrer <feyrer@rfhs8012.fh-regensburg.de>
NetBSD package.

Hiroharu Tamaru <tamaru@ap.t.u-tokyo.ac.jp>
Updated FreeBSD 4.0 TUN driver support.

Terry Donaldson <tsd@geo-mis.com>
Provided Solaris 8.0 server for development and testing.

Daniel Podlejski <underley@underley.eu.org>
TUN/TAP driver modifications for 2.3.99-pre5 kernel.

Michael Tokarev <mjt@tls.msk.ru>
File descriptors and memory leaks fix.
Tons of other bug fixes and patches. Suggestions. Ideas.

Xavier <xavier@bru-noc.net>
European web site mirror.

Chris Snell <chris@bikeworld.com>
Mailing list archives.

Robert Stone <talby@trap.mtview.ca.us>
Security enhancements. Suggestions. Ideas.
Encryption and other subsystems rework for 3.X.

Steinar H. Gunderson <sgunderson@bigfoot.com>
Tons of stability fixes and problem reports.
Ideas and suggestions.

Yan Seiner <yan@cardinalengineering.com>
Testing. Bug reports. Suggestions.

James Yonan <jim@funnybee.ntlp.com>
Encryption and other fixes. Suggestions.

Greg Olszewski <noop@nwonknu.org>
Config parser and other fixes. Suggestions.

Kevin P. Fleming <kevin@labsysgrp.com>
Makefile and config parser enhancement.
Other minor fixes and suggestions.

Robert R. Wal <rrw@hell.pl>
Added support for iproute command.

Willems Luc <willems.luc@pandora.be>
Initial SuSE packaging. Testing.

Nickolai Zeldovich <nickolai@cs.stanford.edu>
mlockall() support to prevent VM collapse.

Dale Fountain <dpf-vtun@fountainbay.com>
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
@@ -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
@@ -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 <max_mk@yahoo.com>
#
# 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
@@ -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 <max_mk@yahoo.com>

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
ag@vrayo.com,
https://www.linkedin.com/in/grandrew

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

0 comments on commit 57a49ac

Please sign in to comment.