| class CVJDeCompressor : public CVJDeCompressorIf |
Van Jacobson TCP/IP header decompressor (RFC 1144)
| Public Member Functions | |
|---|---|
| CVJDeCompressor () | |
| ~CVJDeCompressor () | |
| void | CRCError () |
| void | ConstructL ( CVJCompFactory *, TUint ) |
| TBool | DecompVJComp ( RMBufChain &) |
| TBool | DecompVJUncomp ( RMBufChain &) |
| Private Member Functions | |
|---|---|
| TBool | CheckStoredRxHeader (const TUint ) |
| void | ClearFlag (const TUint ) |
| void | CopyInNewHeaderL ( RMBufChain *, ThdrIP *, ThdrTCP *, TUint , TUint16 , TUint16 ) |
| void | CopyRecvHeader (const TUint , ThdrIP *) |
| TUint16 | DecodeDelta ( TUint8 **) |
| void | DecompAck ( TUint8 **, ThdrTCP *) |
| void | DecompIPId (const TUint , TUint8 **, ThdrIP *) |
| void | DecompPushFlag (const TUint , ThdrTCP *) |
| void | DecompSWAU (const TUint , TUint8 **, ThdrTCP *, TUint16 ) |
| void | DecompSeq ( TUint8 **, ThdrTCP *) |
| void | DecompUrgent ( TUint8 **, ThdrTCP *, TUint ) |
| void | DecompWindow ( TUint8 **, ThdrTCP *) |
| void | DecompressFrameL ( RMBufChain &, TUint8 , TUint8 , TUint8 *const , TUint , TUint16 ) |
| void | DoIPChecksum ( ThdrIP *, TUint16 ) |
| void | EncodeDelta ( TUint8 **, TUint16 ) |
| ThdrIP * | GetIPHeader ( RMBufChain &) |
| void | GetStoredRxHeader (const TUint , ThdrIP *, ThdrTCP *) |
| TUint8 * | GetVJPtr ( RMBufChain &, TUint16 *) |
| void | SetFlag (const TUint ) |
| TBool | TestFlag (const TUint ) |
| Private Attributes | |
|---|---|
| TUint | iFlags |
| TUint | iLastRxConn |
| TUint | iNumVJSlots |
| TVJCompHdr * | iRxStates |
| Inherited Attributes | |
|---|---|
| CVJDeCompressorIf::iFactory | |
| void | CRCError | ( | ) | [virtual] |
Sets the discard flag after receiving a bad frame so that future decompressed packets don't get out of sync.
| TBool | CheckStoredRxHeader | ( | const TUint | aConnection | ) | const [private] |
Checks if the given VJ connection number has previously been filled in.
| const TUint aConnection | Valid VJ connection number to check |
| void | ClearFlag | ( | const TUint | aFlag | ) | [private, inline] |
Clear an internal flag.
| const TUint aFlag | Flag value to clear |
| void | ConstructL | ( | CVJCompFactory * | aFactory, |
| TUint | aSlots | |||
| ) | ||||
Construct the CVJDeCompressor object.
| CVJCompFactory * aFactory | Factory that created this object |
| TUint aSlots | Value of the highest VJ connection number to be received |
| void | CopyInNewHeaderL | ( | RMBufChain * | aPacket, |
| ThdrIP * | aIPHeader, | |||
| ThdrTCP * | aTCPHeader, | |||
| TUint | aCompressedHeaderLength, | |||
| TUint16 | aIPHeaderLength, | |||
| TUint16 | aTCPHeaderLength | |||
| ) | [private] | |||
Copy the uncompressed header into the proper location in the packet.
| void | CopyRecvHeader | ( | const TUint | aConnectionNumber, |
| ThdrIP * | aHeader | |||
| ) | [private] | |||
Caches a TCP/IP Header to be used as a reference to reconstruct future compressed headers.
| TUint16 | DecodeDelta | ( | TUint8 ** | aVJCompHeader | ) | [private] |
Decodes a compressed delta value.
| TUint8 ** aVJCompHeader | Pointer to pointer into VJ header buffer holding encoded value; returns with pointer incremented one past end of value |
| void | DecompAck | ( | TUint8 ** | aVJCompHeader, |
| ThdrTCP * | aTCPHeader | |||
| ) | [private] | |||
Decompresses the Acknowledgement Number field.
| void | DecompIPId | ( | const TUint | aChanges, |
| TUint8 ** | aVJCompHeader, | |||
| ThdrIP * | aIPHeader | |||
| ) | [private] | |||
Decompresses the IP Identification field.
| void | DecompPushFlag | ( | const TUint | aChanges, |
| ThdrTCP * | aHeader | |||
| ) | [private] | |||
Decompresses the Push flag.
| void | DecompSWAU | ( | const TUint | aChanges, |
| TUint8 ** | aVJCompHeader, | |||
| ThdrTCP * | aTCPHeader, | |||
| TUint16 | aPreviousFrameLength | |||
| ) | [private] | |||
Decompresses the special case SWAU type packet.
| void | DecompSeq | ( | TUint8 ** | aVJCompHeader, |
| ThdrTCP * | aTCPHeader | |||
| ) | [private] | |||
Decompresses the Sequence Number field.
| void | DecompUrgent | ( | TUint8 ** | aVJCompHeader, |
| ThdrTCP * | aTCPHeader, | |||
| TUint | aChanges | |||
| ) | [private] | |||
Decompresses the Urgent field.
| TBool | DecompVJComp | ( | RMBufChain & | aPacket | ) | [virtual] |
Decompresses a VJ compressed packet in place.
| RMBufChain & aPacket | MBuf chain containing packet |
| TBool | DecompVJUncomp | ( | RMBufChain & | aPacket | ) | [virtual] |
Handles a VJ uncompressed packet. Stores the packet header in the appropriate VJ connection slot.
| RMBufChain & aPacket | MBuf chain containing packet |
| void | DecompWindow | ( | TUint8 ** | aVJCompHeader, |
| ThdrTCP * | aTCPHeader | |||
| ) | [private] | |||
Decompresses the Window field.
| void | DecompressFrameL | ( | RMBufChain & | aPacket, |
| TUint8 | aConnection, | |||
| TUint8 | aChanges, | |||
| TUint8 *const | aInitialHeaderPtr, | |||
| TUint | Offset, | |||
| TUint16 | aCurrentFrameLength | |||
| ) | [private] | |||
Uncompresses a VJ compressed TCP/IP header.
| RMBufChain & aPacket | MBuf chain containing packet to be updated |
| TUint8 aConnection | VJ connection number |
| TUint8 aChanges | The VJ change mask |
| TUint8 *const aInitialHeaderPtr | Beginning of the compressed VJ header |
| TUint Offset | Offset from start of packet to TCP checksum field |
| TUint16 aCurrentFrameLength | Length of the compressed packet |
| void | DoIPChecksum | ( | ThdrIP * | aIPHeader, |
| TUint16 | aIPHeaderLength | |||
| ) | [private] | |||
Calculate the IP checksum and store it in the given IP packet header. See RFC 1071.
| void | EncodeDelta | ( | TUint8 ** | aVJCompHeader, |
| TUint16 | aValue | |||
| ) | [private] | |||
| ThdrIP * | GetIPHeader | ( | RMBufChain & | aChain | ) | [private] |
Extracts the IP Header from the packet even though there is a buffer of Info on the front. This is used in VJ, to avoid the awful hack in the main receive path. PRR 20-11-97
| RMBufChain & aChain | MBuf chain containing packet |
| void | GetStoredRxHeader | ( | const TUint | aConnectionNumber, |
| ThdrIP * | aIPHeader, | |||
| ThdrTCP * | aTCPHeader | |||
| ) | [private] | |||
Retrieves a packet header from the VJ connection cache.
| TUint8 * | GetVJPtr | ( | RMBufChain & | aChain, |
| TUint16 * | aCurrentFrameLength | |||
| ) | [private] | |||
Gets a pointer to the VJ Header even though there is a pseudo (Adam) buffer of Info on the front.
| RMBufChain & aChain | MBuf chain containing packet |
| TUint16 * aCurrentFrameLength | Returns the length of the packet |
| void | SetFlag | ( | const TUint | aFlag | ) | [private, inline] |
Set an internal flag.
| const TUint aFlag | Flag value to set |
| TBool | TestFlag | ( | const TUint | aFlag | ) | [private, inline] |
Test if an internal flag is set.
| const TUint aFlag | Flag value to test |
| TUint | iFlags | [private] |
Set to KVJDiscard while discarding received packets due to lost synchronization
| TUint | iLastRxConn | [private] |
VJ connection number of the last valid packet received
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.