|
Public Types |
| enum | TimeSeqSelector_t {
LOG_SEQ_TX,
LOG_ACK_TX,
LOG_SEQ_RX,
LOG_ACK_RX,
LOG_CWIN,
LOG_SSTHRESH,
LOG_DUPACK,
LOG_LAST
} |
| enum | TCPTrace_t {
SOURCE_PORT,
DEST_PORT,
SEQ_NUMBER,
ACK_NUMBER,
HEADER_LENGTH,
FLAGS,
WINDOW,
CHECKSUM,
URGENT,
FID,
DATA_LENGTH,
CWND
} |
| enum | Flags {
FIN = 0x01,
SYN = 0x02,
RST = 0x04,
PSH = 0x08,
ACK = 0x10,
URG = 0x20
} |
| enum | TCPMaxFlags_t { MAX_FLAGS = 0x40
} |
| enum | States_t {
CLOSED,
LISTEN,
SYN_SENT,
SYN_RCVD,
ESTABLISHED,
CLOSE_WAIT,
LAST_ACK,
FIN_WAIT_1,
FIN_WAIT_2,
CLOSING,
TIMED_WAIT,
LAST_STATE
} |
| enum | Events_t {
APP_LISTEN,
APP_CONNECT,
APP_SEND,
SEQ_RECV,
APP_CLOSE,
TIMEOUT,
ACK_RX,
SYN_RX,
SYN_ACK_RX,
FIN_RX,
FIN_ACK_RX,
RST_RX,
BAD_FLAGS,
LAST_EVENT
} |
| enum | Actions_t {
NO_ACT,
ACK_TX,
ACK_TX_1,
RST_TX,
SYN_TX,
SYN_ACK_TX,
FIN_TX,
FIN_ACK_TX,
NEW_ACK,
NEW_SEQ_RX,
RETX,
TX_DATA,
PEER_CLOSE,
APP_CLOSED,
CANCEL_TM,
APP_NOTIFY,
SERV_NOTIFY,
LAST_ACTION
} |
| enum | TCPProto_t { ProtoNumber = 6
} |
Public Member Functions |
| | TCP () |
| | TCP (Node *n) |
| | TCP (const TCP &) |
| void | CommonConstructor () |
| virtual | ~TCP () |
| virtual void | DataIndication (Node *, Packet *, IPAddr_t, Interface *) |
| void | Notify (void *) |
| NCount_t | Send (Size_t) |
| NCount_t | Send (char *, Size_t) |
| NCount_t | Send (Data &) |
| NCount_t | SendTo (Size_t, IPAddr_t, PortId_t) |
| NCount_t | SendTo (char *, Size_t, IPAddr_t, PortId_t) |
| NCount_t | SendTo (Data &, IPAddr_t, PortId_t) |
| Proto_t | Proto () const |
| bool | Connect (IPAddr_t, PortId_t) |
| bool | Close () |
| L4Protocol * | Copy () const =0 |
| Proto_t | ProtocolNumber () |
| bool | IsTCP () |
| void | Timeout (TimerEvent *) |
| bool | Listen () |
| void | Reset () |
| void | ChildComplete () |
| void | Abort () |
| bool | Respond (PortId_t, IPAddr_t) |
| void | Reject (PortId_t, IPAddr_t) |
| void | SetRTTEstimator (const RTTEstimator &) |
| RTTEstimator * | GetRTTEstimator () |
| void | SetSSThresh (Count_t sst) |
| void | SetAdvertisedWindow (Count_t w) |
| void | DeleteOnComplete (bool doc=true) |
| void | DeleteOnTWait (bool dotw=true) |
| void | CloseOnEmpty (bool coe=true) |
| void | SetSegSize (Count_t s) |
| void | SetTxBuffer (Count_t s) |
| void | SetRxBuffer (Count_t s) |
| void | SetTwTimeout (Time_t t) |
| void | SetConnTimeout (Time_t t) |
| void | SetChildLimit (Count_t l) |
| void | SetInitialCWnd (Count_t w) |
| Rate_t | GoodPut () |
| Count_t | RetransmitCount () |
| void | EnableTimeSeq (TimeSeqSelector_t) |
| void | DisableTimeSeq (TimeSeqSelector_t) |
| void | ResetTimeSeq (TimeSeqSelector_t) |
| void | LogTimeSeq (TimeSeqSelector_t, std::ostream &, Seq_t div=0, Seq_t mod=0, char sep= ' ') |
| Count_t | CWnd () |
| void | DBDump () |
| TCP * | Peer () |
| int | State () const |
| Count_t | TimeoutCount () const |
| Time_t | TimeoutDelay () const |
| void | DebugHistory (const DBHist &) |
| void | PrintDBH () |
Static Public Member Functions |
| void | DefaultSegSize (Count_t s) |
| void | DefaultAdvWin (Count_t s) |
| void | DefaultSSThresh (Count_t s) |
| void | DefaultTxBuffer (Count_t s) |
| void | DefaultRxBuffer (Count_t s) |
| void | DefaultTwTimeout (Time_t t) |
| void | DefaultConnTimeout (Time_t t) |
| void | DefaultDelAckTimeout (Time_t t) |
| void | DefaultInitialCWnd (Count_t w) |
| void | LogFlagsText (bool b) |
| void | UseTimerBuckets (bool u=true) |
| void | DefaultConnCount (Count_t c) |
| void | Default (const TCP &) |
| TCP & | Default () |
| void | RegisterBackplane (DSHandle_t) |
| int | TCPExportQuery (char *, int, void *) |
| int | TCPDefaultCallback (char *, void *) |
| int | TCPExportCallback (char *, char *, int, void *) |
| int | TCPImportCallback (char *, int, char *, void *) |
Public Attributes |
| Seq | nextTxSeq |
| Seq | highTxMark |
| Seq | highestRxAck |
| Seq | lastRxAck |
| bool | isServer |
| bool | nRequested |
Static Public Attributes |
| Count_t | defaultSegSize = 512 |
| Count_t | defaultAdvWin = 0xffff |
| Count_t | defaultSSThresh = 0xffff |
| Count_t | defaultTxBuffer = ((Count_t)0xffffffffl) |
| Count_t | defaultRxBuffer = ((Count_t)0xffffffffl) |
| Time_t | defaultTwTimeout = 5.0 |
| Time_t | defaultConnTimeout = 6.0 |
| Time_t | defaultDelAckTimeout = 0.0 |
| Count_t | defaultInitialCWnd = 1 |
| bool | logFlagsText = false |
| FId_t | nextFlowId |
| bool | useTimerBuckets = false |
| Count_t | defaultConnCount = 3 |
| TCPHeader * | bpHeader = 0 |
| Count_t | totalTimeouts = 0 |
| Count_t | totalAborts = 0 |
Protected Member Functions |
| virtual Count_t | UnAckDataCount () |
| virtual Count_t | BytesInFlight () |
| virtual Count_t | Window () |
| virtual Count_t | AvailableWindow () |
| Actions_t | ProcessEvent (Events_t) |
| bool | ProcessAction (Actions_t, Packet *p=NULL, TCPHeader *tcp=NULL, IPAddr_t ip=((IPAddr_t) 0x0)) |
| void | SendEmptyPacket (Byte_t, Seq_t, Seq_t) |
| void | SendEmptyPacketTo (Byte_t, Seq_t, Seq_t, IPAddr_t dstip, PortId_t dstport) |
| void | SendPacket (Byte_t, Seq_t, Seq_t, Packet *) |
| void | SendPacketTo (Byte_t, Seq_t, Seq_t, Packet *, IPAddr_t dstip, PortId_t dstport) |
| bool | SendPendingData (bool withAck=false) |
| virtual void | NewAck (Seq)=0 |
| virtual void | CommonNewAck (Seq, bool) |
| virtual void | DupAck (const TCPHeader &, Count_t)=0 |
| virtual void | SendAck (Seq, bool=false) |
| virtual void | NewRx (Packet *, TCPHeader *, IPAddr_t) |
| void | ScheduleTimer (Event_t, TCPEvent *&, Time_t) |
| void | CancelTimer (TCPEvent *&, bool delTimer=false) |
| void | CancelAllTimers () |
| virtual void | ReTxTimeout ()=0 |
| virtual void | Retransmit () |
| void | NoteTimeSeq (TimeSeqSelector_t, Seq_t) |
Protected Attributes |
| UnAckData_t | bufferedData |
| Data * | pendingData |
| Seq | firstPendingSeq |
| Seq | fastRecoveryMark |
| Count_t | dupAckCount |
| bool | fastRecovery |
| bool | needAck |
| bool | noTimer |
| Seq | nextRxSeq |
| Seq | nextAckSeq |
| Count_t | segSize |
| Count_t | rxWin |
| Count_t | advWin |
| Count_t | cWnd |
| Count_t | ssThresh |
| Count_t | initialCWnd |
| RTTEstimator * | rtt |
| Timer | timer |
| TCPEvent * | connTimeout |
| TCPEvent * | retxTimeout |
| TCPEvent * | delAckTimeout |
| TCPEvent * | timedWaitTimeout |
| TCPEvent * | lastAckTimeout |
| Time_t | twTimeout |
| Time_t | cnTimeout |
| Time_t | daTimeout |
| Count_t | retryCount |
| Count_t | connCount |
| int | state |
| bool | closeOnEmpty |
| bool | deleteOnComplete |
| bool | deleteOnTWait |
| bool | pendingClose |
| bool | closeNotified |
| bool | closeReqNotified |
| Count_t | txBuffer |
| Count_t | rxBuffer |
| Count_t | totalAck |
| Time_t | openTime |
| Time_t | lastRxTime |
| Time_t | lastAckTx |
| Time_t | synTime |
| Count_t | retransmitCount |
| Count_t | timeoutCount |
| Count_t | pktsSent |
| Count_t | pktsReceived |
| Count_t | bytesSent |
| Count_t | bytesReceived |
| TimeSeqVec_t * | timeSeqStats |
| TCP * | parent |
| TCP * | peer |
| Count_t | nChildren |
| Count_t | childLimit |
| Count_t | nFin |
| Time_t | lastTimeoutDelay |
| Time_t | lastMeasuredRTT |
| DBHVec_t | dbVec |
| DBHVec_t::size_type | dbInd |
Static Private Attributes |
| TCP * | defaultTCP = 0 |