Presentation is loading. Please wait.

Presentation is loading. Please wait.

QualNet 2014/05/13 602430017 尉遲仲涵. Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming.

Similar presentations


Presentation on theme: "QualNet 2014/05/13 602430017 尉遲仲涵. Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming."— Presentation transcript:

1 QualNet 2014/05/13 602430017 尉遲仲涵

2 Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming –Application Layer –Transport Layer –Network Layer –Queue & Scheduler 2

3 DIRECTORY STRUCTURE 3

4 Directory Structure 4 Qualnet kernel binaries & libraries Qualnet kernel binaries & libraries model sources & headers global headers

5 Directory Structure 5 DirectoryContains addonsComponents developed as custom addons for specific customers binExecutable and other runtime files such as DLLs contributedModels contributed by QualNet or EXata customers. dataData files for the Wireless library: antenna configurations, modulation schemes and sample terrain documentationUser Guide, release notes, etc. guiGraphical components including icons, Java class files, and GUI configuration. includeQualNet or EXata kernel header files. interfacesCode to interface QualNet or EXata to 3 rd party tools or external networks, such as HLA, STK, or IP networks. kernelQualNet or EXata kernel objects used during the build process. lib3 rd party software libraries used during the build process. librariesSource code for model libraries such as Developer, Multimedia & Enterprise, & Wireless. license_dirLicense files and license libraries required for the build process. mainKernel source files and Makefiles. scenariosSample scenarios.

6 QUALNET BASIC 6

7 Discrete Event Simulation Event –arrival of packet –periodic alarm Action –sending packet –updating system state –starting/restarting timer event1 event2 … eventN event Event Queue register event Handle Event Take Action Changing System State 7

8 QualNet Protocol Stack 8 Layer Based Architecture & Organization Events & Messages –Events: Essential Concepts –Lifecycle –Event Handling –Packets –Timers –API: Raw Message API and Layer Specific

9 Protocol Stack Layered architecture Data moves from layer to layer APIs were used can skip layer when data is transmitted 9

10 Layer Function 10 ApplicationTransportNetworkLink/MACPhysical Communication Medium traffic generation End-to-End data transmission data forwarding link transmission bit level data transmission to/from medium signaling between nodes App-level routing receive from App, forward to Network queuing & scheduling between Transport and MAC layer signal propagation model, environments model rely on Transport layer include IP layer function path loss, fading, shadowing,

11 How to send packet 11 Node 1 Node 2 Node 1 needs to send a packet to Node 2 Packet Sent Event: Packet Received message

12 MESSAGE & EVENT 12

13 Message Events are implemented using Message –HOME/include/message.h –HOME/include/main.h 13 affect transmission time not affect transmission time

14 Message APIs HOME/include/message.h HOME/main/message.cpp –MESSAGE_Alloc –MESSAGE_Free –MESSAGE_PacketAlloc –MESSAGE_AddInfo –MESSAGE_AddHeader –MESSAGE_RemoveHeader –MESSAGE_GetLayer –MESSAGE_GetProtocol –MESSAGE_GetEvent –MESSAGE_Send 14

15 Event Type Packet –exchange of data packet between layers or nodes –communication between entities at the same layer Timer –act as a trigger An event is identified by the following: –Node –Layer –Protocol –Event ID 15

16 Packet Event to simulate transmission of packets across the network –using packet field of Message structure –at each layer, packet header is attached/removed –to send packet to another layer, MESSAGE_Send() 16

17 Timer Event periodic alarms for event scheduling trigger the event types are defined in –HOME/include/api.h 17 ★ The delay time 0 means “immediate event”.

18 18 A node with CBR application AODV routing 802.11 wireless A node with CBR application AODV routing 802.11 wireless HOME/libraries/wireless/src/ HOME/libraries/developer/ src/ application.cpp transport.cpp network.cpp network_ip.cpp mac.cpp phy_connectivity.cpp app_cbr.cpp transport_udp.cpp routing_aodv.cpp mac_dot11.cpp phy.cpp phy_802_11.cpp Node HOME/main/node.cpp /partition.cpp Layers Protocols

19 19 Node Which Layer’s Event? QualNet Kernel Which Node’s Event? 1 2 3 4 node = 4 QualNet EventQueue Application Transport Which Protocol? Network LINK/MAC Physical layerType = Transport UDP Which Event? protocolType = UDP call event handler function MESSAGE Node / Layer / Protocol / Event

20 QUALNET SIMULATION ARCHITECTURE 20

21 QualNet Simulator Architecture Initialization Event Handling Finalization 21 ★ Each of these functions is performed hierarchically. Node Layer Protocol

22 Protocol Life Cycle 22 Three main functions that are called by Simulator: Initialization –Called at Time 0 –Initialization of variables Event Processing –Called as needed –Creation –Scheduling –Handling Finalization –Called at end of simulation –Printing Statistics

23 Protocol Life Cycle 23 Initialization Function Message (Packet or Timer) Processing Function Finalization Function Event Handling: Packets, timers etc Event Handling: Packets, timers etc Modify State Variables Increment Local Statistics Generate / Forward Packets QualNet

