-
Notifications
You must be signed in to change notification settings - Fork 2
SIOTLAB/quicSDN
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
/* This is an ongoing research work, any copy or usage of this material before paper publish is a violation */ Introduction: quicSDN is an architecture developed here in SIOTLAB Santa Clara University. Primary author for this file is Puneet Kumar, PhD student at Santa Clara University, under Professor Behnam Dezfouli. quicSDN is an attempt to run SDN components on QUIC protocol. These components are composed of the following: 1) RYU: A SDN controller, modified to be based on UDP protocol. Which can communicate QUIC Server. As soon ryu fires up, it opens 6653 and 6640 ports and start listening on these ports for localhost 2) Eventlet : A packet processing libary modified to fill the needs of RYU. 3) OpenSSL : SSL library, unchanged, standard to assist QUIC Code. 4) OVS: A SDN switch, based on UDP, which can communicate to QUIC Client. SDN Connections starts sending OpenFlow or OVSDB packets on port 6653 and 6640 locally on UDP. 4) quic-code: QUIC code, based on ngtcp2 implementation. Heavily tailored to fit the need to a QUIC bridge between RYU and OVS. Usage: This feature is purely experimental based and would require some work if it has to be scaled. Please use the OVS in this git repo as normal OVS wouldn't support UDP and hence would not work. RYU is based on existing RYU/TCP and in addition to changing the transportation, this feature is heavily modified for greenio sockets and event handlers. RYU: It will start a UDP server on 6653 port for ryu as controller OVS: OVS will start as usual however, please use "ovs-vsctl set-controller udp::6653" in order to talk to RYU Installation: sudo apt update sudo apt install python3-pip sudo apt install python-pip sudo apt-get install build-essential checkinstall sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev cd /usr/src sudo wget https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz sudo tar xzf Python-3.4.4.tgz cd Python-3.4.4 sudo ./configure make sudo make install sudo apt-get install dh-autoreconf sudo apt-get install libev-dev The following packages are required to configure the build system: pkg-config >= 0.20 autoconf automake autotools-dev libtool libngtcp2 uses cunit for its unit test frame work: cunit >= 2.1 To build sources under the examples directory, libev is required: libev The client and server under examples directory require OpenSSL (master branch) as crypto backend: next steps are same for client and server. Go to each folder and run the following cd openssl ./config enable-tls1_3 --prefix=$PWD/build make -j$(nproc) make install_sw cd client or server whichever folder you are in autoreconf -i ./configure PKG_CONFIG_PATH=$PWD/../openssl/build/lib/pkgconfig LDFLAGS="-Wl,-rpath,$PWD/../openssl/build/lib" make -j$(nproc) check
About
A QUIC based implementation of software defined networking (SDN). This allows using QUIC instead of TCP for southbound communication in SDNs.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published