Version 10 (modified by, 8 years ago) (diff)


Navigation: Up

After Step 2: Configure and Install ChoiceNet Software, we already have the Choicenet Framework setup. If you want to try the SDN implementation of ChoiceNet, you can follow this part of instructions.

Start ChoiceNet server and app

The SDN-based implementation has an SDN controller that knows the network topology and detect the path services. It also has a marketplace server which accepts the service advertisement from controller and handles the user request.

Although the controller and marketplace are logically separate from the users, in this tutorial, they are located on H1.

So open up a ssh session terminal to the H1 Node ( we can call it TERMINAL 1 ) and start the controller and marketplace.

On TERMINAL 1 (H1 node)

sudo /root/choicenet/geni/

this will start both the marketplace and controller.

Open up two ssh session terminals to the H2 Node ( we can call them TERMINAL 2 and TERMINAL 3 ). First run the Choicenet App on TERMINAL 2. The Choicenet App will communicate with marketplace to request for path service and deal with payment.

On TERMINAL 2 (H2 node)

sudo /root/choicenet/geni/

When asked for username and password, please use the following account:


Password: customer

After login, the app will intercept any TCP SYN packets with destination IP and destination port 8080 or 443. Once it intercepts a packet, it communicated with the marketplace and request for a path service with 3-minute duration. This means it is compatible with almost any existing network applications, here we will use wget and mplayer as two examples.

Test 1: wget

First start a simple http server on TERMINAL 1:

On TERMINAL 1 (H1 node)

sudo su
cd /root/
python -m SimpleHTTPServer 8080

We then use wget on TERMINAL 3

On TERMINAL 3 (H2 node)


After executing this command, switch to TERMINAL 2, you will see the ChoiceNet App gives you several options about the forward and revert path. Each path is valid for 3 minutes.

Select one for each, then you will be asked to pay for the path service on a webpage.

Copy the link to your browser, and pay for the service using paypal. You can use the test paypal account:


Password: customer

After you have paid, click the "Return to". After the webpage redirection, the marketplace will be notified about this payment, and the download should start. You will see the output on TERMINAL 3:

root@h2:~# wget
--2014-10-16 23:02:16--
Connecting to connected.
HTTP request sent, awaiting response... 200 OK
Length: 73516259 (70M) [video/mp4]
Saving to: `sample.mp4'

10% [========>                                                                                  ] 7,927,627    116K/s  eta 9m 11s

The download speed should match the speed you select in the ChoiceNet App. If you want to start over and try another choice, make sure to wait 3 minutes so that the previous service can expire.

Test 2: mplayer

One possible use case of ChoiceNet is the on-demand online video streaming. In this test, we are using mplayer to stream a video from H1 to H2, and print the statistics on H2. You will see the playback quality varies for different choices.

The steps of testing with mplayer is similar to testing with wget, just repeat the commands in Test 1, but replace the wget command with the following command:

On TERMINAL 3 (H2 node)

ping -c 1
mplayer -vo null -nosound

After you have paid for the path service, you can see the streaming starts and the statistics print on H2. If you choose the 1 Mbps link, you will notice the cache utilization is below 50% and the performance issue warning.

Attachments (4)

Download all attachments as: .zip