> I misunderstood what you mean. I thought that libwladm register its
> functions to libdladm is to break the dependency that libdladm depends on
> libwladm.
>
> So that libwladm registers function only specific to libwladm in order not
> to call back to libdladm.
Right.
> I think it is doable and nice if we design carefully. But based on the
> current case, I think we need too much code changes to go with this design.
You're talking about in general for Clearview, and not specifically with
regard to link properties, right?
> Let's see the example of "up" an aggregation in liblaadm:
>
> laadm_up(uint32_t key, const char *root, laadm_diag_t *diag)
> {
> ...
> if (i_laadm_walk_db(i_laadm_up, &up, root, diag) < 0) {
> ...
> }
>
> Note that i_laadm_walk_db will be replaced by dladm_datalink_xxx calls which
> belong to libdladm. We could generalize this to have liblaadm to register a
> up() function pointer. There are lots of places like this in liblaadm
> though. Do we really want to rewrite and redesign the whole library?
I'm confused why this would need to be redesigned, unless there are now
cases where liblaadm needs to call back into libdladm. The discussion
thus far has focused on the link property code, so I'm a little lost here.
--
meem