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]

Reply via email to