Skip to content

Work TODO

rkapl edited this page Sep 3, 2017 · 31 revisions

Improve support for services provided by orchestrator

For example DHCP (there is already an example how to do it manually), internet access gw, load balancer or firewall. Think of a better support for this use case. We do not need to know how to create those services, just provide better integration.

One example would be to add a hook to a lsdn_settings that will setup the service for the given network, by calling the orchestrator's script. So let's say for DHCP you would say that for a given network type you want to setup a virt connected to a network namespace and run a DHCP setup script in it. Script will be provided by either orchestrator or us as an example. Naturally, the API can be changed if you come up with a better way to server the usecase.

Also provide the example scripts for DHCP in network namespace, internet gateway services and also for network namespaces and virtual machines (let's say using libvirt).

Per-virt services

Same as above, but instantiated for each virt. Could be for example a SSL terminator or statefull firewall.

Test static vxlans with > 32 nodes and with multiple independent vxlans

Make it work if it does not. > 32 limit comes from maximum limit on TC actions, multiple VXLANs come from restriction on uniqueness of (VNI, UDP, IP)

Add support for migration and updating the networks

Dtto. There is not much code for the updating of the network at the moment and the network should be able to handle updating of the topology (migration being one of the most important cases). Add testcases for that.

Valgrind the lsdn and add frees

QoS [low prio]

Shaping on the virt interface. Prioritization of the customers (their networks). Investigate.

Prioritization based on traffic type is probably better done on customers side.

Docker support ?

Firewall

Add support for adding simple rules for each virt. Provide automatic mac spoofing and IP spoofing protection.

Make the C interface completely

Currently some functions are defined and not implemented. Sometimes we have setters, but not getters.

Make the TCL interface complete

Ensure the TCL has all accessors.

Dump the model to JSON and TCL

TCL for making the configurations, JSON for reading by other tools.

Streamline the TCL use case [low-prio]

Also consider moving to JimTCL, seems smaller and cleaner. Make safe mode work (no IO access etc.)

Move more shell things to the TCL. Also optionally construct the namespaces directly from the network model.

Clone this wiki locally