1

I'm using OMNeT++ 5.6.2 with INET 4.2.1, and I'm working on ECN. I've seen that TCP Reno (in the file TcpReno.cc) checks if the ECE variable is set, in the receivedDataAck function, and acts accordingly. But I've not found anything similar in TCP Tahoe (TcpTahoe.cc) or TCP NewReno (TcpNewReno.cc).

Is the ECN part somewhere else or is it not implemented? Is ECN only supported by TCP Reno in OMNeT++?

Thank you.

SuperFluo
  • 77
  • 8
  • Also, I made a network with clients and servers and I set the ecnWillingness parameter to true in the .ini file (I set it for all the connections: I wrote **.tcp.ecnWillingness = true), but the results of the simulation are identical to the results of the simulation without ECN. Why is that? – SuperFluo Apr 27 '21 at 15:13
  • I found something: in the directory inet/queueing/marker there is a file called EcnMarker.ned. Am I supposed to use that? – SuperFluo Apr 29 '21 at 14:58
  • I think I solved the issue. The ECN mechanism works like this: to set the flags of ECN you have to set the ECN flags (obviously), and the way to do that is with EcnMarker. Now, EcnMarker is a ned file with a behaviour in the related .cc file, but you can call the functions of EcnMarker, using the appropriate code, to set the flags you need. This is what RedDropperQueue does. RedDropperQueue is the only type of queue which implements ECN, because it has the RedDropper element in it which calls EcnMarker functions in the RedDropper.cc file. --> Continue – SuperFluo Apr 29 '21 at 23:17
  • So if you want ECN on your routers (or intermediate nodes) of the network, you have to change the .cc file of the queue you chose for the router, and call EcnMarker::setEcn function appropriately. – SuperFluo Apr 29 '21 at 23:19

0 Answers0