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

Reply via email to