net: add mptcpStatus type

This new type will be used in the following commits.

The goal is to have a tristate, an enum with three values:

- system default (0)
- enabled
- disabled

The system default value is linked to defaultMPTCPEnabled: disabled by
default for the moment. Users will be able to force enabling/disabling
MPTCP or use the default behaviour.

This work has been co-developped by Gregory Detal
<gregory.detal@tessares.net>.

Updates #56539

Change-Id: I8fa0cad7a18ca967508799fc828ef060b27683d2
Reviewed-on: https://go-review.googlesource.com/c/go/+/477735
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Heschi Kreinick <heschi@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Emmanuel Odeke <emmanuel@orijtech.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
Matthieu Baerts 2023-03-20 10:35:51 +01:00 committed by Emmanuel Odeke
parent 7ec2e84424
commit e4abe90bf8
1 changed files with 35 additions and 2 deletions

View File

@ -11,12 +11,45 @@ import (
"time"
)
// defaultTCPKeepAlive is a default constant value for TCPKeepAlive times
// See golang.org/issue/31510
const (
// defaultTCPKeepAlive is a default constant value for TCPKeepAlive times
// See go.dev/issue/31510
defaultTCPKeepAlive = 15 * time.Second
// For the moment, MultiPath TCP is not used by default
// See go.dev/issue/56539
defaultMPTCPEnabled = false
)
// mptcpStatus is a tristate for Multipath TCP, see go.dev/issue/56539
type mptcpStatus uint8
const (
// The value 0 is the system default, linked to defaultMPTCPEnabled
mptcpUseDefault mptcpStatus = iota
mptcpEnabled
mptcpDisabled
)
func (m *mptcpStatus) get() bool {
switch *m {
case mptcpEnabled:
return true
case mptcpDisabled:
return false
}
return defaultMPTCPEnabled
}
func (m *mptcpStatus) set(use bool) {
if use {
*m = mptcpEnabled
} else {
*m = mptcpDisabled
}
}
// A Dialer contains options for connecting to an address.
//
// The zero value for each field is equivalent to dialing