############################################# # Author: Jae Chung # # goos@cs.wpi.edu # # http://www.wpi.edu/~goos/ # # # # Research Group: http://perform.wpi.edu/ # ############################################# ####################### # General Information # ####################### Original NS version: ns-allinone-2.1b4a Modified File: tcl/lib/ns-defaults.tcl agent.h packet.h tcl/lib/ns-packet.tcl Added Files: udp-mm.h udp-mm.cc mm-app.h mm-app.cc mm-app-mpeg.h mm-app-mpeg.cc cbt.h cbt.cc cbt-dynamic.h cbt-dynamic.cc cnt-flow.h cnt-flow.cc How to compile: First, you need to run "./configure" giving correct pointers to tcl, tk, otcl and tclcl libraries and so on. Then, do "make". "Makefile.in" is modifed as needed to include the newly added objects. Example: An example simulation script is located under "example" directory MM_APP and MPEG_APP can generate file showing received frame statistics. Following is the format of the trace file: [recv_time frame_seq_num frame_type sending_time] ############################# # File specific Description # ############################# tcl/lib/ns-defaults.tcl: The defaults parameter values for newly added network components are added in this file. agent.h: 2 lines (72-73) are added to make udp-mm to support MM tagging (set prioriy bit to 15) without any complaints. packet.h tcl/lib/ns-packet.tcl: Multimedia packet header type is added to these files, The Multimedia packet is actually defined in "udp-mm.h". The UDP_MM agent uses Multimedia header to send MM_APP and MPEG_APP frames. In fact, only frame information, not actual multimedia application data, is sent. udp-mm.h udp-mm.cc: Extended from "udp.h" and "udp.cc". UDP_MM is a UDP agent that supports multimedia appications. It's also sets priority bit of IP header to 15, if an application (MM_APP or MPEG_APP) asks to. mm-app.h mm-app.cc: Implements MM_APP traffic generator. MM_APP is extended from CBR traffic generator. MM_APP implements a flow control mechanism based on media scaling. mm-app-mpeg.h mm-app-mpeg.cc: Implements MPEG_APP. MPEG_APP has the same flow-control mechanism as MM_APP. But, it reads in a MPEG trace file and generates traffic based on the input file and congestion notification from the network cbt.h cbt.cc: Implements Class-Based Threshold (CBT) router queue management mechanism. CBT implementation is extended from RED implementation ("red.h" "red.cc") cbt-dynamic.h cbt-dynamic.cc: Implements Dynamic-CBT (D-CBT) router queue management mechanism. The flow-counting is implemented in "cnt-flow.h" and "cnt-flow.cc" D-CBT has an option to enable Cut-In-Packet-Scheduling (ChIPS). ChIPS is active when the "chips_" flag is set in the tcl script and the number of multimedia-flows are less than 60% of the number of all flows. To change this value, change value of CHIPS_LIMIT in "cbt-dynamic.cc" (need recompile, sorry) cnt-flow.h cnt-flow.cc: Implements flow-counting part of Dynamic-CBT. [End of File]