network: introduce 'degraded-carrier' operstate to order all states
Previously, 'degraded' state is ambiguous for bonding or bridge master: 1. one or more slave interfaces does not have carrier, 2. no link local address is assigned to the master, 3. combination of the above two. This makes the above case 1 and 3 are in the new 'degraded-carrier' state, and makes 'degraded' state as all slaves are active but no link local address on master.
This commit is contained in:
@@ -21,13 +21,14 @@ bool network_is_online(void) {
|
||||
}
|
||||
|
||||
static const char* const link_operstate_table[_LINK_OPERSTATE_MAX] = {
|
||||
[LINK_OPERSTATE_OFF] = "off",
|
||||
[LINK_OPERSTATE_NO_CARRIER] = "no-carrier",
|
||||
[LINK_OPERSTATE_DORMANT] = "dormant",
|
||||
[LINK_OPERSTATE_CARRIER] = "carrier",
|
||||
[LINK_OPERSTATE_DEGRADED] = "degraded",
|
||||
[LINK_OPERSTATE_ENSLAVED] = "enslaved",
|
||||
[LINK_OPERSTATE_ROUTABLE] = "routable",
|
||||
[LINK_OPERSTATE_OFF] = "off",
|
||||
[LINK_OPERSTATE_NO_CARRIER] = "no-carrier",
|
||||
[LINK_OPERSTATE_DORMANT] = "dormant",
|
||||
[LINK_OPERSTATE_DEGRADED_CARRIER] = "degraded-carrier",
|
||||
[LINK_OPERSTATE_CARRIER] = "carrier",
|
||||
[LINK_OPERSTATE_DEGRADED] = "degraded",
|
||||
[LINK_OPERSTATE_ENSLAVED] = "enslaved",
|
||||
[LINK_OPERSTATE_ROUTABLE] = "routable",
|
||||
};
|
||||
|
||||
DEFINE_STRING_TABLE_LOOKUP(link_operstate, LinkOperationalState);
|
||||
|
||||
@@ -11,6 +11,7 @@ typedef enum LinkOperationalState {
|
||||
LINK_OPERSTATE_OFF,
|
||||
LINK_OPERSTATE_NO_CARRIER,
|
||||
LINK_OPERSTATE_DORMANT,
|
||||
LINK_OPERSTATE_DEGRADED_CARRIER,
|
||||
LINK_OPERSTATE_CARRIER,
|
||||
LINK_OPERSTATE_DEGRADED,
|
||||
LINK_OPERSTATE_ENSLAVED,
|
||||
|
||||
Reference in New Issue
Block a user