00001 // 00002 // Copyright (C) 2008 Irene Ruengeler 00003 // Copyright (C) 2010 Thomas Dreibholz 00004 // 00005 // This program is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU General Public License 00007 // as published by the Free Software Foundation; either version 2 00008 // of the License, or (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program; if not, see <http://www.gnu.org/licenses/>. 00017 // 00018 00019 #include "SCTPAlg.h" 00020 #include "SCTP.h" 00021 00022 Register_Class(SCTPAlg); 00023 00024 00025 SCTPAlg::SCTPAlg() : SCTPAlgorithm() 00026 { 00027 state = NULL; 00028 } 00029 00030 SCTPAlg::~SCTPAlg() 00031 { 00032 sctpEV3 << "Destructor SCTPAlg" << endl; 00033 // Note: don't delete "state" here, it'll be deleted from SCTPAssociation 00034 } 00035 00036 SCTPStateVariables *SCTPAlg::createStateVariables() 00037 { 00038 ASSERT(state == NULL); 00039 state = new SCTPAlgStateVariables(); 00040 return(state); 00041 } 00042 00043 void SCTPAlg::established(bool active) 00044 { 00045 if (active) { 00046 sctpEV3 << "Completing connection: sending DATA" << endl; 00047 } 00048 } 00049 00050 void SCTPAlg::connectionClosed() 00051 { 00052 } 00053 00054 void SCTPAlg::processTimer(cMessage* timer, SCTPEventCode& event) 00055 { 00056 sctpEV3 << "no extra timers in this SCTP variant" << endl; 00057 } 00058 00059 void SCTPAlg::sendCommandInvoked(SCTPPathVariables* path) 00060 { 00061 assoc->sendOnPath(path); 00062 } 00063 00064 void SCTPAlg::receivedDataAck(uint32) 00065 { 00066 } 00067 00068 void SCTPAlg::receivedDuplicateAck() 00069 { 00070 sctpEV3 << "Duplicate ACK #" << endl; 00071 } 00072 00073 void SCTPAlg::receivedAckForDataNotYetSent(uint32 seq) 00074 { 00075 sctpEV3 << "ACK acks something not yet sent, sending immediate ACK" << endl; 00076 } 00077 00078 void SCTPAlg::sackSent() 00079 { 00080 } 00081 00082 void SCTPAlg::dataSent(uint32) 00083 { 00084 }