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.