+Nicolas
On 4/14/17 7:51 PM, Vlad Yasevich wrote: > On 04/10/2017 11:49 AM, David Ahern wrote: >> On 4/10/17 9:39 AM, Vlad Yasevich wrote: >>> OK, so this will work for the events that are generated as a result of >>> device state change >>> (like mtu, address, and others). >>> >>> However, the original event data may be needed for other events that may be >>> of use to userspace like NETDEV_NOTIFY_PEERS and NETDEV_RESEND_IGMP >>> (possibly others...) >> >> sure. My objection is to multiple messages with identical content. >> >> I think the rtnetlink_event message is unique for those 2 netdev events, >> so no objections if it has value. >> > > So, I've been looking at adding a bitmap and collecting all modification, > however > I ran into an interesting issue in do_setlink. > > Currently the notifications from do_setlink() don't appear to work as one > would > expect and it's somewhat confusing upon deeper inspection. > > We have 2 values DO_SETLINK_MODIFIED (1) and DO_SETLINK_NOTIFY (3). These 2 > 'attempt' > to do different jobs, but really fail at it. The function will generate > notifications > regardless of which of the above values is used. > > Those changes were done in commit ba9989069f4e426b1e0ed7018eacc9e1ba607095 > (cc Nicolas > just in case he remembers the history) > > I am not sure which changes should really trigger a call > netdev_state_change(), thus this > message. Right now, all changes done in this function trigger them. If > that's how that > should function, that I can simplify the code. If not, then some of the > changes may > require us to export the event to the user. > > To use the dreaded NETDEV_CHANGEMTU event as an example, we used to generate > 3 messages > (PRECHANGEMTU, CHANGEMTU, and a message from netdev_state_change). With > recent changes, > we now only generate a message from netdev_state_change. However, mtu change > is tagged > with DO_SETLINK_MODIFIED which doesn't include the notify bit. So, should > there be a > NETDEV_CHANGE event associated with this change and a rtnl message (as it is > now) or not? > It's unclear. > > -vlad >