2016-06-14 22:54:08 +02:00
|
|
|
package kcp
|
2016-06-11 17:30:38 +08:00
|
|
|
|
|
|
|
type Config struct {
|
2016-06-20 16:10:47 +02:00
|
|
|
Mtu int // Maximum transmission unit
|
|
|
|
Tti int
|
|
|
|
UplinkCapacity int
|
|
|
|
DownlinkCapacity int
|
|
|
|
Congestion bool
|
2016-06-11 17:30:38 +08:00
|
|
|
}
|
|
|
|
|
2016-06-14 22:54:08 +02:00
|
|
|
func (this *Config) Apply() {
|
|
|
|
effectiveConfig = *this
|
2016-06-11 17:30:38 +08:00
|
|
|
}
|
2016-06-14 22:54:08 +02:00
|
|
|
|
2016-06-20 16:10:47 +02:00
|
|
|
func (this *Config) GetSendingWindowSize() int {
|
|
|
|
return this.UplinkCapacity * 1024 * 1024 / this.Mtu / (1000 / this.Tti)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (this *Config) GetReceivingWindowSize() int {
|
|
|
|
return this.DownlinkCapacity * 1024 * 1024 / this.Mtu / (1000 / this.Tti)
|
|
|
|
}
|
|
|
|
|
2016-06-17 16:57:48 +02:00
|
|
|
func DefaultConfig() Config {
|
|
|
|
return Config{
|
2016-06-20 16:10:47 +02:00
|
|
|
Mtu: 1350,
|
|
|
|
Tti: 20,
|
|
|
|
UplinkCapacity: 5,
|
|
|
|
DownlinkCapacity: 20,
|
|
|
|
Congestion: false,
|
2016-06-14 22:54:08 +02:00
|
|
|
}
|
2016-06-17 16:57:48 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
var (
|
|
|
|
effectiveConfig = DefaultConfig()
|
2016-06-14 22:54:08 +02:00
|
|
|
)
|