189 lines
8.3 KiB
Plaintext
189 lines
8.3 KiB
Plaintext
NORM Version History
|
|
|
|
Version 1.3b6
|
|
=============
|
|
- Fixed some oversite bugs that crept in with changes in 1.3b5
|
|
(Fixed code related to NormNode/NormObject retain and release)
|
|
- Changed NORM_TX_QUEUE_VACANCY posting behavior to be less chatty.
|
|
NORM_TX_QUEUE_VACANCY now posted _only_ after a call to
|
|
NormStreamWrite() fails to fulfill a full write request
|
|
(i.e. returns less than the "numBytes" requested to be written)
|
|
This helps prevent build up of these notifications in multi-
|
|
threaded applications that write to a stream in a different
|
|
thread than is fetching events via NormGetNextEvent().
|
|
- Added NORM_TX_WATERMARK_COMPLETED notification and NormGetAckingStatus()
|
|
function to provide API support for optional positive acknowledgment
|
|
(ACK) collection in NORM implementation. Note that use of
|
|
NormAddAckingNode(session, NORM_NODE_NONE) enables a NACK-based
|
|
watermark flushing concurrent with ongoing data transmission that
|
|
can be used as a scalable application-level flow control mechanism.
|
|
|
|
Version 1.3b5
|
|
=============
|
|
- Changed ProtoSocket::GetInterfaceAddress() and related methods on Win32
|
|
to use different system APIs depending on Windows version.
|
|
- Fixed some details related to compilation with g++ 4.x.
|
|
- Various issues fixed thanks to input from Timothy Chaplin.
|
|
- Fixed some issues where attempt to resync rx stream after long
|
|
outages (at high data rates) called assertion failures
|
|
(Thanks to Charlie Davis for finding this one)
|
|
- Fixed problem where, on Win32, the sender GRTT estimate was not
|
|
being updated (in the downward direction) properly.
|
|
- Changes to Protolib & Norm to support build of shared libraries
|
|
(Thanks to Dave Talmage & Timothy Mann)
|
|
- Added "NormSetRxPortReuse()" API and code support to allow
|
|
(with care) multiple NORM instances on the same host.
|
|
- Fixes to NORM congestion control including:
|
|
1) measurement of "recv_rate" at low transmission rates
|
|
fixed (made sure measurement was over sufficient
|
|
interval at low rates including cc startup)
|
|
2) Re-instated code to reduce rate when feedback stopped
|
|
being received.
|
|
3) Changed to time-based aging of feedback to "deactivate"
|
|
stale congestion control feedback representative state
|
|
kept by sender.
|
|
4) Fixed mis-set of PLR flag as CLR flag and fixed bug
|
|
in updating CC node list upon CC feedback reception.
|
|
(Thanks to Praveen Gopala for prompting all of this)
|
|
- Fixes for Win32 large file support "in normFile.cpp"
|
|
(Thanks to Titze Stefan for this fix).
|
|
- Added "NormSetGrttMax()", "NormSetGrttProbingMode()",
|
|
and "NormSetGrttProbingInterval()" APIs to control
|
|
NORM GRTT measurement/estimation process.
|
|
(Thanks to Dave Lucas for prompting me here)
|
|
- Changed posting of NORM_TX_QUEUE_VACANCY for streams such
|
|
that new postings of this event are made, _only_ after a
|
|
successful call to NormStreamWrite() ... This results in
|
|
reduced posting of unnecessary vacancy events, but now the
|
|
onus is on the app to pay attention to this event, since
|
|
another of it's type won't be posted until the app calls
|
|
NormStreamWrite() with non-zero content length.
|
|
(Thanks to Charlie Davis for bringing this to my attention)
|
|
- Made sure messages from self are ignored unless loopback
|
|
is explicitly enabled (see NormSetLoopback()) even for
|
|
operating systems whose ProtoSocket::SetLoopback() doesn't
|
|
work properly.
|
|
|
|
Version 1.3b4
|
|
=============
|
|
- Added NormSetTxCacheBounds(), see NormDevGuide for details
|
|
- Fixed issue with NormStreamSeekMsgStart() that crept in
|
|
somehow (Thanks to Jody Hagins for finding it).
|
|
- Added code to check that NormFileEnqueue() argument is
|
|
actually a file and not a directory name (Thanks to
|
|
Charlie Shyr for finding this)
|
|
- Fixed NormSession::Open() so that IPv6 works
|
|
|
|
Version 1.3b3
|
|
=============
|
|
- Added NORM_TX_FLUSH_COMPLETE notification so the sender app
|
|
can make an educated guess as to when his receivers are
|
|
all happy.
|
|
- Added NORM API sample code in "examples" directory.
|
|
- Added NormObjectGetBytesPending() call for receivers to
|
|
use to monitor reception progress.
|
|
|
|
Version 1.3b2
|
|
=============
|
|
- Added "graceful" stream shutdown option to
|
|
NORM API via the NormStreamClose() call.
|
|
- Embedded FLAG_STREAM_END flag in "payload_reserved"
|
|
field of NORM_DATA messages. This is beyond
|
|
the current RFC 3940 spec for NORM, but probably
|
|
something to push for addition to the next revision
|
|
of the spec.
|
|
- Embedded equivalent FLAG_MSG_START in "payload_reserved"
|
|
field of NORM_DATA messages. This allows message
|
|
boundary recovery for streams upon FEC decoding.
|
|
Again, this is "beyond" the current NORM spec, but
|
|
probably a good idea (Other stream control functions
|
|
might use this field as well)
|
|
- Added Visual Studio .NET project files
|
|
|
|
Version 1.3b1
|
|
=============
|
|
- Prevented pile-up of TX_QUEUE_VACANCY notifications
|
|
- Fix/optimization to ProtoDispatcher threaded operation
|
|
to prevent possible (although minor) race condition
|
|
during threaded operation.
|
|
- Added NORM API calls: NormSetTxSocketBuffer(),
|
|
NormSetRxSocketBuffer(), NormSetUserData(),
|
|
NormGetUserData(), and implemented overlooked
|
|
NormGetDescriptor()
|
|
- Thanks again to Charlie Davis for finding some
|
|
performance deficiencies.
|
|
|
|
Version 1.2b9
|
|
=============
|
|
- Fixed bugs with NormServerNode::retrieval_pool mgmnt
|
|
(Thanks to Charlie Davis for tracking these down!!!)
|
|
- Changed ProtoDispatcher thread stuff so threads
|
|
(e.g. the NORM API thread) are only actively
|
|
signaled and interrupted when absolutely necessary
|
|
- Added support for NORM_TX_QUEUE_VACANCY notification
|
|
(for NORM_OBJECT_STREAM only at the moment)
|
|
|
|
Version 1.2b8
|
|
=============
|
|
- Fixed bug introduced during "alignment" changes
|
|
in previous release.
|
|
- Fixed Protolib WIN32 build issue
|
|
|
|
Version 1.2b7
|
|
=============
|
|
- Changed normMessage.[h|cpp] to fix alignment issues
|
|
(and other alignment stuff)
|
|
- Fixed bug in NormCmdCCMsg::Iterator::GetNextNode()
|
|
(might significantly help CC performance
|
|
- Fixed NormServerNode::FreeBuffers() bug which
|
|
could result in seg fault on remote server timeout
|
|
or at app shutdown
|
|
- Fixed bug where tx_sequence count was being
|
|
incremented for all transmitted messages (The "fix"
|
|
does not yet address separate increment of messages
|
|
sent to different addresses, etc). The bug impacted
|
|
congestion control performance when nodes acted as
|
|
sender _and_ receiver (caused receives to overestimate
|
|
packet loss)
|
|
|
|
Version 1.2b6
|
|
=============
|
|
- Added normApi.cpp into libNorm.a (Norm.lib (WIN32)) builds
|
|
- Fixed Solaris build (new protolib code)
|
|
- Included very rough user's guide for "norm" demo app
|
|
|
|
Version 1.2b5
|
|
=============
|
|
- Initial release with theoretically-working API
|
|
(including "Norm Developer's Guide!")
|
|
|
|
Version 1.2b4
|
|
=============
|
|
- Finally remembered to update this file!
|
|
- Added "help" command to "norm" demo app (Thanks Marinho Barcellos!)
|
|
- New rxbuffer mgmnt scheme to better use limited buffer space.
|
|
- Removed explicit rate limit on receiver feedback messages
|
|
- API more complete and established better API naming conventions
|
|
(documentation soon to follow, I promise!)
|
|
- There have been some "cc" tweaks and bug fixes.
|
|
- NORM RFC 3940 was released and this version is in compliance.
|
|
- Added optional positive acknowledgements for sender-defined
|
|
"watermarks".
|
|
- Fixed multicast leave problem when interfaceName was used for join
|
|
|
|
Version 1.1b9
|
|
=============
|
|
- There have been a number of bug fixes since 1.1b3. This release
|
|
fixes a bug in NormBlockBuffer::Remove() and
|
|
NormObjectBuffer::Remove(). (Thanks Thava!)
|
|
|
|
Version 1.1b3
|
|
=============
|
|
- Started keeping version history. This release includes
|
|
some bug fixes, smoother congestion control operation, etc
|
|
over some of the earlier releases.
|
|
|
|
Please address bug reports, suggestions etc to the email list:
|
|
|
|
mailto:norm-dev@pf.itd.nrl.navy.mil
|