ng_ether naming

Nikolay Denev ndenev at gmail.com
Fri Dec 14 17:38:09 UTC 2012


On Dec 14, 2012, at 7:02 PM, Andriy Gapon <avg at freebsd.org> wrote:

> on 13/12/2012 20:57 Ermal Luçi said the following:
>> 
>> 
>> 
>> On Thu, Dec 13, 2012 at 5:25 PM, Andriy Gapon <avg at freebsd.org
>> <mailto:avg at 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 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org"


Hi,

Some time ago I had similar issue : http://lists.freebsd.org/pipermail/freebsd-net/2011-February/027982.html

The patch is also in : kern/154850

--
Nikolay


More information about the freebsd-net mailing list