Skip to content
  • Thomas Haller's avatar
    core: rework handling of default-routes and drop NMDefaultRouteManager · 77ec3027
    Thomas Haller authored
    Remove NMDefaultRouteManager. Instead, add the default-route to the
    NMIP4Config/NMIP6Config instance.
    
    This basically reverts commit e8824f6a.
    We added NMDefaultRouteManager because we used the corresponding to `ip
    route replace` when configuring routes. That would replace default-routes
    on other interfaces so we needed a central manager to coordinate routes.
    Now, we use the corresponding of `ip route append` to configure routes,
    and each interface can configure routes indepdentently.
    
    In NMDevice, when creating the default-route, ignore @auto_method for
    external devices. We shall not touch these devices.
    
    Especially the code in NMPolicy regarding selection of the best-device
    seems wrong. It probably needs further adjustments in the future.
    Especially get_best_ip_config() should be replaced, because this
    distinction VPN vs. devices seems wrong to me.
    Thereby, remove the @ignore_never_default argument. It was added by
    commit bb750260, I don't think it's
    needed anymore.
    
    This brings another change. Now that we track default-routes in
    NMIP4Config/NMIP6Config, they are also exposed on D-Bus like regular
    routes. I think that makes sense, but it is a change in behavior, as
    previously such routes were not exposed there.
    77ec3027