Difference between revisions of "3gpp-emulator"

From VNUML-WIKI
Jump to: navigation, search
(Interdomain Mobility Scenario)
(Intradomain Scenario)
Line 52: Line 52:
  
 
<pre>
 
<pre>
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<!DOCTYPE vnuml SYSTEM "/usr/share/xml/vnuml/vnuml.dtd">
 +
 +
<vnuml>
 +
  <global>
 +
      <version>1.8</version>
 +
      <simulation_name>sae-intra</simulation_name>
 +
      <automac/>
 +
      <vm_mgmt type="none" />
 +
      <vm_defaults exec_mode="mconsole">
 +
        <kernel>/usr/share/vnuml/kernels/linux</kernel>
 +
        <console id="0">pts</console>
 +
      </vm_defaults>
 +
  </global>
 +
 +
  <net name="ix" mode="uml_switch" />
 +
  <net name="core1" mode="uml_switch" />
 +
  <net name="acc1_1" mode="uml_switch" external="eth0.121"/>
 +
  <net name="ppp1" mode="uml_switch" />
 +
  <net name="core2" mode="uml_switch" />
 +
  <net name="acc2_1" mode="uml_switch" external="eth0.122"/>
 +
  <net name="acc2_2" mode="uml_switch" external="eth0.123"/>
 +
  <net name="ppp2" mode="uml_switch" />
 +
  <net name="aux" mode="uml_switch" />
 +
 +
  <!-- domain 1 -->
 +
 +
  <vm name="dhcp1_1">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
 +
      <if id="1" net="acc1_1">
 +
        <ipv6>2001:db8:1:2::2/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:1:2::1">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="ar1">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
 +
      <if id="1" net="acc1_1">
 +
        <ipv6>2001:db8:1:2::1/64</ipv6>
 +
      </if>
 +
      <if id="2" net="ppp1">
 +
        <ipv6>2001:db8:1:100::1/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:1:100::2">2000::/3</route>
 +
      <forwarding type="ipv6" />
 +
  </vm>
 +
 +
  <vm name="p_cscf1">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
 +
      <if id="1" net="core1">
 +
        <ipv6>2001:db8:1:1::2/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
 +
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="s_cscf1">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
 +
      <if id="1" net="core1">
 +
        <ipv6>2001:db8:1:1::3/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
 +
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="i_cscf1">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
 +
      <if id="1" net="core1">
 +
        <ipv6>2001:db8:1:1::4/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
 +
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="p_gw1">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
 +
      <if id="1" net="core1">
 +
        <ipv6>2001:db8:1:1::100/64</ipv6>
 +
      </if>
 +
      <if id="2" net="ix">
 +
        <ipv6>2001:db8:100::1/64</ipv6>
 +
      </if>
 +
      <if id="3" net="ppp1">
 +
        <ipv6>2001:db8:1:100::2/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:1:100::1">2001:db8:1:2::/64</route>
 +
      <route type="ipv6" gw="2001:db8:1:100::1">2001:db8:1:3::/64</route>
 +
      <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
 +
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
 +
      <forwarding type="ipv6" />
 +
  </vm>
 +
 +
  <!-- domain 2 -->
 +
 +
  <vm name="dhcp2_1">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
 +
      <if id="1" net="acc2_1">
 +
        <ipv6>2001:db8:2:2::2/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:2:2::1">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="dhcp2_2">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
 +
      <if id="1" net="acc2_2">
 +
        <ipv6>2001:db8:2:3::2/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:2:3::1">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="ar2">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
 +
      <if id="1" net="acc2_1">
 +
        <ipv6>2001:db8:2:2::1/64</ipv6>
 +
      </if>
 +
      <if id="2" net="acc2_2">
 +
        <ipv6>2001:db8:2:3::1/64</ipv6>
 +
      </if>
 +
      <if id="3" net="ppp2">
 +
        <ipv6>2001:db8:2:100::1/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:2:100::2">2000::/3</route>
 +
      <forwarding type="ipv6" />
 +
  </vm>
 +
 +
  <vm name="p_cscf2">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
 +
      <if id="1" net="core2">
 +
        <ipv6>2001:db8:2:1::2/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
 +
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="s_cscf2">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
 +
      <if id="1" net="core2">
 +
        <ipv6>2001:db8:2:1::3/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
 +
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="i_cscf2">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
 +
      <if id="1" net="core2">
 +
        <ipv6>2001:db8:2:1::4/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
 +
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="p_gw2">
 +
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
 +
      <if id="1" net="core2">
 +
        <ipv6>2001:db8:2:1::100/64</ipv6>
 +
      </if>
 +
      <if id="2" net="ix">
 +
        <ipv6>2001:db8:100::2/64</ipv6>
 +
      </if>
 +
      <if id="3" net="ppp2">
 +
        <ipv6>2001:db8:2:100::2/64</ipv6>
 +
      </if>
 +
      <route type="ipv6" gw="2001:db8:2:100::1">2001:db8:2:2::/64</route>
 +
      <route type="ipv6" gw="2001:db8:2:100::1">2001:db8:2:3::/64</route>
 +
      <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
 +
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
 +
      <forwarding type="ipv6" />
 +
  </vm>
 +
 +
  <!-- auxiliy element nodes -->
 +
 +
  <vm name="dns">
 +
    <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dns</filesystem>
 +
    <if id="1" net="aux">
 +
        <ipv6>2001:db8:200::1/64</ipv6>
 +
    </if>
 +
    <route type="ipv6" gw="2001:db8:200::100">2000::/3</route>
 +
  </vm>
 +
 +
  <vm name="aux_r">
 +
    <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
 +
    <if id="1" net="aux">
 +
        <ipv6>2001:db8:200::100/64</ipv6>
 +
    </if>
 +
    <if id="2" net="ix">
 +
        <ipv6>2001:db8:100::200/64</ipv6>
 +
    </if>
 +
    <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
 +
    <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
 +
    <forwarding type="ipv6" />
 +
