lkml.org 
[lkml]   [2021]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: How to find out name or id of newly created interface
On Sat, Jul 31, 2021 at 10:30:54PM +0200, Pali Rohár wrote:
>
> And now I would like to know, how to race-free find out interface name
> (or id) of this newly created interface?
>
> Response to RTM_NEWLINK/NLM_F_CREATE packet from kernel contains only
> buffer with struct nlmsgerr where is just error number (zero for
> success) without any additional information.

You'd normally pass the NLM_F_ECHO flag on the netlink request, so the
kernel would echo back a netlink message with all information about the
device it created.

Unfortunately, many netlink handlers don't implement this feature. And
it seems that RTM_NEWLINK is part of them (rtmsg_ifinfo_send() doesn't
provide the 'nlh' argument when it calls rtnl_notify()).

So the proper solution is to implement NLM_F_ECHO support for
RTM_NEWLINK messages (RTM_NEWROUTE is an example of netlink handler
that supports NLM_F_ECHO, see rtmsg_fib()).

\
 
 \ /
  Last update: 2021-08-02 12:02    [W:0.312 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site