John Dallaway wrote:
I would recommend a "radio button" approach for mutually exclusive modes
which have associated source files. Something like:
cdl_interface CYGINT_LWIP_MODES {
display "Enabled lwIP modes"
no_define
requires 1 == CYGINT_LWIP_MODES
description "This interface is used to force mutually exclusive
selection of the available lwIP modes."
}
cdl_option CYGFUN_LWIP_MODE_SIMPLE {
display "Simple mode"
implements CYGINT_LWIP_MODES
compile ecos/simple.c
}
cdl_option CYGFUN_LWIP_MODE_SEQUENTIAL {
display "Sequential mode"
implements CYGINT_LWIP_MODES
compile ecos/sequential.c
}
The same applies to sio. I can add a new package CYGPKG_LWIP_SIO which
is required by both PPPoS and SLIPIF. I think the best place would be
the "APIs" section as the SIO may be also used for other purposes than
lwIP's internal. So a user could enable sio without using SLIPIF or PPPoS.
It would be best to use another CDL interface to enable compilation of
this code. Something like:
cdl_interface CYGINT_LWIP_SIO_REQUIRED {
no_define
display "Items requiring lwIP serial operations"
description "Items requiring use of the lwIP serial operations code
should implement this interface."
}
cdl_option CYGFUN_LWIP_SIO {
display "Serial operations support"
calculated { CYGINT_LWIP_SIO_REQUIRED > 0 }
compile ecos/sio.c
}
cdl_component CYGPKG_LWIP_SLIP {
implements CYGINT_LWIP_SIO_REQUIRED
compile ...
...
}
cdl_component CYGPKG_LWIP_PPP {
implements CYGINT_LWIP_SIO_REQUIRED
compile ...
...
}
This is a little more complicated than a simple "requires
CYGFUN_LWIP_SIO" but ensures that CYGFUN_LWIP_SIO becomes disabled when
the number of components requiring it falls to zero.
I have adapted to CDL to reflect your recommendations. The new version
can be fetched from
http://download.westlicht.ch/lwip-20091027.tar.gz
I thought we had concluded that we should treat lwIP PPP as a separate
project which would require liaison with the upstream lwIP
maintainer(s). Is there anyone else in the eCos community who is able
and willing to work on this?
True. I just wanted to point out that in it's current state PPP can only
be used with simple mode.
One minor point: It would be very useful for the stack to report its own
IP address on the diagnostic channel.
I'll try to implement this. I guess you're mainly talking about DHCP IPs
right?
Yes, although it might sometimes also be helpful to confirm a static IP
address.
I have implemented reporting of the netif configuration for both static
configuration and DHCP on the interfaces loopif, slipif and eth. This is
configurable by CYGFUN_LWIP_SHOW_NETIF_CONFIG which is now enabled by
default.
Simon