2012-08-07  ------ inet-2.0.0 released ------

2012-06-25  ------ inet-1.99.5 released ------

2012-07-11  Zoltan Bojthe

	Fixed connection detection:
	When two modules are connected, EtherMAC now throws error if
	the phys gates are not connected using a transmission channel.
	Previously, connection status was set to "not connected" if
	modules were connected via idealChannel or other non-transmission
	channel which was very misleading.

2012-06-15  Zoltan Bojthe

	Renamed netwIn, netwOut gates to upperLayerIn, upperLayerOut

2012-04-27  Tamas Borbely

	Added optional ITrafficConditioner modules into the
	ingress and egress path of EthernetInterface.

2012-04-26  Tamas Borbely

	EthernetInterface: EthDropTailQosQueue has been replaced with
	EtherQoSQueue. EtherQosQueue handles PAUSE frames, and can
	be parametrized with an IOutputQueue module which serves the
	data frames.

2012-04-26  Tamas Borbely

	EthernetInterface: the inner queue is the default queue.
	(It was an external DropTailQueue before.)

2012-04-24  Tamas Borbely

	EthernetInterface: compound modules are accepted as external queue
	module. The module must implement IOutputQueue, and the C++
	class of the simple module connected to the "out" gate must
	implement IPassiveQueue.

2012-03-20  ------ inet-1.99.4 released ------

2012-02-24  ------ inet-1.99.3 released ------

2011-02-10  Zoltan Bojthe

	EtherMAC: checked in a series of commits that implement reconnect
	support for half-duplex mode. (With full-duplex mode it has already
	been supported.)

	The problem is that when the link is re-created or re-enabled,
	the MAC does not know about the ongoing transmissions on the wire
	(by having missed the corresponding EtherFrame/EtherJam/EtherIFG
	messages that are sent at the beginning of the transmissions),
	so it cannot immediately start the CSMA/CD procedure. (Note that
	this is not a problem in full-duplex mode which doesn't need
	carrier sense.)

	To solve this, we have introduced a special "reconnect" state
	(RX_RECONNECT_STATE), during which the MAC listens on the channel
	in order to pick up the channel state. Transmission may only begin
	after the reconnect period is over. The length of the reconnect
	period is the duration of the maximum-size frame. We have assumed
	that the finite reconnect period is not a problem for most simulation
	use cases.

	Also, a set of related disconnect/reconnect related improvements
	were made in EtherHub and EtherBus.

2011-12-22  Andras Varga

	statistics revised:

	- record packet counts in a less confusing way: as rcvdPk:count instead
	  of packetBytes(rcvdPk):count or rcvdPkBytes:count; total bytes is now
	  recorded as rcvdPk:sum(packetBytes)
	- standardizing on lower case statistics titles
	- EtherEncap, EtherLLC: emit cPacket* instead of packet byte length
	- signal/statistic renaming: rcvdPkBytesFromHL --> encapPk,
	  rcvdPkBytesFromMAC --> decapPk, sentPause --> pauseSent,
	  passedUpPkBytes --> passedUpPk, etc.
	- removed "Statistics" sections from docu, as @statistic are self-describing

2011-12-21  Zoltan Bojthe

	EtherMAC/~FullDuplex: refined @signal declarations: type=cPacket
	changed to type=EtherFrame

2011-12-21  Zoltan Bojthe

	EtherMAC,EtherMACFullDuplex: emitssion of packetSentToLowerSignal
	moved from startFrameTransmission() to handleEndTxPeriod()

2011-12-21  Zoltan Bojthe

	Ethernet: frameByteLength

	- EtherFrame: renamed origByteLength to frameByteLength
	- EtherMAC/FullDuplex:
	  - throw exception if EtherFrame from upper layer is shorter than 64 bytes
	  - store original frame length once (in processFrameFromUpperLayer())

