Nicolas Droux wrote:
Garrett D'Amore wrote:
Nicolas Droux wrote:
Hi Garrett,
Yes we are planning to revisit the structure of these modules. We're
planning to move the SAP demultiplexing down in MAC and make it part
of the MAC client API. The only major thing left in dls will be the
data link related management, and this can be moved easily in MAC as
well. So dls will go away and a lot of things will be cleaned-up as
a result, and the MAC client will be richer as a result.
We're currently planning to keep dld and softmac since they deal
specifically with STREAMs clients and providers.
It looks to me, after looking at the code, that this particular
distinction is rather arbitrary. I think when you move dls into mac,
its going to look even *more* arbitrary. My strong recommendation
would be to just consolidate all four of these into a single mac module.
Both softmac and dld are drivers dealing with "legacy" interfaces. One
deals with STREAMs clients, the other with STREAMs providers. Keeping
them separate from mac which provides the core of data link services
to the rest of the kernel is not arbitrary, and I don't think we
should make mac even more tightly coupled with these drivers than it
is already.
Keep the code in separate .c files, fine. But make them link into the
same binary. Its not like either of these legacy interfaces are *ever*
going to go away...
At the end of day, the relationship between these modules is already
incredibly incestuous. (Needing modstubs.s changes should have been the
first clue here!) The interface boundaries you're hoping to achieve
simply don't exist, IMO.
- Garrett
Nicolas.
- Garrett
Nicolas.
Garrett D'Amore wrote:
I'm working in this code, and I'm finding that these four modules,
all of which are part of GLDv3, have a very very incestuous
relationship with very loose interface boundaries between them.
What interface boundaries do exist seem simply to add call overhead.
You can't unload one of these separately from the other three..
they all have to be loaded together.
All this begs the question -- why are they separate? It seems like
collapsing them all into a single "mac" module would likely
simplify a lot of code, reduce some arbitrary call overhead (e.g.
functions in "mac" that serve only as thin wrappers to call
functions in dld...), and generally make the whole thing a lot
easier to understand.
What am I missing here?
Has anyone undertaken the project to just collapse them all
together? It seems like you could do this work fairly easily to
begin with (just link all the sources into a monster "mac" module),
but you could subsequently cleanup a lot of stuff. (You might need
separate dld and softmac modules to export dev nodes, I suppose,
but I suspect even that is fairly simply solved just by creative
symlinks. :-)
- Garrett
_______________________________________________
networking-discuss mailing list
[email protected]
_______________________________________________
networking-discuss mailing list
[email protected]
_______________________________________________
networking-discuss mailing list
[email protected]