Tenant Manager
This project implements a tenant manager module on top of the routing library of the ECES framework.
The module introduces the concepts of Tenant, Virtual Machine, and Flow. The project uses the DNM library to enable the embedding of flows with strict delay guarantees in a communication network.
This project contains the reference implementation (in TenantManagerSystem.createFlow()
) of the rerouting logic of Chameleon originally published in (Sec. 3.4 and 4.1.3):
- Amaury Van Bemten, Nemanja Ðerić, Amir Varasteh, Stefan Schmid, Carmen Mas-Machuca, Andreas Blenk, and Wolfgang Kellerer. "Chameleon: Predictable Latency and High Utilization with Queue-Aware and Adaptive Source Routing." ACM CoNEXT, 2020. The implementation uses this strategy for embedding a flow.
Usage
The project can be downloaded from maven central using:
<dependency>
<groupId>de.tum.ei.lkn.eces</groupId>
<artifactId>tenant-manager</artifactId>
<version>X.Y.Z</version>
</dependency>
Examples
tenant = tenantManagerSystem.createTenant("first tenant");
host1 = networkingSystem.createHost(network, "host1");
host2 = networkingSystem.createHost(network, "host2");
vm1 = tenantManagerSystem.createVirtualMachine(tenant, "vm1");
vm2 = tenantManagerSystem.createVirtualMachine(tenant, "vm2");
tenantManagerSystem.createFlow("flow #1", vm1, vm2, InetAddress.getByName("0.0.0.1"), InetAddress.getByName("0.0.0.1"), 10, 15, 10, 20, 5, 1);
See tests for other simple examples.
See other ECES repositories using this library (e.g., the NBI) for more detailed/advanced examples.