|
| | TcpHeader () |
| |
| | TcpHeader (const TcpHeader &other) |
| |
| virtual | ~TcpHeader () |
| |
| TcpHeader & | operator= (const TcpHeader &other) |
| |
| virtual TcpHeader * | dup () const override |
| |
| virtual void | parsimPack (omnetpp::cCommBuffer *b) const override |
| |
| virtual void | parsimUnpack (omnetpp::cCommBuffer *b) override |
| |
| virtual unsigned short | getSrcPort () const |
| |
| virtual void | setSrcPort (unsigned short srcPort) |
| |
| virtual unsigned short | getDestPort () const |
| |
| virtual void | setDestPort (unsigned short destPort) |
| |
| virtual uint32_t | getSequenceNo () const |
| |
| virtual void | setSequenceNo (uint32_t sequenceNo) |
| |
| virtual uint32_t | getAckNo () const |
| |
| virtual void | setAckNo (uint32_t ackNo) |
| |
| virtual ::inet::B | getHeaderLength () const |
| |
| virtual void | setHeaderLength (::inet::B headerLength) |
| |
| virtual bool | getCwrBit () const |
| |
| virtual void | setCwrBit (bool cwrBit) |
| |
| virtual bool | getEceBit () const |
| |
| virtual void | setEceBit (bool eceBit) |
| |
| virtual bool | getUrgBit () const |
| |
| virtual void | setUrgBit (bool urgBit) |
| |
| virtual bool | getAckBit () const |
| |
| virtual void | setAckBit (bool ackBit) |
| |
| virtual bool | getPshBit () const |
| |
| virtual void | setPshBit (bool pshBit) |
| |
| virtual bool | getRstBit () const |
| |
| virtual void | setRstBit (bool rstBit) |
| |
| virtual bool | getSynBit () const |
| |
| virtual void | setSynBit (bool synBit) |
| |
| virtual bool | getFinBit () const |
| |
| virtual void | setFinBit (bool finBit) |
| |
| virtual uint16_t | getWindow () const |
| |
| virtual void | setWindow (uint16_t window) |
| |
| virtual uint16_t | getUrgentPointer () const |
| |
| virtual void | setUrgentPointer (uint16_t urgentPointer) |
| |
| virtual uint16_t | getCrc () const |
| |
| virtual void | setCrc (uint16_t crc) |
| |
| virtual ::inet::CrcMode | getCrcMode () const |
| |
| virtual void | setCrcMode (::inet::CrcMode crcMode) |
| |
| virtual void | setHeaderOptionArraySize (size_t size) |
| |
| virtual size_t | getHeaderOptionArraySize () const |
| |
| virtual const TcpOption * | getHeaderOption (size_t k) const |
| |
| virtual TcpOption * | getHeaderOptionForUpdate (size_t k) |
| |
| virtual void | setHeaderOption (size_t k, TcpOption *headerOption) |
| |
| virtual TcpOption * | removeHeaderOption (size_t k) |
| |
| TcpOption * | dropHeaderOption (size_t k) |
| |
| virtual void | insertHeaderOption (size_t k, TcpOption *headerOption) |
| |
| void | insertHeaderOption (TcpOption *headerOption) |
| |
| virtual void | appendHeaderOption (TcpOption *headerOption) |
| |
| virtual void | eraseHeaderOption (size_t k) |
| |
| uint32_t | getSynFinLen () const |
| | Returns RFC 793 specified SEG.LEN: SEG.LEN = the number of octets occupied by the data in the segment (counting SYN and FIN) More...
|
| |
| virtual B | getHeaderOptionArrayLength () |
| | Calculate Length of TCP Options Array in bytes. More...
|
| |
| virtual void | dropHeaderOptions () |
| | Drops all TCP options of the TCP segment. More...
|
| |
| virtual unsigned int | getSourcePort () const override |
| |
| virtual void | setSourcePort (unsigned int port) override |
| |
| virtual unsigned int | getDestinationPort () const override |
| |
| virtual void | setDestinationPort (unsigned int port) override |
| |
| virtual std::string | str () const override |
| | Returns a human readable string representation of the data present in this chunk. More...
|
| |
| | FieldsChunk () |
| |
| | FieldsChunk (const FieldsChunk &other) |
| |
| virtual | ~FieldsChunk () |
| |
| virtual void | parsimPack (cCommBuffer *buffer) const override |
| |
| virtual void | parsimUnpack (cCommBuffer *buffer) override |
| |
| virtual void | handleChange () override |
| |
| virtual ChunkType | getChunkType () const override |
| | Returns the type of this chunk as an enum member. More...
|
| |
| virtual bool | containsSameData (const Chunk &other) const override |
| | Returns true if the two chunks represent the same binary data. More...
|
| |
| virtual b | getChunkLength () const override |
| | Returns the length of data represented by this chunk. More...
|
| |
| virtual void | setChunkLength (b chunkLength) |
| |
| virtual void | addChunkLength (b chunkLength) |
| |
| virtual std::ostream & | printFieldsToStream (std::ostream &stream, int level, int evFlags=0) const override |
| | Prints an optinally formatted human readable string representation of the feilds of this chunk to the given stream. More...
|
| |
| | Chunk () |
| |
| | Chunk (const Chunk &other) |
| |
| virtual const Ptr< Chunk > | dupShared () const |
| | Returns a mutable copy of this chunk in a shared pointer. More...
|
| |
| virtual void | forEachChild (cVisitor *v) override |
| |
| virtual bool | isMutable () const |
| |
| virtual bool | isImmutable () const |
| |
| virtual void | markImmutable () |
| |
| void | markMutableIfExclusivelyOwned () |
| |
| virtual bool | isComplete () const |
| |
| virtual bool | isIncomplete () const |
| |
| virtual void | markIncomplete () |
| |
| virtual bool | isCorrect () const |
| |
| virtual bool | isIncorrect () const |
| |
| virtual void | markIncorrect () |
| |
| virtual bool | isProperlyRepresented () const |
| |
| virtual bool | isImproperlyRepresented () const |
| |
| virtual void | markImproperlyRepresented () |
| |
| virtual void | moveIterator (Iterator &iterator, b length) const |
| |
| virtual void | seekIterator (Iterator &iterator, b position) const |
| |
| virtual bool | canInsertAtFront (const Ptr< const Chunk > &chunk) const |
| | Returns true if this chunk is capable of representing the result. More...
|
| |
| virtual bool | canInsertAtBack (const Ptr< const Chunk > &chunk) const |
| | Returns true if this chunk is capable of representing the result. More...
|
| |
| virtual bool | canInsertAt (const Ptr< const Chunk > &chunk, b offset) const |
| | Returns true if this chunk is capable of representing the result. More...
|
| |
| void | insertAtFront (const Ptr< const Chunk > &chunk) |
| | Inserts the provided chunk at the beginning of this chunk. More...
|
| |
| void | insertAtBack (const Ptr< const Chunk > &chunk) |
| | Inserts the provided chunk at the end of this chunk. More...
|
| |
| void | insertAt (const Ptr< const Chunk > &chunk, b offset) |
| | Inserts the provided chunk into this chunk. More...
|
| |
| virtual bool | canRemoveAtFront (b length) const |
| | Returns true if this chunk is capable of representing the result. More...
|
| |
| virtual bool | canRemoveAtBack (b length) const |
| | Returns true if this chunk is capable of representing the result. More...
|
| |
| virtual bool | canRemoveAt (b offset, b length) const |
| | Returns true if this chunk is capable of representing the result. More...
|
| |
| void | removeAtFront (b length) |
| | Removes the requested part from the beginning of this chunk. More...
|
| |
| void | removeAtBack (b length) |
| | Removes the requested part from the end of this chunk. More...
|
| |
| void | removeAt (b offset, b length) |
| | Removes the requested part from this chunk. More...
|
| |
| int | getChunkId () const |
| | Returns the sequentially assigned id. More...
|
| |
| virtual bool | isEmpty () const |
| | Returns true if this chunk contains no data. More...
|
| |
| const Ptr< Chunk > | simplify () const |
| | Returns the simplified representation of this chunk eliminating all potential redundancies. More...
|
| |
| const Ptr< Chunk > | peek (const Iterator &iterator, b length=unspecifiedLength, int flags=0) const |
| | Returns the designated part of the data represented by this chunk in its default representation. More...
|
| |
| template<typename T > |
| bool | has (const Iterator &iterator, b length=unspecifiedLength) const |
| | Returns whether if the designated part of the data is available in the requested representation. More...
|
| |
| template<typename T > |
| const Ptr< T > | peek (const Iterator &iterator, b length=unspecifiedLength, int flags=0) const |
| | Returns the designated part of the data represented by this chunk in the requested representation. More...
|
| |
| virtual SharingRegionTagSet & | getRegionTags () override |
| | Returns all region tags. More...
|
| |
| int | getNumTags () const |
| | Returns the number of chunk tags. More...
|
| |
| const Ptr< const TagBase > | getTag (int index) const |
| | Returns the chunk tag at the given index. More...
|
| |
| void | clearTags (b offset=b(0), b length=b(-1)) |
| | Clears the set of chunk tags in the given region. More...
|
| |
| void | copyTags (const Chunk &source, b sourceOffset=b(0), b offset=b(0), b length=b(-1)) |
| | Copies the set of chunk tags from the source region to the provided region. More...
|
| |
| template<typename T > |
| const Ptr< const T > | findTag (b offset=b(0), b length=b(-1)) const |
| | Returns the chunk tag for the provided type and range, or returns nullptr if no such chunk tag is found. More...
|
| |
| template<typename T > |
| const Ptr< const T > | getTag (b offset=b(0), b length=b(-1)) const |
| | Returns the chunk tag for the provided type and range, or throws an exception if no such chunk tag is found. More...
|
| |
| template<typename T > |
| void | mapAllTags (b offset, b length, std::function< void(b, b, const Ptr< const T > &)> f) const |
| | Maps all tags in the provided range to to the function. More...
|
| |
| template<typename T > |
| void | mapAllTagsForUpdate (b offset, b length, std::function< void(b, b, const Ptr< T > &)> f) |
| | Maps all tags in the provided range to to the function. More...
|
| |
| template<typename T > |
| std::vector< SharingRegionTagSet::RegionTag< const T > > | getAllTags (b offset=b(0), b length=b(-1)) const |
| | Returns all chunk tags for the provided type and range in a detached vector of region tags. More...
|
| |
| template<typename T > |
| std::vector< SharingRegionTagSet::RegionTag< T > > | getAllTagsForUpdate (b offset=b(0), b length=b(-1)) |
| | Returns all chunk tags for the provided type and range in a detached vector of region tags. More...
|
| |
| template<typename T > |
| const Ptr< T > | addTag (b offset=b(0), b length=b(-1)) |
| | Returns a newly added chunk tag for the provided type and range, or throws an exception if such a chunk tag is already present. More...
|
| |
| template<typename T > |
| const Ptr< T > | addTagIfAbsent (b offset=b(0), b length=b(-1)) |
| | Returns a newly added chunk tag for the provided type and range if absent, or returns the chunk tag that is already present. More...
|
| |
| template<typename T > |
| std::vector< SharingRegionTagSet::RegionTag< T > > | addTagsWhereAbsent (b offset=b(0), b length=b(-1)) |
| | Returns the newly added chunk tags for the provided type and range where the tag is absent. More...
|
| |
| template<typename T > |
| const Ptr< T > | removeTag (b offset, b length) |
| | Removes the chunk tag for the provided type and range, or throws an exception if no such chunk tag is found. More...
|
| |
| template<typename T > |
| const Ptr< T > | removeTagIfPresent (b offset, b length) |
| | Removes the chunk tag for the provided type and range if present, or returns nullptr if no such chunk tag is found. More...
|
| |
| template<typename T > |
| std::vector< SharingRegionTagSet::RegionTag< T > > | removeTagsWherePresent (b offset, b length) |
| | Removes and returns all chunk tags for the provided type and range. More...
|
| |
| virtual std::ostream & | printToStream (std::ostream &stream, int level, int evFlags=0) const override |
| | Prints an optinally formatted human readable string representation of the data present in this chunk to the given stream. More...
|
| |
| virtual | ~IPrintableObject () |
| |
| virtual std::string | printToString () const |
| |
| virtual std::string | printToString (int level, int evFlags=0) const |
| |
| virtual std::string | getInfoStringRepresentation (int evFlags=0) const |
| |
| virtual std::string | getDetailStringRepresentation (int evFlags=0) const |
| |
| virtual std::string | getDebugStringRepresentation (int evFlags=0) const |
| |
| virtual std::string | getTraceStringRepresentation (int evFlags=0) const |
| |
| virtual std::string | getCompleteStringRepresentation (int evFlags=0) const |
| |
|
| enum | ChunkType {
CT_EMPTY,
CT_BITCOUNT,
CT_BITS,
CT_BYTECOUNT,
CT_BYTES,
CT_SLICE,
CT_ENCRYPTED,
CT_CPACKET,
CT_SEQUENCE,
CT_FIELDS
} |
| | This enum is used to avoid std::dynamic_cast and dynamicPtrCast. More...
|
| |
| enum | PeekFlag {
PF_ALLOW_NULLPTR = (1 << 0),
PF_ALLOW_EMPTY = (1 << 1),
PF_ALLOW_INCOMPLETE = (1 << 2),
PF_ALLOW_INCORRECT = (1 << 3),
PF_ALLOW_IMPROPERLY_REPRESENTED = (1 << 4),
PF_ALLOW_SERIALIZATION = (1 << 5),
PF_ALLOW_ALL = -1
} |
| | This enum specifies bitmasks for the flags argument of various peek functions. More...
|
| |
| enum | PrintLevel {
PRINT_LEVEL_TRACE,
PRINT_LEVEL_DEBUG,
PRINT_LEVEL_DETAIL,
PRINT_LEVEL_INFO,
PRINT_LEVEL_COMPLETE = INT_MIN
} |
| |
| enum | PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0),
PRINT_FLAG_MULTILINE = (1 << 1)
} |
| |
| static void | serialize (MemoryOutputStream &stream, const Ptr< const Chunk > &chunk, b offset=b(0), b length=b(-1)) |
| | Serializes a chunk into the given stream. More...
|
| |
| static const Ptr< Chunk > | deserialize (MemoryInputStream &stream, const std::type_info &typeInfo) |
| | Deserializes a chunk from the given stream. More...
|
| |
| static const b | unspecifiedLength = b(-std::numeric_limits<int64_t>::max()) |
| |
| static bool | enableImplicitChunkSerialization = false |
| | Peeking some part into a chunk that requires automatic serialization will throw an exception when implicit chunk serialization is disabled. More...
|
| |
| static int | nextId = 0 |
| |
| enum | ChunkFlag { CF_IMMUTABLE = (1 << 0),
CF_INCOMPLETE = (1 << 1),
CF_INCORRECT = (1 << 2),
CF_IMPROPERLY_REPRESENTED = (1 << 3)
} |
| | This enum specifies bitmasks for the flags field of Chunk. More...
|
| |
| typedef bool(* | PeekPredicate) (const Ptr< Chunk > &) |
| |
| static const Ptr< Chunk > | convertChunk (const std::type_info &typeInfo, const Ptr< Chunk > &chunk, b offset, b length, int flags) |
| |
| static const Ptr< Chunk > | convertChunk (const std::type_info &typeInfo, const Ptr< Chunk > &chunk, b offset, b length, int flags) |
| | Creates a new chunk of the given type that represents the designated part of the provided chunk. More...
|
| |
Class generated from inet/transportlayer/tcp_common/TcpHeader.msg:176 by opp_msgtool.
//
// Represents a TCP segment, to be used with the ~TCP module.
//
// TCP header fields not explicitly modelled: work on going
// - Data Offset (number of 32 bit words in the header): represented
// by cMessage::length().
// - Reserved (reserved for future use)
// - Checksum (header checksum): modelled by cMessage::hasBitError()
// - Header Options: Currently only EOL, NOP, MSS, WS, SACK_PERMITTED, SACK and TS are implemented
// - Padding
//
// cMessage::getKind() may be set to an arbitrary value: TCP entities will
// ignore it and use only the header fields (synBit, ackBit, rstBit).
//
class TcpHeader extends TransportHeaderBase
{
chunkLength = TCP_MIN_HEADER_LENGTH; // Source Port
unsigned short srcPort; // Destination Port
unsigned short destPort; // Sequence Number: first sequence number of the first data octet
// in the respective segment (except if SYN is set; then the the
// seq. number is the initial seq. number (ISS) and the first data
// octet is ISS + 1)
uint32_t sequenceNo; // Acknowledgement Number: if ACK flag is set, this field contains
// the next sequence number the sender of this segment is expecting
// to receive
uint32_t ackNo; // TCP Header Length including options
B headerLength = TCP_MIN_HEADER_LENGTH; bool cwrBit; // CWR: congestion window reduced bit (RFC 3168)
bool eceBit; // ECE: ECN-echo bit (RFC 3168)
bool urgBit; // URG: urgent pointer field significant if set
bool ackBit; // ACK: ackNo significant if set
bool pshBit; // PSH: push function
bool rstBit; // RST: reset the connection
bool synBit; // SYN: synchronize seq. numbers
bool finBit; // FIN: finish - no more data from sender // Window Size: the number of data octets beginning with the one indicated
// in the acknowledgement field which the sender of this segment is
// willing to accept
uint16_t window; // Urgent Pointer: communicates the current value of the urgent pointer
// as a positive offset from the sequence number in this segment. The
// urgent pointer points to the sequence number of the octet following
// the urgent data. This field is only be interpreted in segments with
// the URG control bit set.
uint16_t urgentPointer; uint16_t crc = 0;
CrcMode crcMode = CRC_MODE_UNDEFINED; // Header options (optional)
// Currently only EOL, NOP, MSS, WS, SACK_PERMITTED, SACK and TS are implemented
TcpOption *headerOption[] @owned;
}