Msg File src/inet/transportlayer/contract/sctp/SctpCommand.msg
Name | Type | Description |
---|---|---|
AddressVector | class | (no description) |
SctpErrorCode | enum |
Currently not in use. |
SctpSimpleMessage | class | (no description) |
SctpCommandReq | class | (no description) |
SctpSendReq | class | (no description) |
SctpOpenReq | class | (no description) |
SctpAvailableReq | class | (no description) |
SctpConnectReq | class | (no description) |
SctpRcvReq | class | (no description) |
SctpStatusReq | class | (no description) |
SctpResetReq | class | (no description) |
SctpInfoReq | class | (no description) |
SctpPathInfoReq | class | (no description) |
SctpRtoReq | class | (no description) |
SctpSendQueueAbatedReq | class | (no description) |
SctpPathInfo | class | (no description) |
Source code
// // Copyright (C) 2008 Irene Ruengeler // Copyright (C) 2015 Thomas Dreibholz // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, see <http://www.gnu.org/licenses/>. // import inet.common.INETDefs; import inet.common.packet.chunk.Chunk; import inet.common.packet.Packet; import inet.networklayer.common.IpProtocolId; import inet.networklayer.common.L3Address; import inet.common.TagBase; cplusplus {{ #include <vector> #include "inet/transportlayer/contract/sctp/SctpCommand.h" }} namespace inet; cplusplus {{ typedef std::vector<L3Address> AddressVector; }} class AddressVector { @existingClass; } // // Currently not in use. // enum SctpErrorCode { } class SctpSimpleMessage extends cPacket { uint32 dataLen; //TODO remove it, use set/getDataArraySize() functions only uint8_t data[]; simtime_t creationTime = 0; bool encaps = false; } class SctpCommandReq extends TagBase { int socketId = -1; // identifies the socket within the application int sid = -1; int numMsgs = 1; int ssn = -1; unsigned short sendUnordered = false; double prValue = 0; L3Address localAddr; L3Address remoteAddr; int localPort = -1; int remotePort = -1; int gate = -1; int fd = -1; } class SctpSendReq extends SctpCommandReq { unsigned int prMethod; bool last; unsigned int ppid = 0; bool primary = true; bool sackNow = false; } class SctpOpenReq extends SctpCommandReq { AddressVector localAddresses; AddressVector remoteAddresses; bool fork = false; // used only for passive open string queueClass = "SctpQueue"; // may be left empty string sctpAlgorithmClass; // may be left empty uint32 inboundStreams; uint32 outboundStreams; bool streamReset; bool appLimited; int prMethod; uint32 numRequests; uint32 messagesToPush; } class SctpAvailableReq extends SctpCommandReq { int newSocketId; } class SctpConnectReq extends SctpCommandReq { AddressVector remoteAddresses; int status; int inboundStreams; int outboundStreams; } class SctpRcvReq extends SctpCommandReq { uint32 ppid; uint32 tsn; uint32 cumTsn; } class SctpStatusReq extends SctpCommandReq { int state; string stateName; L3Address pathId; bool active; } class SctpResetReq extends SctpCommandReq { unsigned short requestType = 0; uint16 instreams = 0; uint16 outstreams = 0; uint16 streams[]; } class SctpInfoReq extends SctpCommandReq { int text = 0; } class SctpPathInfoReq extends SctpCommandReq { L3Address remoteAddress; } class SctpRtoReq extends SctpCommandReq { double rtoInitial; double rtoMin; double rtoMax; } class SctpSendQueueAbatedReq extends SctpCommandReq { uint64 bytesAvailable; uint64 bytesQueued; uint64 bytesLimit; uint64 queuedForStream[]; } class SctpPathInfo extends cNamedObject { L3Address remoteAddress; }