</vm>
 +
 +
</vnuml>
 +
 
</pre>
 
</pre>
  

Revision as of 20:14, 7 March 2008

3GPP System Architecture Evolution Scenarios

Authors:
Fermín Galán (fermin at tid.es)
Miguel Gómez (miguelg at tid.es)
version 1.0, March Xth, 2008

Introduction

Context. Reference to TridentCom'08. Introduce the sections below.

Not too long (a couple of paragraph should be ok). Not too formal.

[Miguel]

Reference Scenario

Multi-domain 3GPP SAE emulation scenario

Multi-domain 3GPP SAE emulation reference scenario

The reference scenario architecture is composed of several domains. Each domain consists of an core network (CN) and an arbitrary number of access networks (ANs). The IMS lays within the CN, consisting of a set of CSCFs proxies (our model considers one of each type: P-CSCF, S-CSCF and I-CSCF). Each AN is connected to its corresponding CN through an Access Router (AR).

The different domain CNs are connected through an interconnection point (IX), also known as inter-PLMS (Public Land Mobile Network) backbone. The IX also interconnect a segment of auxiliary network elements (such as a DNS server).

The scenario considers two kinds of attachment points for external equipment: access networks (for UEs) and IMS cores (for core entities, such as the SIP Application Server shown as example in the figure below).

The following script (sae-generator.pl) allows VNUML multi-domain specifications automatically. Some observations follow:

  • The first parameter is the number of domains (D) and the second one the number of access network per domain (N).
  • The 'external' attribute is not added in neither acc*_* nor core* <net>s, due to it is depend of the host physical interface (e.g., eth0, eth1, etc.) and the particular VLAN ID being used. Therefore, user needs to edit the resulting XML properly.
  • The script only generates homogeneous specifications, i.e. the same number of AN for each domain, although the resulting XML can be easily prune to fit user needs.
  • An auxiliary segment with a DNS server is added
  • IPv6 addresses are automatically assigned to each element
  • The <console> is pts. The recommended way to access virtual machines is the vn script (you should have it in /usr/share/vnuml/contrib/vn_script if you installed VNUML through the .deb package or in the .tgz if you used the sources). For example: "vn console sae ar1". See the vn README for more detail.

Intradomain Scenario

