To implement the Network Slicing in OMNeT++, we have to simulate a situation in which the individual physical network is break down into several virtual networks, each tailored to meet particular service requirements. These slicing is a key concepts in 5G networks where various slices can be sets up to help different kinds of services like enhanced mobile broadband (eMBB), ultra-reliable low-latency communications (URLLC), and massive machine-type communications (mMTC). Here, we delivered the structured procedure to implement this in OMNeT++:
Step-by-Step Implementation:
Example .ned file:
network SlicingNetwork {
submodules:
ue1: StandardHost {
@display(“p=100,200”);
}
ue2: StandardHost {
@display(“p=100,300”);
}
ue3: StandardHost {
@display(“p=100,400”);
}
baseStation: StandardHost {
@display(“p=300,300”);
}
coreNetwork: Router {
@display(“p=500,300”);
}
internet: StandardHost {
@display(“p=700,300”);
}
connections:
ue1.ethg++ <–> Ethernet100M <–> baseStation.ethg++;
ue2.ethg++ <–> Ethernet100M <–> baseStation.ethg++;
ue3.ethg++ <–> Ethernet100M <–> baseStation.ethg++;
baseStation.ethg++ <–> Ethernet1G <–> coreNetwork.pppg++;
coreNetwork.pppg++ <–> Ethernet1G <–> internet.ethg++;
}
This network has several User Equipment (UE) devices linked to a base station, which in turn connects to a core network router and the internet.
Example of defining network slices:
[Config SlicingNetwork]
network = SlicingNetwork
sim-time-limit = 100s
# Define Slice 1 (eMBB – High bandwidth, lower priority)
*.ue1.eth[0].queue.typename = “DropTailQueue”
*.ue1.eth[0].queue.packetCapacity = 100
*.ue1.eth[0].queue.queueLength = 100
*.baseStation.eth[0].queue.typename = “PriorityQueue”
*.baseStation.eth[0].queue.numQueues = 3
*.baseStation.eth[0].queue.queueLength = 100
*.baseStation.eth[0].queue.packetClassifier.function = “classifyByApp”
*.baseStation.eth[0].queue.priority = 2
# Define Slice 2 (URLLC – Low latency, high priority)
*.ue2.eth[0].queue.typename = “DropTailQueue”
*.ue2.eth[0].queue.packetCapacity = 50
*.ue2.eth[0].queue.queueLength = 50
*.baseStation.eth[0].queue.typename = “PriorityQueue”
*.baseStation.eth[0].queue.numQueues = 3
*.baseStation.eth[0].queue.queueLength = 50
*.baseStation.eth[0].queue.packetClassifier.function = “classifyByApp”
*.baseStation.eth[0].queue.priority = 1
# Define Slice 3 (mMTC – High capacity, moderate priority)
*.ue3.eth[0].queue.typename = “DropTailQueue”
*.ue3.eth[0].queue.packetCapacity = 200
*.ue3.eth[0].queue.queueLength = 200
*.baseStation.eth[0].queue.typename = “PriorityQueue”
*.baseStation.eth[0].queue.numQueues = 3
*.baseStation.eth[0].queue.queueLength = 200
*.baseStation.eth[0].queue.packetClassifier.function = “classifyByApp”
*.baseStation.eth[0].queue.priority = 3
In this sample:
Example of traffic generation:
*.ue1.numApps = 1
*.ue1.app[0].typename = “TcpBasicClientApp”
*.ue1.app[0].connectAddress = “internet”
*.ue1.app[0].connectPort = 80
*.ue1.app[0].sendInterval = 1s
*.ue1.app[0].messageLength = 5000B
*.ue2.numApps = 1
*.ue2.app[0].typename = “UdpBasicApp”
*.ue2.app[0].destAddress = “internet”
*.ue2.app[0].destPort = 1234
*.ue2.app[0].sendInterval = 100ms
*.ue2.app[0].messageLength = 500B
*.ue3.numApps = 1
*.ue3.app[0].typename = “UdpBasicApp”
*.ue3.app[0].destAddress = “internet”
*.ue3.app[0].destPort = 1234
*.ue3.app[0].sendInterval = 10s
*.ue3.app[0].messageLength = 200B
This set up creates various kinds of traffic for all slice:
Example of enforcing slicing policies:
# Enforce bandwidth limits and priority at the base station
*.baseStation.eth[0].queue.typename = “WeightedFairQueue”
*.baseStation.eth[0].queue.numQueues = 3
*.baseStation.eth[0].queue.weights = “3 2 1” # Assign weights to the queues
*.baseStation.eth[0].queue.queueLength = 300
This configuration enforces weighted fair queuing (WFQ) at the base station, making certain that each slice gets its assigned share of the bandwidth depends on its priority.
In this demonstration, we presented the step-by-step guide on how to implement network slicing in OMNeT++ with the help of INET framework that provides necessary modules and tools and then enforcing slicing policies into the simulated network. If you need any extra details on network slicing, we will offer it. Connect with omnet-manual.com to receive optimal implementation assistance regarding Network Slicing and to explore additional project concepts.