--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/pppnif/group/RELEASE.TXT Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,269 @@
+EPOC PPP Release Notes
+
+22 Apr 2005 (victorm)
+==================
+EIA-232 Control line change detection.
+Since the serial-specific functionality was moved into the BCA layer, PPP
+makes an Ioctl call into the BCA to enable "BCA-specific" monitoring.
+The C32Bca, turns on monitoring of DCD or DTR,
+depending on the serial port role.
+
+
+
+14 Mar 2005 (JoeX)
+==================
+Support of layering PPP using BCA interface instead of MComm is implemented.
+Three more classes:CBcaControl,CBcaWriter and CBcaReader are added
+for PPP link layer up/shutdown,and packet write and read respectively.
+
+22 Sept 2004 (victorm)
+===================
+Support for fully RFC1661 compliant PPP Termination Phase behavior.
+A side effect is a possible increase in PPP shutdown times.
+This behavior is enabled by default, i.e. when there is no .ini file present.
+To maintain backward compatibility, this behavior is disabled when a ppp.ini
+or pppd.ini file is present with
+PPPEnableTerminateRequest= 0 and PPPEnabledTerminateAck= 0 entries.
+
+
+
+24 Mar 2004 (danfa)
+===================
+The default ppp.ini file is no longer being exported. This will provide a
+slight reduction in startup time since the file no longer needs to be read and
+parsed. If settings need to be changed, the ppp.ini and pppd.ini files
+supplied with the source can be used as templates as they contain all settable
+options.
+
+07 Jan 2004 (danfa)
+===================
+PPP Server Mode
+
+Support for PPP running as a server has been improved. The CommDB entry
+Service\\IfServerMode determines whether server mode is enabled. When enabled,
+PPP does not exit if it times out, but stays alive and silent, waiting for
+futher connections. In server mode, the file pppd.ini is read instead of
+ppp.ini to configure PPP.
+
+
+17 Nov 2003 (danfa)
+===================
+Optimizations on PPP HDLC and compressors for GT0161.
+
+An analysis of the code revealed that there were many O(n) loops over the packet
+data being performed. The packet data loops in the existing code for some of the
+common data paths were as shown in the following table. The notation used is:
+
+ "description of loop"(input data type):output data type if different
+
+Processing loops are separated with => . Code in a compressor/decompressor DLL
+is surrounded by {curly brackets}. Conditional loops are surrounded by
+[square brackets]. CRC is Cyclic Redundancy Check calculation and LCB is
+Longitudinal Check Byte calculation.
+
+Uncompressed transmit (3 loops):
+
+ "Log IP data size"(MBuf) => CRC(MBuf) => "HDLC encode"(MBuf):TDes
+
+Predictor compression transmit (6 loops):
+
+ { "Copy buffer"(MBuf):TDes => Compress(TDes) => CRC(TDes) => "Copy buffer"(TDes):MBuf }
+ => CRC(MBuf) => "HDLC encode"(MBuf):TDes
+
+Predictor compression transmit, data block expanded (6 loops):
+ { "Copy buffer"(MBuf):TDes => Compress(TDes) => CRC(TDes) => "Copy buffer"(TDes):MBuf }
+ => CRC(MBuf) => "HDLC encode"(MBuf):TDes
+
+STAC mode 1 compression transmit (6 loops):
+ { "Copy buffer"(MBuf) => CRC(TDes) => Compress(TDes) => "Copy buffer"(TDes):MBuf }
+ => CRC(MBuf) => "HDLC encode"(MBuf):TDes
+
+STAC mode 1 compression transmit, data block expanded (7 loops):
+ { "Copy buffer"(MBuf) => CRC(TDes) => Compress(TDes) => "Copy buffer"(TDes) => "Copy buffer"(TDes):MBuf }
+ => CRC(MBuf) => "HDLC encode"(MBuf):TDes
+
+Uncompressed receive (3 loops):
+ "HDLC decode"(TDes):MBuf => CRC(MBuf) => "Log IP data size"(MBuf)
+
+Predictor decompression receive (7 loops):
+ "HDLC decode"(TDes):MBuf => CRC(MBuf)
+ => { "Clear buffer"(TDes) => "Copy buffer"(MBuf):TDes => Decompress(TDes) => CRC(TDes) => "Copy Buffer"(TDes):MBuf }
+
+STAC mode 1 decompression receive (7 loops):
+ "HDLC decode"(TDes):MBuf => CRC(MBuf)
+ => { "Clear buffer"(TDes) => "Copy buffer"(MBuf):TDes => Decompress(TDes) => "Copy buffer"(TDes):MBuf => LCB(TDes) }
+
+An attempt was made to reduce the number of processing loops to decrease latency
+and reduce processing overhead. Since loops over MBufs have more overhead than
+loops over TDes, the latter was preferred. The compressors contained several
+instances of clearing buffers that did not need to be cleared, so they were
+removed. Each uncompressed data block was needlessly copied in order to log
+the amount of IP data contained within; the copy was removed, then the logging
+method was changed since it constituted a protocol layering violation as
+implemented. On the transmit side, the HDLC encoding and CRC processes were
+combined into a single loop.
+
+The compressors and decompressors require data to be in a descriptor, so each
+one begins by copying data out of an MBufChain. The copy routines were
+optimized for short packets by creating a TPtr pointing directly into the first
+MBuf into the chain instead of copying the data into a TBuf. Several loops
+were examined in detail to tighten the code generated by the compiler.
+
+It should be noted that compression and decompression should not be performed
+at the PPP HDLC layer. That functionality should be moved up a level to the
+LCP layer as compression should be available even if PPP is to be used with
+a framing method other than HDLC.
+
+These changes resulted in the following table.
+
+Uncompressed transmit (1 loop):
+
+ "CRC+HDLC encode"(MBuf):TDes
+
+Predictor compression transmit (5 loops):
+
+ { "Copy buffer"(MBuf):TDes => Compress(TDes) => CRC(TDes) => "Copy buffer"(TDes):MBuf }
+ => "CRC+HDLC encode"(MBuf):TDes
+
+Predictor compression transmit, data block expanded (5 loops):
+ { "Copy buffer"(MBuf):TDes => Compress(TDes) => CRC(TDes) => "Copy buffer"(TDes):MBuf }
+ => "CRC+HDLC encode"(MBuf):TDes
+
+STAC mode 1 compression transmit (5 loops):
+ { "Copy buffer"(MBuf) => CRC(TDes) => Compress(TDes) => "Copy buffer"(TDes):MBuf }
+ => "CRC+HDLC encode"(MBuf):TDes
+
+STAC mode 1 compression transmit, data block expanded (6 loops):
+ { "Copy buffer"(MBuf) => CRC(TDes) => Compress(TDes) => "Copy buffer"(TDes) => "Copy buffer"(TDes):MBuf }
+ => "CRC+HDLC encode"(MBuf):TDes
+
+Uncompressed receive (1 loop):
+ "HDLC decode+CRC"(TDes):MBuf
+
+Predictor decompression receive (4/5 loops):
+ "HDLC decode+CRC"(TDes):MBuf
+ => { [ "Copy buffer"(MBuf):TDes ] => Decompress(TDes) => CRC(TDes) => "Copy Buffer"(TDes):MBuf }
+
+STAC mode 1 decompression receive (4/5 loops):
+ "HDLC decode+CRC"(TDes):MBuf
+ => { [ "Copy buffer"(MBuf):TDes ] => Decompress(TDes) => "Copy buffer"(TDes):MBuf => LCB(TDes) }
+
+04 Nov 2003 (danfa)
+===================
+VJ compression/decompression for GT0161
+
+The VJ compressor/decompressor was code reviewed and many bugs were fixed.
+The IP checksum routine was optimized for speed.
+
+30. Nov 2001 (alfredh)
+======================
+
+Defect fixes:
+
+MAI-54XK4Z "PPP - ncpip.cpp. Function is incorrect"
+
+Improved the code in CPppNcpIp::PresetAddr and increased readability.
+
+Codesize ARM4/UREL for PPP.NIF:
+
+ before: 72.308 bytes
+ after: 72.236 bytes
+
+
+Release
+=======
+Made by AnnW, 5th July 2000
+
+1. Stubbed new API functions from NifMan for GPRS. Yet to be fully implemented.
+
+Release
+=======
+Made by AnnW, 18th April 2000
+
+1. Changed all header files to be exported into \epoc32\include\networking as they
+ are all private header files, which need only be visible to other comms components.
+
+2. Changed #include's to specify private headers in \epoc32\inlcude\networking and
+ \epoc32\include\comms-infras where necessary.
+
+Release 018
+===========
+Made by AnnW, 19th November 1999
+
+1. Made changes accompanying those in NifMan which means that reads from the database
+ are now TUint32 values.
+
+Release 017
+===========
+Made by AnnW, 29th September 1999
+
+1. Merged in changes from ER5 TCPIP maintenance releases 522-524.
+2. Merged in changes from ER5u PPP releases 001-006 and TCPIP 550-558.
+
+
+Release 016
+===========
+Made by BobC
+
+Bob Cripps
+1. Changed constant in ppplrd.cpp to KErrIfLRDBadLine
+
+Paul Riley
+2. Modified Vjdecomp.cpp to fix a bug found by Phillipe Gabriel when
+ using sendsink.exe
+
+Release 015
+===========
+
+1. New ini file mods :-
+
+ pppfsm.cpp
+ ppphdlc.cpp
+ ppplcp.h
+ pppdef.h
+
+2. Fixed THUMB bug in VJCOMP file :- vjcomp.cpp
+
+Release 014
+===========
+Made by AnnW, 1st September 1999
+
+1. Fixed a couple of bugs in logging code.
+
+
+Release 013
+===========
+Made by AnnW, 31st August 1999
+
+1. Modified DES and VJCOMP MMP files to specify TARGETPATH to ensure
+ these DLLs are placed in \System\Libs.
+2. Removed logging from RELEASE builds.
+
+Release 012
+===========
+Made by AnnW, 19th August 1999
+
+1. Fixed ARM4 errors as PPP 003 on ER5u share. Also fixed other ARM4
+ warnings.
+
+Release 011
+===========
+Made by AnnW, 12th August 1999
+
+1. Added VJCOMP from TCPIP 560.
+
+2. Converted logging code to use FLOGGER.
+
+3. Updated to use new version of COMMDB.
+
+
+Release 001
+===========
+Made by AnnW, 22nd April 1999
+
+1. Split PPP and DES from TCPIP 521.
+
+2. Removed all narrow-specific stuff from MNT.CMD and EBLD.BAT.
+
+3. Removed narrow def files and database from source directories.
+