2011-12-08  Zoltan Bojthe

	Checked in a branch (topic/etherfixes) with a lot of improvements on
	the Ethernet model. Details:

	* fixes for PAUSE frames: set dest address to MULTICAST_PAUSE_ADDRESS
	  if it was unspecified

	* MACRelayUnitNP/PP: calculate PAUSE finish times based on the txrate
	  of the corresponding ports

	* Added EtherFrameClassifier for QoS queues

	* EthernetInterface:
	  - moved queue module to between EtherEncap and EtherMAC modules;
	  - use QoS queue
	  - use empty string instead of "NoQueue" to select the internal queue

	* EtherMAC, EtherMACFullDuplex, EtherMACBase:
	  - implemented 40G, 100G Ethernet
	  - the "duplexEnabled" parameter was renamed to "duplexMode"
	  - EtherMACFullDuplex now throws an error when you try to configure it
	    to be half-duplex
	  - the "carrierExtension" NED parameter was removed (as it is not really
	    an option: it is mandatory for Gigabit Ethernet in half duplex mode)
	  - refactoring: moved several functions from EtherMACBase to EtherMAC/
	    EtherMACFullDuplex for readability, and simplified  EtherMACFullDuplex
	    by removing halfduplex-related code
	  - bugfix: do not count PREAMBLE and SFX into the frame length when
	    padding frames to the minimal length
	  - bugfix: slot time for Fast Ethernet and Gigabit Ethernet was wrong
	  - bugfix: the original inner queue stored the PAUSE frames in reverse
	    order at the top of queue; we now cQueue with compare function as
	    a priority queue
	  - bugfix: when a transmission was finished, and a PAUSE frame had
	    been received during the transmission, then the sent frame was not
	    deleted but retransmitted when the PAUSE time elapsed
	  - bugfix for EtherMACFullDuplex: PAUSE frames with bit errors were
	    not discarded
	  - emit only one signal when sending up a frame (removed passedUpPkBytes
	    signal)
	  - changed emitted values in most signals: emit packet objects instead of
	    byte counts
	  - removed NotificationBoard support (one can use signals instead
	    where needed)
	  - do not calculate txrate-related parameters when module is not connected
	  - added more error detections
	  - fixes for dest address check on received messages (will need to be
	    revised when implementing management of multicast address)
	  - changed maximum cable length violation limits to be based on meters
	  - some fixes for reconnecting (incomplete)

	* Ethernet.h: renamed some constants for readability

	* Renamed EtherPadding message to EtherIFG

	* Added SNAP support (also added TODO notes to linklayer/ieee80211, and
	  networklayer/arp|ipv6|manetrouting that they should set the etherType)

	* ARP: set correct etherType on outgoing packets

	* bugfix: buffer was too small for some sprintf() statements

	* added missing @labels to NED files

	* EtherBus: bugfix (used tap[-1] if only one node was connected)

	* added examples

	* comments editing, code styling, optimizations, added TODOs

2011-11-18  ------ INET-1.99.2 released ------

2011-11-18  Zoltan Bojthe

	NEDDOC fixes

2011-09-14  Zoltan Bojthe

	bug #358: documentation describes the removed Autoconfiguration feature

2011-08-15  Andras Varga

	Adapted units to recent OMNeT++ change: replaced Kbps,KB,MB,GB with
	kbps,KiB,MiB,GiB

2011-08-02  Zoltan Bojthe

	fixes for cppcheck

2011-07-19  Andras Varga

	cPolymorphic -> cObject (cPolymorphic became cObject in OMNeT++ 4.0)

2011-06-22  Zoltan Bojthe

	fix for bug #356: misleading documentation of EtherBus and EtherHub

2011-06-21  Zoltan Bojthe

	fix #352: MACRelayUnitBase::readAddressTable() should check addressTable
	capacity

2011-06-21  Zoltan Bojthe

	fix for bug #357: ETHER_PAUSE_COMMAND_BYTES has wrong value

	It should be 4 (2 bytes opcode + 2 bytes parameter). The type field is
	part of ETHER_MAC_FRAME_BYTES.
	(see http://www.techfest.com/networking/lan/ethernet3.htm for PAUSE
	frame format)

2011-06-21  Zoltan Bojthe

	fix bug #354: default value of EtherBus.propagationSpeed:
	200 mps ---> 200 000 000 mps

