2009-03-12  Sergei Gavrikov <sergei.gavrikov@gmail.com>

	* src/netif/slipif.c (slipif_init): in SLIP mode it quite erases
	NETIF_FLAG_UP bit. Fixed.

2008-10-22  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/netif/etharp.h: Silence warnings about struct fields
	unnecessarily marked as packed.
	* include/lwip/ip.h: Ditto.
	* include/lwip/dhcp.h: Ditto.

2008-09-24  Jonathan Larmour  <jifl@eCosCentric.com>

	* doc/lwip.sgml: Use correct link to eCosPro license.

2008-05-29  John Dallaway  <jld@ecoscentric.com>

	*cdl/lwip_net.cdl: Relax CDL contraints for CYGNUM_LWIP_TCP_WND
	to workaround CDL conflict resolution issue.

2008-02-21  John Dallaway  <jld@ecoscentric.com>

	* doc/lwip.sgml: Eliminate underscores in element IDs for
	recent DTDs.

2008-01-10  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/api/tcpip.c (tcpip_thread): Only call api_msg_input() if
	the sequential API is enabled in the config. Otherwise we pull
	in all the functions even for raw API only apps.
	* cdl/lwip_net.cdl: Clarify requirement for TCPIP thread even
	without CYGFUN_LWIP_SEQUENTIAL_API.
	Build new httpd2 test program.
	* tests/httpd2.c: New test/demo. Is much more realistic and
	flexible than the original httpd.c.
	* src/ecos/lwip_ecos_init.cxx: Pretend sequential API is enabled
	in this file always as we always need tcpip thread.
	* src/ecos/sys_arch.cxx (sys_arch_mbox_fetch): Comment typo fix.
	* tests/nc_test_slave.c: cyg/infra/testcase.h needs to always
	be included to allow CYG_TEST_* macros to work in NA case.

2007-10-23  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/api/api_msg.c (do_write): Catch any errors from tcp_output.

2007-10-19  Jonathan Larmour  <jifl@eCosCentric.com>

	* cdl/lwip_net.cdl (CYGNUM_LWIP_TCP_WND): Can't have a larger
	window than we could ever receive even with a single connection.
	Even this wouldn't be enough for multiple connections.

2007-09-10  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/core/mem.c: Use sys_arch_sem_wait instead of sys_arch_wait,
	throughout (in line with lwIP CVS), to avoid re-entrancy issues
	if a timeout needs to run.

2007-09-04  Jonathan Larmour  <jifl@eCosCentric.com>

	* cdl/lwip_net.cdl (CYGNUM_LWIP_TCP_WND): Constrain TCP receive window
	to be at least as large as the MSS.
	(CYGBLD_LWIP_PBUF_POOL_OVERRIDE_HEADER): Allow drivers to control
	pbuf pool creation.
	* doc/lwip.sgml: Doc absence of TCP persist timer and that there is
	no splitting of unsent TCP data.
	* include/arch/cc.h: Include CYGBLD_LWIP_PBUF_POOL_OVERRIDE_HEADER
	if needed.
	* src/api/api_msg.c (do_write): Fix Nagle algorithm in line with lwIP CVS,
	to improve send efficiency.
	* src/core/pbuf.c: Allow PBUF_POOL_MEMORY_DECL define to override
	pbuf_pool_memory definition.
	(pbuf_init): Allow PBUF_POOL_INIT macro to override pbuf pool creation.
	(PBUF_POOL_FAST_FREE): Use PBUF_POOL_FREE_HOOK if defined.
	* src/core/ipv4/ip_frag.c (ip_frag): Fix bug: ensure iphdr points to
	payload.
	* src/lwip_ecos_init.cxx: Remove unnecessary includes. Move netdev
	table definition, init_hw_drivers and lwip_eth_ecos_init to generic
	eth layer. Call out to cyg_lwip_eth_ecos_init() at init time
	instead.
	* src/ecos/sys_arch.cxx: Include cyg/io/eth/eth_drv.h to obtain
	prototypes for referenced functions.
	(sys_arch_mbox_fetch): Only handle CYG_LWIP_TCPIP_THREAD_EVENT_ETH_RX
	if using normal eth driver, not lwip-specific direct eth driver.	

