linklayerprotocols/pppnif/group/RELEASE.TXT
changeset 0 af10295192d8
--- /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.
+