interface: add prefix assignment priority support
authorHans Dedecker <dedeckeh@gmail.com>
Tue, 31 Jan 2017 15:46:15 +0000 (16:46 +0100)
committerFelix Fietkau <nbd@nbd.name>
Sat, 11 Feb 2017 20:51:36 +0000 (21:51 +0100)
commitcdc0e80300a465d507aba8e8d11be56366ebb6cd
tree0a7ce90bfa9fb152713011235a6775970fca5b83
parent6397f5edb977b5963aa8eec1deaa709355bbbc7d
interface: add prefix assignment priority support

In case of prefix delegation prefixes are assigned to one or more
configured downstream interfaces. The delegated prefix length in
combination with the assignment length of the downstream interfaces
determines the number of subnets which can be allocated from the
delegated prefix.
The interface ip6weight parameter allows to prioritize the allocation
of subnets to interfaces in case of multiple configured downstream
interfaces.

The order of interface prefix assignment from a delegated prefix is
based on the following parameters:
- Primary key is prefix assignment based on the configured interface ip6hint
- Secondary key is the requested downstream interface prefix length,
  interfaces configured with the smallest ip6hint will be assigned first
- Third key is the assigned interface ip6weight in case of equal prefix
  assignment length; interfaces having the highest ip6weight will be
  assigned first
- Finally the alphabetical order of the interfaces in case of equal
  ip6weight

Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name> [cleanup]
interface-ip.c
interface-ip.h
interface.c
interface.h
ubus.c