1 / 70

QualNet

QualNet. 2014/05/13 602430017 尉遲仲涵. Outline. Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming Application Layer Transport Layer Network Layer Queue & Scheduler. DIRECTORY STRUCTURE. Directory Structure. global headers.

lawrenceh
Download Presentation

QualNet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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

  3. DIRECTORY STRUCTURE

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

  5. Directory Structure

  6. QUALNET BASIC

  7. Discrete Event Simulation Event Queue event1 • Event • arrival of packet • periodic alarm • Action • sending packet • updating system state • starting/restarting timer event2 … eventN register event event

  8. QualNet Protocol Stack • 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 whendata is transmitted

  10. Layer Function

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

  12. MESSAGE & EVENT

  13. Message • Events are implemented using Message • HOME/include/message.h • HOME/include/main.h 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

  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

  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()

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

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

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

  20. QUALNET SIMULATION ARCHITECTURE

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

  22. Protocol Life Cycle 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 QualNet Event Handling: Packets, timers etc Initialization Function Message (Packet or Timer) Processing Function • Modify State Variables • Increment Local Statistics • Generate / Forward Packets QualNet FinalizationFunction

  24. Initialization • node creation & initialization • initialization of each layer, protocol • 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

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

  27. 2011.05.16. Adding a Network Layer Unicast Routing Protocol

  28. How To …

  29. Register Protocol Name • HONE/include/network.h

  30. Register Protocol Administrative Distance value • HOME/include/network.h

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

  32. Initialization Function Call

  33. Network Layer Initialization

  34. 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. • Home/libraries/developer/src/network_ip.cpp

  35. Event Dispatcher

  36. 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. Registering Protocol Event Type • All event types must be registered in • HOME/include/api.h

  38. Event Dispatcher of AODV

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

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

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

  42. AODV Protocol Packet Handler

  43. 2011.05.23. Queuing Protocols

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

  45. PacketArrayEntry • an entry in the array of stored messages

  46. 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

  47. Interface Functions • HOME/libraries/developers/src/if_queue.cpp

  48. 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

More Related