Merge branch 'ext-state-v2' into next

Amit Cohen:

Currently, device drivers can only indicate to user space if the network
link is up or down, without additional information.

This patch set expand link-state to allow these drivers to expose more
information to user space about the link state. The information can save
users' time when trying to understand why a link is not operationally up,
for example.

The above is achieved by extending the existing ethtool LINKSTATE_GET
command with attributes that carry the extended state.

For example, no link due to missing cable:

$ ethtool ethX
...
Link detected: no (No cable)

Beside the general extended state, drivers can pass additional
information about the link state using the sub-state field. For example:

$ ethtool ethX
...
Link detected: no (Autoneg, No partner detected)

Changes since v1:

* Do not mix uapi header updates with other changes
* Update header files in uapi/ to a net-next snapshot
* Move helper functions from common.c to netlink/settings.c
* Use string tables for enum strings
* Report the numeric value in case of unknown value
* Use banner once, change print concept