The TOFFEE Project
HOMEDOCUMENTATIONUPDATESVIDEOSRESEARCHDOWNLOADSPONSORSCONTACT


DOCUMENTATION 》 TOFFEE-Mocha Documentation :: TOFFEE-Mocha-1.0.14-1-x86_64

Download TOFFEE-Mocha-1.0.14-1-x86_64 over HERE via Google Drive share.

NOTE: If you are looking TOFFEE-Mocha WAN Emulator for Raspberry Pi2/3, you can find it HERE.

WAN Emulator within VirtualBox VM:
Video DOC :: Setting up a WAN Emulator (TOFFEE-Mocha) within VirtualBox

Here is my VLOG Youtube video of the same which includes details about version release notes, future road-map and so on.

Software Development Updates corresponds to this TOFFEE-Mocha release version:
NEWS :: TOFFEE-Mocha WAN Emulation software development - Update: 18-June-2016
NEWS :: TOFFEE-Mocha WAN Emulation software development - Update: 17-June-2016
NEWS :: TOFFEE-Mocha WAN Emulation software development - Update: 16-June-2016

User Guide (Documentation)
The TOFFEE-Mocha release is highly optimized and customized for generic x86-64 hardware platform.

kiran@ubuntu-16:~/TOFFEE-Mocha-1.0.14-1-x86_64$ ls -l
total 53284
drwxr-xr-x  5 kiran kiran     4096 Jun 17 20:43 daemon
drwxr-xr-x  4 kiran kiran     4096 Jun 22 20:42 gui
-rw-r--r--  1 kiran kiran     2947 Jun 17 11:58 LICENSE.txt
drwxrwxr-x 25 kiran kiran     4096 Jun 22 19:27 linux-4.5
-rw-r--r--  1 kiran kiran  8114504 Jun 22 19:14 linux-headers-4.5.0-toffee-mocha-1.0.14_22-jun-2016_amd64.deb
-rw-r--r--  1 kiran kiran 46422500 Jun 22 19:12 linux-image-4.5.0-toffee-mocha-1.0.14_22-jun-2016_amd64.deb
-rw-r--r--  1 kiran kiran     1660 Jun 17 12:01 README.txt
kiran@ubuntu-16:~/TOFFEE-Mocha-1.0.14-1-x86_64$

Once you extract the downloaded tar-ball you can find the pre-compiled binary files as well the source-code as shown above.
NOTE: For more details regarding TOFFEE-Mocha hardware test setup and deployment kindly refer: TOFFEE-Mocha WAN emulator Lab deployment and topology guide
NOTE: For more details regarding TOFFEE-Mocha test-cases and test-results kindly refer: TEST CASES :: TEST RESULTS :: Raspberry Pi WAN Emulator TOFFEE-Mocha-1.0.14-1-rpi2

Installation
TOFFEE-Mocha contains two parts namely web-based GUI and the custom Linux Kernel which contains TOFFEE-Mocha within it. So here are the step by step instructions you can follow to install the same.
Step 1: Install the Ubuntu 16.04 LTS Desktop (64-bit) on a fresh system.
Step 2: Before installing TOFFEE-Mocha GUI you have to install all the prerequisite dependencies. As a part of dependencies TOFFEE-Mocha needs MySQL (now MariaDB, PHP, and other applications). So make sure device is connected to internet. The script below will install everything and configures MySQL TOFFEE-Mocha GUI database and tables for you. So enter into the .../gui folder, then execute the script as shown below:

kiran@ubuntu-16:~/TOFFEE-Mocha-1.0.14-1-x86_64/gui$ ls
db_scripts.sql  etc  html  make_clean  make_clean.php  make_db_upgrade  make_install  make_install_deps  make_install.php  toffeemochad
kiran@ubuntu-16:~/TOFFEE-Mocha-1.0.14-1-x86_64/gui$
kiran@ubuntu-16:~/TOFFEE-Mocha-1.0.14-1-x86_64/gui$ sudo ./make_install_deps

After sometime it will install MySQL server and prompts the default password for the user root. Kindly enter the password "welcome" when it prompts for MySQL root password as shown below:
MySQL server defaut password [CDN]

Step 3: Now you need to install the GUI web-pages in Apache web-root (such as in /var/www/html/toffee_mocha) and install the TOFFEE-Mocha Daemon. The script below does all these jobs:

