Documentation ¶
Overview ¶
Package bandwidth provides utilities for bandwidth shaping
Index ¶
- func ExtractPodBandwidthResources(podAnnotations map[string]string) (ingress, egress *resource.Quantity, err error)
- type FakeShaper
- func (f *FakeShaper) GetCIDRs() ([]string, error)
- func (f *FakeShaper) Limit(cidr string, egress, ingress *resource.Quantity) error
- func (f *FakeShaper) ReconcileCIDR(cidr string, egress, ingress *resource.Quantity) error
- func (f *FakeShaper) ReconcileInterface() error
- func (f *FakeShaper) Reset(cidr string) error
- type Shaper
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type FakeShaper ¶
FakeShaper provides an implementation of the bandwidth.Shaper. Beware this is implementation has no features besides Reset and GetCIDRs.
func (*FakeShaper) GetCIDRs ¶
func (f *FakeShaper) GetCIDRs() ([]string, error)
GetCIDRs returns the set of CIDRs that are being managed by this shaper
func (*FakeShaper) Limit ¶
func (f *FakeShaper) Limit(cidr string, egress, ingress *resource.Quantity) error
Limit is not implemented
func (*FakeShaper) ReconcileCIDR ¶
func (f *FakeShaper) ReconcileCIDR(cidr string, egress, ingress *resource.Quantity) error
ReconcileCIDR is not implemented
func (*FakeShaper) ReconcileInterface ¶
func (f *FakeShaper) ReconcileInterface() error
ReconcileInterface is not implemented
func (*FakeShaper) Reset ¶
func (f *FakeShaper) Reset(cidr string) error
Reset appends a particular CIDR to the set of ResetCIDRs being managed by this shaper
type Shaper ¶
type Shaper interface { // Limit the bandwidth for a particular CIDR on a particular interface // * ingress and egress are in bits/second // * cidr is expected to be a valid network CIDR (e.g. '1.2.3.4/32' or '10.20.0.1/16') // 'egress' bandwidth limit applies to all packets on the interface whose source matches 'cidr' // 'ingress' bandwidth limit applies to all packets on the interface whose destination matches 'cidr' // Limits are aggregate limits for the CIDR, not per IP address. CIDRs must be unique, but can be overlapping, traffic // that matches multiple CIDRs counts against all limits. Limit(cidr string, egress, ingress *resource.Quantity) error // Remove a bandwidth limit for a particular CIDR on a particular network interface Reset(cidr string) error // Reconcile the interface managed by this shaper with the state on the ground. ReconcileInterface() error // Reconcile a CIDR managed by this shaper with the state on the ground ReconcileCIDR(cidr string, egress, ingress *resource.Quantity) error // GetCIDRs returns the set of CIDRs that are being managed by this shaper GetCIDRs() ([]string, error) }
Shaper is designed so that the shaper structs created satisfy the Shaper interface.
func NewTCShaper ¶
NewTCShaper makes a new tcShaper for the given interface
Click to show internal directories.
Click to hide internal directories.