sonata-nfv/son-emu

5GTANGO LLCM: Support deployment of multiple service instances

mpeuster opened this issue · 0 comments

Issue: Right now we can only deploy one instance per service, because the container names (and other things) will collide.

Solution: Have a short_service_instance_id or SSIID and post-fix container names, e.g., vnf_id.vdu_id.SSIID with it.

Problem (s):

  1. This will totally break the vim-emu drive of tng-sdk-benchmark.
    • Solution idea: Return more details about the names of the deployed artefacts in the instantiation request to ease the mapping in the driver.
    • Or ensure that id is always 0 if only one service is running.
    • first test integration with tng-bench (branch: emu-feature-294) before merging ANYTHING to master
  2. this still allows to have collisions if two services have the same container names!
    • Include the name of the service as prefix (danger for tng-sdk-bench!) Should be a second step!.

How to test:

# Terminal 1
cd vim-emu
sudo python2 examples/tango_default_cli_topology_2_pop.py

# Terminal 2
cd ~/tng-industrial-pilot/sdk-projects
./on-board-ns1.sh
./instantiate-ns1.sh
# create collision
./instantiate-ns1.sh

Corner cases to think of:

  • port mappings will collide! offset by id*1000?
  • New services get new subnets, which means the IPs change, which breaks the interconnection between containers -> every instance should get the same subnets separated by VLANs -> pop only once per service not per service_instance
    • VLAN isolation seems to work properly for E-LANs
  • collisions of VLANs possible? No -> each link/land gets a new one. Up to 4096.

Tests before merge:


Attention: Commit already exists; amend.