net: add FlagRunning to exactly reflect the states of an interface.

Correctly set this flag while parsing the syscall result.

The FlagUp flag can not distinguish the following situations:
1. interface is plugged, automatically up, and in running(UP) state
2. interface is not plugged, administratively or manually set to up,
but in DOWN state

So, We can't distinguish the state of a NIC by the FlagUp flag alone.

Fixes #53482

Change-Id: I43796bea1a7f72d1fddfef914efe603c81995e1b
GitHub-Last-Rev: 686b5d888e
GitHub-Pull-Request: golang/go#53484
Reviewed-on: https://go-review.googlesource.com/c/go/+/413454
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ryan Schuster <shuey19831@gmail.com>
Reviewed-by: Jianwei Mao <maojianwei2020@gmail.com>
Reviewed-by: Damien Neil <dneil@google.com>
This commit is contained in:
Jianwei Mao 2022-08-26 08:45:23 +00:00 committed by Gopher Robot
parent a0948493ac
commit a2d2e6e7cb
8 changed files with 20 additions and 3 deletions

View file

@ -95,9 +95,9 @@ func readInterface(i int) (*Interface, error) {
}
}
ifc.Flags = FlagUp | FlagBroadcast | FlagMulticast
ifc.Flags = FlagUp | FlagRunning | FlagBroadcast | FlagMulticast
} else {
ifc.Flags = FlagUp | FlagMulticast | FlagLoopback
ifc.Flags = FlagUp | FlagRunning | FlagMulticast | FlagLoopback
}
return ifc, nil