NetworkManager/src
Thomas Haller 2861c59116 platform: pass full route object to platform delete function
Contrary to addresses, routes have no ID. When deleting a route,
you cannot just specify certain properties like network/plen,metric.

Well, actually you can specify only certain properties, but then kernel
will treat unspecified properties as wildcard and delete the first matching
route. That is not something we want, because we need to be in control which
exact route shall be deleted.

Also, rtm_tos *must* match. Even if we like the wildcard behavior,
we would need to pass TOS to nm_platform_ip4_route_delete() to be
able to delete routes with non-zero TOS. So, while certain properties
may be omitted, some must not. See how test_ip4_route_options() was
broken.

For NetworkManager it only makes ever sense to call delete on a route,
if the route is already fully known. Which means, we only delete routes
that we have already in the platform cache (otherwise, how would we know
that there is something to delete). Because of that, no longer have separate
IPv4 and IPv6 functions. Instead, have nm_platform_ip_route_delete() which
accepts a full NMPObject from the platform cache.

The code in core doesn't jet make use of this new functionality. It will
in the future.

At least, it fixes deleting routes with differing TOS.
2017-07-25 06:44:12 +02:00
..
devices core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
dhcp core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
dns core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
dnsmasq core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
ndisc ndisc: log the device context 2017-03-24 12:42:09 +01:00
platform platform: pass full route object to platform delete function 2017-07-25 06:44:12 +02:00
ppp core: pass NMDedupMultiIndex instance to NMIP4Config and other 2017-07-05 14:22:10 +02:00
settings Move CONF_DHCP definition to nm-hostname-manager.c 2017-06-27 09:05:42 +02:00
supplicant core,cli: replace wrong pattern for clearing GError 2017-06-27 09:42:28 +02:00
systemd systemd: merge branch systemd into master 2017-06-14 13:10:05 +02:00
tests core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
vpn core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
main-utils.c config: add first_start paramter to NMConfig to detect restart 2017-04-20 14:19:56 +02:00
main-utils.h all: cleanup includes in header files 2016-08-17 19:51:17 +02:00
main.c core: don't enable setrlimit(RLIMIT_CORE) when running with address sanitizer 2017-05-24 13:56:12 +02:00
NetworkManagerUtils.c all: fix typo 'entires' -> 'entries' 2017-05-05 19:14:19 +02:00
NetworkManagerUtils.h manager: simplify searching assumed connection 2017-03-16 18:27:33 +01:00
nm-act-request.c active-connection: emit a StateChanged signal on state changes 2017-03-17 10:21:19 +01:00
nm-act-request.h core: add activation-type property to active-connection 2017-03-16 18:27:33 +01:00
nm-active-connection.c device: fix taking over device after modifying external connection 2017-06-19 14:57:48 +02:00
nm-active-connection.h active-connection: emit a StateChanged signal on state changes 2017-03-17 10:21:19 +01:00
nm-audit-manager.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-audit-manager.h audit: add @args to device logging functions 2017-03-06 10:29:37 +01:00
nm-auth-manager.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-auth-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-auth-subject.c all: use "unsigned long" instead of "long unsigned" 2017-03-14 11:23:46 +01:00
nm-auth-subject.h auth: embed private data NMAuthSubjectPrivate in NMAuthSubject struct 2016-05-12 10:24:36 +02:00
nm-auth-utils.c auth-utils: fix possibly uninitialized variables 2017-04-07 11:52:16 -05:00
nm-auth-utils.h all: move NM_AUTH_PERMISSION_* defines to "nm-common-macros.h" header 2016-06-01 19:06:35 +02:00
nm-bus-manager.c core: introduce default logging macros 2016-10-14 15:57:43 +02:00
nm-bus-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-checkpoint-manager.c build: don't add subdirectories to include search path but require qualified include 2016-11-21 14:26:37 +01:00
nm-checkpoint-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-checkpoint.c checkpoint: disconnect device before reactivation during rollback 2017-07-05 11:01:56 +02:00
nm-checkpoint.h checkpoint: introduce new flags to better restore previous state 2016-10-24 09:57:18 +02:00
nm-config-data.c device: handle default for unset ignore-carrier option depending on device 2017-06-22 13:26:53 +02:00
nm-config-data.h core: allow setting SR-IOV num_vfs 2017-04-18 23:10:36 +02:00
nm-config.c config: allow persisting the device nm-owned state 2017-06-07 10:27:02 +02:00
nm-config.h config: allow persisting the device nm-owned state 2017-06-07 10:27:02 +02:00
nm-connectivity.c connectivity: fix memory leak 2017-07-19 22:14:05 +02:00
nm-connectivity.h device: add default route penalty only if concheck is enabled 2017-05-04 11:07:40 +02:00
nm-core-utils.c platform: let NMPObject implement NMDedupIndexObj 2017-07-05 14:22:10 +02:00
nm-core-utils.h platform: implement hash function for NMPlatformLnk types 2017-07-05 18:37:39 +02:00
nm-dcb.c build: don't add subdirectories to include search path but require qualified include 2016-11-21 14:26:37 +01:00
nm-dcb.h all: cleanup includes in header files 2016-08-17 19:51:17 +02:00
nm-default-route-manager.c platform: pass full route object to platform delete function 2017-07-25 06:44:12 +02:00
nm-default-route-manager.h device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-dhcp4-config.c exported-object: use NM_EXPORT_PATH_NUMBERED() macro 2017-01-03 15:40:17 +01:00
nm-dhcp4-config.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-dhcp6-config.c exported-object: use NM_EXPORT_PATH_NUMBERED() macro 2017-01-03 15:40:17 +01:00
nm-dhcp6-config.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-dispatcher.c core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
nm-dispatcher.h core/dispatcher: pass act-request to device dispatcher calls 2017-03-16 18:27:33 +01:00
nm-exported-object.c all: use "unsigned long" instead of "long unsigned" 2017-03-14 11:23:46 +01:00
nm-exported-object.h exported-object: add "path" GObject property to have notify signal 2017-01-25 13:12:08 +01:00
nm-firewall-manager.c firewall: use CList to track pending_calls 2017-05-11 18:26:10 +02:00
nm-firewall-manager.h firewall: merge "started" signal and "available" property 2017-04-21 09:09:01 +02:00
nm-hostname-manager.c core,cli: replace wrong pattern for clearing GError 2017-06-27 09:42:28 +02:00
nm-hostname-manager.h hostname: cache hostname-manager's hostname property 2017-05-12 17:29:33 +02:00
nm-iface-helper.c core: pass NMDedupMultiIndex instance to NMIP4Config and other 2017-07-05 14:22:10 +02:00
nm-ip4-config.c platform: refactor nm_platform_ip4_address_sync() 2017-07-25 06:44:12 +02:00
nm-ip4-config.h core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
nm-ip6-config.c platform: refactor nm_platform_ip4_address_sync() 2017-07-25 06:44:12 +02:00
nm-ip6-config.h core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
nm-logging.c logging: log device and connection along with the message 2017-03-24 12:42:09 +01:00
nm-logging.h logging: add LOG3 macros 2017-06-08 21:50:23 +02:00
nm-manager.c platform: refactor NMPObject cast macros using _Generic() 2017-07-05 22:17:42 +02:00
nm-manager.h hostname: cache hostname-manager's hostname property 2017-05-12 17:29:33 +02:00
nm-netns.c core: pass NMDedupMultiIndex instance to NMIP4Config and other 2017-07-05 14:22:10 +02:00
nm-netns.h core: pass NMDedupMultiIndex instance to NMIP4Config and other 2017-07-05 14:22:10 +02:00
nm-pacrunner-manager.c core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
nm-pacrunner-manager.h proxy: introduce call-id for clearing pacmanager configuration 2017-04-23 18:12:09 +02:00
nm-policy.c core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
nm-policy.h policy: add support to configurable hostname mode 2017-03-24 15:18:09 +01:00
nm-proxy-config.c proxy: reorder parts in nm-proxy-config.c and nm-pacrunner-manager.c 2016-10-04 11:58:32 +02:00
nm-proxy-config.h proxy: remove unnecessary APIs 2016-10-04 11:44:44 +02:00
nm-rfkill-manager.c udev: drop libgudev in favor of libudev 2017-03-22 12:41:06 +01:00
nm-rfkill-manager.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-route-manager.c platform: pass full route object to platform delete function 2017-07-25 06:44:12 +02:00
nm-route-manager.h device: keep NMNetns instance per device 2017-04-18 15:49:14 +02:00
nm-session-monitor.c session: make systemd-logind and elogind conflicting build options 2017-02-24 13:06:13 +01:00
nm-session-monitor.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-sleep-monitor.c session: make systemd-logind and elogind conflicting build options 2017-02-24 13:06:13 +01:00
nm-sleep-monitor.h core: refactor private data in "src" 2016-10-04 09:50:56 +02:00
nm-test-utils-core.h core: avoid cloning platform routes but iterate the cache directly 2017-07-05 18:37:39 +02:00
nm-types.h core: track addresses for NMIP4Config/NMIP6Config via NMDedupMultiIndex 2017-07-25 06:44:12 +02:00
org.freedesktop.NetworkManager.conf dbus: allow firewalld to communicate with NetworkManager 2017-04-21 13:38:21 +02:00