This version of TFMCC also supports variable packet size congestion control.
//#include "formula-with-inverse.h" #include "formula.h"
//#define LARGE_DOUBLE 9999999999.99 //#define SAMLLFLOAT 0.0000001
#define HDR_TFRC(p) (hdr_tfrc::access(p))add the line:
#define HDR_TFMCC(p) (hdr_tfmcc::access(p))
PT_TFRC_ACK,add the lines:
name_[PT_TFRC_ACK]= "tcpFriendCtl";add the lines:
name_[PT_TFMCC]= "tfmcc_data"; name_[PT_TFMCC_ACK]= "tfmcc_ack";
Agent/TFMCC set packetSize_ 1000 ; # fixed packet size Agent/TFMCC set packetRate_ 0 ; # fixed packet rate in packets/sec, set to 0 for normal congestion control Agent/TFMCC set packetMaxSize_ 0 ; # upper bound on the packet size (applies only if packet rate is used) Agent/TFMCC set fairSize_ 1000 ; # be fair to TCP which has fairSize_ as packet size Agent/TFMCC set ndatapack_ 0 ; # Number of packets sent Agent/TFMCC set ndatabytes_ 0 ; # Number of bytes sent Agent/TFMCC set overhead_ 0 ; # If > 0, dither outgoing packets Agent/TFMCC set ssmult_ 2.0 ; # Rate of increase during slow-start: Agent/TFMCC set printStatus_ 1 ; # print status messages Agent/TFMCC set rate_ 0 Agent/TFMCC set bval_ 1; # Value of B for TCP formula Agent/TFMCC set t_factor_ 6; # feedback delay = t_factor * max_rtt Agent/TFMCC set min_rate_ [Agent/TFMCC set packetSize_]; # set minimum rate to 1 packet/s Agent/TFMCC set Initial_RTT_ 0.5; Agent/TFMCC set InitRate_ [expr 2.0 * [Agent/TFMCC set packetSize_]/[Agent/TFMCC set Initial_RTT_]]; # 2 packets per max. RTT Agent/TFMCC set sndr_id_ 0; Agent/TFMCCSink set packetSize_ 40; # size of receiver reports Agent/TFMCCSink set fairSize_ [Agent/TFMCC set fairSize_]; # receiver also needs to know the real packet size Agent/TFMCCSink set rdatapack_ 0 ; # Number of packets received Agent/TFMCCSink set aggregatePackets_ false Agent/TFMCCSink set aggregateLoss_ false Agent/TFMCCSink set scaleLip_ false Agent/TFMCCSink set randSampling_ false Agent/TFMCCSink set unbiasInterval_ false Agent/TFMCCSink set InitHistorySize_ 100000 Agent/TFMCCSink set AdjustHistoryAfterSS_ 1 Agent/TFMCCSink set NumSamples_ -1 Agent/TFMCCSink set discount_ 1; # History Discounting Agent/TFMCCSink set printStatus_ 1 ; # print status messages Agent/TFMCCSink set smooth_ 1 ; # smoother Average Loss Interval Agent/TFMCCSink set recv_id_ 0; Agent/TFMCCSink set df_ 0.9 ; # decay factor for CLR's RTT estimate Agent/TFMCCSink set ca_ 0; # disable RTT congestion avoidance Agent/TFMCCSink set rate_ 0 Agent/TFMCCSink set bval_ 1; # Value of B for TCP formula Agent/TFMCCSink set tight_loop_ 1; # use tight feedback loop to rep recv Agent/TFMCCSink set fbtime_mult_ 6.0; # T = 6 * RTT Agent/TFMCCSink set constant_rate_ 0; # don't use constant rate for reports
mcast/tfmcc.o mcast/tfmcc-sink.o tcp/formula.o \