24 Initialization node creation & initialization initialization of each layer, protocol 24 HOME/main/partition.cpp /application.cpp /mac.cpp /network.cpp /node.cpp /transport.cpp HOME/main/partition.cpp /application.cpp /mac.cpp /network.cpp /node.cpp /transport.cpp

25 Event Handling call a dispatcher function of appropriate node, layer, protocol when a event occurs handle & scheduling event, change system states 25

26 Finalization call finalization function for each protocol running at that layer print the statistics to output free all instances and terminate simulation 26

27 Adding a Network Layer Unicast Routing Protocol 2011.05.16. 27

28 How To … 28

29 29

30 Register Protocol Name HONE/include/network.h 30

31 Register Protocol Administrative Distance value HOME/include/network.h 31

32 Defining Data Structure for Protocol In user’s Protocol.h –Protocol parameters –Protocol state –Statistics variables –Routing table 32 AODV data structure in routing_aodv.h

33 Initialization Function Call 33

34 Network Layer Initialization 34

35 IP callback functions Network Layer routing protocol interacts with IP to route packets and to handle protocol events. Routing protocol registers the functions with IP as part of initialization. 35 Home/libraries/developer/src/network_ip.cpp

36 Event Dispatcher 36

37 APIs for MAC Layer Communication APIs to communicate with MAC Layer for Network Layer Routing Protocols to handle an event (transmitting packets to a node’s peers using MAC Layer services) 37

38 Registering Protocol Event Type All event types must be registered in –HOME/include/api.h 38

39 Event Dispatcher of AODV 39

40 40

41 Modifying IP Function NetworkRoutingGetAdminDistance() –definition of the priority of routing protocol HOME/libraries/developer/src/network_ip.cpp 41

42 Processing Routing Packets Define IP Protocol Number for user’s protocol –HOME/libraries/developer/src/network_ip.h 42

43 DeliverPacket() –IP Protocol Number from IP header based switching –checking packet’s routing protocol type interface –call routing protocol’s packet handler function 43

44 AODV Protocol Packet Handler 44

45 Queuing Protocols 2011.05.23. 45

46 Data Structures HOME/include/if_queue.h QueueOperation –lists of the different types of dequeue operations 46

47 PacketArrayEntry –an entry in the array of stored messages 47

48 Queue –the base class that is used to derive specific queue classes –queue variables –interface functions for queue operations –refer to Programmer’s Guide 4.4.7.1(p.207) Figure 4-99, Figure 4-100, Figure 4-101 48

49 Interface Functions HOME/libraries/developers/src/if_queue.cpp 49

50 QUEUE_Setup() create & initialize an object of –the base Queue class –a class derived from the base Queue class –HOME/include/if_queue.h /libraries/developers/src/if_queue.cpp 50

51 QUEUE_Setup Example Messenger Application Queue –HOME/libraries/developers/src/app_messenger.h /app_messenger.cpp 51

52 Queue Operations Example 52

53 Adding a New Queue Model a new queuing model derived from the base Queue Class additionally –queue-specific parameters –implementing interface functions 53

54 queue_myqueue.h –constant definitions –data structure definitions –class definition for new model derived from Queue Class –prototypes for additional interface functions queue_myqueue.cpp –include “if_queue.h”, “api.h” –functions to read parameters from configuration file –interface functions for myqueue model 54

55 Example of RED Queue Model Data Structure Queue Configuration Parameters 55

56 Reading Parameters from configuration file –NetworkIpInitOutputQueueConfiguration  ReadRedConfigurationParameters 56

57 ReadRedConfigurationParameters 57

58 Deriving new Queue Class from base Queue Class –inherited variables & interface functions from Queue Class –additionally, model specific variables override interface functions 58

59 Modifying QUEUE_Setup Function 59

60 Scheduler 60

61 Data Structure HOME/include/if_scheduler.h QueueData –information for one Queue 61

62 Scheduler –the base class that is used to derive specific scheduler classes –scheduler variables –interface functions for scheduler operations –refer to Programmer’s Guide 4.4.8.1(p.225) Figure 4-110, Figure 4-111, Figure 4-112 62

63 Interface Functions HOME/libraries/developers/src/if_scheduler.cpp 63

64 64 SCHEDULER_Setup() create & initialize an object of –the base Scheduler class –a class derived from the base Scheduler class –HOME/include/if_scheduler.h /libraries/developers/src/if_scheduler.cpp

65 SCHEDULER_Setup Example IP function –HOME/libraries/developers/src/network_ip.h /network_ip.cpp 65

66 Scheduler Operations Example 66

67 Adding a New Scheduler Model a new scheduler model derived from the base Scheduler Class 67

68 Example of StrictPriorityStat Model Data Structure 68

69 Deriving new Scheduler Class from base Scheduler Class –inherited variables & interface functions from Scheduler Class –additionally, model specific variables override interface functions 69

70 Modifying SCHEDULER_Setup Function 70


Download ppt "QualNet 2014/05/13 602430017 尉遲仲涵. Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming."

Similar presentations


Ads by Google