2011-06-10  Zoltan Bojthe

	MACRelayUnit fixes: remove numWirelessPorts, don't send back packet to
	wireless port

	The AP management send back packets to radio

2011-06-03  Andras Varga

	cosmetics: space usage made somewhat more consistent throughout the code

	Notes:
	- if you have an INET fork and want to compare the code, use the
	 "Ignore spaces" option of your visual diff tool. Most tools have
	 this option; Meld and Araxis Merge certainly do.

	- I used omnetpp/_scripts/tidymodel/spaces.pl, plus some manual tweaks

2011-05-30  ------ INET-1.99.1 released ------

2011-05-27  Zoltan Bojthe

	EtherMAC bugfix: notified when datarate changed on channel

	Bug was the following:
	 The module does not notice if the datarate of the channel
	 changed! It should update the interface entry.

	also some code style changes

2011-05-27  Andras Varga

	parameter rename: csmacdSupported -> csmacdSupport

2011-05-26  Zoltan Bojthe

	Renamed IP... classes to IPv4... or IPvX...

2011-05-24  Zoltan Bojthe

	Added signals to the new PcapRecorder module: packetSentToLower,
	packetReceivedFromLower, packetSentToUpper, packetReceivedFromUpper
	(signal data: cPacket*).

2011-05-24  Zoltan Bojthe

	EtherLLC: drop unknown frames instead of throwing error
	Needed for VoIPTool: it receives other kinds of Ethernet frames too

2011-05-19  Rudolf Hornig

	Added a SPEED_OF_LIGHT global constant in INETDefs.h

2011-05-13  Zoltan Bojthe

	EtherMAC: fixed queue cleaning, for statistics of dropped packets

2011-05-06  Zoltan Bojthe

	EtherMAC: fixed handling of link disconnect/connect

2011-04-29  Tamas Borbely

	fix EtherLLC signals (rcvdPkBytesFromMAC and passedUpPkBytes)

2011-04-27  Rudolf Hornig

	Ethernet refactoring. EtherHostQ removed. csmacdSupport parameter added
	to Switch, EtherHost and EthernetInterface.

2011-04-12  Rudolf Hornig

	Refactoring in Ethernet and PPP interfaces. NoQueue can be used also as
	queueType parameter. Added support for input and output hooks in NICs.

2011-03-31  Zoltan Bojthe

	change simsignal_t member variables to static member

2011-03-29  Zoltan Bojthe

	featuresupport: add ETHERNET feature

2011-03-22  Zoltan Bojthe

	changes simsignal_t variables to static member

	also some codestyle changes, include changes

2011-03-03  ------ INET-1.99.0 released ------

2011-03-01  Zoltan Bojthe

	Ethernet Layer: optimise #includes, code styling

2011-03-01  Rudolf Hornig

	Interfaces renamed to start with I.

2011-03-01  Rudolf Hornig

	Module interface renaming.

2011-03-01  Zoltan Bojthe

	EtherMACBase: code styling

2011-03-01  Zoltan Bojthe

	EtherMAC* : code styling

2011-03-01  Zoltan Bojthe

	NEDDOC changes

2011-02-28  Rudolf Hornig

	Renamed INetworkInterface to IWiredNic. Support for full duplex ethernet
	NIC.

2011-02-22  Andras Varga

	Swiched NED documentation comments to explicit hyperlinking of NED
	type names, using tilde. Example: "TCP" was changed to "~TCP"
	wherever the module and not the protocol was meant.

	The reason for the switch was that autolinking produced too many
	false hits (e.g. "TCP connection" and "IP address" would link
	to the TCP and IP modules.)

2011-02-03  Levente Meszaros

	Fix: code used obsolete display string tag to set connection line style
	(the correct one is "ls")

2011-01-21  Zoltan Bojthe

	EtherMac: handle channel connection/disconnection on phys gates

2011-01-14  Zoltan Bojthe

	remove unwanted EV log

