loader

package
v0.0.0-...-9ec06b4 Latest Latest
Warning

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

Go to latest
Published: Nov 25, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PROG_NAME_ENTRYPOINY    = "entrypoint"
	PROG_NAME_COUNT         = "count"
	PROG_NAME_FIREWALL      = "firewall"
	PROG_NAME_DOS_PROTECTOR = "dos_protector"
	PROG_NAME_LB_INGRESS    = "lb_ingress"
	PROG_NAME_LB_EGRESS     = "lb_egress"

	MAP_NAME_CALLS_MAP        = "calls_map"
	MAP_NAME_COUNTER          = "counter"
	MAP_NAME_RULES            = "rules"
	MAP_NAME_DROP_COUNTER     = "drop_counter"
	MAP_NAME_ADV_RULE_MATCHER = "adv_rulematcher"
	MAP_NAME_ADV_RULES        = "adv_rules"
	MAP_NAME_DOSP_COUNTER     = "dosp_counter"
	MAP_NAME_REDIRECT_DEV_MAP = "redirect_dev_map"
	MAP_NAME_BACKEND_IFINDEX  = "backend_ifindex"
	MAP_NAME_BACKEND_INFO     = "backend_info"
	MAP_NAME_UPSTREAM_INFO    = "upstream_info"
	MAP_NAME_CONNTRACK        = "conntrack"
	MAP_NAME_RR_TABLE         = "rr_table"

	PinBasePath = "/sys/fs/bpf/scmlb"
)

bpf/xdp.c で定義された関数とマップのシンボルを定数として定義しています(使い回しがきくように)

Variables

This section is empty.

Functions

This section is empty.

Types

type Loader

type Loader struct {
	Programs map[string]*ebpf.Program
	Maps     map[string]*ebpf.Map
	// contains filtered or unexported fields
}

bpf/xdp.c から生成した関数やマップの情報を保持する構造体

func Load

func Load(logger slog.Logger) (*Loader, error)

この関数は bpf/xdp.c で定義した eBPF プログラムをカーネルにロードします

func (*Loader) Attach

func (l *Loader) Attach(device string) error

この関数はカーネルにロードした XDP プログラムを NIC にアタッチしてパケット処理を開始させる関数です。 XDP プログラムはロードする丈ではなくターゲットとなる NIC(インターフェース) にアタッチする必要があります

func (*Loader) Finalize

func (l *Loader) Finalize() error

この関数は プログラム終了時にカーネルにロード、 NIC にアタッチしたXDP プログラムや eBPF マップの後片付けを行う関数です。

func (*Loader) RegisterTailCall

func (l *Loader) RegisterTailCall() error

この関数は tail call で呼び出す関数を calls_map に登録する関数です。

Jump to

Keyboard shortcuts

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