Intra-domain mobility scenario

Intra-domain mobility scenario

The scenario is composed of 2 domains (it can be obtained after pruning the scenario generated by the script with './sae-generator.pl 2 2'), one with one AN for the terminating UE and other with two ANs for the originating UE.

Note that acc1_1, acc2_1 and acc2_2 <net>s use the 'external' attribute in order to allow the interconnection of external UE equipment. However, note that the values considered in the example (eth0.121, eth0.122 and eth0.123) have to be changed to match the proper ones in your emulation environment.

The intra-domain mobility mobility can be download here: sae-intradomain.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vnuml SYSTEM "/usr/share/xml/vnuml/vnuml.dtd">

<vnuml>
   <global>
      <version>1.8</version>
      <simulation_name>sae-intra</simulation_name>
      <automac/>
      <vm_mgmt type="none" />
      <vm_defaults exec_mode="mconsole">
         <kernel>/usr/share/vnuml/kernels/linux</kernel>
         <console id="0">pts</console>
      </vm_defaults>
   </global>

   <net name="ix" mode="uml_switch" />
   <net name="core1" mode="uml_switch" />
   <net name="acc1_1" mode="uml_switch" external="eth0.121"/>
   <net name="ppp1" mode="uml_switch" />
   <net name="core2" mode="uml_switch" />
   <net name="acc2_1" mode="uml_switch" external="eth0.122"/>
   <net name="acc2_2" mode="uml_switch" external="eth0.123"/>
   <net name="ppp2" mode="uml_switch" />
   <net name="aux" mode="uml_switch" />

   <!-- domain 1 -->

   <vm name="dhcp1_1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
      <if id="1" net="acc1_1">
         <ipv6>2001:db8:1:2::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:2::1">2000::/3</route>
   </vm>

  <vm name="ar1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="acc1_1">
         <ipv6>2001:db8:1:2::1/64</ipv6>
      </if>
      <if id="2" net="ppp1">
         <ipv6>2001:db8:1:100::1/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:100::2">2000::/3</route>
      <forwarding type="ipv6" />
   </vm>

   <vm name="p_cscf1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core1">
         <ipv6>2001:db8:1:1::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
   </vm>

   <vm name="s_cscf1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core1">
         <ipv6>2001:db8:1:1::3/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
   </vm>

   <vm name="i_cscf1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core1">
         <ipv6>2001:db8:1:1::4/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
   </vm>

   <vm name="p_gw1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="core1">
         <ipv6>2001:db8:1:1::100/64</ipv6>
      </if>
      <if id="2" net="ix">
         <ipv6>2001:db8:100::1/64</ipv6>
      </if>
      <if id="3" net="ppp1">
         <ipv6>2001:db8:1:100::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:100::1">2001:db8:1:2::/64</route>
      <route type="ipv6" gw="2001:db8:1:100::1">2001:db8:1:3::/64</route>
      <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
      <forwarding type="ipv6" />
   </vm>

   <!-- domain 2 -->

   <vm name="dhcp2_1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
      <if id="1" net="acc2_1">
         <ipv6>2001:db8:2:2::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:2::1">2000::/3</route>
   </vm>

   <vm name="dhcp2_2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
      <if id="1" net="acc2_2">
         <ipv6>2001:db8:2:3::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:3::1">2000::/3</route>
   </vm>

  <vm name="ar2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="acc2_1">
         <ipv6>2001:db8:2:2::1/64</ipv6>
      </if>
      <if id="2" net="acc2_2">
         <ipv6>2001:db8:2:3::1/64</ipv6>
      </if>
      <if id="3" net="ppp2">
         <ipv6>2001:db8:2:100::1/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:100::2">2000::/3</route>
      <forwarding type="ipv6" />
   </vm>

   <vm name="p_cscf2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core2">
         <ipv6>2001:db8:2:1::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
   </vm>

   <vm name="s_cscf2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core2">
         <ipv6>2001:db8:2:1::3/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
   </vm>

   <vm name="i_cscf2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core2">
         <ipv6>2001:db8:2:1::4/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
   </vm>

   <vm name="p_gw2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="core2">
         <ipv6>2001:db8:2:1::100/64</ipv6>
      </if>
      <if id="2" net="ix">
         <ipv6>2001:db8:100::2/64</ipv6>
      </if>
      <if id="3" net="ppp2">
         <ipv6>2001:db8:2:100::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:100::1">2001:db8:2:2::/64</route>
      <route type="ipv6" gw="2001:db8:2:100::1">2001:db8:2:3::/64</route>
      <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
      <forwarding type="ipv6" />
   </vm>

  <!-- auxiliy element nodes -->

  <vm name="dns">
     <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dns</filesystem>
     <if id="1" net="aux">
        <ipv6>2001:db8:200::1/64</ipv6>
     </if>
     <route type="ipv6" gw="2001:db8:200::100">2000::/3</route>
  </vm>

  <vm name="aux_r">
     <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
     <if id="1" net="aux">
        <ipv6>2001:db8:200::100/64</ipv6>
     </if>
     <if id="2" net="ix">
        <ipv6>2001:db8:100::200/64</ipv6>
     </if>
     <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
     <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
     <forwarding type="ipv6" />
 </vm>

