====== inet-3.x ======

2017-10-02  ------ inet-3.6.2 released ------

2017-09-29  Levente Mészáros

	802.11: Removed expected access time from Contention display string.

2017-08-11  Raphael Riebl

	Edcaf: fix aifs calculation for customised aifsn

2017-07-06  ------ inet-3.6.1 released ------

2017-06-09  ------ inet-3.6.0 released ------

2017-06-07  Levente Mészáros

	Eliminated warning: unused variable

2017-06-01  Zoltan Bojthe

	CID 179298 Unchecked dynamic_cast
	CID 179297 Unchecked dynamic_cast
	CID 179296 Unchecked dynamic_cast

2017-05-24  Levente Mészáros

	Added datarate signal to rate controls.

2017-05-24  Levente Mészáros

	Added 'g(erp)' mode set and renamed 'g' to 'g(mixed)' for disambiguation.
	Currently we don't have a mechanism to dynamically negotiate ERP only
	networks.

2017-05-23  Levente Mészáros

	Fixed AmsduDeaggregation, it must create Qos frames, updated fingerprints.

2017-05-23  Levente Mészáros

	Fixed packet name for subframes in aggregation/deaggregation.

2017-05-22  Levente Mészáros

	Fixed yet another memory leak.
	Changed casts to interface instead of implementation classes.
	Fixed memory leaks and fingerprint errors, somewhat reverted previous changes.

2017-05-18  Levente Mészáros

	Fixed delete calls, protected frame is destructred by the frame sequence.

2017-05-18  Levente Mészáros

	Fixed memory leaks by splitting frame ownership between InProgressFrames and
	FrameSequences.

2017-05-17  Levente Mészáros

	Added missing delete calls.

2017-05-17  Benjamin Martin Seregi

	Fixed (Non)QoSRecoveryProcedure and removed a TODO.

	1. Typo in incrementStationLrc(): it incremented the SSRC. 2. When {SSRC,
	SLRC} = {long,short}RetryLimit the procedure must not reset SSRC and
	SLRC. 3. TODO in QoSRecoveryProcedure, see the above comment.

2017-05-17  Benjamin Martin Seregi

	InProgressFrames: seqAndFragNums must not refer to non-QoS frames.

2017-05-17  Levente Mészáros

	Added missing destructors.
	Added missing deaggregation to controlFrameReceived.
	Fixed typo in sequence number comparison.
	Fixed deleting in progress frames when the frame sequence is finished.

2017-05-17  Zoltan Bojthe

	Added descriptors - for watch inside of Ieee80211ReceptionIndication, etc

2017-05-11  Zoltan Bojthe

	~ Ieee80211OldMac removed

2017-05-16  Benjamin Martin Seregi

	OriginatorQoSAckPolicy: frame might not be a QoS frame and a non-QoS
	frame is not eligible for BA (it does not have an ackpolicy field).

2017-05-15  Levente Mészáros

	Fixed backward compatibility of bitrate parameters, updated fingerprints.

2017-03-07  Levente Mészáros

	Removed @nic from Ieee80211Mac, the MAC module is not the NIC module.

2017-03-02  Benjamin Martin Seregi

	Extended the IEEE 802.11 MAC implementation with the following components
	(i.e. segregates them in their own classes):

	- coordination functions
	- channel access methods
	- MAC data services
	- frame exchange sequences
	- queues
	- TX/RX components

	It includes several enhancements and new features to the previous version
	such as block acknowledgement and MSDU aggregation.

2017-01-13  Levente Mészáros

	Added packet dropped signals.

2017-02-20  ------ inet-3.5.0 released ------

2016-10-20  Rudolf Hornig

	Refactoring: removed compatibility macros required for OMNeT++ 4.x builds
	+ warning fixes

2016-09-22  Zoltan Bojthe

	omnetpp5: add/use refreshDisplay()

2016-07-20  Zoltan Bojthe

	omnetpp5: replace deprecated cQueue functions: operator(), length(),
	empty()

2016-06-15  ------ inet-3.4.0 released ------

2016-01-08  Levente Meszaros

	802.11: Resurrected link break signal for giving up a transmission.

2016-06-01  ------ inet-3.3.0 released ------

2016-04-06  ------ inet-3.2.4 released ------

2016-03-16  ------ inet-3.2.3 released ------

2016-03-11  ------ inet-3.2.2 released ------

2016-01-21  ------ inet-3.2.1 released ------

2015-12-16  ------ inet-3.2.0 released ------

2015-12-09  Zoltan Bojthe

	Folder renamed from "newmac" to "mac"

2015-12-07  Andras Varga

	CollisionController was rewritten to use per-AC timers, to make its
	operation easier to follow in the IDE's Sequence Chart Tool.

	Existing collision controller (that used a single timer) was renamed
	to OptimizedCollisionController.

2015-12-09  Andras Varga

	Architecture change: all frame transmissions now go via a Tx, and
	ContentionTx only does contention. (ContentionTx was also renamed
	to plain Contention.)

