kubernetes: k8s.io/kubernetes/pkg/util/bandwidth Index | Files

package bandwidth

import "k8s.io/kubernetes/pkg/util/bandwidth"

Package bandwidth provides utilities for bandwidth shaping

Index

Package Files

doc.go fake_shaper.go interfaces.go linux.go utils.go

func ExtractPodBandwidthResources Uses

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

ExtractPodBandwidthResources extracts the ingress and egress from the given pod annotations

type FakeShaper Uses

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

FakeShaper provides an implementation of the bandwith.Shaper. Beware this is implementation has no features besides Reset and GetCIDRs.

func (*FakeShaper) GetCIDRs Uses

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

GetCIDRs returns the set of CIDRs that are being managed by this shaper

func (*FakeShaper) Limit Uses

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

Limit is not implemented

func (*FakeShaper) ReconcileCIDR Uses

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

ReconcileCIDR is not implemented

func (*FakeShaper) ReconcileInterface Uses

func (f *FakeShaper) ReconcileInterface() error

ReconcileInterface is not implemented

func (*FakeShaper) Reset Uses

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

Reset appends a particular CIDR to the set of ResetCIDRs being managed by this shaper

type Shaper Uses

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 Uses

func NewTCShaper(iface string) Shaper

NewTCShaper makes a new tcShaper for the given interface

Package bandwidth imports 11 packages (graph) and is imported by 208 packages. Updated 2019-11-07. Refresh now. Tools for package owners.