2007-06-28  John Dallaway  <jld@ecoscentric.com>

	* cdl/lwip_net.cdl: Reference per-package documentation.

2007-05-01  Jonathan Larmour  <jifl@eCosCentric.com>

	* cdl/lwip_net.cdl (CYGNUM_LWIP_TCP_SND_QUEUELEN): Limit is 255,
	not 256.
	* include/arch/sys_arch.h: Add new eth rx tcpip thread event.
	* src/api/api_lib.c (netconn_write): Workaround send buffer
	window thread race with local var (patch taken from lwip cvs).
	* src/ecos/lwip_ecos_init.cxx: We might call stats_init so include
	stats.h header if needed.
	(cyg_lwip_eth_run_deliveries): Move to generic eth driver.
	(cyg_lwip_eth_indicate_rx_pkt): New function to set new event flag.
	(sys_arch_mbox_fetch): Clear mbox message event more appropriately.
	Check for new CYG_LWIP_TCPIP_THREAD_EVENT_ETH_RX event and
	call cyg_lwip_eth_process_rx() to deal with it.	

2007-04-20  Jonathan Larmour  <jifl@eCosCentric.com>

	* src/api/api_lib.c: Avoid race condition with creation/deletion of
	conn->sem by always precreating it.

2007-04-19  Jonathan Larmour  <jifl@eCosCentric.com>

	* cdl/lwip_net.cdl: tcpip.c is specific to sequential API, so
	only build it with CYGFUN_LWIP_SEQUENTIAL_API.
	(CYGNUM_LWIP_PBUF_POOL_BUFSIZE): Ensure pbuf pool bufs are
	multiple of alignment.
	(CYGNUM_LWIP_TCP_MSS): Set default in terms of pbuf pool buf
	size.
	* src/api/api_lib.c (netbuf_copy_partial): Use memcpy for
	speed, instead of byte copy.
	* src/core/pbuf.c (pbuf_init): Assert that pbuf pool bufsize is
	aligned.
	* src/ecos/lwip_ecos_init.cxx: Move etharp_init call from
	lwip_eth_ecos_init() to before tcpip thread has started, in
	cyg_lwip_init().
	Conditionalise parts specific to sequential API.
	Only init stats if config says so.
	* doc/lwip.sgml: New file. Add documentation.
	* doc/dunkels-lwip.pdf, doc/rawapi.txt, doc/sys_arch.txt:
	New files. Externally provided, for reference only.

2007-03-22  John Eigelaar  <jeigelaar@mweb.co.za>
                                                     
	* include/lwip/netif.h, include/lwip/inet.h: Added externC macro
	to public fucntions to make them C++ compliant.

2007-01-24  Jonathan Larmour  <jifl@eCosCentric.com>

	* include/lwipopts.h: ARP queueing can be tested with #if.
	* cdl/lwip_net.cdl: It is legal for CYGNUM_LWIP_MEMP_NUM_PBUF
	or CYGNUM_LWIP_MEMP_NUM_TCP_PCB_LISTEN to be 0.

2007-01-10  Jonathan Larmour  <jifl@eCosCentric.com>

	* Major overhaul of entire package for eCosPro. Far too many
	changes to mention. Most of the eCos port is rewritten, tests
	modified, CDL rewritten, some bug fixes in the stack itself,
	IP fragmentation memory optimisation, and more.

2006-05-09  Andrew Lunn  <andrew.lunn@ascom.ch>

	* src/ecos/init.c (arp_timer): Only compile this function when
	Ethernet is supported.
	* include/lwipopts.h: PAP_SUPPORT & CHAP_SUPPORT must be either 0
	or 1 otherwise we get compiler errors.
	
2006-03-26  Uwe Kindler <uwe_kindler@web.de>

	* Updated the complete lwIP source to the latest lwIP
	CVS version 1.1.1
	* src/ecos/init.c Added call to netif_set_up(netif) in
	function lwip_set_addr() - this is required since lwIP
	version 1.0.0
	* cdl/lwip_net.cdl Minor modifications for UDP configuration
	options. Renamed CYGNUM_LWIP_TCPIP_THREAD_PRIORITY to
	CYGNUM_LWIP_NETWORK_THREAD_PRIORITY and moved option outside
	CYGPKG_LWIP_TCPIP component because the network thread needs to
	run in all configurations.
	* tests/nc_slave.c
	* tests/tcpecho.c 
	* tests/udpecho.c
	* tests/sockets.c
	* tests/httpd.c Added eCos test infrastructure to tests and 
	made tests applicable depending on lwip configuration.