kiran@ubuntu-16:~/TOFFEE-Mocha-1.0.14-1-x86_64/gui$ sudo ./make_install
Failed to stop toffeemochad.service: Unit toffeemochad.service not loaded.
Failed to stop toffeemochad.service: Unit toffeemochad.service not loaded.
Installing TOFFEE-Mocha GUI in (/var/www/html/toffee_mocha) Apache default webroot folder ...
cp: target '/var/www/html/toffee_mocha/.' is not a directory
Done !
Setting Appropriate Permissions in (/var/www/html/toffee_mocha) Apache default webroot folder ...
chmod: cannot access '/var/www/html/toffee_mocha/*': No such file or directory
Done !
kiran@ubuntu-16:~/TOFFEE-Mocha-1.0.14-1-x86_64/gui$

NOTE: Ignore any warnings and in few cases even any errors displayed.

Step 4: TOFFEE-Mocha Linux-Kernel Installation:
kindly install the following ".deb" binary files as shown below:

kiran@ubuntu-16:~/TOFFEE-Mocha-1.0.14-1-x86_64$ sudo dpkg -i linux-image-4.5.0-toffee-mocha-1.0.14_22-jun-2016_amd64.deb 
linux-headers-4.5.0-toffee-mocha-1.0.14_22-jun-2016_amd64.deb

Once it is done, you can reboot the system, boot in the new TOFFEE-Mocha Kernel and can configure and use the same.
NOTE: Ignore any warnings.

Configuration
Once you are done with Installation, you can restart the system and configure the same as shown below.
Now you can access the TOFFEE-Mocha GUI via your browser as shown below. The default username is: root and the password is: welcome

URL: http://localhost/toffee_mocha
TOFFEE_Mocha login [CDN]

Once you login you will get this first HOME page. Since it is not yet configured and not yet active, there are no graphs populated in the home page.
TOFFEE_Mocha home page

You can now configure TOFFEE-Mocha directly via Wizard by clicking "+ Wizard" on the side menu bar. Once you get the Wizard page, you can now select Start button. This button will reset everything and prepares for a fresh configuration.
TOFFEE_Mocha wizard start [CDN]

Select your LAN Port.
IMPORTANT NOTE: Since TOFFEE-Mocha device is a WAN emulator device you can configure any port as LAN port and WAN port. Swapping LAN and WAN ports in your deployment will not cause any issues.
TOFFEE_Mocha wizard LAN port

Select your WAN Port. As suggested in the note above, you can configure any port as WAN port.
TOFFEE_Mocha wizard WAN port

Now your TOFFEE-Mocha basic setup is over. Now you should get the confirmation page as shown below.
TOFFEE_Mocha wizard finish

Optionally you can now check various tabs under the Settings tab. For example the + Ports tab shows the status of various network ports and its corresponding Direction (such as LAN and WAN) and other generic port related information. Sometimes you can directly set port direction via this page, but it is highly recommended to use the TOFFEE-Mocha Wizard.

NOTE: TOFFEE-Mocha works within Linux based Layer-2 bridging module. And hence once TOFFEE-Mocha is configured via Wizard you should able to see the bridging port name as "toffee" as shown below. This bridging interface is created by the user-space TOFFEE-Mocha daemon automatically so that the Kernel-space TOFFEE-Mocha hooks, intercepts and optimizes the packets passing through standard Linux kernel bridge.
TOFFEE_Mocha ports [CDN]

You can now view and confirm your settings via + Big Picture. Big Picture is a neat graphical illustration of your overall TOFFEE-Mocha settings. You can view any time as a reference and even print and file it as a record if you are a Network Admin.
TOFFEE_Mocha Big Picture [CDN]

Packet Delay Feature: As the name says you can add constant or dynamic packet delay on each packet passing through TOFFEE-Mocha. This will simulate slow speed WAN links. This will limit the rate of packets there by indirectly controlling the rate of bits-per-second data transmission. As one can understand this gives more finer and precise control over packets than the standard Linux QoS tc scripts. You can add inter-packet milliseconds and microseconds constant delay. As well you can add per-packet dynamic delay based on the size of the packet (i.e delay proportional to number of bytes per packets). Dynamic delay rate can be controlled by the dynamic delay factor variable. Dynamic delay is a unique feature through which you can simulate a kind of burst type traffic and so latency associated with the same. In any case you can use combination of both dynamic and constant delay parameters. The overall delay of the packet will be the total delay set by all these settings.
TOFFEE_Mocha settings packet delay [CDN]

Packet Drop Feature: As the name says you can randomly drop few packets passing through TOFFEE-Mocha. This will simulate real worst-case WAN network scenarios such as mobile internet (3G/4G networks), Satellite Networks, inflight WiFi, marine internet, etc. You can control the packet drop rate with the random packet drop factor variable as shown below. The value 1 denotes 1 in every 10 random number range. And 2 denotes 1 in every 20 and so on. So higher the drop factor lesser is the probability of packets getting randomly dropped.

