Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(429)

Unified Diff: net/third_party/udt/src/ccc.h

Issue 6708091: Remove UDT. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/third_party/udt/src/cache.cpp ('k') | net/third_party/udt/src/ccc.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/third_party/udt/src/ccc.h
===================================================================
--- net/third_party/udt/src/ccc.h (revision 78992)
+++ net/third_party/udt/src/ccc.h (working copy)
@@ -1,278 +0,0 @@
-/*****************************************************************************
-Copyright (c) 2001 - 2009, The Board of Trustees of the University of Illinois.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-* Redistributions of source code must retain the above
- copyright notice, this list of conditions and the
- following disclaimer.
-
-* Redistributions in binary form must reproduce the
- above copyright notice, this list of conditions
- and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
-* Neither the name of the University of Illinois
- nor the names of its contributors may be used to
- endorse or promote products derived from this
- software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*****************************************************************************/
-
-/*****************************************************************************
-written by
- Yunhong Gu, last updated 05/05/2009
-*****************************************************************************/
-
-
-#ifndef __UDT_CCC_H__
-#define __UDT_CCC_H__
-
-
-#include "udt.h"
-#include "packet.h"
-
-
-class UDT_API CCC
-{
-friend class CUDT;
-
-public:
- CCC();
- virtual ~CCC();
-
-private:
- CCC(const CCC&);
- CCC& operator=(const CCC&) {return *this;}
-
-public:
-
- // Functionality:
- // Callback function to be called (only) at the start of a UDT connection.
- // note that this is different from CCC(), which is always called.
- // Parameters:
- // None.
- // Returned value:
- // None.
-
- virtual void init() {}
-
- // Functionality:
- // Callback function to be called when a UDT connection is closed.
- // Parameters:
- // None.
- // Returned value:
- // None.
-
- virtual void close() {}
-
- // Functionality:
- // Callback function to be called when an ACK packet is received.
- // Parameters:
- // 0) [in] ackno: the data sequence number acknowledged by this ACK.
- // Returned value:
- // None.
-
- virtual void onACK(const int32_t&) {}
-
- // Functionality:
- // Callback function to be called when a loss report is received.
- // Parameters:
- // 0) [in] losslist: list of sequence number of packets, in the format describled in packet.cpp.
- // 1) [in] size: length of the loss list.
- // Returned value:
- // None.
-
- virtual void onLoss(const int32_t*, const int&) {}
-
- // Functionality:
- // Callback function to be called when a timeout event occurs.
- // Parameters:
- // None.
- // Returned value:
- // None.
-
- virtual void onTimeout() {}
-
- // Functionality:
- // Callback function to be called when a data is sent.
- // Parameters:
- // 0) [in] seqno: the data sequence number.
- // 1) [in] size: the payload size.
- // Returned value:
- // None.
-
- virtual void onPktSent(const CPacket*) {}
-
- // Functionality:
- // Callback function to be called when a data is received.
- // Parameters:
- // 0) [in] seqno: the data sequence number.
- // 1) [in] size: the payload size.
- // Returned value:
- // None.
-
- virtual void onPktReceived(const CPacket*) {}
-
- // Functionality:
- // Callback function to Process a user defined packet.
- // Parameters:
- // 0) [in] pkt: the user defined packet.
- // Returned value:
- // None.
-
- virtual void processCustomMsg(const CPacket*) {}
-
-protected:
-
- // Functionality:
- // Set periodical acknowldging and the ACK period.
- // Parameters:
- // 0) [in] msINT: the period to send an ACK.
- // Returned value:
- // None.
-
- void setACKTimer(const int& msINT);
-
- // Functionality:
- // Set packet-based acknowldging and the number of packets to send an ACK.
- // Parameters:
- // 0) [in] pktINT: the number of packets to send an ACK.
- // Returned value:
- // None.
-
- void setACKInterval(const int& pktINT);
-
- // Functionality:
- // Set RTO value.
- // Parameters:
- // 0) [in] msRTO: RTO in macroseconds.
- // Returned value:
- // None.
-
- void setRTO(const int& usRTO);
-
- // Functionality:
- // Send a user defined control packet.
- // Parameters:
- // 0) [in] pkt: user defined packet.
- // Returned value:
- // None.
-
- void sendCustomMsg(CPacket& pkt) const;
-
- // Functionality:
- // retrieve performance information.
- // Parameters:
- // None.
- // Returned value:
- // Pointer to a performance info structure.
-
- const CPerfMon* getPerfInfo();
-
- // Functionality:
- // Set user defined parameters.
- // Parameters:
- // 0) [in] param: the paramters in one buffer.
- // 1) [in] size: the size of the buffer.
- // Returned value:
- // None.
-
- void setUserParam(const char* param, const int& size);
-
-private:
- void setMSS(const int& mss);
- void setMaxCWndSize(const int& cwnd);
- void setBandwidth(const int& bw);
- void setSndCurrSeqNo(const int32_t& seqno);
- void setRcvRate(const int& rcvrate);
- void setRTT(const int& rtt);
-
-protected:
- const int32_t& m_iSYNInterval; // UDT constant parameter, SYN
-
- double m_dPktSndPeriod; // Packet sending period, in microseconds
- double m_dCWndSize; // Congestion window size, in packets
-
- int m_iBandwidth; // estimated bandwidth, packets per second
- double m_dMaxCWndSize; // maximum cwnd size, in packets
-
- int m_iMSS; // Maximum Packet Size, including all packet headers
- int32_t m_iSndCurrSeqNo; // current maximum seq no sent out
- int m_iRcvRate; // packet arrive rate at receiver side, packets per second
- int m_iRTT; // current estimated RTT, microsecond
-
- char* m_pcParam; // user defined parameter
- int m_iPSize; // size of m_pcParam
-
-private:
- UDTSOCKET m_UDT; // The UDT entity that this congestion control algorithm is bound to
-
- int m_iACKPeriod; // Periodical timer to send an ACK, in milliseconds
- int m_iACKInterval; // How many packets to send one ACK, in packets
-
- bool m_bUserDefinedRTO; // if the RTO value is defined by users
- int m_iRTO; // RTO value, microseconds
-
- CPerfMon m_PerfInfo; // protocol statistics information
-};
-
-class CCCVirtualFactory
-{
-public:
- virtual ~CCCVirtualFactory() {}
-
- virtual CCC* create() = 0;
- virtual CCCVirtualFactory* clone() = 0;
-};
-
-template <class T>
-class CCCFactory: public CCCVirtualFactory
-{
-public:
- virtual ~CCCFactory() {}
-
- virtual CCC* create() {return new T;}
- virtual CCCVirtualFactory* clone() {return new CCCFactory<T>;}
-};
-
-class CUDTCC: public CCC
-{
-public:
- CUDTCC();
-
-public:
- virtual void init();
- virtual void onACK(const int32_t&);
- virtual void onLoss(const int32_t*, const int&);
- virtual void onTimeout();
-
-private:
- int m_iRCInterval; // UDT Rate control interval
- uint64_t m_LastRCTime; // last rate increase time
- bool m_bSlowStart; // if in slow start phase
- int32_t m_iLastAck; // last ACKed seq no
- bool m_bLoss; // if loss happened since last rate increase
- int32_t m_iLastDecSeq; // max pkt seq no sent out when last decrease happened
- double m_dLastDecPeriod; // value of pktsndperiod when last decrease happened
- int m_iNAKCount; // NAK counter
- int m_iDecRandom; // random threshold on decrease by number of loss events
- int m_iAvgNAKNum; // average number of NAKs per congestion
- int m_iDecCount; // number of decreases in a congestion epoch
-};
-
-#endif
« no previous file with comments | « net/third_party/udt/src/cache.cpp ('k') | net/third_party/udt/src/ccc.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698