Files
sing-box-extended/option/limiter.go

72 lines
2.7 KiB
Go

package option
import (
"github.com/sagernet/sing/common/byteformats"
"github.com/sagernet/sing/common/json/badoption"
)
type BandwidthLimiterOutboundOptions struct {
Strategy string `json:"strategy"`
ConnectionType string `json:"connection_type,omitempty"`
Mode string `json:"mode"`
FlowKeys []string `json:"flow_keys,omitempty"`
Speed *byteformats.NetworkBytesCompat `json:"speed"`
Users []BandwidthLimiterUser `json:"users,omitempty"`
Route RouteOptions `json:"route"`
}
type BandwidthLimiterUser struct {
Name string `json:"name"`
Strategy string `json:"strategy"`
ConnectionType string `json:"connection_type,omitempty"`
Mode string `json:"mode"`
Speed *byteformats.NetworkBytesCompat `json:"speed"`
}
type TrafficLimiterOutboundOptions struct {
Strategy string `json:"strategy"`
Mode string `json:"mode"`
Total *byteformats.Bytes `json:"total"`
Users []TrafficLimiterUser `json:"users,omitempty"`
Route RouteOptions `json:"route"`
}
type TrafficLimiterUser struct {
Name string `json:"name"`
Strategy string `json:"strategy"`
Mode string `json:"mode"`
Total *byteformats.Bytes `json:"total"`
}
type ConnectionLimiterOutboundOptions struct {
Strategy string `json:"strategy"`
ConnectionType string `json:"connection_type,omitempty"`
Count uint32 `json:"count"`
Users []ConnectionLimiterUser `json:"users,omitempty"`
Route RouteOptions `json:"route"`
}
type ConnectionLimiterUser struct {
Name string `json:"name"`
Strategy string `json:"strategy"`
ConnectionType string `json:"connection_type,omitempty"`
Count uint32 `json:"count"`
}
type RateLimiterOutboundOptions struct {
Strategy string `json:"strategy"`
ConnectionType string `json:"connection_type,omitempty"`
Count uint32 `json:"count"`
Interval badoption.Duration `json:"interval"`
Users []RateLimiterUser `json:"users,omitempty"`
Route RouteOptions `json:"route"`
}
type RateLimiterUser struct {
Name string `json:"name"`
Strategy string `json:"strategy"`
ConnectionType string `json:"connection_type,omitempty"`
Count uint32 `json:"count"`
Interval badoption.Duration `json:"interval"`
}