Updating the netdev's information on demand or via stats is pretty much the same thing. Remove duplicated code.
Signed-off-by: Adrian Moreno <[email protected]> --- lib/netdev-linux.c | 41 +++-------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c index 0d3e0354d..eb7fe85ca 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -6900,6 +6900,7 @@ get_ifindex(const struct netdev *netdev_, int *ifindexp) static int netdev_linux_update_via_netlink(struct netdev_linux *netdev) + OVS_REQUIRES(netdev->mutex) { struct ofpbuf request; struct ofpbuf *reply; @@ -6933,44 +6934,8 @@ netdev_linux_update_via_netlink(struct netdev_linux *netdev) if (rtnetlink_parse(reply, change) && !change->irrelevant && change->nlmsg_type == RTM_NEWLINK) { - bool changed = false; - error = 0; - - /* Update netdev from rtnl msg and increment its seq if needed. */ - if ((change->ifi_flags ^ netdev->ifi_flags) & IFF_RUNNING) { - netdev->carrier_resets++; - changed = true; - } - if (change->ifi_flags != netdev->ifi_flags) { - netdev->ifi_flags = change->ifi_flags; - changed = true; - } - netdev->cache_valid |= VALID_FLAGS; - - if (change->mtu && change->mtu != netdev->mtu) { - netdev->mtu = change->mtu; - netdev->cache_valid |= VALID_MTU; - netdev->netdev_mtu_error = 0; - changed = true; - } - if (!eth_addr_is_zero(change->mac) - && !eth_addr_equals(change->mac, netdev->etheraddr)) { - netdev->etheraddr = change->mac; - netdev->cache_valid |= VALID_ETHERADDR; - netdev->ether_addr_error = 0; - changed = true; - } - if (change->if_index != netdev->ifindex) { - netdev->ifindex = change->if_index; - netdev->cache_valid |= VALID_IFINDEX; - netdev->get_ifindex_error = 0; - changed = true; - } - if (change->primary && netdev_linux_kind_is_lag(change->primary)) { - netdev->is_lag_primary = true; - } - if (changed) { - netdev_change_seq_changed(&netdev->up); + if (!netdev_linux_check(netdev, change)) { + netdev_linux_update__(netdev, change); } } else { error = EINVAL; -- 2.52.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
