Consider code that lives inside IP, but is not invoked via a standard socket
(in other words, I don't have a conn_t in my context).

Is there any way for me to perform ill_find_by_name() (or it's public
Interface ill_lookup_by_name()) WITHOUT feeding a queue/mp/ipsq_func into the
search?  I just need a reference to an ill that I can hold (and maybe lock)
for a little bit.  It's for Tunnel Reform's per-tunnel policy setting.  I
need to locate tun_t by name, and would prefer not to construct a redundant
search when ill_find...() is so efficient.  It's possible that Clearview IP
Tunnel fixes will help me here, but I cannot assume that functionality given
the independence of our two projects.

Can any folks with squeue experience tell me why ill_find_by_name() requires
a queue/conn_t?  The massive comments before ipif_down() suggest the
IPIF_CHANGING state as a possible reason, but I'm content to just get back
NULL.  The comments state:

        * Callers either pass a flag requesting wait or the lookup functions
        * will return NULL.

I don't want to wait if an ILL is CHANGING.  I'm happy enough to get back
NULL and try again on my own.  And I don't have a conn_t - I'm most likely in
a PF_POLICY socket (i.e. /dev/keysock).

Dan
_______________________________________________
networking-discuss mailing list
[email protected]

Reply via email to