NOTE: Packets dropped this way will reflect in the TOFFEE-Mocha stats. You can see the bytes and packets received vs transmitted in the stats. As well the overall stats reports in the first TOFFEE-Mocha home page.
TOFFEE_Mocha settings packet drop

Once your complete setup is done, you can now monitor the TOFFEE-Mocha run-time live performance stats as show below:
TOFFEE_Mocha bytes stats
TOFFEE_Mocha packets stats [CDN]

Here is the TOFFEE-Mocha consolidated home page report:
TOFFEE_Mocha consolidated home page report



Suggested Topics:


TOFFEE-Mocha - WAN Emulator


Categories

💎 TOFFEE-MOCHA new bootable ISO: Download
💎 TOFFEE Data-Center Big picture and Overview: Download PDF


Recommended Topics:

TOFFEE deployment topology guide ↗
Saturday' 13-Mar-2021
Assume you have two sites (such as Site-A and Site-B) connected via slow/critical WAN link as shown below. You can optimize this link by saving the bandwidth as well possibly improve the speed. However, the WAN speed can be optimized only if the WAN link speeds are below that of the processing latency of your TOFFEE installed hardware. Assume your WAN link is 12Mbps, and assume the maximum WAN optimization speed/capacity of Raspberry Pi is 20Mbps, then your link will get speed optimization too. And in another case, assume your WAN link is 50Mbps, then using the Raspberry Pi as WAN Optimization device will actually increase the latency (i.e slows the WAN link). But in all the cases the bandwidth savings should be the same irrespective of the WAN link speed. In other words, if you want to cut down the WAN link costs via this WAN Optimization set up, you can always get it since it reduces the overall bandwidth in almost all the cases (including encrypted and pre-compressed data).

TOFFEE Data-Center optimized Internet of Things (IoT) Platform ↗
Saturday' 13-Mar-2021

Introducing TrueBench - a high resolution CPU benchmarking system ↗
Saturday' 13-Mar-2021
TrueBench is an unique open-source benchmarking system in which the core system performance and efficiency parameters are measured at extreme high resolution in the order of several million/billion µ-seconds for a given specific task. TrueBench is a part of The TOFFEE Project research. With TrueBench Raspberry Pi 3, Raspberry Pi 2B, Raspberry Pi 2 and other embedded SoC devices are benchmarked and you can do a comparative analysis with standard mainstream x86 devices.

TOFFEE (and TOFFEE-DataCenter) deployment with VPN devices ↗
Saturday' 13-Mar-2021
In case if you need to deploy TOFFEE along with your existing VPN devices you can deploy the same as shown below. This will allow your VPN devices to encrypt your TOFFEE WAN Optimized network data. NOTE: Make sure about the VPN deployment topology done in the right order. Else TOFFEE (LAN side) may get VPN encrypted packets which may not be possible (and or difficult) to further optimize. Hence always make sure to deploy them in a topology suggested below so that TOFFEE devices are out of VPN tunnel.

TOFFEE-Mocha Documentation :: TOFFEE-Mocha-1.0.32-1-x86_64 and TOFFEE-Mocha-1.0.32-1-i386 ↗
Saturday' 13-Mar-2021

Communication data network standards and data transfer speeds :: Chart ↗
Saturday' 13-Mar-2021
Here is a complete chart comprising popular communication data network standards and their respective transfer rates. I hope this reference chart will help network engineers and network software developers while performing networking tests and experiments, building WAN/network products, building WAN simulated networks of a specific standard and so on. This may also helps us to track technological advancements of communication data networks.

