bandwidth

package
v1.14.11-beta.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2019 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package bandwidth provides utilities for bandwidth shaping

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExtractPodBandwidthResources added in v1.3.0

func ExtractPodBandwidthResources(podAnnotations map[string]string) (ingress, egress *resource.Quantity, err error)

Types

type BandwidthShaper

type BandwidthShaper 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)
}

func NewTCShaper

func NewTCShaper(iface string) BandwidthShaper

type FakeShaper

type FakeShaper struct {
	CIDRs      []string
	ResetCIDRs []string
}

func (*FakeShaper) GetCIDRs

func (f *FakeShaper) GetCIDRs() ([]string, error)

func (*FakeShaper) Limit

func (f *FakeShaper) Limit(cidr string, egress, ingress *resource.Quantity) error

func (*FakeShaper) ReconcileCIDR

func (f *FakeShaper) ReconcileCIDR(cidr string, egress, ingress *resource.Quantity) error

func (*FakeShaper) ReconcileInterface

func (f *FakeShaper) ReconcileInterface() error

func (*FakeShaper) Reset

func (f *FakeShaper) Reset(cidr string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL