/XPath-Software

Explicit Path Control in Commodity Data Centers

Primary LanguageC

#XPath-Software

A framework for varied load balancing schemes in explicit path control enabled data center network.

Currently, load balancing schemes supported in this framework include ECMP, Presto, and RPS(Random Packet Spraying. With the framework deployed in every end host, users are free to set up which load balancing scheme to use dynamically.

This framework mainly consists of two parts: a Linux user program and a Linux kernel module. The user program enables users to dynamically configure which load balancing scheme to use, and what the local path table is. These configurations will be further sent from the user program to the kernel module via Netlink. The kernel module maintains current load balance scheme, path table, and flow table. Upon capturing an IP packet by Netfilter, it identifies an end-to-end path, and uses IP-in-IP to encapsulate an outer IP header with the destination IP field set to the desired path ID.

##Getting Started Get source repository.

git clone https://github.com/HKUST-SING/XPath-Software.git

You need the kernel headers to compile it:

make

To install the kernel module:

sudo insmod xpath.ko

Configure load balancing scheme, For example, to enable ECMP:

sudo sysctl -w xpath.load_balancing=0

Configure local path table. In this case, there are two paths from the local machine to 192.168.1.51. Their path IDs are 192.168.101.12 and 192.168.101.13 respectively.

./xpath-user -i 192.168.1.51 192.168.101.12 192.168.101.13

Remove the kernel module

sudo rmmod xpath

##Usage ###Configuring path table

usage: xpath-user -i <destination_IP> <path1> [path2 ...] | -p |  -c
  • -i <destination_IP> <path1> [path2 ...] : insert a destination and its paths to path table

  • -p : print path table

  • -c : clear path table

###Configuring load balancing scheme

sudo sysctl xpath.load_balancing=0|1|2

0 for ECMP, 1 for Presto, and 2 for RPS(Random Packet Spraying)

##Useful Resources

##More Information For questions, please contact Wei Bai.