[ns] [bug] ECN in Full-TCP bug

Michele Weigle mcweigle@cs.unc.edu
Wed Jun 12 11:00:03 2002


[Bug Report]

-----------------------------
Category:  Other
Package:   ns ns-2.1b9
OS:        FreeBSD
Environment Variables:
LD_LIBRARY_PATH=
TCL_LIBRARY=
TK_LIBRARY=


-----------------------------
Description:

Description of Problem:

Two problems:
1) ect_ is overloaded.  It's defined both in TcpAgent and FullTcpAgent (which is a child of TcpAgent).
2) cong_action_ in header flags is not initialized.  If it is not set to 1, then it gets some random value.  Later, when the SYN+ACK is being checked, !cong_action_ != 1, so ect_ is not set and the sender doesn't think it's ECN-capable.

Fix:
1) Remove declaration of ect_ in tcp-full.cc

2) In tcp-full.cc, add the else{} portion:

        if ( pflags & TH_CWR ) {
                fh->cong_action() = 1;
        }
	else {
		/* Fix by MCW 6/12/02 -- set cong_action to 0 */
		fh->cong_action() = 0;
	}