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:
PT_TFMCC, PT_TFMCC_ACK,
name_[PT_TFRC_ACK]= "tcpFriendCtl";add the lines:
name_[PT_TFMCC]= "tfmcc_data"; name_[PT_TFMCC_ACK]= "tfmcc_ack";
TFMCC
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 \
.