2006-03-15  Andrew Lunn  <andrew.lunn@ascom.ch>

	* tests/nc_test_slave.c (nc_slave): Fix some of the compiler
	warnings.

2006-03-13  Uwe Kindler <uwe_kindler@web.de>

	* cdl/lwip_net.cdl Changed default value of 
	CYGNUM_LWIP_MEMP_NUM_SYS_TIMEOUT (required for DHCP). 
	Replaced CYGPKG_LWIP_DHCP_OPTIONS with CYGPKG_LWIP_DHCP 
	and add CYGOPT_LWIP_DHCP_MANAGEMENT for automatic DHCP
	management.
	* include/lwip/ip_addr.h Add macro ip_addr_netcmp() 
	(copied from lwIP CVS).
	* include/netif/etharp.h Updated file to version of
	lwIP CVS.
	* src/ecos/init.c Add include <pkgconf/net_lwip.h>
	Add lwip_dhcp_fine_tmr() and lwip_dhcp_coarse_tmr()
	for DHCP processing.
	Change tcpip_init_done() to start DHCP timers and
	ARP timer.
	Changed lwip_set_addr() to properly setup IP adress
	if DHCP is used.
	Added lwip_dhcp_init() for start of DHCP client.
	Removed start of ARP timer from ecosclue_init().
	* src/netif/etharp.c Updated file to version of
	lwIP CVS.
	
2006-03-02  Andrew Lunn  <andrew.lunn@ascom.ch>

	* cdl/lwip_net.cdl: Add the interfaces CYGPKG_NET_STACK,
	CYGPKG_NET_STACK_INET and CYGPKG_NET_STACK_INET6 and say that we
	implement a network stack and an IPv4 stack. Without these interfaces
	some of the Ethernet device drivers won't be compiled.

2006-02-24  Uwe Kindler <uwe_kindler@web.de>

	* cdl/lwip_net.cdl: Changed names of configuration options
	according to eCos configuration option naming convention in 
	component writers guide.
	* include/lwipopts.h: Changed mapping of eCos configuration
	parameters to lwip configuration parameters. The mapping
	was wrong because it expected a disabled eCos configuration
	option is defined as 0 but a disabled eCos configuration option
	is not defined.
	* include/lwip/api.h Enumeration values of netconn_type are
	defined conditional now to avoid compiler warnings if these
	values are not evaluated in a switch statement.
	* src/api/api_lib.c Compilation of code in several switch 
	statements is now conditional depending on configured 
	functionality.
	* src/api/sockets.c Compilation of some code is now conditional 
	depending on configured functionality.
	* src/ecos/init.c Changed initialisation values to match the
	new configuration option names.

2005-10-07  Uwe Kindler <uwe_kindler@web.de>

	* src/core/tcp_in.c: pbuf_free() assert triggered by 
	NULLified inseg.p
	* include/lwip/tcp.h Do no longer try to free pbuf 
	when TCP_EVENT_RECV() is called without a callback 
	handler, and without packet. 
	* tests/nc_test_slave.c Fixed test_printf and diag_printf
	format strings that caused errors or warnings.
	* tests/nc_test_slave.c Included <lwip/inet.h> - required
	for compilation
	* src/ecos/init.c Added structs ip_addr ipaddr, netmask and gw
	in lwip_init() if loop interface is used

2004-05-05  Jani Monoses <jani@iv.ro>

	* src/netif/ppp/ppp.c: Decrease sleep period in main thread
	from 250ms to 1ms. Was a leftover of debugging the code and
	slowing things down.