</vnuml>

Interdomain Mobility Scenario

Inter-domain mobility scenario

Inter-domain mobility scenario

The scenario is composed of five domains (it can be obtained after pruning the scenario generated by the script with './sae-generator.pl 5 1'), which may play the following roles:

  • Domain 1 (one AN): Terminating Visiting
  • Domain 2 (one AN): Originating Final Visiting
  • Domain 3 (one AN): Originating Initial Visiting
  • Domain 4 (no AN): Originating Home
  • Domain 5 (no AN): Terminating Home

Note that acc1_1, acc2_1 and acc3_1 <net>s use the 'external' attribute in order to allow the interconnection of external UE equipment. However, note that the values considered in the example (eth0.121, eth0.122 and eth0.123) have to be changed to match the proper ones in your emulation environment.

The inter-domain mobility mobility can be download here: sae-interdomain.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE vnuml SYSTEM "/usr/share/xml/vnuml/vnuml.dtd">

<vnuml>
   <global>
      <version>1.8</version>
      <simulation_name>sae-inter</simulation_name>
      <automac/>
      <vm_mgmt type="none" />
      <vm_defaults exec_mode="mconsole">
         <kernel>/usr/share/vnuml/kernels/linux</kernel>
         <console id="0">pts</console>
      </vm_defaults>
   </global>

   <net name="ix" mode="uml_switch" />
   <net name="core1" mode="uml_switch" />
   <net name="acc1_1" mode="uml_switch" external="eth0.121"/>
   <net name="ppp1" mode="uml_switch" />
   <net name="core2" mode="uml_switch" />
   <net name="acc2_1" mode="uml_switch" external="eth0.122"/>
   <net name="ppp2" mode="uml_switch" />
   <net name="core3" mode="uml_switch" />
   <net name="acc3_1" mode="uml_switch" external="eth0.123"/>
   <net name="ppp3" mode="uml_switch" />
   <net name="core4" mode="uml_switch" />
   <net name="core5" mode="uml_switch" />
   <net name="aux" mode="uml_switch" />

   <!-- domain 1 -->

   <vm name="dhcp1_1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
      <if id="1" net="acc1_1">
         <ipv6>2001:db8:1:2::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:2::1">2000::/3</route>
   </vm>

  <vm name="ar1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="acc1_1">
         <ipv6>2001:db8:1:2::1/64</ipv6>
      </if>
      <if id="2" net="ppp1">
         <ipv6>2001:db8:1:100::1/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:100::2">2000::/3</route>
      <forwarding type="ipv6" />
   </vm>

   <vm name="p_cscf1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core1">
         <ipv6>2001:db8:1:1::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
   </vm>

   <vm name="s_cscf1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core1">
         <ipv6>2001:db8:1:1::3/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
   </vm>

   <vm name="i_cscf1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core1">
         <ipv6>2001:db8:1:1::4/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:1::1">2001:db8:1:2::/64</route>
      <route type="ipv6" gw="2001:db8:1:1::100">2000::/3</route>
   </vm>

   <vm name="p_gw1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="core1">
         <ipv6>2001:db8:1:1::100/64</ipv6>
      </if>
      <if id="2" net="ix">
         <ipv6>2001:db8:100::1/64</ipv6>
      </if>
      <if id="3" net="ppp1">
         <ipv6>2001:db8:1:100::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:1:100::1">2001:db8:1:2::/64</route>
      <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
      <route type="ipv6" gw="2001:db8:100::3">2001:db8:3::/48</route>
      <route type="ipv6" gw="2001:db8:100::4">2001:db8:4::/48</route>
      <route type="ipv6" gw="2001:db8:100::5">2001:db8:5::/48</route>
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
      <forwarding type="ipv6" />
   </vm>

   <!-- domain 2 -->

   <vm name="dhcp2_1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
      <if id="1" net="acc2_1">
         <ipv6>2001:db8:2:2::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:2::1">2000::/3</route>
   </vm>

  <vm name="ar2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="acc2_1">
         <ipv6>2001:db8:2:2::1/64</ipv6>
      </if>
      <if id="2" net="ppp2">
         <ipv6>2001:db8:2:100::1/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:100::2">2000::/3</route>
      <forwarding type="ipv6" />
   </vm>

   <vm name="p_cscf2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core2">
         <ipv6>2001:db8:2:1::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
   </vm>

   <vm name="s_cscf2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core2">
         <ipv6>2001:db8:2:1::3/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
   </vm>

   <vm name="i_cscf2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core2">
         <ipv6>2001:db8:2:1::4/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:1::1">2001:db8:2:2::/64</route>
      <route type="ipv6" gw="2001:db8:2:1::100">2000::/3</route>
   </vm>

   <vm name="p_gw2">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="core2">
         <ipv6>2001:db8:2:1::100/64</ipv6>
      </if>
      <if id="2" net="ix">
         <ipv6>2001:db8:100::2/64</ipv6>
      </if>
      <if id="3" net="ppp2">
         <ipv6>2001:db8:2:100::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:2:100::1">2001:db8:2:2::/64</route>
      <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
      <route type="ipv6" gw="2001:db8:100::3">2001:db8:3::/48</route>
      <route type="ipv6" gw="2001:db8:100::4">2001:db8:4::/48</route>
      <route type="ipv6" gw="2001:db8:100::5">2001:db8:5::/48</route>
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
      <forwarding type="ipv6" />
   </vm>

   <!-- domain 3 -->

   <vm name="dhcp3_1">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dhcpv6</filesystem>
      <if id="1" net="acc3_1">
         <ipv6>2001:db8:3:2::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:3:2::1">2000::/3</route>
   </vm>

  <vm name="ar3">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="acc3_1">
         <ipv6>2001:db8:3:2::1/64</ipv6>
      </if>
      <if id="2" net="ppp3">
         <ipv6>2001:db8:3:100::1/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:3:100::2">2000::/3</route>
      <forwarding type="ipv6" />
   </vm>

   <vm name="p_cscf3">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core3">
         <ipv6>2001:db8:3:1::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:3:1::1">2001:db8:3:2::/64</route>
      <route type="ipv6" gw="2001:db8:3:1::100">2000::/3</route>
   </vm>

   <vm name="s_cscf3">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core3">
         <ipv6>2001:db8:3:1::3/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:3:1::1">2001:db8:3:2::/64</route>
      <route type="ipv6" gw="2001:db8:3:1::100">2000::/3</route>
   </vm>

   <vm name="i_cscf3">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core3">
         <ipv6>2001:db8:3:1::4/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:3:1::1">2001:db8:3:2::/64</route>
      <route type="ipv6" gw="2001:db8:3:1::100">2000::/3</route>
   </vm>

   <vm name="p_gw3">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="core3">
         <ipv6>2001:db8:3:1::100/64</ipv6>
      </if>
      <if id="2" net="ix">
         <ipv6>2001:db8:100::3/64</ipv6>
      </if>
      <if id="3" net="ppp3">
         <ipv6>2001:db8:3:100::2/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:3:100::1">2001:db8:3:2::/64</route>
      <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
      <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
      <route type="ipv6" gw="2001:db8:100::4">2001:db8:4::/48</route>
      <route type="ipv6" gw="2001:db8:100::5">2001:db8:5::/48</route>
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
      <forwarding type="ipv6" />
   </vm>

   <!-- domain 4 -->

   <vm name="s_cscf4">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core4">
         <ipv6>2001:db8:4:1::3/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:4:1::1">2001:db8:4:2::/64</route>
      <route type="ipv6" gw="2001:db8:4:1::100">2000::/3</route>
   </vm>

   <vm name="i_cscf4">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core4">
         <ipv6>2001:db8:4:1::4/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:4:1::1">2001:db8:4:2::/64</route>
      <route type="ipv6" gw="2001:db8:4:1::100">2000::/3</route>
   </vm>

   <vm name="p_gw4">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="core4">
         <ipv6>2001:db8:4:1::100/64</ipv6>
      </if>
      <if id="2" net="ix">
         <ipv6>2001:db8:100::4/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:4:100::1">2001:db8:4:2::/64</route>
      <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
      <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
      <route type="ipv6" gw="2001:db8:100::3">2001:db8:3::/48</route>
      <route type="ipv6" gw="2001:db8:100::5">2001:db8:5::/48</route>
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
      <forwarding type="ipv6" />
   </vm>

   <!-- domain 5 -->

   <vm name="s_cscf5">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core5">
         <ipv6>2001:db8:5:1::3/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:5:1::1">2001:db8:5:2::/64</route>
      <route type="ipv6" gw="2001:db8:5:1::100">2000::/3</route>
   </vm>

   <vm name="i_cscf5">
      <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-node</filesystem>
      <if id="1" net="core5">
         <ipv6>2001:db8:5:1::4/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:5:1::1">2001:db8:5:2::/64</route>
      <route type="ipv6" gw="2001:db8:5:1::100">2000::/3</route>
   </vm>

   <vm name="p_gw5">
      <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
      <if id="1" net="core5">
         <ipv6>2001:db8:5:1::100/64</ipv6>
      </if>
      <if id="2" net="ix">
         <ipv6>2001:db8:100::5/64</ipv6>
      </if>
      <route type="ipv6" gw="2001:db8:5:100::1">2001:db8:5:2::/64</route>
      <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
      <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
      <route type="ipv6" gw="2001:db8:100::3">2001:db8:3::/48</route>
      <route type="ipv6" gw="2001:db8:100::4">2001:db8:4::/48</route>
      <route type="ipv6" gw="2001:db8:100::200">2001:db8:200::/48</route>
      <forwarding type="ipv6" />
   </vm>

  <!-- auxiliy element nodes -->

  <vm name="dns">
     <filesystem type="cow">/usr/share/vnuml/filesystems/tridentcom-dns</filesystem>
     <if id="1" net="aux">
        <ipv6>2001:db8:200::1/64</ipv6>
     </if>
     <route type="ipv6" gw="2001:db8:200::100">2000::/3</route>
  </vm>

  <vm name="aux_r">
     <filesystem type="cow">/usr/share/vnuml/filesystems/n3vlr-0.11-vnuml-v0.1.img</filesystem>
     <if id="1" net="aux">
        <ipv6>2001:db8:200::100/64</ipv6>
     </if>
     <if id="2" net="ix">
        <ipv6>2001:db8:100::200/64</ipv6>
     </if>
     <route type="ipv6" gw="2001:db8:100::1">2001:db8:1::/48</route>
     <route type="ipv6" gw="2001:db8:100::2">2001:db8:2::/48</route>
     <route type="ipv6" gw="2001:db8:100::3">2001:db8:3::/48</route>
     <route type="ipv6" gw="2001:db8:100::4">2001:db8:4::/48</route>
     <route type="ipv6" gw="2001:db8:100::5">2001:db8:5::/48</route>
     <forwarding type="ipv6" />
 </vm>

</vnuml>

Supporting stuff

Filesystems:

  • tridentcom-dhcpv6
  • tridentcom-dns
  • tridentcom-node

Roadmap

List of things to do. Open to contributions.