util

package
v0.13.5 Latest Latest
Warning

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

Go to latest
Published: Oct 12, 2023 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

package util provides common utility functions for networking.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AssignMulticastGroup

func AssignMulticastGroup(keys ...crypto.PublicKey) netip.Prefix

AssignMulticastGroup assigns a multicast group to two or more public keys.

func AssignToPrefix

func AssignToPrefix(prefix netip.Prefix, publicKey crypto.PublicKey) netip.Prefix

AssignToPrefix assigns a /112 prefix within a /32 prefix using a public key. It does not check that the given prefix is a valid /32 prefix.

func GenerateULA

func GenerateULA() (netip.Prefix, error)

GenerateULA generates a unique local address with a /32 prefix according to RFC 4193. The network is returned as a netip.Prefix.

func GenerateULAWithKey

func GenerateULAWithKey(key crypto.PublicKey) (netip.Prefix, netip.Addr)

GenerateULAWithKey generates a unique local address with a /32 prefix using the key bytes as a seed. The network is returned as a netip.Prefix. It then computes another /112 prefix for the given public key's wireguard key. It returns the /112 prefix as the first /128 address within it.

func GenerateULAWithSeed

func GenerateULAWithSeed(psk []byte) netip.Prefix

GenerateULAWithSeed generates a unique local address with a /32 prefix using a seed value. The network is returned as a netip.Prefix.

func ParsePortRange

func ParsePortRange(s string) (start int, end int, err error)

ParsePortRange parses a port range string.

func Ping

func Ping(ctx context.Context, addr netip.Addr) error

Ping sends ICMP echo requests to the given address. The context must have a timeout set and is used for the duration of the ping. The function returns an error if no replies were received.

func RandomAddress

func RandomAddress(prefix netip.Prefix) netip.Addr

RandomAddress returns a random /128 address within a /112 prefix. This is typically used for picking local dialing addresses, but can also be used to assign relay addresses. The function does not check that the prefix is a valid /112 prefix. Addresses are not guaranteed to be unique.

func ResolveTCPAddr

func ResolveTCPAddr(ctx context.Context, lookup string, maxRetries int) (net.Addr, error)

ResolveTCPAddr resolves a TCP address with retries and context.

Types

This section is empty.

Jump to

Keyboard shortcuts

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