on 13/12/2012 20:57 Ermal Luçi said the following:
> 
> 
> 
> On Thu, Dec 13, 2012 at 5:25 PM, Andriy Gapon <a...@freebsd.org
> <mailto:a...@freebsd.org>> wrote:
> 
>     on 13/12/2012 14:08 Alexander V. Chernikov said the following:
>     > On 13.12.2012 15:46, Andriy Gapon wrote:
>     >>
>     >> ng_ether uses if_xname for naming its nodes.
>     >> This could be troublesome for mapping interface names to their ng_ether
>     companions
>     >> in the face of interface renaming capability.  Especially given that 
> interface
>     >> renaming and ng_ether _module_ loading may happen in an arbitrary 
> order.
>     >>
>     >> I am not sure how to solve this best.
>     >>
>     >> One possibility is to use if_dname+if_dunit combination for ng_ether
>     naming.  This
>     >> should be stable and available for querying.  This behavior should 
> also be
>     >> backward compatible with ng_ether being compiled into kernel
>     (if_dname+if_dunit ==
>     >> if_xname before any renaming could occur).
>     >>
>     >> Another possibility is to do ng_ether renaming when its interface is 
> renamed.
>     >> This seems nicer but appears to be more work and more intrusive, 
> because
>     >> interfaces would have to know about their ng_ether nodes.
>     >
>     > Not exactly. You can register for ifnet_departure_event and 
> ifnet_arrival_event.
>     >
>     > Interface renaming is done via sending departure event with old name 
> and arrvial
>     > event with new one.
> 
>     Good to know.  Thank you!
> 
> 
>     So which approach sounds better?
>     Or maybe there is even a better one?
> 
> 
> The best is interface event handling.
> Just recopy the new name from if_xname and should be done.

There is one problem with the current code which would automatically apply to 
the
interface renaming handling.
ng_ether does not do any validation or "normalization" of if_xname and the name
can contain symbols which are prohibited in a netgraph name, such as '.' for 
example.
ng_name_node would fail and warning would be logged but a node would stay 
unnamed.
I am a bit reluctant to write "netgraph name escaping" code myself.  Perhaps it
already exists in some place?

-- 
Andriy Gapon
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to