core: Use tokenized identifiers when constructing an address

Token change triggers a router solicitation. We learn of the new address as the
advertisement arrives, remove the old addresses and generate a new one.
build: Check for tokenized identifier support in libnl-route-3
platform: Refresh link cache when IPv6 tokenized identifier changes

Refactor the object comparison logic into a separate function. One from libnm
is not good enough (see comment).

Also, kernel currently won't send notifications on token change, a patch is
needed.
platform: Add support for IPv6 tokenized identifiers on Linux
core: minor fix in nm_utils_kill_child_sync() having side-effects in MIN() macro (again)

Signed-off-by: Thomas Haller <thaller@redhat.com>
contrib/rpm: don't hardwire a single ppp version

Build against whatever is actually present.

https://bugzilla.gnome.org/show_bug.cgi?id=736954

Signed-off-by: Thomas Haller <thaller@redhat.com>
libnm: add bonding option "lacp_rate" to NMSettingBond

Signed-off-by: Thomas Haller <thaller@redhat.com>
cli: support new bond option 'lacp_rate'

Signed-off-by: Thomas Haller <thaller@redhat.com>
merge branch 'th/rh1061702_bond_options'

Add bonding option 'lacp_rate'.

https://bugzilla.redhat.com/show_bug.cgi?id=1061702

Signed-off-by: Thomas Haller <thaller@redhat.com>
tui: fix an NmtMacEntry bug introduced when changing hwaddrs to strings

https://bugzilla.redhat.com/show_bug.cgi?id=1148921
dhcp: fail the device if DHCP fails after having succeeded earlier (rh #1139326)

If DHCP fails to renew or rebind a lease, fail the device since the
IP config is no longer valid.  Commit e2b7c482 was actually wrong for
dhcp[4|6]_fail(), since (ip_state == IP_FAIL) will never be true if
DHCP has ever been started, as IP_FAIL is only set from
nm_device_activate_ip[4|6]_config_timeout(), which obviously will not
be called in DHCP code paths if DHCP has previously succeeded.
dhcp: treat lease expiry as failure (rh #1139326)

Lease expiry means that the DHCP configuration is no longer valid, and
that all attempts to renew/rebind the lease have failed.  The IP config
needs to be removed.  NetworkManager also sets prefered/valid lifetimes
on addresses, so the kernel will remove them when the lease expires
anyway.  That causes removal of the default route, if the default route
was through the device whose config has now expired.

DHCP clients will typically move to the 'renew' or 'rebind' states when
nearing lease expiry, then if no answer is received move to the 'expire'
state.  Eventually they move to the 'fail' state when all attempts to
contact the server have failed.

Previously, since NM ignored the 'expire' DHCP state it would not clear
out the DHCP IP4 config immediately when the lease expired, instead
waiting for the DHCP client to move to the 'fail' state.  But if the
DHCP server appeared between the 'expire' and 'fail' states, NM would
not notice and the device's NMIP4Config would not change, and thus the
Policy would not get the "ip4-config-changed" signal to re-add the
default route that the kernel had previously removed due to the valid
lifetime reaching zero when the lease expired.

https://bugzilla.redhat.com/show_bug.cgi?id=1139326
merge: fix DHCP 'expire' state handling (rh #1139326) (bgo #737225)
contrib/rpm: fix --quick option of build_clean.sh

Signed-off-by: Thomas Haller <thaller@redhat.com>
Merge remote-tracking branches 'lr/lr-unmanaged-slaves', 'lr/lr-bluez5-dun', 'lr/lr-ipv6-tokens' and 'lr/lr-rpm-build' into integration