Read Me
*****************************************************************************
*** Releases ***
*****************************************************************************
*** 0.8.4 ***
- New Feature: [IP] Direct Transmission
Ref.: https://sourceforge.net/p/ipway/tickets/52/
*** 0.8.3 ***
- New Feature: [API] Forward ARP Reply/Request
Ref.: https://sourceforge.net/p/ipway/tickets/51/
*** 0.8.2 ***
- New Feature: [API] Add more APIs to get Socket parameters.
Ref.: https://sourceforge.net/p/ipway/tickets/50/
- Bug Resolved: [TCP] Tx Windows not respected, check SndWND usage.
Ref.: https://sourceforge.net/p/ipway/tickets/49/
- Bug Resolved: [TCP] Request a better management of Tx Pop and Tx Push pointers
Ref.: https://sourceforge.net/p/ipway/tickets/48/
*** 0.8.1 ***
- Bug Resolved: [TCP] Tx buffer: Push and Pop indexes not managed correctly.
Ref.: https://sourceforge.net/p/ipway/tickets/47/
*** 0.8.0 ***
- Bug Resolved: [TCP] Window Scale Option: Send Window Scale wrongly managed
Ref.: https://sourceforge.net/p/ipway/tickets/46/
- Bug Resolved: [ARP] Bug in IWF_GetMACAddr, review the subnet mask compare.
Ref.: https://sourceforge.net/p/ipway/tickets/45/
- New Feature: [TCP] Manage the Receive Window Scale Option.
Ref.: https://sourceforge.net/p/ipway/tickets/30/
- New Feature: [ICMP] Execute the custom ICMP handler if defined by
IWD_CFG_ICMP_MSG_HANDLER_NAME.
Ref.: https://sourceforge.net/p/ipway/tickets/44/
- New Feature: [TCP] Add a service ables to retrive the TCP connection identifier.
Ref.: https://sourceforge.net/p/ipway/tickets/43/
*** 0.7.15 ***
- Bug Resolved: [IP] IPv4 Fragmentation issue
Corrected the length of the single fragment.
Ref.: https://sourceforge.net/p/ipway/tickets/42/
- Bug Resolved: [API] IP address not reset correctly in
IWF_RequestIpAddrAssignment before starting a new ip addr
assign method.
Ref.: https://sourceforge.net/p/ipway/tickets/39/
- Bug Resolved: [ALL] Add support of 2 Ethernet controllers.
Thanks to this fix is possible configure up to 2 Ethernet
controllers (IWD_CFG_MAX_NETID_SUPPORTED = 2).
Ref.: https://sourceforge.net/p/ipway/tickets/41/
- Improvement: [ALL] IpWay.h file MUST be the only file to include outside.
Thanks to this improvement the user shall only include IpWay.h
file to compiler the whole IpWay library (the inclusion
of the Ethernet.h and Socket.h files is not needed anymore).
Ref.: https://sourceforge.net/p/ipway/tickets/40/
*** 0.7.14 ***
- New Feature: [NDP] Duplicate Address Detection (RFC 4862).
Ref.: https://sourceforge.net/p/ipway/tickets/34/
- New Feature: [DHCP] Make the BROADCAST bit in the 'flags' field configurable.
Note: From RFC2131: A client that cannot receive unicast IP datagrams
until its protocol software has been configured with an IP address
SHOULD set the BROADCAST bit in the 'flags' field to 1 in any DHCPDISCOVER
or DHCPREQUEST messages that client sends. The BROADCAST bit will provide
a hint to the DHCP server and BOOTP relay agent to broadcast any messages
to the client on the client's subnet. A client that can receive unicast
IP datagrams before its protocol software has been configured SHOULD
clear the BROADCAST bit to 0. The BOOTP clarifications document
discusses the ramifications of the use of the BROADCAST bit [21].
Ref.: https://sourceforge.net/p/ipway/tickets/12/
- Bug Resolved: [API] IWF_RequestIpAddrAssignment shall reset the ip address before
starting a new ip addr assign method:
IWF_RequestIpAddrAssignment shall reset the ip address before starting
a new ip address assignment method, in particular before starting DHCP and NDP.
The reason of that is a bad behaviour with some routers when the ip addr assign
method change from AUTOIP to DHCP after a call to IWF_RequestIpAddrAssignment,
in fact if we do not reset the ip address between two methods, the new method
(DHCP in this case) will use as source address to send DHCP messages
the ip address configured by the previous method (AUTOIP), and this could
generate problems with some routers therefore the ip address MUST be reset.
Ref.: https://sourceforge.net/p/ipway/tickets/38/
*** 0.7.13b ***
- Added missing file IpWay_Compiler.h.
*** 0.7.13 ***
- Bug Resolved: [TCP] Duplicated acknowledge:
In order to avoid the Duplicated acknowledge the SND.NXT is updated
only after a segment transmission tacking care in case of
FIN flag transmitted the SND.NXT shall be advanced of one more.
Ref.: https://sourceforge.net/p/ipway/tickets/8/
- New Feature: [NDP] Check all notes reported in RFC4861 appendix D:
All notes are supported by the library. In this release
we get the first success of NDP.
Ref.: https://sourceforge.net/p/ipway/tickets/7/
- New Feature: [CHECKSUM] Add support of hardware checksum calculation
The user can configure two way for the CHECKSUM calculation in
Hardware or in Software by the configuration variable
IWD_CFG_CHECKSUM_MODE. (see IpWay_Cfg.h file).
Note: Most of new ETHERNET peripheral support the calculation of
Checksum fiels of TCP/UDP/ICMP/IP protocols via hardware,
therefore by this variable (IWD_CFG_CHECKSUM_MODE) it is possible
enable or disable the Software checksum calculation.
IMPORTANT: if the CHECHSUM calculation is configured in hardware
in the library (i.e. IWD_CFG_CHECKSUM_MODE = IWD_CHECKSUM_BY_HARDWARE),
then coherently the user shall configure the ethernet pheripheral
to calculare the checksum in hardware.
Ref.: https://sourceforge.net/p/ipway/tickets/4/
*** 0.7.12 ***
- Bug Resolved: [ICMP] Echo Reply sends 8 bytes more than of the received
Echo Request.
Ref.: https://sourceforge.net/p/ipway/tickets/3/
- Bug Resolved: [TCP] TCP Active connection:important note
Ref.: https://sourceforge.net/p/ipway/tickets/5/
In case of Active connection the configuration variable
"IWD_CFG_TCP_MAX_SYN_RTX" MUST BE bigger than zero; we suggest
at least 3. Note: the default value of this variable is zero,
it shall be moved to 3.
Moreover, In case of Little Endian CPU
achitecture (e.g. ARM based MCU like STM32), the IWF_TcpOpen
shall be modified to introduce the swap of Port number;
the application should fill the "Port" filed of "DstSocketPtr"
parameter, considering the port number in CPU architecture order,
in other words if the port number comes from a define, for example
CPU_PORT_NUMBER = 62905, then the application shall make the simple association:@n
DstSocketPtr->Port = DEST_PORT_NUMBER.@n
On the contraty, when the port number that we want to associte
comes from the network, for example from a TCP header, in this
case the port number will be in network byte order
(which correspond to the short swap (16bit) in case of little endian architecture),
therefore, if we want to associate to the "Port" filed of "DstSocketPtr"
a port number coming from network, let's call this NET_PORT_NUMBER,
the application shall make the following association:@n
DstSocketPtr->Port = IWM_CPU_N2HS(NET_PORT_NUMBER).
- API Update: According to the previous defect, when application use the IWF_TcpOpen() API
in active mode (which means parameter ActiveOpen = TRUE), the application
should fill the "Port" filed of "DstSocketPtr" parameter,
considering the port number in CPU architecture order: see the example
reported in the description of the IWF_TcpOpen() API.
- IPV6 development ongoing; PLEASE DON'T USE IT!!!
*** 0.7.11 ***
- Removed API: IWF_GetCurrentIpAddrAssignMtd(), because it is a duplicate of
IWF_GetIpAssignMtd() API.
- Bug Resolved: Description of Bug: IWF_UdpSend() API returns with error in case of
Socket, identified by SocketId, correctly binded to Ip Address
of a network interface.
Ref.: https://sourceforge.net/p/ipway/tickets/1/
Bug fixed: In case of Socket which Ip Address corresponds
to Ip Address of a configured network interface then the
IWF_UdpSend() API is terminated with success!
- Bug Resolved: Description of Bug: After sending a segment a spurius ACK
is sent, probably because of a bug in IWF_Tcp_SSEProcessing
service (in IpWay_Tcp.c file) that implement the following
phases of TCP protocol.:
-sixth, check the URG bit,
- seventh, process the segment text,
- eighth, check the FIN bit
Ref.: https://sourceforge.net/p/ipway/tickets/2/
Bug fixed: Wrong ACK was sent in IWF_Tcp_SSEProcessing,
it is fixed to the right one!
*** 0.7.10 ***
- Updated IWF_GetMACAddr() API behaviour: This service return IWD_E_NOT_OK
if it is called with an IP address (IPAddrPtr) that is not part of the
same sub network as the local address currently assigned to the controller
identified by NetId.
- Bug Resolved: Once got the ip address assignemnt by DHCP, if the cable is
disconnected after a long time (i.e. equal to timeout of AUTO IP) and then
recoonected, starts the AUTO IP address assigment instead of DHCP.
This because the library didn't manage the correctly the StateTime
variable of NetIf type; now thanks to IWF_NetIf_SetState the problem is solved.
- IPV6 development ongoing; PLEASE DON'T USE IT!!!
*** 0.7.9 ***
- Updated IWF_IcmpSend() API prototype; Modified the DestSocketPtr parameter and added u32Field parameter
- Updated IWF_GetIpConfig API prototype; Modified the types of parameters IPAddrPtr, SubnetMaskPtr and GatewayIPAddrPtr.
- Added new API IWF_RequestIpAddrAssignment(), IWF_GetCurrentIpAddrAssignMtd() and IWF_GetDesiredIpAddrAssignMtd()
- Added new API for IPV6 IWF_Icmp6Send()
- IPV6 started but NOT finished, PLEASE DON'T USE IT!!!
- IGMP started but NOT finished, PLEASE DON'T USE IT!!!
*** 0.7.8 ***
- Fixed a bug in Tcp Transmission.
- IPV6 started but NOT finished, PLEASE DON'T USE IT!!!
*** 0.7.7 ***
- In IpWay_Cfg.h IWD_CFG_PATHMTU_DISCOVERY_SUPPORT renamed to IWD_CFG_PATHMTU_DISCOVERY_ENABLED
- update of IWM_DEBUG_CHECK macro: in case of error returns the error identifier
instead of remain in a infinite loop.
*** 0.7.6b ***
- small fix regarding event timeout.
affected file: \IpWay_0.7.6b\demos\RT-STM32F746G-DISCOVERY-IPWAY\ipway\library\binding\ipwaythread.c
*** 0.7.6 ***
- TCP: Bug fix: the previous versions didn't work when the IWF_TcpSend function
was called to transmit TCP segments with length bigger than MSS;
- TCP: TCP segments scheduler faster.
- Checksum: Bug fix: compatible with big endian and little endian architecture.
*** 0.7.5 ***
- TCP and DHCP improvement.
*** 0.7.4 ***
- Added a new service EIF_GetLinkStatus; completed AUTOIP service.
*** 0.7.3 ***
- Added a new service: IWF_TimerUpdate
- Added a new parameter in the prototype of IWF_TcpSend function.
*** 0.7.2 ***
- Added a new service: IWF_GetState
*** 0.7.1 ***
- Added Mutex
*** 0.7.0 ***
- First release