I've noticed that the common networking infrastructure package
(CYGPKG_NET) declares the same CDL interfaces as the lwIP package
(CYGPKG_NET_LWIP):

  cdl_interface CYGPKG_NET_STACK
  cdl_interface CYGPKG_NET_STACK_INET
  cdl_interface CYGPKG_NET_STACK_INET6

Presumably these interface declarations were placed in CYGPKG_NET at a
time when it was assumed that _all_ networking stack implementations
would use that package.

Now we have the lwIP stack which does not use CYGPKG_NET. If a developer
attempts to load both CYGPKG_NET and CYGPKG_NET_LWIP into a single eCos
configuration, libCDL reports errors due to duplicate cdl_interface
declarations. Of course it's unlikely to be sensible to load both these
packages, but that's not the point - the naming clash should be fixed.

Are these cdl_interfaces intended to indicate the availability of _any_
networking stack or specifically one that provides a BSD sockets API?
At present, the only packages that "require" these interfaces are HTTPD
and Microwindows. I expect that both these packages require BSD sockets.
In that case, I propose that we eliminate the CDL interface declarations
from the lwIP stack. Any future packages which depend on one of the
lwIP-specific stack APIs can simply "require CYGPKG_NET_LWIP".

Comments?

John Dallaway

Reply via email to