Commit graph

14 commits

Author SHA1 Message Date
Thomas Haller
c3798fbf4e
l3cfg: add nm_l3cfg_platform_commit() 2020-07-31 08:53:07 +02:00
Thomas Haller
1867746e6c
l3cfg: track route-table sync mode in NML3ConfigData
Currently, we track the route table sync mode outside of the settings.
But as it depends on configuration, we should track it in NML3ConfigData.
2020-07-31 08:53:06 +02:00
Thomas Haller
695ce608ba
l3cfg: add nm_l3_config_data_add_dependent_routes() 2020-07-31 08:53:06 +02:00
Thomas Haller
81cf493b96
l3cfg: support tracking NML3ConfigData in NML3Cfg
NML3Cfg is supposed to manage an interface (by ifindex).

As such, it later will itself implement DHCP and similar addressing
methods.

However, in various cases we get additional IP configuration from
external (e.g. from a VPN connection). To support that, let NML3Cfg
track any number of NML3ConfigData instances.
2020-07-31 08:53:06 +02:00
Thomas Haller
297eb4d169
l3cfg: support more properties in NML3ConfigData 2020-07-31 08:53:06 +02:00
Thomas Haller
bfc77c89d1
l3cfg: add flags for affecting how add-object works for NML3ConfigData
We need a way to say don't touch the existing object during add.
Add flags for that.
2020-07-31 08:53:06 +02:00
Thomas Haller
98e311899d
l3cfg: add nm_l3_config_data_cmp()/nm_l3_config_data_equal() 2020-07-31 08:53:06 +02:00
Thomas Haller
e3e60bf87d
l3cfg: add NM_IS_L3_CONFIG_DATA() for asserting valid NML3ConfigData instances 2020-07-31 08:53:06 +02:00
Thomas Haller
99f096577c
l3cfg: add flags for NML3ConfigData
Add a flags parameter. That is useful to bundle multiple simple boolean
properties, without need to implement individual accessors.
2020-07-28 16:03:51 +02:00
Thomas Haller
d9547e8452
l3cfg: make NML3ConfigData ref/unref functions const
NML3ConfigData is supposed to be used as immutable, ref-counted type.
You create it once, initialize it, seal it, and pass (immutable) references
around.

In such a scheme, having ref/unref functions not operate on const pointers
is a major inconvenience.
2020-07-24 16:12:23 +02:00
Thomas Haller
a2a69a2dab
l3cfg: add more API to NML3ConfigData 2020-07-24 16:12:23 +02:00
Thomas Haller
6aa338edd4
l3cfg: tie NML3ConfigData to an ifindex
NML3ConfigData tracks IP addresses and routes. In their current form, these
types (NMPObject) always have an ifindex and there is no sensible way to have
an NMPObject (for routes or addresses) that have a wildcard ifindex.

Honor that by also tying NML3ConfigData to an ifindex. In most cases, the
user knows the ifindex before and can create it. On the unlikely case where
the user doesn't know the ifindex, we should add a new nm_l3_config_data_clone()
function, which allows migrating the setting from one ifindex to another.
2020-07-24 16:12:23 +02:00
Thomas Haller
5f23d691bf
l3cfg: add nm_l3_config_data_new_from_platform() for capturing settings
It basically does what nm_ip4_config_capture() and
nm_ip6_config_capture() does.
2020-07-24 16:12:22 +02:00
Thomas Haller
a1dbaf5799
l3cfg: add NML3ConfigData
Currently NMIP4Config and NMIP6Config both track the data to be
configured, they expose properties on D-Bus, and they have logic for
capturing and applying settings to platform.

We will split that.

- NMIP4Config and NMIP6Config will expose data on D-Bus.

- NML3Cfg will have the logic for handling IP configuration.

- NML3ConfigData will track data to be configured.

NML3ConfigData mirrors NMIP4Config/NMIP6Config in many aspects. For now,
this duplicates a lot of code. More will be done later. Eventually,
NMIP4Config/NMIP6Config will drop the duplicated functionality.
2020-07-23 15:29:25 +02:00