2004-05-04  Jani Monoses <jani@iv.ro>

	* cdl/lwip_net.cdl
	* src/api/err.c
	* src/api/tcpip.c
	* src/api/sockets.c
	* src/api/api_lib.c
	* src/api/api_msg.c
	* src/core/tcp_in.c
	* src/core/ipv4/ip.c
	* src/core/ipv4/ip_addr.c
	* src/core/ipv4/ip_frag.c
	* src/core/ipv4/icmp.c
	* src/core/tcp_out.c
	* src/core/mem.c
	* src/core/raw.c
	* src/core/tcp.c
	* src/core/sys.c
	* src/core/udp.c
	* src/core/stats.c
	* src/core/dhcp.c
	* src/core/netif.c
	* src/core/inet.c
	* src/core/memp.c
	* src/core/pbuf.c
	* src/ecos/sio.c
	* src/ecos/sys_arch.c
	* src/ecos/init.c
	* src/netif/ppp/vj.c
	* src/netif/ppp/vj.h
	* src/netif/ppp/randm.c
	* src/netif/ppp/randm.h
	* src/netif/ppp/vjbsdhdr.h
	* src/netif/ppp/fsm.c
	* src/netif/ppp/fsm.h
	* src/netif/ppp/lcp.c
	* src/netif/ppp/lcp.h
	* src/netif/ppp/md5.c
	* src/netif/ppp/md5.h
	* src/netif/ppp/pap.c
	* src/netif/ppp/pap.h
	* src/netif/ppp/ppp.c
	* src/netif/ppp/ppp.h
	* src/netif/ppp/magic.c
	* src/netif/ppp/magic.h
	* src/netif/ppp/pppdebug.h
	* src/netif/ppp/auth.c
	* src/netif/ppp/auth.h
	* src/netif/ppp/chap.c
	* src/netif/ppp/chap.h
	* src/netif/ppp/ipcp.c
	* src/netif/ppp/ipcp.h
	* src/netif/ppp/chpms.c
	* src/netif/ppp/chpms.h
	* src/netif/etharp.c
	* src/netif/slipif.c
	* src/netif/loopif.c
	* tests/tcpecho.c
	* tests/udpecho.c
	* tests/nc_test_framework.h
	* tests/nc_test_slave.c
	* tests/httpd.c
	* tests/sys_timeout.c
	* tests/socket.c
	* include/arch/cc.h
	* include/arch/sys_arch.h
	* include/arch/perf.h
	* include/lwip/ip.h
	* include/lwip/debug.h
	* include/lwip/ip_addr.h
	* include/lwip/api.h
	* include/lwip/def.h
	* include/lwip/err.h
	* include/lwip/mem.h
	* include/lwip/opt.h
	* include/lwip/ip_frag.h
	* include/lwip/raw.h
	* include/lwip/sio.h
	* include/lwip/tcp.h
	* include/lwip/sys.h
	* include/lwip/udp.h
	* include/lwip/tcpip.h
	* include/lwip/stats.h
	* include/lwip/arch.h
	* include/lwip/dhcp.h
	* include/lwip/netif.h
	* include/lwip/icmp.h
	* include/lwip/inet.h
	* include/lwip/memp.h
	* include/lwip/pbuf.h
	* include/lwip/snmp.h
	* include/lwip/sockets.h
	* include/lwip/api_msg.h
	* include/netif/etharp.h
	* include/netif/slipif.h
	* include/netif/loopif.h
	* include/network.h
	* include/lwipopts.h : Initial import of the lwIP TCP/IP stack.

//===========================================================================
// ####GPLCOPYRIGHTBEGIN####                                                
// -------------------------------------------                              
// This file is part of eCos, the Embedded Configurable Operating System.   
// Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.            
// Copyright (C) 2004, 2007, 2008 eCosCentric Limited                       
//
// This program is free software; you can redistribute it and/or modify     
// it under the terms of the GNU General Public License as published by     
// the Free Software Foundation; either version 2 or (at your option) any   
// later version.                                                           
//
// This program is distributed in the hope that it will be useful, but      
// WITHOUT ANY WARRANTY; without even the implied warranty of               
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU        
// General Public License for more details.                                 
//
// You should have received a copy of the GNU General Public License        
// along with this program; if not, write to the                            
// Free Software Foundation, Inc., 51 Franklin Street,                      
// Fifth Floor, Boston, MA  02110-1301, USA.                                
// -------------------------------------------                              
// ####GPLCOPYRIGHTEND####                                                  
//===========================================================================
