bandwidth

package
v0.0.0-...-b72fa50 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2019 License: Apache-2.0, 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

This section is empty.

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