Search This Blog

CoDel's patch for ns-2.31 (to support TCP Evaluation Suite)

Controlled Delay (CoDel) is a newly proposed AQM mechanism developed by Kathleen Nichols and Van Jacobson. CoDel is parameterless and controls the delay, while insensitive to round-trip delays, link rates, and traffic loads. CoDel's patch is originally designed for ns-2.35. The patch for ns-2.35, instructions for download and trying the sample TCL codes are available at the following link:

This patch is a slight modification of the original patch and is designed for ns-2.31, mainly to be used along with TCP Evaluation Suite, which is available for ns-2.31 only. However, you can also use it without the TCP Evaluation Suite. 

TCP Evaluation Suite is a standard tool used for the analysis of newly proposed TCP Variants, especially High-Speed TCP Variants. The simulation code of TCP Evaluation Suite is based on original Linux TCP Code. 

CoDel's ns-2.31 patch is designed mainly to assist the community to analyze the interaction of CoDel with existing TCP Variants while using TCP Evaluation Suite.

Contributed by: Dipesh Raghuvanshi

Following are the steps to be followed to apply given patch to ns-2.31:

1. Download ns-allinone-2.31.tar.gz

2. Download CoDel-ns-2.31.patch

3. Unzip ns-allinone-2.31.tar.gz. You will get a folder named ns-allinone-2.31

4. Paste the downloaded patch in this folder.

5. Give the following command:

    patch -p1 > CoDel-ns-2.31.patch

6. Then give ./install

If you already have an installed copy of ns-allinone-2.31, then follow the steps given below to apply the CoDel patch:

1. Paste the downloaded patch in ns-allinone-2.31 folder.

2. Give the following command:

    patch -p1 > CoDel-ns-2.31.patch

3. Go in ns-allinone-2.31/ns-2.31 directory.

4. Give the following commands:


    make clean


    make install

You are done with it!

To verify the working of this patch, an example TCL Script named "codel.tcl" will now be available in ns-allione-2.31/ns-2.31 directory.

Go in ns-allinone-2.31/ns-2.31 directory and run the file by giving: ns codel.tcl

If you encounter any problem in downloading the patch from the link given above, please follow this link:

Hope it helps.

Mohit P. Tahiliani

Comments (17)

Hi Mohit

It's nice to see your blog.

I too have created my personal blog. Here is the link - I recently created new post related to C language. Here is the link - Please have a look and if you have some suggestion, do let me know.

Great going Mohit. I am happy.


hello sir,
i am simerpreet working on ns-2.35. first of all thanks for very useful postings. i want to know that how can i check the input information in tcl file. I have defined the drop tail que type but i wish to know that what is actual information we are giving as input in the total scenario . please help me out.

@Apte - Thanks for your feedback! I will look into and let you know my views. Thanks once again.

@Simerpreet - Packets in ns-2 do not carry any information except the header information. They are dummy packets.

Hope it helps.

Mohit P. Tahiliani

hello sir, i am working on SPIN routing protocol in WSN.
i want to add the new routing protocol in ns2 , for that i have to execute the following command

make clean
sudo make install

i want to know in which directory i have to execute the command, because i am getting error message.

Hello sir, i am working on QoS routing in Ad- Hoc networks. i want to know that how we can reserve bandwidth (or any other resource) in Ad-hoc network.

helo sir , i am student of M.E in I.T working on RCP protocol .i want to know the TR file format when we run longflows. i didnt understand the format of two TR files and files.please help me as soon as possible so that i proceed my work further .i shall be very thankul to you.

Helo sir, I am using ns2.34, I am interested in using ieee 802.11 n can you help me to get the patch?

Hello Sir,
I am using PUMA for multicasting in wireless network. Can you please explain the trace file generated by the file puma.tcl in the ex directory? I know the format but can't understand what is happening

hi, Any one knows how to get node positions dynamically using AODV in ns2

Hi Mohit ! Iam getting the problem after make install step .
/usr/bin/install: cannot remove ‘/usr/local/bin/ns’: Permission denied
make: *** [install-ns] Error 1
help me out..srinvas

Hi Sir,
In which directory i need to give this command
patch -p1 > CoDel-ns-2.31.patch

@Srinivas - You need to give that command in "ns-allinone-2.xx" directory.

Regarding the error that you are getting while giving "make install" step - you need to give that command in the root mode.

Hope it helps.

Best Regards,
Mohit P. Tahiliani

Hello sir, can you send cross layer design code in ns2 for this mail..

@Manjunath - There is no such code! You can make two classes "friend" of each other so that you can access required parameters from one class to another.

Hope it helps.

Mohit P. Tahiliani

Hi sir,
i download GPSR code form , but i dont know how to execute it..
While i execute i got an error..
Will u help me sir?..
if s, plz mail me any shortest path finding algorithm while the nodes in mobility..
My mail id :
Thank u sir..

Hello mohit sir.

I am doing project on rate adapatation in ns 2.33. i have to implement arf, aarf rate adapataion algorithms. pls provide me patch. it would be helpful for me. i got dei80211mr patch for arf but there is no proper instruction on how to patch it. please do help me.
mail id:

@Moin - I have not worked much on these areas and hence would not be able to assist you on it.

Mohit P. Tahiliani