2011-01-10  Zoltan Bojthe

	Code style changes:

	- tab-to-space conversion
	- '{' to new line
	- too long lines
	- remove trailing whitespace from lines
	- indentation

2010-12-13  Zoltan Bojthe

	EtherMac: add duplexEnabled parameter to IEtherMac interface

2010-09-30  Andras Varga

	introduced a utility function for interface name creation

2010-12-09  Zoltan Bojthe

	The etherType is EtherType enum in EthernetIIFrame

2010-09-07  Zoltan Bojthe

	bugfix for ethernet (null pointer exception)

2010-03-05  Andras Varga

	removed redundant (long) conversion from emit() calls

	also: accidental tab-to-space

2010-03-05  Andras Varga

	fixed `title="title"' lines

2010-03-05  Andras Varga

	@statistic: added missing 'vector' recording mode

2010-03-05  Andras Varga

	update for omnet++ 4.1b3:

	renamed @signal to @statistic, modeHint= to record=

2010-02-26  Zoltan Bojthe

	convert statistics to use signals

2010-06-21  Zoltan Bojthe

	verify input/output datarate identity

2010-06-21  Zoltan Bojthe

	getReceptionChannel() -> getIncomingTransmissionChannel()

2010-06-18  Zoltan Bojthe

	more changes...

	- Add EtherDescr eth configuration descriptor
	- Add SEND_IFG_STATE
	- etc.

2010-06-15  Zoltan Bojthe

	bugfix: EtherMACFullDuplex didn't wait InterFrameGap before send a
	packet

2010-06-14  Zoltan Bojthe

	Remove unused variable

2010-06-14  Zoltan Bojthe

	IEtherMAC minor changes

	add duplexEnabled parameter. Modify comment.

2010-06-14  Zoltan Bojthe

	EtherMAC, EtherMacFullDuplex use IEtherMAC moduleinterface

2010-06-14  Zoltan Bojthe

	verify transmission rate value

2010-06-14  Zoltan Bojthe

	convert self message kind values to enum

2010-06-14  Zoltan Bojthe

	Rename modules

	EtherMAC2 to EtherMACFullDuplex, EtherHost2 to EtherHostFullDuplex

2010-06-10  Zoltan Bojthe

	EtherMAC - EtherMAC2 changes

2010-06-09  Zoltan Bojthe

	EtherMac*: change queue using

2010-06-08  Zoltan Bojthe

	add EV logging

2010-06-02  Zoltan Bojthe

	calculate RxTxtime when back-to-back frame

2010-06-02  Zoltan Bojthe

	remove txrate parameter

2010-06-01  Zoltan Bojthe

	checking equivalence of datarate of channels connected to same Bus/Hub

2010-05-31  Zoltan Bojthe

	remove cChannel ptr optimisation and remove autoconfig

2010-05-31  Zoltan Bojthe

	remove unused code calculate some variables at initialize time store
	channel(s) at initialize time set autoconfig mode OFF

2010-05-28  Zoltan Bojthe

	Remove autoconf

2010-05-28  Zoltan Bojthe

	minor fix/hack: physInGate does not have getTransmissionChannel()
	function

2010-06-21  Zoltan Bojthe

	indent changes - from Thomas Reschka

2010-02-02  Zoltan Bojthe

	Bugfix: printf "%d" and int64 getByteLength()

2010-01-29  Zoltan Bojthe

	bugfix: printf int64 getByteLength()

2009-08-05  Rudolf Hornig

	added MTU parameter to EtherMAC2

2009-07-21  Andras Varga

	labels change: EtherFrame/PPPFrame labels on hosts/routers renamed to
	EtherFrame-conn/PPPFrame-conn, so that EtherMAC, PPPInterface etc are
	not offered by the palette when editing a network

2009-07-19  Andras Varga

	added further module @labels (ethernet-node, wireless-node, mpls-node);
	added default icons to several module types

2009-07-18  Andras Varga

	more gate labels added; also, fixed case of TCPOut gates (i.e. they got
	renamed to tcpOut)

2009-07-17  Levente Meszaros

	Added labels to gates to so that the graphical editor can match them
	when the user creates a connection:

	@labels(EtherFrame); labels(Ieee802Ctrl/up); labels(Ieee802Ctrl/down);
	@labels(TCPCommand/up); @labels(TCPCommand/down);
	@labels(UDPControlInfo/up); @labels(UDPControlInfo/down);
	@labels(Ieee80211Frame);  @labels(IPControlInfo/down);
	@labels(IPControlInfo/up);  @labels(IPDatagram);
	@labels(IPv6ControlInfo/up); @labels(IPv6ControlInfo/down);
	@labels(IPv6Datagram)

2009-03-25  ------ INET-20090325 released ------

2008-07-26  Andras Varga

	* EtherMAC2: refactored to use cGate::getDatarateChannel()

2008-07-07  Andras Varga

	* removed utils.h/cc: no longer needed with OMNeT++ 4.0 (which has
	  built-in message IDs, message tree IDs and sequence chart
	  visualization)

	* EtherMAC2: performance: only fire notifications if someone is listening

	* EtherMAC2: made notification consistent with PPP: use TxDetails as
	  "details" object

	* EtherMAC, EtherMAC2: performance: remember output gate pointer
	  instead of looking it up for each send()

2008-06-29  Andras Varga

	* moved class declarations from .cc files into separate .h files
	  for EtherHub, EtherLLC, EtherEncap, etc

2008-01-01..2009-03-25  Andras Varga, Rudolf Hornig

	Porting of INET to OMNeT++ 4.0, and some general face lift:
	* better directory structure (names changed to lowercase; moved sources
	  under src/; better names, e.g. networkinterfaces -> linklayer)
	* build system to use a deep makefile
	* updated the C++ code for the 4.0 API (follow name changes; use
	  int64-based simtime_t; use cPacket; etc.)
	* NED files converted to 4.0 syntax
	* make use of new features in NED files (module interfaces, inout
	  gates, @unit, etc.)

2006-XX-XX Levente Meszaros

	* created EtherMAC2, which is a simplified, duplex-only version of
	  EtherMAC (i.e. it does not contain the CSMA/CD algorithm)

2004-09-15  Andras Varga

	Patch for getting it to work as IPSuite network interface by Emin
	Ilker Cetinbas [niw3@yahoo.com], Sept 2004.

2004-05-10  Andras Varga

	* EtherMAC: auto MAC address assignment

	* EtherMAC: auto-configuration of transmission rate and duplex/half duplex i
	  mode.

	* it's no longer an error if EtherMAC is not connected to the network
	  ("unplugged cable")

	* elaboration of Ethernet frame types: Ethernet II, 802.3 with LLC,
	  802.3 with LLC and SNAP.

	* added EtherEncap, which does encapsulation/decapsulation with
	  Ethernet II frames.

	* communication between LLC and higher layers changed: now it uses
	  controlInfo() as introduced in OMNeT++ 3.0

	* PAUSE handling fixed: PAUSE frames to be sent have now priority
	  in the MAC (they overtake normal frames in the queue).
	  MACRelayUnits: minimal time interval introduced that must elapse
	  before sending another PAUSE frame.

	* new example network: models a very large Ethernet LAN. Ini files
	  for old example networks available in test/ subdir.

	* sample application changed to EtherAppCli+EtherAppSrv. EtherAppCli
	  sends requests of at configurable intervals to EtherAppSrv.
	  Each request contains how many bytes EtherAppSrv should send back
	  in response. If this number is 0, no frames are sent; if it is
	  larger than ~1500, several frames are sent back.

2004-04-26  Andras Varga

	* Checkin of the Ethernet model. The Ethernet MAC model was written
	jointly with David Wu during my stay between February and October 2003
	at CTIE, Monash University, Melbourne, Australia, on the invitation
	of Dr. Ahmet Sekercioglu.

	If you are interested in the early history of the Ethernet code,
	change to the project root and type

	$ gitk -- NetworkInterfaces/Ethernet INET/src/networkinterfaces/ethernet \
	    INET/src/linklayer/ethernet