2015-11-03  Andras Varga

	Fix: frames we transmit should set the NAV too (to prevent
	one AC from transmitting while another AC owns the channel)

2015-10-26  Zoltan Bojthe

	UpperMac: added parameters: fragmenterClass, reassemblyClass

2015-10-28  Zoltan Bojthe

	Fix: MAC queue length limit should not apply to management frames.

	This fixes the following bug: under heavy load, APs were unable to send
	out beacon frames. Beacon frames generated in the Mgmt module were
	discarded in the MAC because the queue was completely filled with data
	frames.

2015-10-22  Andras Varga

	BasicFragmentation rewritten; BasicReassembly edited

2015-10-22  Zoltan Bojthe

	Added fragmentation support

2015-10-22  Benjamin Seregi

	Added Onoe, ARF, AARF rate control algorithms

2015-10-16  Andras Varga

	Added rate selection and rate control support: IRateSelection,
	IRateControl, IStatistics

2015-12-04  Andras Varga

	Implemented early Ack timeout.

	Ack timeout should expire when reception of Ack is supposed to begin.
	When it does, we check whether a frame reception is in progress, and if
	not, we immediately retransmit. Otherwise, we wait until the whole frame
	has arrived (whether it was correctly received or not), and retransmit if
	it was NOT an Ack.

2015-10-15  Zoltan Bojthe

	DuplicateDetector: LegacyDD and QosDD to store fragmentNumbers

2015-10-26  ------ inet-3.1.1 released ------

2015-10-15  ------ inet-3.1.0 released ------

2015-10-12  Andras Varga

	Model added to master. In this initial form, it has roughly the same
	set of 802.11 features as the old Ieee80211Mac module: basic DCF and
	EDCA, with the channel access and some more parameters being
	configurable.

	How to switch to using the new MAC? Currently the old Ieee80211Mac is
	used by simulations, but Ieee80211Nic has been changed to make the type
	of the mac submodule configurable, via the new macType parameter.
	Thus, you only need to add the following line to your omnetpp.ini:

	**.macType = "Ieee80211CompatibleNewMac"

	Ieee80211CompatibleNewMac is a wrapper around Ieee80211NewMac to make
	its parameterization similar to the old MAC.

	NOTE THAT THE MAC IS NOW A COMPOUND MODULE. You can double-click on the
	mac submodule (in Tkenv) and expore its internals.

	Known issues (short-term TODO items):
	- No early ACK timeout, i.e. it only retransmits when the ACK has not
	  been fully received by the time it should have.
	- It uses EIFS instead of DIFS/AIFS too often. This is a limitation of
	  the 802.11 radio module: when it hears two frames that start at the
	  same time, it reports a corrupted frame, whereas it should interpret
	  that as just noise (as already the preamble and the PLCP header are
	  garbled).
	- Lifecycle events (shutdown, restart, crash) not supported yet.
	- It does not record as much statistics as the old model yet.

	Prominently missing features:
	- fragmentation, block acknowledgement, aggregation, frame rate selection

2015-09-04  Andras Varga

	The design was presented at the 2nd OMNeT++ Community Summit (Sept 3-4
	2015 at IBM Research, Zurich, Switzerland), and details discussed with
	several members of the community both in the Q&A session and informally.

	A revised and updated version of the presentation slides has been checked
	into the repo with the sources, as an odp document.

2014-08-13  Andras Varga

	Started development of a new 802.11 MAC model from scratch. The motiva-
	tion for starting over was that the old MAC dating back 2006 has been
	implemented largely as a single monolithic class that has accumulated
	so many features and accidental complexity over the years that the code
	has become very difficult to reason about and maintain, and it has become
	almost impossible to implement newer 802.11 features in it such as
	aggregation, various flavours of block acknowledgement, or HCCA mode.

	The goal of the development is to have a modular design, where
	components can be swapped in and out. Concepts such as contention-based
	channel access, frame exchange sequences, EDCA queues, aggregation,
	fragmentation, duplicate detection, block acknowledgement, frame rate
	selection, automatic rate selection, etc would be expressed as self-
	contained C++ classes that implement abstract interfaces and (may)
	have multiple implementations.

	This kind of modular design also favours the open-source development
	model, because abstract interfaces tend to give contributors better cues
	on where to start implementing a new feature, and new classes can
	be more readily accepted into the codebase because changes to existing
	code (and thus the risk of introducing new bugs) can be minimized.

	The starting point of the development was the old 802.11 MAC cca ~2006,
	before EDCA and other features were added. The code was heavily
	componentized, and nearly all of it was rewritten from scratch in the
	process. During the development we found that some components are
	better expressed as submodules of the main MAC module (communicating
	by C++ calls not messages), as it makes model structure more obvious
	to an observer, and also lets different implementations of the
	component have different parameterization.

	It is only the MAC that been replaced with new code. Other parts have
	been reused in near intact form: 802.11 frame formats, 802.11 radio
	implementation, descriptions of PHY modes, mgmt modules, etc.
