WIMAX NETWORK SIMULATOR OMNET++ PROJECTS
WIMAX NETWORK SIMULATOR OMNET++ PROJECTS is one of our dedicated services, started with the initiatives of renowned researchers and dedicated professionals. We have accomplished nearly 1000+ Wi-max Network Omnet++ projects for students and scholars from various parts of the world. It is an open source simulation framework implemented in C++. Also it offers Modular support (in C++) for development, which is one of the significant reasons for its widespread usage. Omnet++ has a separate Module support [NUMBAT] for the simulation of Wimax-Networks. Scholars can opt Omnet for the simulation of Wi-max Networks to get proficient and effective result.
We have nearly 100+ skilled developers and network engineers, working for student’s career upliftment and academic excellence. If you wish to enhance your academic performance and grades with the help of our guidance, approach us today. We will offer you an all round project guidance with 24/7 support.
WIMAX-SIMULATION IN OMNET++:
- Omnet++ is an extensible, component based C++ Simulation library and framework used for network simulation
- Simulation of Wi-max Network is performed in Omnet++ using NUMBAT Model.
- Numbat is a simulation Model for IEEE 802.16 [Wi-max Networks] with the support for Mobile Ipv6.
- It can be used in Linux and Windows systems. Nambat is supported by Omnet++ 4.1 and above versions.
NUMBAT for Wimax Simulation in Omnet++:
Features Supported in Wimax layer:
- Simple radio/PHY layer[Unicast(SS to BS) and Multicast(BS to SS) transmission]
- Based on IEEE 802.16
- Bandwidth management[BWR transmission and CDMA codes for ranging]
- OFDMA transmission[including radio frame symbols/slots, CDMA codes ]
- Control plane[Scanning(SCN-RSP, SCN-REQ)]
- Control-plane[Handover(MSHO-RSP, BSHO-REQ, HO-IND)]
- Control plane[Service flow creation/mgmt(DSA-RSP, DSA-REQ, DSA-ACK)]
- Traffic Models[Fixed, distance based handover, handover after timeout]
- Traffic-classes supported[Unsolicited Grant service and Best effort]
- Use of simple Event signaling
- Multiple BSes Support
- Connection management and queuing
- Multiple SSes Support
- Simulation of Handover between BSes
- Control plane [Network entry(SBC-REQ, RNG-REQ, RNG-RSP, SBC-RSP, PKM-RSP, PKM-REQ, REG-RSP and REG-REQ messages)]
Simulation Parameters specified in Omnetpp.ini Files:
- Description[Description used during network configuration selection]
- LogLevel[Defines the verbosity level of Numbat Module]
- Sim-time-limit [length of simulation period]
- StartTime[Period at which CN starts sending pings to SS]
- Interval[Defines the interval between consecutive pings to CN]
- FMIP[Enables/disables fast handover for Mobile IPv6]
- CPU-time-limit[Real time limit]
- PacketSize[Defines the payload size of Ping ]
- HandoverTime[Interval between Consecutive handovers]
- numSS[number of SSes]
- numbs[number of BSes]
- wmaxHoOptim[Defines WiMAX Optimization]
- wmaxIsMobile[Defines SS Mobility type]
- movementType[Defines type of SS movement]
Simulation Steps for Wimax Simulation:
- Create the compound modules using NED and/or GNED
network physim extends Physim
{
parameters:
}
network physim extends from Physim
- Configure the chosen Physim compound modules
module Physim
{
parameters:
int LogLevel; //was volatile double
int numBS; //volatile double
int numSS; //volatile double
@display(“bgb=0,0”);
submodules:
BS[numBS]: BS {
parameters:
@display(“p=100,200,r,200;i=device/antennatower_l”);
gates:
in[numSS];
out[numSS];
}
SS[numSS]: SS {
parameters:
@display(“p=50,50,r,50;i=device/pc_s”);
}
CN[numSS]: CorrNode {
parameters:
@display(“i=device/pc2;p=50,355,r,50”);
}
internet: Internet {
parameters:
@display(“p=480,280;i=misc/cloud”);
}
connections allowunconnected:
for i=1..numSS {
CN[i-1].ipOut –> internet.ipIn++;
internet.ipOut++ –> CN[i-1].ipIn;
}
for i=0..numBS-1 {
BS[i].networkOut –> internet.ipIn++;
internet.ipOut++ –> BS[i].networkIn;
}
}
- Save this file as Physim.ned
- Declare class(e.g WMaxCtrlSS.{cc.h})derived from FSM class and list of states in header[.h] file
WMaxCtrlSS: WMaxCtrlSS {
parameters:
@display(“i=block/cogwheel,#ce1821;p=264,80”); }
typedef enum {//To define list of states
STATE_OPERATIONAL, // normal operation
STATE_SEND_MSHO_REQ, // send MSHO-REQ message
STATE_WAIT_BSHO_RSP, // wait for BSHO-RSP message
STATE_SEND_HO_IND, // send HO-IND message
STATE_HANDOVER_COMPLETE, // handover complete
STATE_NUM
} State;
-
Set the simulation parameters in the INI files
[General]
ned-path = ipv6;util;wimax
network = physim
cpu-time-limit = 9600s
sim-time-limit = 200s
// General loglevel for the whole sim
physim.LogLevel = 6
physim.SS[*].NetworkEntryTime = 0.1
physim.SS[*].HandoverTime = 3
//number Base station(BS) and subscriber stations (SS).
physim.numBS = 3
physim.numSS = 4
physim.BS[*].bsIPv6.raGen.RaInterval = 0.030
physim.BS[0].bsIPv6.DHCPv6Srv.preference = 0
physim.BS[1].bsIPv6.DHCPv6Srv.preference = 1
physim.BS[2].bsIPv6.DHCPv6Srv.preference = 2
physim.BS[3].bsIPv6.DHCPv6Srv.preference = 3
physim.BS[4].bsIPv6.DHCPv6Srv.preference = 4
physim.BS[*].bsIPv6.DHCPv6Srv.MinDelayAdvertise = 0.010
physim.BS[*].bsIPv6.DHCPv6Srv.MaxDelayAdvertise = 0.050
physim.BS[*].bsIPv6.DHCPv6Srv.MinDelayReply = 0.030
physim.BS[*].bsIPv6.DHCPv6Srv.MaxDelayReply = 0.080
physim.BS[*].bsIPv6.DHCPv6Srv.MinDelayRelay = 0.060
physim.BS[*].bsIPv6.DHCPv6Srv.MaxDelayRelay = 0.100
physim.BS[*].bsMac.WMaxCtrlBS.MinDelayCdma = 0.005
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelayCdma = 0.005
physim.BS[*].bsMac.WMaxCtrlBS.MinDelayRng = 0.020
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelayRng = 0.040
physim.BS[*].bsMac.WMaxCtrlBS.MinDelaySbc = 0.010
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelaySbc = 0.030
physim.BS[*].bsMac.WMaxCtrlBS.MinDelaySaTek = 0.100
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelaySaTek = 0.200
physim.BS[*].bsMac.WMaxCtrlBS.MinDelayScn = 0.020
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelayScn = 0.040
physim.BS[*].bsMac.WMaxCtrlBS.MinDelayReg = 0.030
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelayReg = 0.060
physim.BS[*].bsMac.WMaxCtrlBS.MinDelayHoRsp = 0.050
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelayHoRsp = 0.080
physim.BS[*].bsMac.WMaxCtrlBS.MinDelayDsxRvd = 0.005
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelayDsxRvd = 0.010
physim.BS[*].bsMac.WMaxCtrlBS.MinDelayDsxRsp = 0.050
physim.BS[*].bsMac.WMaxCtrlBS.MaxDelayDsxRsp = 0.100
physim.SS[*].ssMac.ssMac.FrameLength = 0.005
physim.BS[*].bsMac.bsMac.FrameLength = 0.005
physim.internet.MinDelay = 0.015
physim.internet.MaxDelay = 0.200
//connection type: 2 – BE, 6 – UGS (see TLV 145.11 in 802.16-2004)
physim.SS[*].connType = 2
physim.SS[*].connMsr = 10
// 1 – bursted trunc normal, 2 – beta
physim.SS[*].ssIPv6.MNode.TrafficType = 2
physim.SS[*].ssIPv6.MNode.BurstInterval = 0.0111
physim.SS[*].ssIPv6.MNode.BurstSize = 1
physim.SS[*].ssIPv6.MNode.BurstPacketSize = 1500
physim.SS[*].ssIPv6.MNode.InitialDelay = 1.5
// 1 – bursted trunc normal, 2 – beta
physim.CN[*].CNode.TrafficType = 1
physim.CN[*].CNode.BurstInterval = 0.012
physim.CN[*].CNode.BurstSize = 3
physim.CN[*].CNode.BurstPacketSize = 512
physim.CN[*].CNode.InitialDelay = 1.5
BS parameters
physim.BS[0].x = 100
physim.BS[0].y = 200
physim.BS[1].x = 150
physim.BS[1].y = 200
physim.BS[2].x = 200
physim.BS[2].y = 200
physim.BS[3].x = 250
physim.BS[3].y = 200
“move right” related params:
# physim.SS[0].x = 50
# physim.SS[0].y = 50
# physim.SS[1].x = 150
# physim.SS[1].y = 50
# physim.SS[2].x = 250
# physim.SS[2].y = 50
# physim.SS[3].x = 350
# physim.SS[3].y = 50
# physim.SS[4].x = 450
# physim.SS[4].y = 50
# physim.SS[5].x = 800
# physim.SS[5].y = 50
physim.SS[*].x = 0
physim.SS[*].y = 50
// “move around circle” related params:
physim.SS[*].SStrace_centerx = 200
physim.SS[*].SStrace_centery = 200
physim.SS[*].SStrace_radius = 100
physim.SS[*].SStrace_step = 0.02
//Mobile stations (model used for mobility simulation)
# 0 – fixed station
#1 – handover executed after certain timeout (next BS)
# 2 – simulated SS movement
#3 – handover executed after certain timeout (random BS)
physim.SS[0..18].wmaxIsMobile = 3
physim.SS[19..].wmaxIsMobile = 0
//Fixed stations:
physim.SS[0..1].initialBS = 0
physim.SS[2..4].initialBS = 1
physim.SS[5..12].initialBS = 2
physim.SS[13..20].initialBS = 3
//Mobile (simulated SS movement):
// Mobile station movement type:
# 0 – move right
# 1 – move around circle
physim.SS[*].movementType = 0
physim.SS[*].ssIPv6.DHCPv6Cli.nextIP = “”
physim.SS[0].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[0].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[0].ssIPv6.mobIPv6mn.corrIP = “3000::1”
physim.SS[1].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[1].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[1].ssIPv6.mobIPv6mn.corrIP = “3001::1”
physim.SS[2].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[2].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[2].ssIPv6.mobIPv6mn.corrIP = “3002::1”
physim.SS[3].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[3].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[3].ssIPv6.mobIPv6mn.corrIP = “3003::1”
physim.SS[4].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[4].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[4].ssIPv6.mobIPv6mn.corrIP = “3004::1”
physim.SS[5].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[5].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[5].ssIPv6.mobIPv6mn.corrIP = “3005::1”
physim.SS[6].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[6].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[6].ssIPv6.mobIPv6mn.corrIP = “3006::1”
physim.SS[7].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[7].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[7].ssIPv6.mobIPv6mn.corrIP = “3007::1”
physim.SS[8].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[8].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[8].ssIPv6.mobIPv6mn.corrIP = “3008::1”
physim.SS[9].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[9].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[9].ssIPv6.mobIPv6mn.corrIP = “3009::1”
physim.SS[10].ssIPv6.mobIPv6mn.prefix = “”
physim.SS[10].ssIPv6.mobIPv6mn.myIP = “::”
physim.SS[10].ssIPv6.mobIPv6mn.corrIP = “300a::1”
physim.CN[0].mobIPv6cn.prefix = “3000::”
physim.CN[0].mobIPv6cn.myIP = “3000::1”
physim.CN[0].mobIPv6cn.corrIP = “::”
physim.CN[1].mobIPv6cn.prefix = “3001::”
physim.CN[1].mobIPv6cn.myIP = “3001::1”
physim.CN[1].mobIPv6cn.corrIP = “::”
physim.CN[2].mobIPv6cn.prefix = “3002::”
physim.CN[2].mobIPv6cn.myIP = “3002::1”
physim.CN[2].mobIPv6cn.corrIP = “::”
physim.CN[3].mobIPv6cn.prefix = “3003::”
physim.CN[3].mobIPv6cn.myIP = “3003::1”
physim.CN[3].mobIPv6cn.corrIP = “::”
physim.CN[4].mobIPv6cn.prefix = “3004::”
physim.CN[4].mobIPv6cn.myIP = “3004::1”
physim.CN[4].mobIPv6cn.corrIP = “::”
physim.CN[5].mobIPv6cn.prefix = “3005::”
physim.CN[5].mobIPv6cn.myIP = “3005::1”
physim.CN[5].mobIPv6cn.corrIP = “::”
physim.CN[6].mobIPv6cn.prefix = “3006::”
physim.CN[6].mobIPv6cn.myIP = “3006::1”
physim.CN[6].mobIPv6cn.corrIP = “::”
physim.CN[7].mobIPv6cn.prefix = “3007::”
physim.CN[7].mobIPv6cn.myIP = “3007::1”
physim.CN[7].mobIPv6cn.corrIP = “::”
physim.CN[8].mobIPv6cn.prefix = “3008::”
physim.CN[8].mobIPv6cn.myIP = “3008::1”
physim.CN[8].mobIPv6cn.corrIP = “::”
physim.CN[9].mobIPv6cn.prefix = “3009::”
physim.CN[9].mobIPv6cn.myIP = “3009::1”
physim.CN[9].mobIPv6cn.corrIP = “::”
physim.CN[10].mobIPv6cn.prefix = “300a::”
physim.CN[10].mobIPv6cn.myIP = “300a::1”
physim.CN[10].mobIPv6cn.corrIP = “::”
physim.BS[0].bsIPv6.mobIPv6ha.prefix = “2000::”
physim.BS[0].bsIPv6.DHCPv6Srv.prefix = “2000::”
physim.BS[1].bsIPv6.mobIPv6ha.prefix = “2001::”
physim.BS[1].bsIPv6.DHCPv6Srv.prefix = “2001::”
physim.BS[2].bsIPv6.mobIPv6ha.prefix = “2002::”
physim.BS[2].bsIPv6.DHCPv6Srv.prefix = “2002::”
physim.BS[3].bsIPv6.mobIPv6ha.prefix = “2003::”
physim.BS[3].bsIPv6.DHCPv6Srv.prefix = “2003::”
physim.BS[4].bsIPv6.mobIPv6ha.prefix = “2004::”
physim.BS[4].bsIPv6.DHCPv6Srv.prefix = “2004::”
physim.BS[5].bsIPv6.mobIPv6ha.prefix = “2005::”
physim.BS[5].bsIPv6.DHCPv6Srv.prefix = “2005::”
physim.BS[6].bsIPv6.mobIPv6ha.prefix = “2006::”
physim.BS[6].bsIPv6.DHCPv6Srv.prefix = "2006::"
Run the simulation and also perform performance analysis using the following metrics:
- Measure-time since also last received data
- Measure number of dropped packets[also no routing/address configured]
- Measure time since last transmitted data
- Handover time
- Throughput and also Jitter
We also have provide an overview about WIMAX NETWORK SIMULATOR OMNET++ PROJECTS for students to get an idea about Wimax Network Simulator Omnet++ projects. NUMBAT is also a Module framework used for Wimax simulation in Omnet++. We also have provided a brief explanation about NUMBAT along with the overall simulation steps involve also in Wimax simulation. To avail our service further, approach us through also our online guidance service. We are also there to serve you at 24/7.