bandwidth

package
v1.0.7 Latest Latest
Warning

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

Go to latest
Published: Oct 29, 2015 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

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 added in v1.0.7

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

func (*FakeShaper) GetCIDRs added in v1.0.7

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

func (*FakeShaper) Limit added in v1.0.7

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

func (*FakeShaper) ReconcileCIDR added in v1.0.7

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

func (*FakeShaper) ReconcileInterface added in v1.0.7

func (f *FakeShaper) ReconcileInterface() error

func (*FakeShaper) Reset added in v1.0.7

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