Merge branch 'net-Add-address-attribute-to-control-metric-of-prefix-route'
authorDavid S. Miller <davem@davemloft.net>
Tue, 29 May 2018 14:12:46 +0000 (10:12 -0400)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 May 2018 14:12:46 +0000 (10:12 -0400)
commit4d0312e00bce593e96b839b5113b0d3f7b1507ee
tree0c7bce7deba75cd0a69d1ccdbfff4c22883c8f69
parent49fb6fe3446fecab54d05722d3eaeaf83c31858e
parentd69faad76584c4735911d6dbdc8b9ff672b3f763
Merge branch 'net-Add-address-attribute-to-control-metric-of-prefix-route'

David Ahern says:

====================
net: Add address attribute to control metric of prefix route

For use cases such as VRR (Virtual Router Redundancy) interface managers
want efficient control over the order of prefix routes when multiple
interfaces have addresses with overlapping/duplicate subnets.

Currently, if two interfaces have addresses in the same subnet, the order
of the prefix route entries is determined by the order in which the
addresses are assigned or the links brought up. Any actions like cycling
an interface up and down changes that order. This set adds a new attribute
for addresses to allow a user to specify the metric of the prefix route
associated with an address giving interface managers better and more
efficient control of the order of prefix routes.

Patches 1-3 refactor IPv6 address add functions to pass an ifa6_config
struct. The functions currently have a long list of arguments and adding
the metric just makes it worse. Because of the overall diff size in
moving the arguments to a struct, the change is done in stages to make
it easier to review starting with the bottom function and pushing the
struct up to callers in each successive patch.

Patch 4 introduces the new attribute.

Patches 5 and 6 add support for the new attribute to IPv4 and IPv6
addresses.

Patch 7 adds a set of test cases.

Patch 8 adds support to iproute2

Changes since RFC
- collapsed patches 1 and 3 into patch 2
- simplified stack variables in fib_modify_prefix_metric in patch 5
====================

Signed-off-by: David S. Miller <davem@davemloft.net>