OpenSolaris

Printable Version Enter a New Search
Bug ID 6740719
Synopsis in.mpathd may fail to switch to router target mode
State 10-Fix Delivered (Fix available in build)
Category:Subcategory network:ipmp
Keywords clearview
Responsible Engineer Peter Memishian
Reported Against
Duplicate Of
Introduced In solaris_9
Commit to Fix snv_107
Fixed In snv_107
Release Fixed solaris_nevada(snv_107)
Related Bugs 6783149 , 6816521
Submit Date 23-August-2008
Last Update Date 28-January-2009
Description
While doing Clearview IPMP testing, I found a problem that also affects
the existing IPMP implementation.  Specifically, in.mpathd is in multicast
probe mode (e.g., because no suitable routes exist), and then a suitable
route is installed, in.mpathd may ignore that route and continue in
multicast mode.  Specifically, in target_add(), we attempt to check
whether the target already exists before calling target_create():

        tg = target_lookup(pii, addr);

        /*
         * If the target does not exist, create it; target_create() will set
         * tg_in_use to true.  If it exists already, and it is a router
         * target, set tg_in_use to to true, so that init_router_targets()
         * won't delete it
         */
        if (tg == NULL)
                target_create(pii, addr, is_router);
        else if (is_router)
                tg->tg_in_use = 1;

However, we fail to account for the possibility that the target may
already exist as a multicast target.  So, if the router added to the
routing table is also a multicast target (quite likely), we will skip
the target_create() call and thus in.mpathd will erroneously continue
to use multicast targets.
Work Around
N/A
Comments
This was introduced with the initial IPMP integration into Solaris 9
(which did not have an associated CR).  Setting "Introduced in Release"
and "Introduced in Build" accordingly.