Watch on Youtube - [466//1] 158 VLOG - TOFFEE WAN Optimization Software Development live update - 6-Nov-2016 ↗


TOFFEE deployment topology guide ↗
Saturday' 13-Mar-2021
Assume you have two sites (such as Site-A and Site-B) connected via slow/critical WAN link as shown below. You can optimize this link by saving the bandwidth as well possibly improve the speed. However, the WAN speed can be optimized only if the WAN link speeds are below that of the processing latency of your TOFFEE installed hardware. Assume your WAN link is 12Mbps, and assume the maximum WAN optimization speed/capacity of Raspberry Pi is 20Mbps, then your link will get speed optimization too. And in another case, assume your WAN link is 50Mbps, then using the Raspberry Pi as WAN Optimization device will actually increase the latency (i.e slows the WAN link). But in all the cases the bandwidth savings should be the same irrespective of the WAN link speed. In other words, if you want to cut down the WAN link costs via this WAN Optimization set up, you can always get it since it reduces the overall bandwidth in almost all the cases (including encrypted and pre-compressed data).

My sample Wireshark packet capture files for research ↗
Saturday' 13-Mar-2021
I have a huge repository (or collection) of sample Wireshark packet capture files for reference. I use them extensively for research and development of TOFFEE as well to understand various protocol PDUs and protocol standards. I personally collected various test captures via Wireshark during my test and experimental research setup during the course of TOFFEE development. Say if you are a student and learning Networking and or say VoIP data and VoIP packets, you can analyse my VoIP sample Wireshark captures. Or in other case assume you are doing some quick research (or development) and want to refer few handful of VoIP packets then you can download and analyse my sample packet capture files.

Introducing TrueBench - a high resolution CPU benchmarking system ↗
Saturday' 13-Mar-2021
TrueBench is an unique open-source benchmarking system in which the core system performance and efficiency parameters are measured at extreme high resolution in the order of several million/billion µ-seconds for a given specific task. TrueBench is a part of The TOFFEE Project research. With TrueBench Raspberry Pi 3, Raspberry Pi 2B, Raspberry Pi 2 and other embedded SoC devices are benchmarked and you can do a comparative analysis with standard mainstream x86 devices.

Raspberry Pi as a Networking Device ↗
Saturday' 13-Mar-2021
Raspberry Pi is often used as a single board computer for applications such as IoT, hobby projects, DIY, education aid, research and prototyping device. But apart from these applications Raspberry Pi can be used for real-world applications such as in making a full-fledged networking devices. Raspberry Pi is a single board ARM based hardware which is why it is also classified as ARM based SoC. Since it is ARM based it is highly efficient, tiny form-factor and lower in power consumption with moderate computational power. This will allow it to work several hours on emergency battery backup power supply such as low-cost domestic UPS and or some renewable energy source, which is a prerequisite for a typical networking device.



Featured Educational Video:
Watch on Youtube - [4073//1] 0x1c9 NAS OS | Expert's take on FreeNAS vs UNRAID | My two cents | Best Tips ↗

Live demo - Data Transfer - High bandwidth to Low bandwidth ↗
Saturday' 13-Mar-2021
I always wanted to do some real experiments and research on packet flow patterns from High-bandwidth to Low-bandwidth networks via networking devices. This is something can be analyzed via capturing Network stack buffer data and other parameters, bench-marking, and so on. But eventually the data-transfer nature and other aspects is often contaminated due to the underlying OS and the way Network stack is implemented. So to understand the nature of packet flow from Higher to Lower bandwidth and vice-versa such as Lower to higher bandwidth, I thought I experiment with various tools and things which physically we can observe this phenomena.

TOFFEE-Mocha WAN Emulation software development - Update: 17-June-2016 ↗
Saturday' 13-Mar-2021
Now I supported and finished complete GUI support of these parameters so that you can configure, store, reboot and the same will restore upon reboot. Besides I complete the TOFFEE-Mocha Big-Picture page. The Big picture is an interface where you can find all the configuration (or settings) of the TOFFEE-Mocha. This is almost similar to CISCO device show all command but in graphical representation. Sometimes a network admin can also print the Big Picture page and paste it near to the device to refer its settings.

Introducing TOFFEE-DataCenter ↗
Saturday' 13-Mar-2021
TOFFEE TOFFEE Data-Center is specifically meant for Data Center, Cluster Computing, HPC applications. TOFFEE is built in Linux Kernel core. This makes it inflexible to adapt according to the hardware configuration. It does sequential packet processing and does not scale up well in large multi-core CPU based systems (such as Intel Xeon servers, Core i7 Extreme Desktop systems,etc). Apart from this since it is kernel based, if there is an issue in kernel, it may crash entire system. This becomes a challenge for any carrier grade equipment (CGE) hardware build.

Bufferbloat in a Networking Device or an Appliance ↗
Saturday' 13-Mar-2021



Watch on Youtube - [1888//1] Deep Space Communication - Episode1 - Introduction ↗

Grid Hosting vs CDN Hosting ↗
Saturday' 13-Mar-2021



Research :: Optimization of network data (WAN Optimization) at various levels:
Network File level network data WAN Optimization


Learn Linux Systems Software and Kernel Programming:
Linux, Kernel, Networking and Systems-Software online classes


Hardware Compression and Decompression Accelerator Cards:
TOFFEE Architecture with Compression and Decompression Accelerator Card


TOFFEE-DataCenter on a Dell Server - Intel Xeon E5645 CPU:
TOFFEE-DataCenter screenshots on a Dual CPU - Intel(R) Xeon(R) CPU E5645 @ 2.40GHz - Dell Server