Documentation ¶
Overview ¶
Package netlink provides a simple library for netlink. Netlink is the interface a user-space program in linux uses to communicate with the kernel. It can be used to add and remove interfaces, set up ip addresses and routes, and confiugre ipsec. Netlink communication requires elevated privileges, so in most cases this code needs to be run as root. The low level primitives for netlink are contained in the nl subpackage. This package attempts to provide a high-level interface that is loosly modeled on the iproute2 cli.
Index ¶
- Constants
- Variables
- func AddrAdd(link Link, addr *Addr) error
- func AddrDel(link Link, addr *Addr) error
- func AddrReplace(link Link, addr *Addr) error
- func AddrSubscribe(ch chan<- AddrUpdate, done <-chan struct{}) error
- func AddrSubscribeAt(ns netns.NsHandle, ch chan<- AddrUpdate, done <-chan struct{}) error
- func AddrSubscribeWithOptions(ch chan<- AddrUpdate, done <-chan struct{}, options AddrSubscribeOptions) error
- func AdjustSize(sz uint, mpu uint, linklayer int) uint
- func AlignToAtm(size uint) uint
- func BridgeSetMcastSnoop(link Link, on bool) error
- func BridgeSetVlanDefaultPVID(link Link, pvid uint16) error
- func BridgeSetVlanFiltering(link Link, on bool) error
- func BridgeVlanAdd(link Link, vid uint16, pvid, untagged, self, master bool) error
- func BridgeVlanAddRange(link Link, vid, vidEnd uint16, pvid, untagged, self, master bool) error
- func BridgeVlanDel(link Link, vid uint16, pvid, untagged, self, master bool) error
- func BridgeVlanDelRange(link Link, vid, vidEnd uint16, pvid, untagged, self, master bool) error
- func BridgeVlanList() (map[int32][]*nl.BridgeVlanInfo, error)
- func CalcRtable(rate *nl.TcRateSpec, rtab []uint32, cellLog int, mtu uint32, linklayer int) int
- func ChainAdd(link Link, chain Chain) error
- func ChainDel(link Link, chain Chain) error
- func ClassAdd(class Class) error
- func ClassChange(class Class) error
- func ClassDel(class Class) error
- func ClassReplace(class Class) error
- func ClockFactor() float64
- func ConntrackCreate(table ConntrackTableType, family InetFamily, flow *ConntrackFlow) error
- func ConntrackDeleteFilter(table ConntrackTableType, family InetFamily, filter CustomConntrackFilter) (uint, error)deprecated
- func ConntrackDeleteFilters(table ConntrackTableType, family InetFamily, filters ...CustomConntrackFilter) (uint, error)
- func ConntrackTableFlush(table ConntrackTableType) error
- func ConntrackUpdate(table ConntrackTableType, family InetFamily, flow *ConntrackFlow) error
- func DeserializeRtab(b []byte) [256]uint32
- func DevLinkPortDel(Bus string, Device string, PortIndex uint32) error
- func DevLinkSetEswitchMode(Dev *DevlinkDevice, NewMode string) error
- func DevlinkGetDeviceInfoByNameAsMap(Bus string, Device string) (map[string]string, error)
- func DevlinkPortFnSet(Bus string, Device string, PortIndex uint32, FnAttrs DevlinkPortFnSetAttrs) error
- func DevlinkSetDeviceParam(bus string, device string, param string, cmode uint8, value interface{}) error
- func EncodeActions(attr *nl.RtAttr, actions []Action) error
- func FilterAdd(filter Filter) error
- func FilterDel(filter Filter) error
- func FilterReplace(filter Filter) error
- func FouAdd(f Fou) error
- func FouDel(f Fou) error
- func FouFamilyId() (int, error)
- func GTPPDPAdd(link Link, pdp *PDP) error
- func GTPPDPDel(link Link, pdp *PDP) error
- func GetNetNsIdByFd(fd int) (int, error)
- func GetNetNsIdByPid(pid int) (int, error)
- func GetSocketTimeout() time.Duration
- func HandleStr(handle uint32) string
- func Hz() float64
- func IpsetAdd(setname string, entry *IPSetEntry) error
- func IpsetCreate(setname, typename string, options IpsetCreateOptions) error
- func IpsetDel(setname string, entry *IPSetEntry) error
- func IpsetDestroy(setname string) error
- func IpsetFlush(setname string) error
- func IpsetProtocol() (uint8, uint8, error)
- func IpsetSwap(setname, othersetname string) error
- func IpsetTest(setname string, entry *IPSetEntry) (bool, error)
- func IsBitSet(input uint64, pos int) bool
- func LinkAdd(link Link) error
- func LinkAddAltName(link Link, name string) error
- func LinkDel(link Link) error
- func LinkDelAltName(link Link, name string) error
- func LinkDelBondSlave(link Link, master *Bond) error
- func LinkModify(link Link) error
- func LinkSetARPOff(link Link) error
- func LinkSetARPOn(link Link) error
- func LinkSetAlias(link Link, name string) error
- func LinkSetAllmulticastOff(link Link) error
- func LinkSetAllmulticastOn(link Link) error
- func LinkSetBRSlaveGroupFwdMask(link Link, mask uint16) error
- func LinkSetBondSlave(link Link, master *Bond) error
- func LinkSetBondSlaveActive(link Link, master *Bond) error
- func LinkSetBondSlaveQueueId(link Link, queueId uint16) error
- func LinkSetBrNeighSuppress(link Link, mode bool) error
- func LinkSetBrProxyArp(link Link, mode bool) error
- func LinkSetBrProxyArpWiFi(link Link, mode bool) error
- func LinkSetDown(link Link) error
- func LinkSetFastLeave(link Link, mode bool) error
- func LinkSetFlood(link Link, mode bool) error
- func LinkSetGROIPv4MaxSize(link Link, maxSize int) error
- func LinkSetGROMaxSize(link Link, maxSize int) error
- func LinkSetGSOIPv4MaxSize(link Link, maxSize int) error
- func LinkSetGSOMaxSegs(link Link, maxSegs int) error
- func LinkSetGSOMaxSize(link Link, maxSize int) error
- func LinkSetGroup(link Link, group int) error
- func LinkSetGuard(link Link, mode bool) error
- func LinkSetHairpin(link Link, mode bool) error
- func LinkSetHardwareAddr(link Link, hwaddr net.HardwareAddr) error
- func LinkSetIsolated(link Link, mode bool) error
- func LinkSetLearning(link Link, mode bool) error
- func LinkSetMTU(link Link, mtu int) error
- func LinkSetMacvlanMode(link Link, mode MacvlanMode) error
- func LinkSetMaster(link Link, master Link) error
- func LinkSetMasterByIndex(link Link, masterIndex int) error
- func LinkSetMulticastOff(link Link) error
- func LinkSetMulticastOn(link Link) error
- func LinkSetName(link Link, name string) error
- func LinkSetNoMaster(link Link) error
- func LinkSetNsFd(link Link, fd int) error
- func LinkSetNsPid(link Link, nspid int) error
- func LinkSetRootBlock(link Link, mode bool) error
- func LinkSetTxQLen(link Link, qlen int) error
- func LinkSetUp(link Link) error
- func LinkSetVfHardwareAddr(link Link, vf int, hwaddr net.HardwareAddr) error
- func LinkSetVfNodeGUID(link Link, vf int, nodeguid net.HardwareAddr) error
- func LinkSetVfPortGUID(link Link, vf int, portguid net.HardwareAddr) error
- func LinkSetVfRate(link Link, vf, minRate, maxRate int) error
- func LinkSetVfSpoofchk(link Link, vf int, check bool) error
- func LinkSetVfState(link Link, vf int, state uint32) error
- func LinkSetVfTrust(link Link, vf int, state bool) error
- func LinkSetVfTxRate(link Link, vf, rate int) error
- func LinkSetVfVlan(link Link, vf, vlan int) error
- func LinkSetVfVlanQos(link Link, vf, vlan, qos int) error
- func LinkSetVfVlanQosProto(link Link, vf, vlan, qos, proto int) error
- func LinkSetXdpFd(link Link, fd int) error
- func LinkSetXdpFdWithFlags(link Link, fd, flags int) error
- func LinkSubscribe(ch chan<- LinkUpdate, done <-chan struct{}) error
- func LinkSubscribeAt(ns netns.NsHandle, ch chan<- LinkUpdate, done <-chan struct{}) error
- func LinkSubscribeWithOptions(ch chan<- LinkUpdate, done <-chan struct{}, options LinkSubscribeOptions) error
- func MacvlanMACAddrAdd(link Link, addr net.HardwareAddr) error
- func MacvlanMACAddrDel(link Link, addr net.HardwareAddr) error
- func MacvlanMACAddrFlush(link Link) error
- func MacvlanMACAddrSet(link Link, addrs []net.HardwareAddr) error
- func MajorMinor(handle uint32) (uint16, uint16)
- func MakeHandle(major, minor uint16) uint32
- func NeighAdd(neigh *Neigh) error
- func NeighAppend(neigh *Neigh) error
- func NeighDel(neigh *Neigh) error
- func NeighSet(neigh *Neigh) error
- func NeighSubscribe(ch chan<- NeighUpdate, done <-chan struct{}) error
- func NeighSubscribeAt(ns netns.NsHandle, ch chan<- NeighUpdate, done <-chan struct{}) error
- func NeighSubscribeWithOptions(ch chan<- NeighUpdate, done <-chan struct{}, options NeighSubscribeOptions) error
- func NewIPNet(ip net.IP) *net.IPNet
- func ParseIPNet(s string) (*net.IPNet, error)
- func Percentage2u32(percentage float32) uint32
- func ProcEventMonitor(ch chan<- ProcEvent, done <-chan struct{}, errorChan chan<- error) error
- func QdiscAdd(qdisc Qdisc) error
- func QdiscChange(qdisc Qdisc) error
- func QdiscDel(qdisc Qdisc) error
- func QdiscReplace(qdisc Qdisc) error
- func RdmaLinkAdd(linkName, linkType, netdev string) error
- func RdmaLinkDel(name string) error
- func RdmaLinkSetName(link *RdmaLink, name string) error
- func RdmaLinkSetNsFd(link *RdmaLink, fd uint32) error
- func RdmaSystemGetNetnsMode() (string, error)
- func RdmaSystemSetNetnsMode(NewMode string) error
- func RouteAdd(route *Route) error
- func RouteAddEcmp(route *Route) error
- func RouteAppend(route *Route) error
- func RouteChange(route *Route) error
- func RouteDel(route *Route) error
- func RouteListFilteredIter(family int, filter *Route, filterMask uint64, f func(Route) (cont bool)) error
- func RouteReplace(route *Route) error
- func RouteSubscribe(ch chan<- RouteUpdate, done <-chan struct{}) error
- func RouteSubscribeAt(ns netns.NsHandle, ch chan<- RouteUpdate, done <-chan struct{}) error
- func RouteSubscribeWithOptions(ch chan<- RouteUpdate, done <-chan struct{}, options RouteSubscribeOptions) error
- func RuleAdd(rule *Rule) error
- func RuleDel(rule *Rule) error
- func SerializeRtab(rtab [256]uint32) []byte
- func SetBits(input uint64, pos ...int) uint64
- func SetNetNsIdByFd(fd, nsid int) error
- func SetNetNsIdByPid(pid, nsid int) error
- func SetPromiscOff(link Link) error
- func SetPromiscOn(link Link) error
- func SetSocketTimeout(to time.Duration) error
- func SocketDestroy(local, remote net.Addr) error
- func TcActExtCmp(combined int32, opcode int32) bool
- func TickInUsec() float64
- func VDPADelDev(name string) error
- func VDPANewDev(name, mgmtBus, mgmtName string, params VDPANewDevParams) error
- func VethPeerIndex(link *Veth) (int, error)
- func XfrmMonitor(ch chan<- XfrmMsg, done <-chan struct{}, errorChan chan<- error, ...) error
- func XfrmPolicyAdd(policy *XfrmPolicy) error
- func XfrmPolicyDel(policy *XfrmPolicy) error
- func XfrmPolicyFlush() error
- func XfrmPolicyUpdate(policy *XfrmPolicy) error
- func XfrmStateAdd(state *XfrmState) error
- func XfrmStateDel(state *XfrmState) error
- func XfrmStateFlush(proto Proto) error
- func XfrmStateUpdate(state *XfrmState) error
- func Xmitsize(rate uint64, ticks uint32) uint32
- func Xmittime(rate uint64, size uint32) uint32
- type Action
- type ActionAttrs
- type ActionStatistic
- type ActionTimestamp
- type Addr
- type AddrSubscribeOptions
- type AddrUpdate
- type BPFAttr
- type BareUDP
- type Bond
- type BondAdInfo
- type BondAdSelect
- type BondArpAllTargets
- type BondArpValidate
- type BondFailOverMac
- type BondLacpRate
- type BondMode
- type BondPrimaryReselect
- type BondSlave
- type BondSlaveMiiStatus
- type BondSlaveState
- type BondXmitHashPolicy
- type BpfAction
- type BpfEncap
- func (e *BpfEncap) Decode(buf []byte) error
- func (e *BpfEncap) Encode() ([]byte, error)
- func (e *BpfEncap) Equal(x Encap) bool
- func (e *BpfEncap) SetProg(mode, progFd int, progName string) error
- func (e *BpfEncap) SetXmitHeadroom(headroom int) error
- func (e *BpfEncap) String() string
- func (e *BpfEncap) Type() int
- type BpfFilter
- type BpfProgType
- type Bridge
- type Can
- type Chain
- type Class
- type ClassAttrs
- type ClassStatistics
- type Clsact
- type CommProcEvent
- type ConnmarkAction
- type ConntrackFilter
- func (f *ConntrackFilter) AddIP(tp ConntrackFilterType, ip net.IP) error
- func (f *ConntrackFilter) AddIPNet(tp ConntrackFilterType, ipNet *net.IPNet) error
- func (f *ConntrackFilter) AddLabels(tp ConntrackFilterType, labels [][]byte) error
- func (f *ConntrackFilter) AddPort(tp ConntrackFilterType, port uint16) error
- func (f *ConntrackFilter) AddProtocol(proto uint8) error
- func (f *ConntrackFilter) AddZone(zone uint16) error
- func (f *ConntrackFilter) MatchConntrackFlow(flow *ConntrackFlow) bool
- type ConntrackFilterType
- type ConntrackFlow
- type ConntrackTableType
- type CsumAction
- type CsumUpdateFlags
- type CustomConntrackFilter
- type Destination
- type DevLinkPortAddAttrs
- type Device
- type DevlinkDevAttrs
- type DevlinkDevEswitchAttr
- type DevlinkDevice
- type DevlinkDeviceInfo
- type DevlinkParam
- type DevlinkParamValue
- type DevlinkPort
- type DevlinkPortFn
- type DevlinkPortFnSetAttrs
- type DevlinkResource
- type DevlinkResources
- type Dir
- type Dummy
- type Encap
- type EncapType
- type ExecProcEvent
- type ExitProcEvent
- type Filter
- type FilterAttrs
- type Flower
- type ForkProcEvent
- type Fou
- type Fq
- type FqCodel
- type FwFilter
- type GTP
- type GenericAction
- type GenericClass
- type GenericFilter
- type GenericLink
- type GenericQdisc
- type Geneve
- type GeneveDf
- type GenlFamily
- type GenlMulticastGroup
- type GenlOp
- type GnetStatsBasic
- type GnetStatsQueue
- type GnetStatsRateEst
- type GnetStatsRateEst64
- type Gretap
- type Gretun
- type Handle
- func (h *Handle) AddrAdd(link Link, addr *Addr) error
- func (h *Handle) AddrDel(link Link, addr *Addr) error
- func (h *Handle) AddrList(link Link, family int) ([]Addr, error)
- func (h *Handle) AddrReplace(link Link, addr *Addr) error
- func (h *Handle) BridgeSetMcastSnoop(link Link, on bool) error
- func (h *Handle) BridgeSetVlanDefaultPVID(link Link, pvid uint16) error
- func (h *Handle) BridgeSetVlanFiltering(link Link, on bool) error
- func (h *Handle) BridgeVlanAdd(link Link, vid uint16, pvid, untagged, self, master bool) error
- func (h *Handle) BridgeVlanAddRange(link Link, vid, vidEnd uint16, pvid, untagged, self, master bool) error
- func (h *Handle) BridgeVlanDel(link Link, vid uint16, pvid, untagged, self, master bool) error
- func (h *Handle) BridgeVlanDelRange(link Link, vid, vidEnd uint16, pvid, untagged, self, master bool) error
- func (h *Handle) BridgeVlanList() (map[int32][]*nl.BridgeVlanInfo, error)
- func (h *Handle) ChainAdd(link Link, chain Chain) error
- func (h *Handle) ChainDel(link Link, chain Chain) error
- func (h *Handle) ChainList(link Link, parent uint32) ([]Chain, error)
- func (h *Handle) ClassAdd(class Class) error
- func (h *Handle) ClassChange(class Class) error
- func (h *Handle) ClassDel(class Class) error
- func (h *Handle) ClassList(link Link, parent uint32) ([]Class, error)
- func (h *Handle) ClassReplace(class Class) error
- func (h *Handle) Close()
- func (h *Handle) ConntrackCreate(table ConntrackTableType, family InetFamily, flow *ConntrackFlow) error
- func (h *Handle) ConntrackDeleteFilter(table ConntrackTableType, family InetFamily, filter CustomConntrackFilter) (uint, error)deprecated
- func (h *Handle) ConntrackDeleteFilters(table ConntrackTableType, family InetFamily, filters ...CustomConntrackFilter) (uint, error)
- func (h *Handle) ConntrackTableFlush(table ConntrackTableType) error
- func (h *Handle) ConntrackTableList(table ConntrackTableType, family InetFamily) ([]*ConntrackFlow, error)
- func (h *Handle) ConntrackUpdate(table ConntrackTableType, family InetFamily, flow *ConntrackFlow) error
- func (h *Handle) Delete()deprecated
- func (h *Handle) DevLinkGetAllPortList() ([]*DevlinkPort, error)
- func (h *Handle) DevLinkGetDeviceByName(Bus string, Device string) (*DevlinkDevice, error)
- func (h *Handle) DevLinkGetDeviceList() ([]*DevlinkDevice, error)
- func (h *Handle) DevLinkGetPortByIndex(Bus string, Device string, PortIndex uint32) (*DevlinkPort, error)
- func (h *Handle) DevLinkPortAdd(Bus string, Device string, Flavour uint16, Attrs DevLinkPortAddAttrs) (*DevlinkPort, error)
- func (h *Handle) DevLinkPortDel(Bus string, Device string, PortIndex uint32) error
- func (h *Handle) DevLinkSetEswitchMode(Dev *DevlinkDevice, NewMode string) error
- func (h *Handle) DevlinkGetDeviceInfoByName(Bus string, Device string, getInfoMsg devlinkInfoGetter) (*DevlinkDeviceInfo, error)
- func (h *Handle) DevlinkGetDeviceInfoByNameAsMap(Bus string, Device string, getInfoMsg devlinkInfoGetter) (map[string]string, error)
- func (h *Handle) DevlinkGetDeviceParamByName(bus string, device string, param string) (*DevlinkParam, error)
- func (h *Handle) DevlinkGetDeviceParams(bus string, device string) ([]*DevlinkParam, error)
- func (h *Handle) DevlinkGetDeviceResources(bus string, device string) (*DevlinkResources, error)
- func (h *Handle) DevlinkPortFnSet(Bus string, Device string, PortIndex uint32, FnAttrs DevlinkPortFnSetAttrs) error
- func (h *Handle) DevlinkSetDeviceParam(bus string, device string, param string, cmode uint8, value interface{}) error
- func (h *Handle) FilterAdd(filter Filter) error
- func (h *Handle) FilterDel(filter Filter) error
- func (h *Handle) FilterList(link Link, parent uint32) ([]Filter, error)
- func (h *Handle) FilterReplace(filter Filter) error
- func (h *Handle) FouAdd(f Fou) error
- func (h *Handle) FouDel(f Fou) error
- func (h *Handle) FouList(fam int) ([]Fou, error)
- func (h *Handle) GTPPDPAdd(link Link, pdp *PDP) error
- func (h *Handle) GTPPDPByITEI(link Link, itei int) (*PDP, error)
- func (h *Handle) GTPPDPByMSAddress(link Link, addr net.IP) (*PDP, error)
- func (h *Handle) GTPPDPByTID(link Link, tid int) (*PDP, error)
- func (h *Handle) GTPPDPDel(link Link, pdp *PDP) error
- func (h *Handle) GTPPDPList() ([]*PDP, error)
- func (h *Handle) GenlFamilyGet(name string) (*GenlFamily, error)
- func (h *Handle) GenlFamilyList() ([]*GenlFamily, error)
- func (h *Handle) GetNetNsIdByFd(fd int) (int, error)
- func (h *Handle) GetNetNsIdByPid(pid int) (int, error)
- func (h *Handle) GetSocketReceiveBufferSize() ([]int, error)
- func (h *Handle) IpsetAdd(setname string, entry *IPSetEntry) error
- func (h *Handle) IpsetCreate(setname, typename string, options IpsetCreateOptions) error
- func (h *Handle) IpsetDel(setname string, entry *IPSetEntry) error
- func (h *Handle) IpsetDestroy(setname string) error
- func (h *Handle) IpsetFlush(setname string) error
- func (h *Handle) IpsetList(name string) (*IPSetResult, error)
- func (h *Handle) IpsetListAll() ([]IPSetResult, error)
- func (h *Handle) IpsetProtocol() (protocol uint8, minVersion uint8, err error)
- func (h *Handle) IpsetSwap(setname, othersetname string) error
- func (h *Handle) IpsetTest(setname string, entry *IPSetEntry) (bool, error)
- func (h *Handle) LinkAdd(link Link) error
- func (h *Handle) LinkAddAltName(link Link, name string) error
- func (h *Handle) LinkByAlias(alias string) (Link, error)
- func (h *Handle) LinkByIndex(index int) (Link, error)
- func (h *Handle) LinkByName(name string) (Link, error)
- func (h *Handle) LinkDel(link Link) error
- func (h *Handle) LinkDelAltName(link Link, name string) error
- func (h *Handle) LinkGetProtinfo(link Link) (Protinfo, error)
- func (h *Handle) LinkList() ([]Link, error)
- func (h *Handle) LinkModify(link Link) error
- func (h *Handle) LinkSetARPOff(link Link) error
- func (h *Handle) LinkSetARPOn(link Link) error
- func (h *Handle) LinkSetAlias(link Link, name string) error
- func (h *Handle) LinkSetAllmulticastOff(link Link) error
- func (h *Handle) LinkSetAllmulticastOn(link Link) error
- func (h *Handle) LinkSetBRSlaveGroupFwdMask(link Link, mask uint16) error
- func (h *Handle) LinkSetBondSlaveQueueId(link Link, queueId uint16) error
- func (h *Handle) LinkSetBrNeighSuppress(link Link, mode bool) error
- func (h *Handle) LinkSetBrProxyArp(link Link, mode bool) error
- func (h *Handle) LinkSetBrProxyArpWiFi(link Link, mode bool) error
- func (h *Handle) LinkSetDown(link Link) error
- func (h *Handle) LinkSetFastLeave(link Link, mode bool) error
- func (h *Handle) LinkSetFlood(link Link, mode bool) error
- func (h *Handle) LinkSetGROIPv4MaxSize(link Link, maxSize int) error
- func (h *Handle) LinkSetGROMaxSize(link Link, maxSize int) error
- func (h *Handle) LinkSetGSOIPv4MaxSize(link Link, maxSize int) error
- func (h *Handle) LinkSetGSOMaxSegs(link Link, maxSize int) error
- func (h *Handle) LinkSetGSOMaxSize(link Link, maxSize int) error
- func (h *Handle) LinkSetGroup(link Link, group int) error
- func (h *Handle) LinkSetGuard(link Link, mode bool) error
- func (h *Handle) LinkSetHairpin(link Link, mode bool) error
- func (h *Handle) LinkSetHardwareAddr(link Link, hwaddr net.HardwareAddr) error
- func (h *Handle) LinkSetIsolated(link Link, mode bool) error
- func (h *Handle) LinkSetLearning(link Link, mode bool) error
- func (h *Handle) LinkSetMTU(link Link, mtu int) error
- func (h *Handle) LinkSetMacvlanMode(link Link, mode MacvlanMode) error
- func (h *Handle) LinkSetMaster(link Link, master Link) error
- func (h *Handle) LinkSetMasterByIndex(link Link, masterIndex int) error
- func (h *Handle) LinkSetMulticastOff(link Link) error
- func (h *Handle) LinkSetMulticastOn(link Link) error
- func (h *Handle) LinkSetName(link Link, name string) error
- func (h *Handle) LinkSetNoMaster(link Link) error
- func (h *Handle) LinkSetNsFd(link Link, fd int) error
- func (h *Handle) LinkSetNsPid(link Link, nspid int) error
- func (h *Handle) LinkSetRootBlock(link Link, mode bool) error
- func (h *Handle) LinkSetTxQLen(link Link, qlen int) error
- func (h *Handle) LinkSetUp(link Link) error
- func (h *Handle) LinkSetVfGUID(link Link, vf int, vfGuid net.HardwareAddr, guidType int) error
- func (h *Handle) LinkSetVfHardwareAddr(link Link, vf int, hwaddr net.HardwareAddr) error
- func (h *Handle) LinkSetVfRate(link Link, vf, minRate, maxRate int) error
- func (h *Handle) LinkSetVfSpoofchk(link Link, vf int, check bool) error
- func (h *Handle) LinkSetVfState(link Link, vf int, state uint32) error
- func (h *Handle) LinkSetVfTrust(link Link, vf int, state bool) error
- func (h *Handle) LinkSetVfTxRate(link Link, vf, rate int) error
- func (h *Handle) LinkSetVfVlan(link Link, vf, vlan int) error
- func (h *Handle) LinkSetVfVlanQos(link Link, vf, vlan, qos int) error
- func (h *Handle) LinkSetVfVlanQosProto(link Link, vf, vlan, qos, proto int) error
- func (h *Handle) MacvlanMACAddrAdd(link Link, addr net.HardwareAddr) error
- func (h *Handle) MacvlanMACAddrDel(link Link, addr net.HardwareAddr) error
- func (h *Handle) MacvlanMACAddrFlush(link Link) error
- func (h *Handle) MacvlanMACAddrSet(link Link, addrs []net.HardwareAddr) error
- func (h *Handle) NeighAdd(neigh *Neigh) error
- func (h *Handle) NeighAppend(neigh *Neigh) error
- func (h *Handle) NeighDel(neigh *Neigh) error
- func (h *Handle) NeighList(linkIndex, family int) ([]Neigh, error)
- func (h *Handle) NeighListExecute(msg Ndmsg) ([]Neigh, error)
- func (h *Handle) NeighProxyList(linkIndex, family int) ([]Neigh, error)
- func (h *Handle) NeighSet(neigh *Neigh) error
- func (h *Handle) QdiscAdd(qdisc Qdisc) error
- func (h *Handle) QdiscChange(qdisc Qdisc) error
- func (h *Handle) QdiscDel(qdisc Qdisc) error
- func (h *Handle) QdiscList(link Link) ([]Qdisc, error)
- func (h *Handle) QdiscReplace(qdisc Qdisc) error
- func (h *Handle) RdmaLinkAdd(linkName string, linkType string, netdev string) error
- func (h *Handle) RdmaLinkByName(name string) (*RdmaLink, error)
- func (h *Handle) RdmaLinkDel(name string) error
- func (h *Handle) RdmaLinkList() ([]*RdmaLink, error)
- func (h *Handle) RdmaLinkSetName(link *RdmaLink, name string) error
- func (h *Handle) RdmaLinkSetNsFd(link *RdmaLink, fd uint32) error
- func (h *Handle) RdmaSystemGetNetnsMode() (string, error)
- func (h *Handle) RdmaSystemSetNetnsMode(NewMode string) error
- func (h *Handle) RouteAdd(route *Route) error
- func (h *Handle) RouteAddEcmp(route *Route) error
- func (h *Handle) RouteAppend(route *Route) error
- func (h *Handle) RouteChange(route *Route) error
- func (h *Handle) RouteDel(route *Route) error
- func (h *Handle) RouteGet(destination net.IP) ([]Route, error)
- func (h *Handle) RouteGetWithOptions(destination net.IP, options *RouteGetOptions) ([]Route, error)
- func (h *Handle) RouteList(link Link, family int) ([]Route, error)
- func (h *Handle) RouteListFiltered(family int, filter *Route, filterMask uint64) ([]Route, error)
- func (h *Handle) RouteListFilteredIter(family int, filter *Route, filterMask uint64, f func(Route) (cont bool)) error
- func (h *Handle) RouteReplace(route *Route) error
- func (h *Handle) RuleAdd(rule *Rule) error
- func (h *Handle) RuleDel(rule *Rule) error
- func (h *Handle) RuleList(family int) ([]Rule, error)
- func (h *Handle) RuleListFiltered(family int, filter *Rule, filterMask uint64) ([]Rule, error)
- func (h *Handle) SetNetNsIdByFd(fd, nsid int) error
- func (h *Handle) SetNetNsIdByPid(pid, nsid int) error
- func (h *Handle) SetPromiscOff(link Link) error
- func (h *Handle) SetPromiscOn(link Link) error
- func (h *Handle) SetSocketReceiveBufferSize(size int, force bool) error
- func (h *Handle) SetSocketTimeout(to time.Duration) error
- func (h *Handle) SetStrictCheck(state bool) error
- func (h *Handle) SocketDestroy(local, remote net.Addr) error
- func (h *Handle) SocketDiagTCP(family uint8) ([]*Socket, error)
- func (h *Handle) SocketDiagTCPInfo(family uint8) ([]*InetDiagTCPInfoResp, error)
- func (h *Handle) SocketDiagUDP(family uint8) ([]*Socket, error)
- func (h *Handle) SocketDiagUDPInfo(family uint8) ([]*InetDiagUDPInfoResp, error)
- func (h *Handle) SocketGet(local, remote net.Addr) (*Socket, error)
- func (h *Handle) SupportsNetlinkFamily(nlFamily int) bool
- func (h *Handle) UnixSocketDiag() ([]*UnixSocket, error)
- func (h *Handle) UnixSocketDiagInfo() ([]*UnixDiagInfoResp, error)
- func (h *Handle) VDPADelDev(name string) error
- func (h *Handle) VDPAGetDevByName(name string) (*VDPADev, error)
- func (h *Handle) VDPAGetDevConfigByName(name string) (*VDPADevConfig, error)
- func (h *Handle) VDPAGetDevConfigList() ([]*VDPADevConfig, error)
- func (h *Handle) VDPAGetDevList() ([]*VDPADev, error)
- func (h *Handle) VDPAGetDevVStats(name string, queueIndex uint32) (*VDPADevVStats, error)
- func (h *Handle) VDPAGetMGMTDevByBusAndName(bus, name string) (*VDPAMGMTDev, error)
- func (h *Handle) VDPAGetMGMTDevList() ([]*VDPAMGMTDev, error)
- func (h *Handle) VDPANewDev(name, mgmtBus, mgmtName string, params VDPANewDevParams) error
- func (h *Handle) XfrmPolicyAdd(policy *XfrmPolicy) error
- func (h *Handle) XfrmPolicyDel(policy *XfrmPolicy) error
- func (h *Handle) XfrmPolicyFlush() error
- func (h *Handle) XfrmPolicyGet(policy *XfrmPolicy) (*XfrmPolicy, error)
- func (h *Handle) XfrmPolicyList(family int) ([]XfrmPolicy, error)
- func (h *Handle) XfrmPolicyUpdate(policy *XfrmPolicy) error
- func (h *Handle) XfrmStateAdd(state *XfrmState) error
- func (h *Handle) XfrmStateDel(state *XfrmState) error
- func (h *Handle) XfrmStateFlush(proto Proto) error
- func (h *Handle) XfrmStateGet(state *XfrmState) (*XfrmState, error)
- func (h *Handle) XfrmStateList(family int) ([]XfrmState, error)
- func (h *Handle) XfrmStateUpdate(state *XfrmState) error
- type Hfsc
- type HfscClass
- func (hfsc *HfscClass) Attrs() *ClassAttrs
- func (hfsc *HfscClass) SetFsc(m1 uint32, d uint32, m2 uint32)
- func (hfsc *HfscClass) SetLS(m1 uint32, d uint32, m2 uint32)
- func (hfsc *HfscClass) SetRsc(m1 uint32, d uint32, m2 uint32)
- func (hfsc *HfscClass) SetSC(m1 uint32, d uint32, m2 uint32)
- func (hfsc *HfscClass) SetUL(m1 uint32, d uint32, m2 uint32)
- func (hfsc *HfscClass) SetUsc(m1 uint32, d uint32, m2 uint32)
- func (hfsc *HfscClass) String() string
- func (hfsc *HfscClass) Type() string
- type Htb
- type HtbClass
- type HtbClassAttrs
- type IP6TunnelFlag
- type IP6tnlEncap
- type IPSetEntry
- type IPSetResult
- type IPTuple
- type IPVlan
- type IPVlanFlag
- type IPVlanMode
- type IPVtap
- type IPoIB
- type IPoIBMode
- type Ifb
- type Ifreq
- type IfreqSlave
- type InetDiagTCPInfoResp
- type InetDiagUDPInfoResp
- type InetFamily
- type Ingress
- type Ip6tnl
- type IpsetCreateOptions
- type Iptun
- type Link
- type LinkAttrs
- type LinkNotFoundError
- type LinkOperState
- type LinkSlave
- type LinkStatistics
- type LinkStatistics32
- type LinkStatistics64
- type LinkSubscribeOptions
- type LinkUpdate
- type LinkXdp
- type MPLSDestination
- type MPLSEncap
- type Macvlan
- type MacvlanMode
- type Macvtap
- type MatchAll
- type MemInfo
- type MirredAct
- type MirredAction
- type Mode
- type Ndmsg
- type Neigh
- type NeighSubscribeOptions
- type NeighUpdate
- type Netem
- type NetemQdiscAttrs
- type Netkit
- type NetkitMode
- type NetkitPolicy
- type NextHopFlag
- type NexthopInfo
- type NsFd
- type NsPid
- type PDP
- type PeditAction
- type PfifoFast
- type PoliceAction
- type PolicyAction
- type Prio
- type ProcEvent
- type ProcEventHeader
- type ProcEventMsg
- type Protinfo
- type Proto
- type ProtoInfo
- type ProtoInfoDCCP
- type ProtoInfoSCTP
- type ProtoInfoTCP
- type Qdisc
- type QdiscAttrs
- type QdiscStatistics
- type QueueInfo
- type RdmaLink
- type RdmaLinkAttrs
- type Route
- type RouteGetOptions
- type RouteProtocol
- type RouteSubscribeOptions
- type RouteUpdate
- type Rule
- type RulePortRange
- type RuleUIDRange
- type SEG6Encap
- type SEG6LocalEncap
- type Scope
- type ServiceCurve
- type Sfq
- type Sittun
- type SkbEditAction
- type Socket
- type SocketID
- type TCPBBRInfo
- type TCPInfo
- type Tbf
- type TcAct
- type TcPolAct
- type TcU32Key
- type TcU32Sel
- type TunnelEncapFlag
- type TunnelEncapType
- type TunnelKeyAct
- type TunnelKeyAction
- type Tuntap
- type TuntapFlag
- type TuntapMode
- type U32
- type UnixDiagInfoResp
- type UnixSocket
- type VDPADev
- type VDPADevConfig
- type VDPADevConfigNet
- type VDPADevConfigNetCfg
- type VDPADevConfigNetStatus
- type VDPADevVStats
- type VDPADevVStatsVendor
- type VDPAMGMTDev
- type VDPANewDevParams
- type Veth
- type VfInfo
- type Via
- type Vlan
- type VlanProtocol
- type Vrf
- type VrfSlave
- type Vti
- type Vxlan
- type Wireguard
- type XDPDiagInfoResp
- type XDPDiagStats
- type XDPDiagUmem
- type XDPInfo
- type XDPSocket
- type XfrmMark
- type XfrmMsg
- type XfrmMsgExpire
- type XfrmPolicy
- type XfrmPolicyTmpl
- type XfrmReplayState
- type XfrmState
- type XfrmStateAlgo
- type XfrmStateEncap
- type XfrmStateLimits
- type XfrmStateStats
- type Xfrmi
Constants ¶
const ( // ConntrackTable Conntrack table // https://github.com/torvalds/linux/blob/master/include/uapi/linux/netfilter/nfnetlink.h -> #define NFNL_SUBSYS_CTNETLINK 1 ConntrackTable = 1 // ConntrackExpectTable Conntrack expect table // https://github.com/torvalds/linux/blob/master/include/uapi/linux/netfilter/nfnetlink.h -> #define NFNL_SUBSYS_CTNETLINK_EXP 2 ConntrackExpectTable = 2 )
const ( ConntrackOrigSrcIP = iota // -orig-src ip Source address from original direction ConntrackOrigDstIP // -orig-dst ip Destination address from original direction ConntrackReplySrcIP // --reply-src ip Reply Source IP ConntrackReplyDstIP // --reply-dst ip Reply Destination IP ConntrackReplyAnyIP // Match source or destination reply IP ConntrackOrigSrcPort // --orig-port-src port Source port in original direction ConntrackOrigDstPort // --orig-port-dst port Destination port in original direction ConntrackMatchLabels // --label label1,label2 Labels used in entry ConntrackUnmatchLabels // --label label1,label2 Labels not used in entry ConntrackNatSrcIP = ConntrackReplySrcIP // deprecated use instead ConntrackReplySrcIP ConntrackNatDstIP = ConntrackReplyDstIP // deprecated use instead ConntrackReplyDstIP ConntrackNatAnyIP = ConntrackReplyAnyIP // deprecated use instead ConntrackReplyAnyIP )
const ( TC_ACT_EXT_SHIFT = 28 TC_ACT_EXT_VAL_MASK = (1 << TC_ACT_EXT_SHIFT) - 1 )
const ( TC_U32_TERMINAL = nl.TC_U32_TERMINAL TC_U32_OFFSET = nl.TC_U32_OFFSET TC_U32_VAROFFSET = nl.TC_U32_VAROFFSET TC_U32_EAT = nl.TC_U32_EAT )
Constants used in TcU32Sel.Flags.
const ( FOU_CMD_UNSPEC uint8 = iota FOU_CMD_ADD FOU_CMD_DEL FOU_CMD_GET FOU_CMD_MAX = FOU_CMD_GET )
const ( FOU_ATTR_UNSPEC = iota FOU_ATTR_PORT FOU_ATTR_AF FOU_ATTR_IPPROTO FOU_ATTR_TYPE FOU_ATTR_REMCSUM_NOPARTIAL FOU_ATTR_MAX = FOU_ATTR_REMCSUM_NOPARTIAL )
const ( FOU_ENCAP_UNSPEC = iota FOU_ENCAP_DIRECT FOU_ENCAP_GUE FOU_ENCAP_MAX = FOU_ENCAP_GUE )
const ( INET_DIAG_NONE = iota INET_DIAG_MEMINFO INET_DIAG_INFO INET_DIAG_VEGASINFO INET_DIAG_CONG INET_DIAG_TOS INET_DIAG_TCLASS INET_DIAG_SKMEMINFO INET_DIAG_SHUTDOWN INET_DIAG_DCTCPINFO INET_DIAG_PROTOCOL INET_DIAG_SKV6ONLY INET_DIAG_LOCALS INET_DIAG_PEERS INET_DIAG_PAD INET_DIAG_MARK INET_DIAG_BBRINFO INET_DIAG_CLASS_ID INET_DIAG_MD5SIG INET_DIAG_ULP_INFO INET_DIAG_SK_BPF_STORAGES INET_DIAG_CGROUP_ID INET_DIAG_SOCKOPT INET_DIAG_MAX )
INET_DIAG constatns
const ( // ETHTOOL_GSSET_INFO gets string set info ETHTOOL_GSSET_INFO = 0x00000037 // SIOCETHTOOL is Ethtool interface SIOCETHTOOL = 0x8946 // ETHTOOL_GSTRINGS gets specified string set ETHTOOL_GSTRINGS = 0x0000001b // ETHTOOL_GSTATS gets NIC-specific statistics ETHTOOL_GSTATS = 0x0000001d )
ioctl for statistics.
const ( // ETH_SS_TEST is self-test result names, for use with %ETHTOOL_TEST ETH_SS_TEST = iota // ETH_SS_STATS statistic names, for use with %ETHTOOL_GSTATS ETH_SS_STATS // ETH_SS_PRIV_FLAGS are driver private flag names ETH_SS_PRIV_FLAGS // ETH_SS_FEATURES are device feature names ETH_SS_FEATURES // ETH_SS_RSS_HASH_FUNCS is RSS hush function names ETH_SS_RSS_HASH_FUNCS )
string set id.
const ( OperUnknown = iota // Status can't be determined. OperNotPresent // Some component is missing. OperDown // Down. OperLowerLayerDown // Down due to state of lower layer. OperTesting // In some test mode. OperDormant // Not up but pending an external event. OperUp // Up, ready to send packets. )
const ( BOND_MODE_MASK uint64 = 1 << (1 + iota) BOND_ACTIVE_SLAVE_MASK BOND_MIIMON_MASK BOND_UPDELAY_MASK BOND_DOWNDELAY_MASK BOND_USE_CARRIER_MASK BOND_ARP_INTERVAL_MASK BOND_ARP_VALIDATE_MASK BOND_ARP_ALL_TARGETS_MASK BOND_PRIMARY_MASK BOND_PRIMARY_RESELECT_MASK BOND_FAIL_OVER_MAC_MASK BOND_XMIT_HASH_POLICY_MASK BOND_RESEND_IGMP_MASK BOND_NUM_PEER_NOTIF_MASK BOND_ALL_SLAVES_ACTIVE_MASK BOND_MIN_LINKS_MASK BOND_LP_INTERVAL_MASK BOND_PACKETS_PER_SLAVE_MASK BOND_LACP_RATE_MASK BOND_AD_SELECT_MASK )
Flag mask for bond options. Bond.Flagmask must be set to on for option to work.
const ( CSum TunnelEncapFlag = 1 << 0 CSum6 = 1 << 1 RemCSum = 1 << 2 )
const ( IP6_TNL_F_IGN_ENCAP_LIMIT IP6TunnelFlag = 1 // don't add encapsulation limit if one isn't present in inner packet IP6_TNL_F_USE_ORIG_TCLASS = 2 // copy the traffic class field from the inner packet IP6_TNL_F_USE_ORIG_FLOWLABEL = 4 // copy the flowlabel from the inner packet IP6_TNL_F_MIP6_DEV = 8 // being used for Mobile IPv6 IP6_TNL_F_RCV_DSCP_COPY = 10 // copy DSCP from the outer packet IP6_TNL_F_USE_ORIG_FWMARK = 20 // copy fwmark from inner packet IP6_TNL_F_ALLOW_LOCAL_REMOTE = 40 // allow remote endpoint on the local node )
const ( IPOIB_MODE_DATAGRAM = iota IPOIB_MODE_CONNECTED )
const ( CAN_STATE_ERROR_ACTIVE = iota CAN_STATE_ERROR_WARNING CAN_STATE_ERROR_PASSIVE CAN_STATE_BUS_OFF CAN_STATE_STOPPED CAN_STATE_SLEEPING )
const ( SizeofLinkStats32 = 0x5c SizeofLinkStats64 = 0xb8 )
const ( TUNTAP_MODE_TUN TuntapMode = unix.IFF_TUN TUNTAP_MODE_TAP TuntapMode = unix.IFF_TAP TUNTAP_DEFAULTS TuntapFlag = unix.IFF_TUN_EXCL | unix.IFF_ONE_QUEUE TUNTAP_VNET_HDR TuntapFlag = unix.IFF_VNET_HDR TUNTAP_TUN_EXCL TuntapFlag = unix.IFF_TUN_EXCL TUNTAP_NO_PI TuntapFlag = unix.IFF_NO_PI TUNTAP_ONE_QUEUE TuntapFlag = unix.IFF_ONE_QUEUE TUNTAP_MULTI_QUEUE TuntapFlag = unix.IFF_MULTI_QUEUE TUNTAP_MULTI_QUEUE_DEFAULTS TuntapFlag = TUNTAP_MULTI_QUEUE | TUNTAP_NO_PI )
const ( VF_LINK_STATE_AUTO uint32 = 0 VF_LINK_STATE_ENABLE uint32 = 1 VF_LINK_STATE_DISABLE uint32 = 2 )
const ( SizeOfIfReq = 40 IFNAMSIZ = 16 )
ideally golang.org/x/sys/unix would define IfReq but it only has IFNAMSIZ, hence this minimalistic implementation
const ( NDA_UNSPEC = iota NDA_DST NDA_LLADDR NDA_CACHEINFO NDA_PROBES NDA_VLAN NDA_PORT NDA_VNI NDA_IFINDEX NDA_MASTER NDA_LINK_NETNSID NDA_SRC_VNI NDA_PROTOCOL NDA_NH_ID NDA_FDB_EXT_ATTRS NDA_FLAGS_EXT NDA_MAX = NDA_FLAGS_EXT )
const ( NUD_NONE = 0x00 NUD_INCOMPLETE = 0x01 NUD_REACHABLE = 0x02 NUD_STALE = 0x04 NUD_DELAY = 0x08 NUD_PROBE = 0x10 NUD_FAILED = 0x20 NUD_NOARP = 0x40 NUD_PERMANENT = 0x80 )
Neighbor Cache Entry States.
const ( NTF_USE = 0x01 NTF_SELF = 0x02 NTF_MASTER = 0x04 NTF_PROXY = 0x08 NTF_EXT_LEARNED = 0x10 NTF_OFFLOADED = 0x20 NTF_STICKY = 0x40 NTF_ROUTER = 0x80 )
Neighbor Flags
const ( FAMILY_ALL = nl.FAMILY_ALL FAMILY_V4 = nl.FAMILY_V4 FAMILY_V6 = nl.FAMILY_V6 FAMILY_MPLS = nl.FAMILY_MPLS )
Family type definitions
const ( NETNSA_NSID NETNSA_PID NETNSA_FD )
These can be replaced by the values from sys/unix when it is next released.
const ( PROC_EVENT_NONE = 0x00000000 PROC_EVENT_FORK = 0x00000001 PROC_EVENT_EXEC = 0x00000002 PROC_EVENT_UID = 0x00000004 PROC_EVENT_GID = 0x00000040 PROC_EVENT_SID = 0x00000080 PROC_EVENT_PTRACE = 0x00000100 PROC_EVENT_COMM = 0x00000200 PROC_EVENT_COREDUMP = 0x40000000 PROC_EVENT_EXIT = 0x80000000 )
const ( CN_VAL_PROC = 0x1 PROC_CN_MCAST_LISTEN = 0x1 )
const ( HANDLE_NONE = 0 HANDLE_INGRESS = 0xFFFFFFF1 HANDLE_CLSACT = HANDLE_INGRESS HANDLE_ROOT = 0xFFFFFFFF PRIORITY_MAP_LEN = 16 )
const ( HANDLE_MIN_INGRESS = 0xFFFFFFF2 HANDLE_MIN_EGRESS = 0xFFFFFFF3 )
const ( HORIZON_DROP_POLICY_CAP = 0 HORIZON_DROP_POLICY_DROP = 1 HORIZON_DROP_POLICY_DEFAULT = 255 )
const ( RT_FILTER_PROTOCOL uint64 = 1 << (1 + iota) RT_FILTER_SCOPE RT_FILTER_TYPE RT_FILTER_TOS RT_FILTER_IIF RT_FILTER_OIF RT_FILTER_DST RT_FILTER_SRC RT_FILTER_GW RT_FILTER_TABLE RT_FILTER_HOPLIMIT RT_FILTER_PRIORITY RT_FILTER_MARK RT_FILTER_MASK RT_FILTER_REALM )
const ( TCP_ESTABLISHED = iota + 0x01 TCP_SYN_SENT TCP_SYN_RECV TCP_FIN_WAIT1 TCP_FIN_WAIT2 TCP_TIME_WAIT TCP_CLOSE TCP_CLOSE_WAIT TCP_LAST_ACK TCP_LISTEN TCP_CLOSING TCP_NEW_SYN_REC TCP_MAX_STATES )
TCP States
const ( UNIX_DIAG_NAME = iota UNIX_DIAG_VFS UNIX_DIAG_PEER UNIX_DIAG_ICONS UNIX_DIAG_RQLEN UNIX_DIAG_MEMINFO UNIX_DIAG_SHUTDOWN UNIX_DIAG_UID UNIX_DIAG_MAX )
According to linux/include/uapi/linux/unix_diag.h
const ( VIRTIO_NET_F_CSUM = 0 // Host handles pkts w/ partial csum VIRTIO_NET_F_GUEST_CSUM = 1 // Guest handles pkts w/ partial csum VIRTIO_NET_F_CTRL_GUEST_OFFLOADS = 2 // Dynamic offload configuration. VIRTIO_NET_F_MTU = 3 // Initial MTU advice VIRTIO_NET_F_MAC = 5 // Host has given MAC address. VIRTIO_NET_F_GUEST_TSO4 = 7 // Guest can handle TSOv4 in. VIRTIO_NET_F_GUEST_TSO6 = 8 // Guest can handle TSOv6 in. VIRTIO_NET_F_GUEST_ECN = 9 // Guest can handle TSO[6] w/ ECN in. VIRTIO_NET_F_GUEST_UFO = 10 // Guest can handle UFO in. VIRTIO_NET_F_HOST_TSO4 = 11 // Host can handle TSOv4 in. VIRTIO_NET_F_HOST_TSO6 = 12 // Host can handle TSOv6 in. VIRTIO_NET_F_HOST_ECN = 13 // Host can handle TSO[6] w/ ECN in. VIRTIO_NET_F_HOST_UFO = 14 // Host can handle UFO in. VIRTIO_NET_F_MRG_RXBUF = 15 // Host can merge receive buffers. VIRTIO_NET_F_STATUS = 16 // virtio_net_config.status available VIRTIO_NET_F_CTRL_VQ = 17 // Control channel available VIRTIO_NET_F_CTRL_RX = 18 // Control channel RX mode support VIRTIO_NET_F_CTRL_VLAN = 19 // Control channel VLAN filtering VIRTIO_NET_F_CTRL_RX_EXTRA = 20 // Extra RX mode control support VIRTIO_NET_F_GUEST_ANNOUNCE = 21 // Guest can announce device on the* network VIRTIO_NET_F_MQ = 22 // Device supports Receive Flow Steering VIRTIO_NET_F_CTRL_MAC_ADDR = 23 // Set MAC address VIRTIO_NET_F_VQ_NOTF_COAL = 52 // Device supports virtqueue notification coalescing VIRTIO_NET_F_NOTF_COAL = 53 // Device supports notifications coalescing VIRTIO_NET_F_GUEST_USO4 = 54 // Guest can handle USOv4 in. VIRTIO_NET_F_GUEST_USO6 = 55 // Guest can handle USOv6 in. VIRTIO_NET_F_HOST_USO = 56 // Host can handle USO in. VIRTIO_NET_F_HASH_REPORT = 57 // Supports hash report VIRTIO_NET_F_GUEST_HDRLEN = 59 // Guest provides the exact hdr_len value. VIRTIO_NET_F_RSS = 60 // Supports RSS RX steering VIRTIO_NET_F_RSC_EXT = 61 // extended coalescing info VIRTIO_NET_F_STANDBY = 62 // Act as standby for another device with the same MAC. VIRTIO_NET_F_SPEED_DUPLEX = 63 // Device set linkspeed and duplex VIRTIO_NET_F_GSO = 6 // Host handles pkts any GSO type )
features for virtio net
const ( VIRTIO_NET_S_LINK_UP = 1 // Link is up VIRTIO_NET_S_ANNOUNCE = 2 // Announcement is needed )
virtio net status
const ( // Do we get callbacks when the ring is completely used, even if we've // suppressed them? VIRTIO_F_NOTIFY_ON_EMPTY = 24 // Can the device handle any descriptor layout? VIRTIO_F_ANY_LAYOUT = 27 // v1.0 compliant VIRTIO_F_VERSION_1 = 32 // If clear - device has the platform DMA (e.g. IOMMU) bypass quirk feature. // If set - use platform DMA tools to access the memory. // Note the reverse polarity (compared to most other features), // this is for compatibility with legacy systems. VIRTIO_F_ACCESS_PLATFORM = 33 // Legacy name for VIRTIO_F_ACCESS_PLATFORM (for compatibility with old userspace) VIRTIO_F_IOMMU_PLATFORM = VIRTIO_F_ACCESS_PLATFORM // This feature indicates support for the packed virtqueue layout. VIRTIO_F_RING_PACKED = 34 // Inorder feature indicates that all buffers are used by the device // in the same order in which they have been made available. VIRTIO_F_IN_ORDER = 35 // This feature indicates that memory accesses by the driver and the // device are ordered in a way described by the platform. VIRTIO_F_ORDER_PLATFORM = 36 // Does the device support Single Root I/O Virtualization? VIRTIO_F_SR_IOV = 37 // This feature indicates that the driver passes extra data (besides // identifying the virtqueue) in its device notifications. VIRTIO_F_NOTIFICATION_DATA = 38 // This feature indicates that the driver uses the data provided by the device // as a virtqueue identifier in available buffer notifications. VIRTIO_F_NOTIF_CONFIG_DATA = 39 // This feature indicates that the driver can reset a queue individually. VIRTIO_F_RING_RESET = 40 )
virtio config
const ( VIRTIO_ID_NET = 1 // virtio net VIRTIO_ID_BLOCK = 2 // virtio block VIRTIO_ID_CONSOLE = 3 // virtio console VIRTIO_ID_RNG = 4 // virtio rng VIRTIO_ID_BALLOON = 5 // virtio balloon VIRTIO_ID_IOMEM = 6 // virtio ioMemory VIRTIO_ID_RPMSG = 7 // virtio remote processor messaging VIRTIO_ID_SCSI = 8 // virtio scsi VIRTIO_ID_9P = 9 // 9p virtio console VIRTIO_ID_MAC80211_WLAN = 10 // virtio WLAN MAC VIRTIO_ID_RPROC_SERIAL = 11 // virtio remoteproc serial link VIRTIO_ID_CAIF = 12 // Virtio caif VIRTIO_ID_MEMORY_BALLOON = 13 // virtio memory balloon VIRTIO_ID_GPU = 16 // virtio GPU VIRTIO_ID_CLOCK = 17 // virtio clock/timer VIRTIO_ID_INPUT = 18 // virtio input VIRTIO_ID_VSOCK = 19 // virtio vsock transport VIRTIO_ID_CRYPTO = 20 // virtio crypto VIRTIO_ID_SIGNAL_DIST = 21 // virtio signal distribution device VIRTIO_ID_PSTORE = 22 // virtio pstore device VIRTIO_ID_IOMMU = 23 // virtio IOMMU VIRTIO_ID_MEM = 24 // virtio mem VIRTIO_ID_SOUND = 25 // virtio sound VIRTIO_ID_FS = 26 // virtio filesystem VIRTIO_ID_PMEM = 27 // virtio pmem VIRTIO_ID_RPMB = 28 // virtio rpmb VIRTIO_ID_MAC80211_HWSIM = 29 // virtio mac80211-hwsim VIRTIO_ID_VIDEO_ENCODER = 30 // virtio video encoder VIRTIO_ID_VIDEO_DECODER = 31 // virtio video decoder VIRTIO_ID_SCMI = 32 // virtio SCMI VIRTIO_ID_NITRO_SEC_MOD = 33 // virtio nitro secure module VIRTIO_ID_I2C_ADAPTER = 34 // virtio i2c adapter VIRTIO_ID_WATCHDOG = 35 // virtio watchdog VIRTIO_ID_CAN = 36 // virtio can VIRTIO_ID_DMABUF = 37 // virtio dmabuf VIRTIO_ID_PARAM_SERV = 38 // virtio parameter server VIRTIO_ID_AUDIO_POLICY = 39 // virtio audio policy VIRTIO_ID_BT = 40 // virtio bluetooth VIRTIO_ID_GPIO = 41 // virtio gpio // Virtio Transitional IDs VIRTIO_TRANS_ID_NET = 0x1000 // transitional virtio net VIRTIO_TRANS_ID_BLOCK = 0x1001 // transitional virtio block VIRTIO_TRANS_ID_BALLOON = 0x1002 // transitional virtio balloon VIRTIO_TRANS_ID_CONSOLE = 0x1003 // transitional virtio console VIRTIO_TRANS_ID_SCSI = 0x1004 // transitional virtio SCSI VIRTIO_TRANS_ID_RNG = 0x1005 // transitional virtio rng VIRTIO_TRANS_ID_9P = 0x1009 // transitional virtio 9p console )
virtio device ids
const ( XDP_SHOW_INFO = 1 << iota XDP_SHOW_RING_CFG XDP_SHOW_UMEM XDP_SHOW_MEMINFO XDP_SHOW_STATS )
XDP diagnosis show flag constants to request particular information elements.
const ( XDP_DIAG_NONE = iota XDP_DIAG_INFO // when using XDP_SHOW_INFO XDP_DIAG_UID // when using XDP_SHOW_INFO XDP_DIAG_RX_RING // when using XDP_SHOW_RING_CFG XDP_DIAG_TX_RING // when using XDP_SHOW_RING_CFG XDP_DIAG_UMEM // when using XDP_SHOW_UMEM XDP_DIAG_UMEM_FILL_RING // when using XDP_SHOW_UMEM XDP_DIAG_UMEM_COMPLETION_RING // when using XDP_SHOW_UMEM XDP_DIAG_MEMINFO // when using XDP_SHOW_MEMINFO XDP_DIAG_STATS // when using XDP_SHOW_STATS )
XDP diag element constants
const CN_IDX_PROC = 0x1
const (
FOU_GENL_NAME = "fou"
)
const FibRuleInvert = 0x2
const (
NTF_EXT_MANAGED = 0x00000001
)
Extended Neighbor Flags
const SOCK_ANY_COOKIE = uint64(nl.TCPDIAG_NOCOOKIE)<<32 + uint64(nl.TCPDIAG_NOCOOKIE)
const (
TIME_UNITS_PER_SEC = 1000000
)
const (
XDP_DU_F_ZEROCOPY = 1 << iota
)
Variables ¶
var ( // ErrAttrHeaderTruncated is returned when a netlink attribute's header is // truncated. ErrAttrHeaderTruncated = errors.New("attribute header truncated") // ErrAttrBodyTruncated is returned when a netlink attribute's body is // truncated. ErrAttrBodyTruncated = errors.New("attribute body truncated") )
var ( // ErrNotImplemented is returned when a requested feature is not implemented. ErrNotImplemented = errors.New("not implemented") )
var StringToBondAdSelectMap = map[string]BondAdSelect{ "stable": BOND_AD_SELECT_STABLE, "bandwidth": BOND_AD_SELECT_BANDWIDTH, "count": BOND_AD_SELECT_COUNT, }
var StringToBondArpAllTargetsMap = map[string]BondArpAllTargets{ "any": BOND_ARP_ALL_TARGETS_ANY, "all": BOND_ARP_ALL_TARGETS_ALL, }
var StringToBondArpValidateMap = map[string]BondArpValidate{ "none": BOND_ARP_VALIDATE_NONE, "active": BOND_ARP_VALIDATE_ACTIVE, "backup": BOND_ARP_VALIDATE_BACKUP, "all": BOND_ARP_VALIDATE_ALL, }
var StringToBondFailOverMacMap = map[string]BondFailOverMac{ "none": BOND_FAIL_OVER_MAC_NONE, "active": BOND_FAIL_OVER_MAC_ACTIVE, "follow": BOND_FAIL_OVER_MAC_FOLLOW, }
var StringToBondLacpRateMap = map[string]BondLacpRate{ "slow": BOND_LACP_RATE_SLOW, "fast": BOND_LACP_RATE_FAST, }
var StringToBondModeMap = map[string]BondMode{ "balance-rr": BOND_MODE_BALANCE_RR, "active-backup": BOND_MODE_ACTIVE_BACKUP, "balance-xor": BOND_MODE_BALANCE_XOR, "broadcast": BOND_MODE_BROADCAST, "802.3ad": BOND_MODE_802_3AD, "balance-tlb": BOND_MODE_BALANCE_TLB, "balance-alb": BOND_MODE_BALANCE_ALB, }
var StringToBondPrimaryReselectMap = map[string]BondPrimaryReselect{ "always": BOND_PRIMARY_RESELECT_ALWAYS, "better": BOND_PRIMARY_RESELECT_BETTER, "failure": BOND_PRIMARY_RESELECT_FAILURE, }
var StringToBondXmitHashPolicyMap = map[string]BondXmitHashPolicy{ "layer2": BOND_XMIT_HASH_POLICY_LAYER2, "layer3+4": BOND_XMIT_HASH_POLICY_LAYER3_4, "layer2+3": BOND_XMIT_HASH_POLICY_LAYER2_3, "encap2+3": BOND_XMIT_HASH_POLICY_ENCAP2_3, "encap3+4": BOND_XMIT_HASH_POLICY_ENCAP3_4, "vlan+srcmac": BOND_XMIT_HASH_POLICY_VLAN_SRCMAC, }
var StringToIPoIBMode = map[string]IPoIBMode{ "datagram": IPOIB_MODE_DATAGRAM, "connected": IPOIB_MODE_CONNECTED, }
var StringToTuntapModeMap = map[string]TuntapMode{ "tun": TUNTAP_MODE_TUN, "tap": TUNTAP_MODE_TAP, }
var StringToVlanProtocolMap = map[string]VlanProtocol{ "802.1q": VLAN_PROTOCOL_8021Q, "802.1ad": VLAN_PROTOCOL_8021AD, }
var VlanProtocolToString = map[VlanProtocol]string{ VLAN_PROTOCOL_8021Q: "802.1q", VLAN_PROTOCOL_8021AD: "802.1ad", }
Functions ¶
func AddrAdd ¶
AddrAdd will add an IP address to a link device.
Equivalent to: `ip addr add $addr dev $link`
If `addr` is an IPv4 address and the broadcast address is not given, it will be automatically computed based on the IP mask if /30 or larger.
func AddrDel ¶
AddrDel will delete an IP address from a link device.
Equivalent to: `ip addr del $addr dev $link`
If `addr` is an IPv4 address and the broadcast address is not given, it will be automatically computed based on the IP mask if /30 or larger.
func AddrReplace ¶
AddrReplace will replace (or, if not present, add) an IP address on a link device.
Equivalent to: `ip addr replace $addr dev $link`
If `addr` is an IPv4 address and the broadcast address is not given, it will be automatically computed based on the IP mask if /30 or larger.
func AddrSubscribe ¶
func AddrSubscribe(ch chan<- AddrUpdate, done <-chan struct{}) error
AddrSubscribe takes a chan down which notifications will be sent when addresses change. Close the 'done' chan to stop subscription.
func AddrSubscribeAt ¶
func AddrSubscribeAt(ns netns.NsHandle, ch chan<- AddrUpdate, done <-chan struct{}) error
AddrSubscribeAt works like AddrSubscribe plus it allows the caller to choose the network namespace in which to subscribe (ns).
func AddrSubscribeWithOptions ¶
func AddrSubscribeWithOptions(ch chan<- AddrUpdate, done <-chan struct{}, options AddrSubscribeOptions) error
AddrSubscribeWithOptions work like AddrSubscribe but enable to provide additional options to modify the behavior. Currently, the namespace can be provided as well as an error callback.
func AlignToAtm ¶
func BridgeSetMcastSnoop ¶
func BridgeSetVlanDefaultPVID ¶ added in v1.2.1
func BridgeSetVlanFiltering ¶ added in v1.2.1
func BridgeVlanAdd ¶
BridgeVlanAdd adds a new vlan filter entry Equivalent to: `bridge vlan add dev DEV vid VID [ pvid ] [ untagged ] [ self ] [ master ]`
func BridgeVlanAddRange ¶ added in v1.2.1
BridgeVlanAddRange adds a new vlan filter entry Equivalent to: `bridge vlan add dev DEV vid VID-VIDEND [ pvid ] [ untagged ] [ self ] [ master ]`
func BridgeVlanDel ¶
BridgeVlanDel adds a new vlan filter entry Equivalent to: `bridge vlan del dev DEV vid VID [ pvid ] [ untagged ] [ self ] [ master ]`
func BridgeVlanDelRange ¶ added in v1.2.1
BridgeVlanDelRange adds a new vlan filter entry Equivalent to: `bridge vlan del dev DEV vid VID-VIDEND [ pvid ] [ untagged ] [ self ] [ master ]`
func BridgeVlanList ¶
func BridgeVlanList() (map[int32][]*nl.BridgeVlanInfo, error)
BridgeVlanList gets a map of device id to bridge vlan infos. Equivalent to: `bridge vlan show`
func CalcRtable ¶
func ChainAdd ¶ added in v1.2.1
ChainAdd will add a chain to the system. Equivalent to: `tc chain add`
func ClassChange ¶
ClassChange will change a class in place Equivalent to: `tc class change $class` The parent and handle MUST NOT be changed.
func ClassReplace ¶
ClassReplace will replace a class to the system. quivalent to: `tc class replace $class` The handle MAY be changed. If a class already exist with this parent/handle pair, the class is changed. If a class does not already exist with this parent/handle, a new class is created.
func ClockFactor ¶
func ClockFactor() float64
func ConntrackCreate ¶ added in v1.2.1
func ConntrackCreate(table ConntrackTableType, family InetFamily, flow *ConntrackFlow) error
ConntrackCreate creates a new conntrack flow in the desired table conntrack -I [table] Create a conntrack or expectation
func ConntrackDeleteFilter
deprecated
func ConntrackDeleteFilter(table ConntrackTableType, family InetFamily, filter CustomConntrackFilter) (uint, error)
ConntrackDeleteFilter deletes entries on the specified table on the base of the filter conntrack -D [table] parameters Delete conntrack or expectation
Deprecated: use ConntrackDeleteFilter instead.
func ConntrackDeleteFilters ¶ added in v1.2.1
func ConntrackDeleteFilters(table ConntrackTableType, family InetFamily, filters ...CustomConntrackFilter) (uint, error)
ConntrackDeleteFilters deletes entries on the specified table matching any of the specified filters conntrack -D [table] parameters Delete conntrack or expectation
func ConntrackTableFlush ¶
func ConntrackTableFlush(table ConntrackTableType) error
ConntrackTableFlush flushes all the flows of a specified table conntrack -F [table] Flush table The flush operation applies to all the family types
func ConntrackUpdate ¶ added in v1.2.1
func ConntrackUpdate(table ConntrackTableType, family InetFamily, flow *ConntrackFlow) error
ConntrackUpdate updates an existing conntrack flow in the desired table using the handle conntrack -U [table] Update a conntrack
func DeserializeRtab ¶
func DevLinkPortDel ¶ added in v1.2.1
DevLinkPortDel deletes a devlink port and returns success or error code.
func DevLinkSetEswitchMode ¶ added in v1.1.0
func DevLinkSetEswitchMode(Dev *DevlinkDevice, NewMode string) error
DevLinkSetEswitchMode sets eswitch mode if able to set successfully or returns an error code. Equivalent to: `devlink dev eswitch set $dev mode switchdev` Equivalent to: `devlink dev eswitch set $dev mode legacy`
func DevlinkGetDeviceInfoByNameAsMap ¶ added in v1.2.1
DevlinkGetDeviceInfoByNameAsMap returns devlink info for selected device as a map, otherwise returns an error code. Equivalent to: `devlink dev info $dev`
func DevlinkPortFnSet ¶ added in v1.2.1
func DevlinkPortFnSet(Bus string, Device string, PortIndex uint32, FnAttrs DevlinkPortFnSetAttrs) error
DevlinkPortFnSet sets one or more port function attributes specified by the attribute mask. It returns 0 on success or error code.
func DevlinkSetDeviceParam ¶ added in v1.2.1
func DevlinkSetDeviceParam(bus string, device string, param string, cmode uint8, value interface{}) error
DevlinkSetDeviceParam set specific parameter for devlink device Equivalent to: `devlink dev param set <bus>/<device> name <param> cmode <cmode> value <value>` cmode argument should contain valid cmode value as uint8, modes are define in nl.DEVLINK_PARAM_CMODE_* constants value argument should have one of the following types: uint8, uint16, uint32, string, bool
func FilterDel ¶
FilterDel will delete a filter from the system. Equivalent to: `tc filter del $filter`
func FilterReplace ¶ added in v1.1.0
FilterReplace will replace a filter. Equivalent to: `tc filter replace $filter`
func FouFamilyId ¶
func GetNetNsIdByFd ¶ added in v1.1.0
GetNetNsIdByFd looks up the network namespace ID for a given fd. fd must be an open file descriptor to a namespace file. Returns -1 if the namespace does not have an ID set.
func GetNetNsIdByPid ¶ added in v1.1.0
GetNetNsIdByPid looks up the network namespace ID for a given pid (really thread id). Returns -1 if the namespace does not have an ID set.
func GetSocketTimeout ¶ added in v1.2.1
GetSocketTimeout returns the timeout value used by default netlink sockets
func IpsetAdd ¶ added in v1.2.1
func IpsetAdd(setname string, entry *IPSetEntry) error
IpsetAdd adds an entry to an existing ipset.
func IpsetCreate ¶ added in v1.2.1
func IpsetCreate(setname, typename string, options IpsetCreateOptions) error
IpsetCreate creates a new ipset
func IpsetDel ¶ added in v1.2.1
func IpsetDel(setname string, entry *IPSetEntry) error
IpsetDel deletes an entry from an existing ipset.
func IpsetDestroy ¶ added in v1.2.1
IpsetDestroy destroys an existing ipset
func IpsetFlush ¶ added in v1.2.1
IpsetFlush flushes an existing ipset
func IpsetProtocol ¶ added in v1.2.1
IpsetProtocol returns the ipset protocol version from the kernel
func IpsetTest ¶ added in v1.2.1
func IpsetTest(setname string, entry *IPSetEntry) (bool, error)
IpsetTest tests whether an entry is in a set or not.
func IsBitSet ¶ added in v1.2.1
IsBitSet check if specific bit is set in the uint64 input value usage example: hasNetClass := IsBitSet(mgmtDev, VIRTIO_ID_NET)
func LinkAdd ¶
LinkAdd adds a new link device. The type and features of the device are taken from the parameters in the link object. Equivalent to: `ip link add $link`
func LinkAddAltName ¶ added in v1.2.1
LinkAddAltName adds a new alternative name for the link device. Equivalent to: `ip link property add $link altname $name`
func LinkDel ¶
LinkDel deletes link device. Either Index or Name must be set in the link object for it to be deleted. The other values are ignored. Equivalent to: `ip link del $link`
func LinkDelAltName ¶ added in v1.2.1
LinkDelAltName delete an alternative name for the link device. Equivalent to: `ip link property del $link altname $name`
func LinkDelBondSlave ¶ added in v1.2.1
LinkSetBondSlave removes specified slave from bond link via ioctl interface.
func LinkModify ¶ added in v1.2.1
func LinkSetARPOff ¶
func LinkSetARPOn ¶
func LinkSetAlias ¶
LinkSetAlias sets the alias of the link device. Equivalent to: `ip link set dev $link alias $name`
func LinkSetAllmulticastOff ¶ added in v1.1.0
LinkSetAllmulticastOff disables the reception of all hardware multicast packets for the link device. Equivalent to: `ip link set $link allmulticast off`
func LinkSetAllmulticastOn ¶ added in v1.1.0
LinkSetAllmulticastOn enables the reception of all hardware multicast packets for the link device. Equivalent to: `ip link set $link allmulticast on`
func LinkSetBRSlaveGroupFwdMask ¶ added in v1.2.1
LinkSetBRSlaveGroupFwdMask set the group_fwd_mask of a bridge slave interface
func LinkSetBondSlave ¶
LinkSetBondSlave add slave to bond link via ioctl interface.
func LinkSetBondSlaveActive ¶ added in v1.2.1
LinkSetBondSlaveActive sets specified slave to ACTIVE in an `active-backup` bond link via ioctl interface.
Multiple calls keeps the status unchanged(shown in the unit test).
func LinkSetBondSlaveQueueId ¶ added in v1.1.0
LinkSetBondSlaveQueueId modify bond slave queue-id.
func LinkSetBrNeighSuppress ¶ added in v1.2.1
func LinkSetBrProxyArp ¶
func LinkSetBrProxyArpWiFi ¶
func LinkSetDown ¶
LinkSetDown disables link device. Equivalent to: `ip link set $link down`
func LinkSetFastLeave ¶
func LinkSetFlood ¶
func LinkSetGROIPv4MaxSize ¶ added in v1.2.1
LinkSetGROIPv4MaxSize sets the IPv4 GRO maximum size of the link device. Equivalent to: `ip link set $link gro_ipv4_max_size $maxSize`
func LinkSetGROMaxSize ¶ added in v1.2.1
LinkSetGROMaxSize sets the IPv6 GRO maximum size of the link device. Equivalent to: `ip link set $link gro_max_size $maxSize`
func LinkSetGSOIPv4MaxSize ¶ added in v1.2.1
LinkSetGSOIPv4MaxSize sets the IPv4 GSO maximum size of the link device. Equivalent to: `ip link set $link gso_ipv4_max_size $maxSize`
func LinkSetGSOMaxSegs ¶ added in v1.2.1
LinkSetGSOMaxSegs sets the GSO maximum segment count of the link device. Equivalent to: `ip link set $link gso_max_segs $maxSegs`
func LinkSetGSOMaxSize ¶ added in v1.2.1
LinkSetGSOMaxSize sets the IPv6 GSO maximum size of the link device. Equivalent to: `ip link set $link gso_max_size $maxSize`
func LinkSetGroup ¶ added in v1.1.0
LinkSetGroup sets the link group id which can be used to perform mass actions with iproute2 as well use it as a reference in nft filters. Equivalent to: `ip link set $link group $id`
func LinkSetGuard ¶
func LinkSetHairpin ¶
func LinkSetHardwareAddr ¶
func LinkSetHardwareAddr(link Link, hwaddr net.HardwareAddr) error
LinkSetHardwareAddr sets the hardware address of the link device. Equivalent to: `ip link set $link address $hwaddr`
func LinkSetIsolated ¶ added in v1.2.1
func LinkSetLearning ¶
func LinkSetMTU ¶
LinkSetMTU sets the mtu of the link device. Equivalent to: `ip link set $link mtu $mtu`
func LinkSetMacvlanMode ¶ added in v1.2.1
func LinkSetMacvlanMode(link Link, mode MacvlanMode) error
LinkSetMacvlanMode sets the mode of a macvlan or macvtap link device. Note that passthrough mode cannot be set to and from and will fail. Equivalent to: `ip link set $link type (macvlan|macvtap) mode $mode
func LinkSetMaster ¶
LinkSetMaster sets the master of the link device. Equivalent to: `ip link set $link master $master`
func LinkSetMasterByIndex ¶
LinkSetMasterByIndex sets the master of the link device. Equivalent to: `ip link set $link master $master`
func LinkSetMulticastOff ¶ added in v1.2.1
LinkSetAllmulticastOff disables the reception of multicast packets for the link device. Equivalent to: `ip link set $link multicast off`
func LinkSetMulticastOn ¶ added in v1.2.1
LinkSetMulticastOn enables the reception of multicast packets for the link device. Equivalent to: `ip link set $link multicast on`
func LinkSetName ¶
LinkSetName sets the name of the link device. Equivalent to: `ip link set $link name $name`
func LinkSetNoMaster ¶
LinkSetNoMaster removes the master of the link device. Equivalent to: `ip link set $link nomaster`
func LinkSetNsFd ¶
LinkSetNsFd puts the device into a new network namespace. The fd must be an open file descriptor to a network namespace. Similar to: `ip link set $link netns $ns`
func LinkSetNsPid ¶
LinkSetNsPid puts the device into a new network namespace. The pid must be a pid of a running process. Equivalent to: `ip link set $link netns $pid`
func LinkSetRootBlock ¶
func LinkSetTxQLen ¶
LinkSetTxQLen sets the transaction queue length for the link. Equivalent to: `ip link set $link txqlen $qlen`
func LinkSetVfHardwareAddr ¶
func LinkSetVfHardwareAddr(link Link, vf int, hwaddr net.HardwareAddr) error
LinkSetVfHardwareAddr sets the hardware address of a vf for the link. Equivalent to: `ip link set $link vf $vf mac $hwaddr`
func LinkSetVfNodeGUID ¶ added in v1.1.0
func LinkSetVfNodeGUID(link Link, vf int, nodeguid net.HardwareAddr) error
LinkSetVfNodeGUID sets the node GUID of a vf for the link. Equivalent to: `ip link set dev $link vf $vf node_guid $nodeguid`
func LinkSetVfPortGUID ¶ added in v1.1.0
func LinkSetVfPortGUID(link Link, vf int, portguid net.HardwareAddr) error
LinkSetVfPortGUID sets the port GUID of a vf for the link. Equivalent to: `ip link set dev $link vf $vf port_guid $portguid`
func LinkSetVfRate ¶ added in v1.1.0
LinkSetVfRate sets the min and max tx rate of a vf for the link. Equivalent to: `ip link set $link vf $vf min_tx_rate $min_rate max_tx_rate $max_rate`
func LinkSetVfSpoofchk ¶
LinkSetVfSpoofchk enables/disables spoof check on a vf for the link. Equivalent to: `ip link set $link vf $vf spoofchk $check`
func LinkSetVfState ¶ added in v1.1.0
LinkSetVfState enables/disables virtual link state on a vf. Equivalent to: `ip link set $link vf $vf state $state`
func LinkSetVfTrust ¶
LinkSetVfTrust enables/disables trust state on a vf for the link. Equivalent to: `ip link set $link vf $vf trust $state`
func LinkSetVfTxRate ¶
LinkSetVfTxRate sets the tx rate of a vf for the link. Equivalent to: `ip link set $link vf $vf rate $rate`
func LinkSetVfVlan ¶
LinkSetVfVlan sets the vlan of a vf for the link. Equivalent to: `ip link set $link vf $vf vlan $vlan`
func LinkSetVfVlanQos ¶ added in v1.1.0
LinkSetVfVlanQos sets the vlan and qos priority of a vf for the link. Equivalent to: `ip link set $link vf $vf vlan $vlan qos $qos`
func LinkSetVfVlanQosProto ¶ added in v1.2.1
LinkSetVfVlanQosProto sets the vlan, qos and protocol of a vf for the link. Equivalent to: `ip link set $link vf $vf vlan $vlan qos $qos proto $proto`
func LinkSetXdpFd ¶
LinkSetXdpFd adds a bpf function to the driver. The fd must be a bpf program loaded with bpf(type=BPF_PROG_TYPE_XDP)
func LinkSetXdpFdWithFlags ¶
LinkSetXdpFdWithFlags adds a bpf function to the driver with the given options. The fd must be a bpf program loaded with bpf(type=BPF_PROG_TYPE_XDP)
func LinkSubscribe ¶
func LinkSubscribe(ch chan<- LinkUpdate, done <-chan struct{}) error
LinkSubscribe takes a chan down which notifications will be sent when links change. Close the 'done' chan to stop subscription.
func LinkSubscribeAt ¶
func LinkSubscribeAt(ns netns.NsHandle, ch chan<- LinkUpdate, done <-chan struct{}) error
LinkSubscribeAt works like LinkSubscribe plus it allows the caller to choose the network namespace in which to subscribe (ns).
func LinkSubscribeWithOptions ¶
func LinkSubscribeWithOptions(ch chan<- LinkUpdate, done <-chan struct{}, options LinkSubscribeOptions) error
LinkSubscribeWithOptions work like LinkSubscribe but enable to provide additional options to modify the behavior. Currently, the namespace can be provided as well as an error callback.
func MacvlanMACAddrAdd ¶
func MacvlanMACAddrAdd(link Link, addr net.HardwareAddr) error
func MacvlanMACAddrDel ¶
func MacvlanMACAddrDel(link Link, addr net.HardwareAddr) error
func MacvlanMACAddrFlush ¶
func MacvlanMACAddrSet ¶
func MacvlanMACAddrSet(link Link, addrs []net.HardwareAddr) error
func MajorMinor ¶
func MakeHandle ¶
func NeighAdd ¶
NeighAdd will add an IP to MAC mapping to the ARP table Equivalent to: `ip neigh add ....`
func NeighAppend ¶
NeighAppend will append an entry to FDB Equivalent to: `bridge fdb append...`
func NeighDel ¶
NeighDel will delete an IP address from a link device. Equivalent to: `ip addr del $addr dev $link`
func NeighSet ¶
NeighSet will add or replace an IP to MAC mapping to the ARP table Equivalent to: `ip neigh replace....`
func NeighSubscribe ¶ added in v1.1.0
func NeighSubscribe(ch chan<- NeighUpdate, done <-chan struct{}) error
NeighSubscribe takes a chan down which notifications will be sent when neighbors are added or deleted. Close the 'done' chan to stop subscription.
func NeighSubscribeAt ¶ added in v1.1.0
func NeighSubscribeAt(ns netns.NsHandle, ch chan<- NeighUpdate, done <-chan struct{}) error
NeighSubscribeAt works like NeighSubscribe plus it allows the caller to choose the network namespace in which to subscribe (ns).
func NeighSubscribeWithOptions ¶ added in v1.1.0
func NeighSubscribeWithOptions(ch chan<- NeighUpdate, done <-chan struct{}, options NeighSubscribeOptions) error
NeighSubscribeWithOptions work like NeighSubscribe but enable to provide additional options to modify the behavior. Currently, the namespace can be provided as well as an error callback.
func ParseIPNet ¶
ParseIPNet parses a string in ip/net format and returns a net.IPNet. This is valuable because addresses in netlink are often IPNets and ParseCIDR returns an IPNet with the IP part set to the base IP of the range.
func Percentage2u32 ¶
func ProcEventMonitor ¶ added in v1.2.1
func QdiscChange ¶
QdiscChange will change a qdisc in place Equivalent to: `tc qdisc change $qdisc` The parent and handle MUST NOT be changed.
func QdiscReplace ¶
QdiscReplace will replace a qdisc to the system. Equivalent to: `tc qdisc replace $qdisc` The handle MUST change.
func RdmaLinkAdd ¶ added in v1.2.1
RdmaLinkAdd adds an rdma link for the specified type to the network device. Similar to: rdma link add NAME type TYPE netdev NETDEV
NAME - specifies the new name of the rdma link to add TYPE - specifies which rdma type to use. Link types: rxe - Soft RoCE driver siw - Soft iWARP driver NETDEV - specifies the network device to which the link is bound
func RdmaLinkDel ¶ added in v1.2.1
RdmaLinkDel deletes an rdma link
Similar to: rdma link delete NAME REF: https://man7.org/linux/man-pages/man8/rdma-link.8.html
func RdmaLinkSetName ¶ added in v1.1.0
RdmaLinkSetName sets the name of the rdma link device. Return nil on success or error otherwise. Equivalent to: `rdma dev set $old_devname name $name`
func RdmaLinkSetNsFd ¶ added in v1.1.0
RdmaLinkSetNsFd puts the RDMA device into a new network namespace. The fd must be an open file descriptor to a network namespace. Similar to: `rdma dev set $dev netns $ns`
func RdmaSystemGetNetnsMode ¶ added in v1.1.0
RdmaSystemGetNetnsMode gets the net namespace mode for RDMA subsystem Returns mode string and error status as nil on success or returns error otherwise. Equivalent to: `rdma system show netns'
func RdmaSystemSetNetnsMode ¶ added in v1.1.0
RdmaSystemSetNetnsMode sets the net namespace mode for RDMA subsystem Returns nil on success or appropriate error code. Equivalent to: `rdma system set netns { shared | exclusive }'
func RouteAddEcmp ¶ added in v1.2.1
RouteAddEcmp will add a route to the system.
func RouteAppend ¶ added in v1.2.1
RouteAppend will append a route to the system. Equivalent to: `ip route append $route`
func RouteChange ¶ added in v1.2.1
RouteChange will change an existing route in the system. Equivalent to: `ip route change $route`
func RouteListFilteredIter ¶ added in v1.2.1
func RouteListFilteredIter(family int, filter *Route, filterMask uint64, f func(Route) (cont bool)) error
RouteListFilteredIter passes each route that matches the filter to the given iterator func. Iteration continues until all routes are loaded or the func returns false.
func RouteReplace ¶
RouteReplace will add a route to the system. Equivalent to: `ip route replace $route`
func RouteSubscribe ¶
func RouteSubscribe(ch chan<- RouteUpdate, done <-chan struct{}) error
RouteSubscribe takes a chan down which notifications will be sent when routes are added or deleted. Close the 'done' chan to stop subscription.
func RouteSubscribeAt ¶
func RouteSubscribeAt(ns netns.NsHandle, ch chan<- RouteUpdate, done <-chan struct{}) error
RouteSubscribeAt works like RouteSubscribe plus it allows the caller to choose the network namespace in which to subscribe (ns).
func RouteSubscribeWithOptions ¶
func RouteSubscribeWithOptions(ch chan<- RouteUpdate, done <-chan struct{}, options RouteSubscribeOptions) error
RouteSubscribeWithOptions work like RouteSubscribe but enable to provide additional options to modify the behavior. Currently, the namespace can be provided as well as an error callback.
func SerializeRtab ¶
func SetBits ¶ added in v1.2.1
SetBits set provided bits in the uint64 input value usage example: features := SetBits(0, VIRTIO_NET_F_MTU, VIRTIO_NET_F_CTRL_MAC_ADDR)
func SetNetNsIdByFd ¶ added in v1.1.0
SetNetNSIdByFd sets the ID of the network namespace for a given fd. fd must be an open file descriptor to a namespace file. The ID can only be set for namespaces without an ID already set.
func SetNetNsIdByPid ¶ added in v1.1.0
SetNetNSIdByPid sets the ID of the network namespace for a given pid (really thread id). The ID can only be set for namespaces without an ID already set.
func SetPromiscOff ¶
func SetPromiscOn ¶
func SetSocketTimeout ¶ added in v1.2.1
SetSocketTimeout configures timeout for default netlink sockets
func SocketDestroy ¶ added in v1.2.1
SocketDestroy kills the Socket identified by its local and remote addresses.
func TcActExtCmp ¶ added in v1.2.1
func TickInUsec ¶
func TickInUsec() float64
func VDPADelDev ¶ added in v1.2.1
VDPADelDev removes VDPA device Equivalent to: `vdpa dev del <name>`
func VDPANewDev ¶ added in v1.2.1
func VDPANewDev(name, mgmtBus, mgmtName string, params VDPANewDevParams) error
VDPANewDev adds new VDPA device Equivalent to: `vdpa dev add name <name> mgmtdev <mgmtBus>/mgmtName [params]`
func XfrmMonitor ¶
func XfrmMonitor(ch chan<- XfrmMsg, done <-chan struct{}, errorChan chan<- error, types ...nl.XfrmMsgType) error
func XfrmPolicyAdd ¶
func XfrmPolicyAdd(policy *XfrmPolicy) error
XfrmPolicyAdd will add an xfrm policy to the system. Equivalent to: `ip xfrm policy add $policy`
func XfrmPolicyDel ¶
func XfrmPolicyDel(policy *XfrmPolicy) error
XfrmPolicyDel will delete an xfrm policy from the system. Note that the Tmpls are ignored when matching the policy to delete. Equivalent to: `ip xfrm policy del $policy`
func XfrmPolicyFlush ¶
func XfrmPolicyFlush() error
XfrmPolicyFlush will flush the policies on the system. Equivalent to: `ip xfrm policy flush`
func XfrmPolicyUpdate ¶
func XfrmPolicyUpdate(policy *XfrmPolicy) error
XfrmPolicyUpdate will update an xfrm policy to the system. Equivalent to: `ip xfrm policy update $policy`
func XfrmStateAdd ¶
XfrmStateAdd will add an xfrm state to the system. Equivalent to: `ip xfrm state add $state`
func XfrmStateDel ¶
XfrmStateDel will delete an xfrm state from the system. Note that the Algos are ignored when matching the state to delete. Equivalent to: `ip xfrm state del $state`
func XfrmStateFlush ¶
XfrmStateFlush will flush the xfrm state on the system. proto = 0 means any transformation protocols Equivalent to: `ip xfrm state flush [ proto XFRM-PROTO ]`
func XfrmStateUpdate ¶
XfrmStateUpdate will update an xfrm state to the system. Equivalent to: `ip xfrm state update $state`
Types ¶
type Action ¶
type Action interface { Attrs() *ActionAttrs Type() string }
Action represents an action in any supported filter.
type ActionAttrs ¶
type ActionAttrs struct { Index int Capab int Action TcAct Refcnt int Bindcnt int Statistics *ActionStatistic Timestamp *ActionTimestamp }
func (ActionAttrs) String ¶
func (q ActionAttrs) String() string
type ActionStatistic ¶ added in v1.2.1
type ActionStatistic ClassStatistics
type ActionTimestamp ¶ added in v1.2.1
func (ActionTimestamp) String ¶ added in v1.2.1
func (t ActionTimestamp) String() string
type Addr ¶
type Addr struct { *net.IPNet Label string Flags int Scope int Peer *net.IPNet Broadcast net.IP PreferedLft int ValidLft int LinkIndex int }
Addr represents an IP address from netlink. Netlink ip addresses include a mask, so it stores the address as a net.IPNet.
func AddrList ¶
AddrList gets a list of IP addresses in the system. Equivalent to: `ip addr show`. The list can be filtered by link and ip family.
func ParseAddr ¶
ParseAddr parses the string representation of an address in the form $ip/$netmask $label. The label portion is optional
type AddrSubscribeOptions ¶
type AddrSubscribeOptions struct { Namespace *netns.NsHandle ErrorCallback func(error) ListExisting bool ReceiveBufferSize int ReceiveBufferForceSize bool ReceiveTimeout *unix.Timeval }
AddrSubscribeOptions contains a set of options to use with AddrSubscribeWithOptions.
type AddrUpdate ¶
type Bond ¶
type Bond struct { LinkAttrs Mode BondMode ActiveSlave int Miimon int UpDelay int DownDelay int UseCarrier int ArpInterval int ArpIpTargets []net.IP ArpValidate BondArpValidate ArpAllTargets BondArpAllTargets Primary int PrimaryReselect BondPrimaryReselect FailOverMac BondFailOverMac XmitHashPolicy BondXmitHashPolicy ResendIgmp int NumPeerNotif int AllSlavesActive int MinLinks int LpInterval int PacketsPerSlave int LacpRate BondLacpRate AdSelect BondAdSelect // looking at iproute tool AdInfo can only be retrived. It can't be set. AdInfo *BondAdInfo AdActorSysPrio int AdUserPortKey int AdActorSystem net.HardwareAddr TlbDynamicLb int }
Bond representation
func NewLinkBond ¶
type BondAdInfo ¶
type BondAdInfo struct { AggregatorId int NumPorts int ActorKey int PartnerKey int PartnerMac net.HardwareAddr }
BondAdInfo represents ad info for bond
type BondAdSelect ¶
type BondAdSelect int
BondAdSelect type
const ( BOND_AD_SELECT_STABLE BondAdSelect = iota BOND_AD_SELECT_BANDWIDTH BOND_AD_SELECT_COUNT )
Possible BondAdSelect value
func (BondAdSelect) String ¶ added in v1.2.1
func (b BondAdSelect) String() string
type BondArpAllTargets ¶
type BondArpAllTargets int
BondArpAllTargets type
const ( BOND_ARP_ALL_TARGETS_ANY BondArpAllTargets = iota BOND_ARP_ALL_TARGETS_ALL )
Possible BondArpAllTargets value
func (BondArpAllTargets) String ¶ added in v1.2.1
func (b BondArpAllTargets) String() string
type BondArpValidate ¶
type BondArpValidate int
BondArpValidate type
const ( BOND_ARP_VALIDATE_NONE BondArpValidate = iota BOND_ARP_VALIDATE_ACTIVE BOND_ARP_VALIDATE_BACKUP BOND_ARP_VALIDATE_ALL )
Possible BondArpValidate value
func (BondArpValidate) String ¶ added in v1.2.1
func (b BondArpValidate) String() string
type BondFailOverMac ¶
type BondFailOverMac int
BondFailOverMac type
const ( BOND_FAIL_OVER_MAC_NONE BondFailOverMac = iota BOND_FAIL_OVER_MAC_ACTIVE BOND_FAIL_OVER_MAC_FOLLOW )
Possible BondFailOverMac value
func (BondFailOverMac) String ¶ added in v1.2.1
func (b BondFailOverMac) String() string
type BondLacpRate ¶
type BondLacpRate int
BondLacpRate type
const ( BOND_LACP_RATE_SLOW BondLacpRate = iota BOND_LACP_RATE_FAST BOND_LACP_RATE_UNKNOWN )
Possible BondLacpRate value
func StringToBondLacpRate ¶
func StringToBondLacpRate(s string) BondLacpRate
StringToBondLacpRate returns bond lacp arte, or unknown is the s is invalid.
func (BondLacpRate) String ¶
func (b BondLacpRate) String() string
type BondMode ¶
type BondMode int
BondMode type
const ( BOND_MODE_BALANCE_RR BondMode = iota BOND_MODE_ACTIVE_BACKUP BOND_MODE_BALANCE_XOR BOND_MODE_BROADCAST BOND_MODE_802_3AD BOND_MODE_BALANCE_TLB BOND_MODE_BALANCE_ALB BOND_MODE_UNKNOWN )
Possible BondMode
func StringToBondMode ¶
StringToBondMode returns bond mode, or unknown is the s is invalid.
type BondPrimaryReselect ¶
type BondPrimaryReselect int
BondPrimaryReselect type
const ( BOND_PRIMARY_RESELECT_ALWAYS BondPrimaryReselect = iota BOND_PRIMARY_RESELECT_BETTER BOND_PRIMARY_RESELECT_FAILURE )
Possible BondPrimaryReselect value
func (BondPrimaryReselect) String ¶ added in v1.2.1
func (b BondPrimaryReselect) String() string
type BondSlave ¶ added in v1.1.0
type BondSlave struct { State BondSlaveState MiiStatus BondSlaveMiiStatus LinkFailureCount uint32 PermHardwareAddr net.HardwareAddr QueueId uint16 AggregatorId uint16 AdActorOperPortState uint8 AdPartnerOperPortState uint16 }
type BondSlaveMiiStatus ¶ added in v1.1.0
type BondSlaveMiiStatus uint8
BondSlaveMiiStatus represents the values of the IFLA_BOND_SLAVE_MII_STATUS bond slave attribute, which contains the status of MII link monitoring
const ( //BondLinkUp link is up and running. BondLinkUp BondSlaveMiiStatus = iota //BondLinkFail link has just gone down. BondLinkFail //BondLinkDown link has been down for too long time. BondLinkDown //BondLinkBack link is going back. BondLinkBack )
func (BondSlaveMiiStatus) String ¶ added in v1.1.0
func (s BondSlaveMiiStatus) String() string
type BondSlaveState ¶ added in v1.1.0
type BondSlaveState uint8
BondSlaveState represents the values of the IFLA_BOND_SLAVE_STATE bond slave attribute, which contains the state of the bond slave.
const ( //BondStateActive Link is active. BondStateActive BondSlaveState = iota //BondStateBackup Link is backup. BondStateBackup )
func (BondSlaveState) String ¶ added in v1.1.0
func (s BondSlaveState) String() string
type BondXmitHashPolicy ¶
type BondXmitHashPolicy int
BondXmitHashPolicy type
const ( BOND_XMIT_HASH_POLICY_LAYER2 BondXmitHashPolicy = iota BOND_XMIT_HASH_POLICY_LAYER3_4 BOND_XMIT_HASH_POLICY_LAYER2_3 BOND_XMIT_HASH_POLICY_ENCAP2_3 BOND_XMIT_HASH_POLICY_ENCAP3_4 BOND_XMIT_HASH_POLICY_VLAN_SRCMAC BOND_XMIT_HASH_POLICY_UNKNOWN )
Possible BondXmitHashPolicy value
func StringToBondXmitHashPolicy ¶
func StringToBondXmitHashPolicy(s string) BondXmitHashPolicy
StringToBondXmitHashPolicy returns bond lacp arte, or unknown is the s is invalid.
func (BondXmitHashPolicy) String ¶
func (b BondXmitHashPolicy) String() string
type BpfAction ¶
type BpfAction struct { ActionAttrs Fd int Name string }
func (*BpfAction) Attrs ¶
func (action *BpfAction) Attrs() *ActionAttrs
type BpfEncap ¶ added in v1.2.1
type BpfEncap struct {
// contains filtered or unexported fields
}
func (*BpfEncap) SetProg ¶ added in v1.2.1
SetProg adds a bpf function to the route via netlink RTA_ENCAP. The fd must be a bpf program loaded with bpf(type=BPF_PROG_TYPE_LWT_*) matching the direction the program should be applied to (LWT_BPF_IN, LWT_BPF_OUT, LWT_BPF_XMIT).
func (*BpfEncap) SetXmitHeadroom ¶ added in v1.2.1
SetXmitHeadroom sets the xmit headroom (LWT_BPF_MAX_HEADROOM) via netlink RTA_ENCAP. maximum headroom is LWT_BPF_MAX_HEADROOM
type BpfFilter ¶
type BpfFilter struct { FilterAttrs ClassId uint32 Fd int Name string DirectAction bool Id int Tag string }
func (*BpfFilter) Attrs ¶
func (filter *BpfFilter) Attrs() *FilterAttrs
type BpfProgType ¶
type BpfProgType uint32
const ( BPF_PROG_TYPE_UNSPEC BpfProgType = iota BPF_PROG_TYPE_SOCKET_FILTER BPF_PROG_TYPE_KPROBE BPF_PROG_TYPE_SCHED_CLS BPF_PROG_TYPE_SCHED_ACT BPF_PROG_TYPE_TRACEPOINT BPF_PROG_TYPE_XDP BPF_PROG_TYPE_PERF_EVENT BPF_PROG_TYPE_CGROUP_SKB BPF_PROG_TYPE_CGROUP_SOCK BPF_PROG_TYPE_LWT_IN BPF_PROG_TYPE_LWT_OUT BPF_PROG_TYPE_LWT_XMIT BPF_PROG_TYPE_SOCK_OPS BPF_PROG_TYPE_SK_SKB BPF_PROG_TYPE_CGROUP_DEVICE BPF_PROG_TYPE_SK_MSG BPF_PROG_TYPE_RAW_TRACEPOINT BPF_PROG_TYPE_CGROUP_SOCK_ADDR BPF_PROG_TYPE_LWT_SEG6LOCAL BPF_PROG_TYPE_LIRC_MODE2 BPF_PROG_TYPE_SK_REUSEPORT BPF_PROG_TYPE_FLOW_DISSECTOR BPF_PROG_TYPE_CGROUP_SYSCTL BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE BPF_PROG_TYPE_CGROUP_SOCKOPT BPF_PROG_TYPE_TRACING BPF_PROG_TYPE_STRUCT_OPS BPF_PROG_TYPE_EXT BPF_PROG_TYPE_LSM BPF_PROG_TYPE_SK_LOOKUP )
type Bridge ¶
type Bridge struct { LinkAttrs MulticastSnooping *bool AgeingTime *uint32 HelloTime *uint32 VlanFiltering *bool VlanDefaultPVID *uint16 GroupFwdMask *uint16 }
Bridge links are simple linux bridges
type Can ¶ added in v1.2.1
type Can struct { LinkAttrs BitRate uint32 SamplePoint uint32 TimeQuanta uint32 PropagationSegment uint32 PhaseSegment1 uint32 PhaseSegment2 uint32 SyncJumpWidth uint32 BitRatePreScaler uint32 Name string TimeSegment1Min uint32 TimeSegment1Max uint32 TimeSegment2Min uint32 TimeSegment2Max uint32 SyncJumpWidthMax uint32 BitRatePreScalerMin uint32 BitRatePreScalerMax uint32 BitRatePreScalerInc uint32 ClockFrequency uint32 State uint32 Mask uint32 Flags uint32 TxError uint16 RxError uint16 RestartMs uint32 }
type Chain ¶ added in v1.2.1
Chain contains the attributes of a Chain
type Class ¶
type Class interface { Attrs() *ClassAttrs Type() string }
Class interfaces for all classes
type ClassAttrs ¶
type ClassAttrs struct { LinkIndex int Handle uint32 Parent uint32 Leaf uint32 Statistics *ClassStatistics }
ClassAttrs represents a netlink class. A filter is associated with a link, has a handle and a parent. The root filter of a device should have a parent == HANDLE_ROOT.
func (ClassAttrs) String ¶
func (q ClassAttrs) String() string
type ClassStatistics ¶ added in v1.1.0
type ClassStatistics struct { Basic *GnetStatsBasic Queue *GnetStatsQueue RateEst *GnetStatsRateEst BasicHw *GnetStatsBasic // Hardward statistics added in kernel 4.20 }
ClassStatistics representation based on generic networking statistics for netlink. See Documentation/networking/gen_stats.txt in Linux source code for more details.
func NewClassStatistics ¶ added in v1.1.0
func NewClassStatistics() *ClassStatistics
NewClassStatistics Construct a ClassStatistics struct which fields are all initialized by 0.
type Clsact ¶ added in v1.2.1
type Clsact struct {
QdiscAttrs
}
Clsact is a qdisc for adding filters
func (*Clsact) Attrs ¶ added in v1.2.1
func (qdisc *Clsact) Attrs() *QdiscAttrs
type CommProcEvent ¶ added in v1.2.1
func (*CommProcEvent) Pid ¶ added in v1.2.1
func (e *CommProcEvent) Pid() uint32
func (*CommProcEvent) Tgid ¶ added in v1.2.1
func (e *CommProcEvent) Tgid() uint32
type ConnmarkAction ¶ added in v1.1.0
type ConnmarkAction struct { ActionAttrs Zone uint16 }
func NewConnmarkAction ¶ added in v1.1.0
func NewConnmarkAction() *ConnmarkAction
func (*ConnmarkAction) Attrs ¶ added in v1.1.0
func (action *ConnmarkAction) Attrs() *ActionAttrs
func (*ConnmarkAction) Type ¶ added in v1.1.0
func (action *ConnmarkAction) Type() string
type ConntrackFilter ¶
type ConntrackFilter struct {
// contains filtered or unexported fields
}
func (*ConntrackFilter) AddIP ¶
func (f *ConntrackFilter) AddIP(tp ConntrackFilterType, ip net.IP) error
AddIP adds an IP to the conntrack filter
func (*ConntrackFilter) AddIPNet ¶ added in v1.2.1
func (f *ConntrackFilter) AddIPNet(tp ConntrackFilterType, ipNet *net.IPNet) error
AddIPNet adds a IP subnet to the conntrack filter
func (*ConntrackFilter) AddLabels ¶ added in v1.2.1
func (f *ConntrackFilter) AddLabels(tp ConntrackFilterType, labels [][]byte) error
AddLabels adds the provided list (zero or more) of labels to the conntrack filter ConntrackFilterType here can be either:
- ConntrackMatchLabels: This matches every flow that has a label value (len(flow.Labels) > 0) against the list of provided labels. If `flow.Labels` contains ALL the provided labels it is considered a match. This can be used when you want to match flows that contain one or more labels.
- ConntrackUnmatchLabels: This matches every flow that has a label value (len(flow.Labels) > 0) against the list of provided labels. If `flow.Labels` does NOT contain ALL the provided labels it is considered a match. This can be used when you want to match flows that don't contain one or more labels.
func (*ConntrackFilter) AddPort ¶ added in v1.2.1
func (f *ConntrackFilter) AddPort(tp ConntrackFilterType, port uint16) error
AddPort adds a Port to the conntrack filter if the Layer 4 protocol allows it
func (*ConntrackFilter) AddProtocol ¶ added in v1.2.1
func (f *ConntrackFilter) AddProtocol(proto uint8) error
AddProtocol adds the Layer 4 protocol to the conntrack filter
func (*ConntrackFilter) AddZone ¶ added in v1.2.1
func (f *ConntrackFilter) AddZone(zone uint16) error
AddZone adds a zone to the conntrack filter
func (*ConntrackFilter) MatchConntrackFlow ¶
func (f *ConntrackFilter) MatchConntrackFlow(flow *ConntrackFlow) bool
MatchConntrackFlow applies the filter to the flow and returns true if the flow matches the filter false otherwise
type ConntrackFlow ¶
type ConntrackFlow struct { FamilyType uint8 Forward IPTuple Reverse IPTuple Mark uint32 Zone uint16 TimeStart uint64 TimeStop uint64 TimeOut uint32 Labels []byte ProtoInfo ProtoInfo }
func ConntrackTableList ¶
func ConntrackTableList(table ConntrackTableType, family InetFamily) ([]*ConntrackFlow, error)
ConntrackTableList returns the flow list of a table of a specific family conntrack -L [table] [options] List conntrack or expectation table
func (*ConntrackFlow) String ¶
func (s *ConntrackFlow) String() string
type ConntrackTableType ¶
type ConntrackTableType uint8
ConntrackTableType Conntrack table for the netlink operation
type CsumAction ¶ added in v1.2.1
type CsumAction struct { ActionAttrs UpdateFlags CsumUpdateFlags }
func NewCsumAction ¶ added in v1.2.1
func NewCsumAction() *CsumAction
func (*CsumAction) Attrs ¶ added in v1.2.1
func (action *CsumAction) Attrs() *ActionAttrs
func (*CsumAction) Type ¶ added in v1.2.1
func (action *CsumAction) Type() string
type CsumUpdateFlags ¶ added in v1.2.1
type CsumUpdateFlags uint32
const ( TCA_CSUM_UPDATE_FLAG_IPV4HDR CsumUpdateFlags = 1 TCA_CSUM_UPDATE_FLAG_ICMP CsumUpdateFlags = 2 TCA_CSUM_UPDATE_FLAG_IGMP CsumUpdateFlags = 4 TCA_CSUM_UPDATE_FLAG_TCP CsumUpdateFlags = 8 TCA_CSUM_UPDATE_FLAG_UDP CsumUpdateFlags = 16 TCA_CSUM_UPDATE_FLAG_UDPLITE CsumUpdateFlags = 32 TCA_CSUM_UPDATE_FLAG_SCTP CsumUpdateFlags = 64 )
type CustomConntrackFilter ¶
type CustomConntrackFilter interface { // MatchConntrackFlow applies the filter to the flow and returns true if the flow matches // the filter or false otherwise MatchConntrackFlow(flow *ConntrackFlow) bool }
type Destination ¶
type DevLinkPortAddAttrs ¶ added in v1.2.1
type Device ¶
type Device struct {
LinkAttrs
}
Device links cannot be created via netlink. These links are links created by udev like 'lo' and 'etho0'
type DevlinkDevAttrs ¶ added in v1.1.0
type DevlinkDevAttrs struct {
Eswitch DevlinkDevEswitchAttr
}
DevlinkDevAttrs represents device attributes
type DevlinkDevEswitchAttr ¶ added in v1.1.0
DevlinkDevEswitchAttr represents device's eswitch attributes
type DevlinkDevice ¶ added in v1.1.0
type DevlinkDevice struct { BusName string DeviceName string Attrs DevlinkDevAttrs }
DevlinkDevice represents device and its attributes
func DevLinkGetDeviceByName ¶ added in v1.1.0
func DevLinkGetDeviceByName(Bus string, Device string) (*DevlinkDevice, error)
DevlinkGetDeviceByName provides a pointer to devlink device and nil error, otherwise returns an error code.
func DevLinkGetDeviceList ¶ added in v1.1.0
func DevLinkGetDeviceList() ([]*DevlinkDevice, error)
DevLinkGetDeviceList provides a pointer to devlink devices and nil error, otherwise returns an error code.
func (*DevlinkDevice) GetDevlinkInfo ¶ added in v1.2.1
func (d *DevlinkDevice) GetDevlinkInfo() (*DevlinkDeviceInfo, error)
GetDevlinkInfo returns devlink info for target device, otherwise returns an error code.
func (*DevlinkDevice) GetDevlinkInfoAsMap ¶ added in v1.2.1
func (d *DevlinkDevice) GetDevlinkInfoAsMap() (map[string]string, error)
GetDevlinkInfoAsMap returns devlink info for target device as a map, otherwise returns an error code.
type DevlinkDeviceInfo ¶ added in v1.2.1
type DevlinkDeviceInfo struct { Driver string SerialNumber string BoardID string FwApp string FwAppBoundleID string FwAppName string FwBoundleID string FwMgmt string FwMgmtAPI string FwMgmtBuild string FwNetlist string FwNetlistBuild string FwPsidAPI string FwUndi string }
DevlinkDeviceInfo represents devlink info
func DevlinkGetDeviceInfoByName ¶ added in v1.2.1
func DevlinkGetDeviceInfoByName(Bus string, Device string) (*DevlinkDeviceInfo, error)
DevlinkGetDeviceInfoByName returns devlink info for selected device, otherwise returns an error code. Equivalent to: `devlink dev info $dev`
type DevlinkParam ¶ added in v1.2.1
type DevlinkParam struct { Name string IsGeneric bool Type uint8 // possible values are in nl.DEVLINK_PARAM_TYPE_* constants Values []DevlinkParamValue }
DevlinkParam represents parameter of the device
func DevlinkGetDeviceParamByName ¶ added in v1.2.1
func DevlinkGetDeviceParamByName(bus string, device string, param string) (*DevlinkParam, error)
DevlinkGetDeviceParamByName returns specific parameter for devlink device Equivalent to: `devlink dev param show <bus>/<device> name <param>`
func DevlinkGetDeviceParams ¶ added in v1.2.1
func DevlinkGetDeviceParams(bus string, device string) ([]*DevlinkParam, error)
DevlinkGetDeviceParams returns parameters for devlink device Equivalent to: `devlink dev param show <bus>/<device>`
type DevlinkParamValue ¶ added in v1.2.1
type DevlinkParamValue struct { Data interface{} CMODE uint8 // possible values are in nl.DEVLINK_PARAM_CMODE_* constants // contains filtered or unexported fields }
DevlinkParamValue contains values of the parameter Data field contains specific type which can be casted by unsing info from the DevlinkParam.Type field
type DevlinkPort ¶ added in v1.2.1
type DevlinkPort struct { BusName string DeviceName string PortIndex uint32 PortType uint16 NetdeviceName string NetdevIfIndex uint32 RdmaDeviceName string PortFlavour uint16 Fn *DevlinkPortFn }
DevlinkPort represents port and its attributes
func DevLinkGetAllPortList ¶ added in v1.2.1
func DevLinkGetAllPortList() ([]*DevlinkPort, error)
DevLinkGetPortList provides a pointer to devlink ports and nil error, otherwise returns an error code.
func DevLinkGetPortByIndex ¶ added in v1.2.1
func DevLinkGetPortByIndex(Bus string, Device string, PortIndex uint32) (*DevlinkPort, error)
DevLinkGetPortByIndex provides a pointer to devlink portand nil error, otherwise returns an error code.
func DevLinkPortAdd ¶ added in v1.2.1
func DevLinkPortAdd(Bus string, Device string, Flavour uint16, Attrs DevLinkPortAddAttrs) (*DevlinkPort, error)
DevLinkPortAdd adds a devlink port and returns a port on success otherwise returns nil port and an error code.
type DevlinkPortFn ¶ added in v1.2.1
type DevlinkPortFn struct { HwAddr net.HardwareAddr State uint8 OpState uint8 }
DevlinkPortFn represents port function and its attributes
type DevlinkPortFnSetAttrs ¶ added in v1.2.1
type DevlinkPortFnSetAttrs struct { FnAttrs DevlinkPortFn HwAddrValid bool StateValid bool }
DevlinkPortFnSetAttrs represents attributes to set
type DevlinkResource ¶ added in v1.2.1
type DevlinkResource struct { Name string ID uint64 Size uint64 SizeNew uint64 SizeMin uint64 SizeMax uint64 SizeGranularity uint64 PendingChange bool Unit uint8 SizeValid bool OCCValid bool OCCSize uint64 Parent *DevlinkResource Children []DevlinkResource }
DevlinkResource represents a device resource
type DevlinkResources ¶ added in v1.2.1
type DevlinkResources struct { Bus string Device string Resources []DevlinkResource }
DevlinkResources represents all devlink resources of a devlink device
func DevlinkGetDeviceResources ¶ added in v1.2.1
func DevlinkGetDeviceResources(bus string, device string) (*DevlinkResources, error)
DevlinkGetDeviceResources returns devlink device resources
type EncapType ¶
type EncapType uint8
EncapType is an enum representing the optional packet encapsulation.
type ExecProcEvent ¶ added in v1.2.1
func (*ExecProcEvent) Pid ¶ added in v1.2.1
func (e *ExecProcEvent) Pid() uint32
func (*ExecProcEvent) Tgid ¶ added in v1.2.1
func (e *ExecProcEvent) Tgid() uint32
type ExitProcEvent ¶ added in v1.2.1
type ExitProcEvent struct { ProcessPid uint32 ProcessTgid uint32 ExitCode uint32 ExitSignal uint32 ParentPid uint32 ParentTgid uint32 }
func (*ExitProcEvent) Pid ¶ added in v1.2.1
func (e *ExitProcEvent) Pid() uint32
func (*ExitProcEvent) Tgid ¶ added in v1.2.1
func (e *ExitProcEvent) Tgid() uint32
type Filter ¶
type Filter interface { Attrs() *FilterAttrs Type() string }
type FilterAttrs ¶
type FilterAttrs struct { LinkIndex int Handle uint32 Parent uint32 Priority uint16 // lower is higher priority Protocol uint16 // unix.ETH_P_* Chain *uint32 }
FilterAttrs represents a netlink filter. A filter is associated with a link, has a handle and a parent. The root filter of a device should have a parent == HANDLE_ROOT.
func (FilterAttrs) String ¶
func (q FilterAttrs) String() string
type Flower ¶ added in v1.2.1
type Flower struct { FilterAttrs DestIP net.IP DestIPMask net.IPMask SrcIP net.IP SrcIPMask net.IPMask EthType uint16 EncDestIP net.IP EncDestIPMask net.IPMask EncSrcIP net.IP EncSrcIPMask net.IPMask EncDestPort uint16 EncKeyId uint32 SkipHw bool SkipSw bool IPProto *nl.IPProto DestPort uint16 SrcPort uint16 Actions []Action }
func (*Flower) Attrs ¶ added in v1.2.1
func (filter *Flower) Attrs() *FilterAttrs
type ForkProcEvent ¶ added in v1.2.1
func (*ForkProcEvent) Pid ¶ added in v1.2.1
func (e *ForkProcEvent) Pid() uint32
func (*ForkProcEvent) Tgid ¶ added in v1.2.1
func (e *ForkProcEvent) Tgid() uint32
type Fq ¶
type Fq struct { QdiscAttrs PacketLimit uint32 FlowPacketLimit uint32 // In bytes Quantum uint32 InitialQuantum uint32 // called RateEnable under the hood Pacing uint32 FlowDefaultRate uint32 FlowMaxRate uint32 // called BucketsLog under the hood Buckets uint32 FlowRefillDelay uint32 LowRateThreshold uint32 Horizon uint32 HorizonDropPolicy uint8 }
Fq is a classless packet scheduler meant to be mostly used for locally generated traffic.
func NewFq ¶
func NewFq(attrs QdiscAttrs) *Fq
func (*Fq) Attrs ¶
func (qdisc *Fq) Attrs() *QdiscAttrs
type FqCodel ¶
type FqCodel struct { QdiscAttrs Target uint32 Limit uint32 Interval uint32 ECN uint32 Flows uint32 Quantum uint32 CEThreshold uint32 DropBatchSize uint32 MemoryLimit uint32 }
FQ_Codel (Fair Queuing Controlled Delay) is queuing discipline that combines Fair Queuing with the CoDel AQM scheme.
func NewFqCodel ¶
func NewFqCodel(attrs QdiscAttrs) *FqCodel
func (*FqCodel) Attrs ¶
func (qdisc *FqCodel) Attrs() *QdiscAttrs
type FwFilter ¶ added in v1.2.1
type FwFilter struct { FilterAttrs ClassId uint32 InDev string Mask uint32 Police *PoliceAction Actions []Action }
func (*FwFilter) Attrs ¶ added in v1.2.1
func (filter *FwFilter) Attrs() *FilterAttrs
type GenericAction ¶
type GenericAction struct { ActionAttrs Chain int32 }
func (*GenericAction) Attrs ¶
func (action *GenericAction) Attrs() *ActionAttrs
func (*GenericAction) Type ¶
func (action *GenericAction) Type() string
type GenericClass ¶
type GenericClass struct { ClassAttrs ClassType string }
GenericClass classes represent types that are not currently understood by this netlink library.
func (*GenericClass) Attrs ¶
func (class *GenericClass) Attrs() *ClassAttrs
Attrs return the class attributes
type GenericFilter ¶
type GenericFilter struct { FilterAttrs FilterType string }
GenericFilter filters represent types that are not currently understood by this netlink library.
func (*GenericFilter) Attrs ¶
func (filter *GenericFilter) Attrs() *FilterAttrs
func (*GenericFilter) Type ¶
func (filter *GenericFilter) Type() string
type GenericLink ¶
GenericLink links represent types that are not currently understood by this netlink library.
func (*GenericLink) Attrs ¶
func (generic *GenericLink) Attrs() *LinkAttrs
func (*GenericLink) Type ¶
func (generic *GenericLink) Type() string
type GenericQdisc ¶
type GenericQdisc struct { QdiscAttrs QdiscType string }
GenericQdisc qdiscs represent types that are not currently understood by this netlink library.
func (*GenericQdisc) Attrs ¶
func (qdisc *GenericQdisc) Attrs() *QdiscAttrs
func (*GenericQdisc) Type ¶
func (qdisc *GenericQdisc) Type() string
type Geneve ¶ added in v1.2.1
type Geneve struct { LinkAttrs ID uint32 // vni Remote net.IP Ttl uint8 Tos uint8 Dport uint16 UdpCsum uint8 UdpZeroCsum6Tx uint8 UdpZeroCsum6Rx uint8 Link uint32 FlowBased bool InnerProtoInherit bool Df GeneveDf }
Geneve devices must specify RemoteIP and ID (VNI) on create https://github.com/torvalds/linux/blob/47ec5303d73ea344e84f46660fff693c57641386/drivers/net/geneve.c#L1209-L1223
type GenlFamily ¶
type GenlFamily struct { ID uint16 HdrSize uint32 Name string Version uint32 MaxAttr uint32 Ops []GenlOp Groups []GenlMulticastGroup }
func GenlFamilyGet ¶
func GenlFamilyGet(name string) (*GenlFamily, error)
func GenlFamilyList ¶
func GenlFamilyList() ([]*GenlFamily, error)
type GenlMulticastGroup ¶
type GnetStatsBasic ¶ added in v1.1.0
type GnetStatsBasic struct { Bytes uint64 // number of seen bytes Packets uint32 // number of seen packets }
GnetStatsBasic Ref: struct gnet_stats_basic { ... }
type GnetStatsQueue ¶ added in v1.1.0
type GnetStatsQueue struct { Qlen uint32 // queue length Backlog uint32 // backlog size of queue Drops uint32 // number of dropped packets Requeues uint32 // number of requues Overlimits uint32 // number of enqueues over the limit }
GnetStatsQueue Ref: struct gnet_stats_queue { ... }
type GnetStatsRateEst ¶ added in v1.1.0
GnetStatsRateEst Ref: struct gnet_stats_rate_est { ... }
type GnetStatsRateEst64 ¶ added in v1.1.0
type GnetStatsRateEst64 struct { Bps uint64 // current byte rate Pps uint64 // current packet rate }
GnetStatsRateEst64 Ref: struct gnet_stats_rate_est64 { ... }
type Gretap ¶
type Gretap struct { LinkAttrs IKey uint32 OKey uint32 EncapSport uint16 EncapDport uint16 Local net.IP Remote net.IP IFlags uint16 OFlags uint16 PMtuDisc uint8 Ttl uint8 Tos uint8 EncapType uint16 EncapFlags uint16 Link uint32 FlowBased bool }
Gretap devices must specify LocalIP and RemoteIP on create
type Gretun ¶
type Handle ¶
type Handle struct {
// contains filtered or unexported fields
}
Handle is an handle for the netlink requests on a specific network namespace. All the requests on the same netlink family share the same netlink socket, which gets released when the handle is Close'd.
func NewHandle ¶
NewHandle returns a netlink handle on the current network namespace. Caller may specify the netlink families the handle should support. If no families are specified, all the families the netlink package supports will be automatically added.
func NewHandleAt ¶
NewHandleAt returns a netlink handle on the network namespace specified by ns. If ns=netns.None(), current network namespace will be assumed
func NewHandleAtFrom ¶
NewHandleAtFrom works as NewHandle but allows client to specify the new and the origin netns Handle.
func (*Handle) AddrAdd ¶
AddrAdd will add an IP address to a link device.
Equivalent to: `ip addr add $addr dev $link`
If `addr` is an IPv4 address and the broadcast address is not given, it will be automatically computed based on the IP mask if /30 or larger.
func (*Handle) AddrDel ¶
AddrDel will delete an IP address from a link device. Equivalent to: `ip addr del $addr dev $link`
If `addr` is an IPv4 address and the broadcast address is not given, it will be automatically computed based on the IP mask if /30 or larger.
func (*Handle) AddrList ¶
AddrList gets a list of IP addresses in the system. Equivalent to: `ip addr show`. The list can be filtered by link and ip family.
func (*Handle) AddrReplace ¶
AddrReplace will replace (or, if not present, add) an IP address on a link device.
Equivalent to: `ip addr replace $addr dev $link`
If `addr` is an IPv4 address and the broadcast address is not given, it will be automatically computed based on the IP mask if /30 or larger.
func (*Handle) BridgeSetVlanDefaultPVID ¶ added in v1.2.1
func (*Handle) BridgeSetVlanFiltering ¶ added in v1.2.1
func (*Handle) BridgeVlanAdd ¶
BridgeVlanAdd adds a new vlan filter entry Equivalent to: `bridge vlan add dev DEV vid VID [ pvid ] [ untagged ] [ self ] [ master ]`
func (*Handle) BridgeVlanAddRange ¶ added in v1.2.1
func (h *Handle) BridgeVlanAddRange(link Link, vid, vidEnd uint16, pvid, untagged, self, master bool) error
BridgeVlanAddRange adds a new vlan filter entry Equivalent to: `bridge vlan add dev DEV vid VID-VIDEND [ pvid ] [ untagged ] [ self ] [ master ]`
func (*Handle) BridgeVlanDel ¶
BridgeVlanDel adds a new vlan filter entry Equivalent to: `bridge vlan del dev DEV vid VID [ pvid ] [ untagged ] [ self ] [ master ]`
func (*Handle) BridgeVlanDelRange ¶ added in v1.2.1
func (h *Handle) BridgeVlanDelRange(link Link, vid, vidEnd uint16, pvid, untagged, self, master bool) error
BridgeVlanDelRange adds a new vlan filter entry Equivalent to: `bridge vlan del dev DEV vid VID-VIDEND [ pvid ] [ untagged ] [ self ] [ master ]`
func (*Handle) BridgeVlanList ¶
func (h *Handle) BridgeVlanList() (map[int32][]*nl.BridgeVlanInfo, error)
BridgeVlanList gets a map of device id to bridge vlan infos. Equivalent to: `bridge vlan show`
func (*Handle) ChainAdd ¶ added in v1.2.1
ChainAdd will add a chain to the system. Equivalent to: `tc chain add`
func (*Handle) ChainDel ¶ added in v1.2.1
ChainDel will delete a chain from the system. Equivalent to: `tc chain del $chain`
func (*Handle) ChainList ¶ added in v1.2.1
ChainList gets a list of chains in the system. Equivalent to: `tc chain list`. The list can be filtered by link.
func (*Handle) ClassAdd ¶
ClassAdd will add a class to the system. Equivalent to: `tc class add $class`
func (*Handle) ClassChange ¶
ClassChange will change a class in place Equivalent to: `tc class change $class` The parent and handle MUST NOT be changed.
func (*Handle) ClassDel ¶
ClassDel will delete a class from the system. Equivalent to: `tc class del $class`
func (*Handle) ClassList ¶
ClassList gets a list of classes in the system. Equivalent to: `tc class show`. Generally returns nothing if link and parent are not specified.
func (*Handle) ClassReplace ¶
ClassReplace will replace a class to the system. quivalent to: `tc class replace $class` The handle MAY be changed. If a class already exist with this parent/handle pair, the class is changed. If a class does not already exist with this parent/handle, a new class is created.
func (*Handle) Close ¶ added in v1.2.1
func (h *Handle) Close()
Close releases the resources allocated to this handle
func (*Handle) ConntrackCreate ¶ added in v1.2.1
func (h *Handle) ConntrackCreate(table ConntrackTableType, family InetFamily, flow *ConntrackFlow) error
ConntrackCreate creates a new conntrack flow in the desired table using the handle conntrack -I [table] Create a conntrack or expectation
func (*Handle) ConntrackDeleteFilter
deprecated
func (h *Handle) ConntrackDeleteFilter(table ConntrackTableType, family InetFamily, filter CustomConntrackFilter) (uint, error)
ConntrackDeleteFilter deletes entries on the specified table on the base of the filter using the netlink handle passed conntrack -D [table] parameters Delete conntrack or expectation
Deprecated: use Handle.ConntrackDeleteFilters instead.
func (*Handle) ConntrackDeleteFilters ¶ added in v1.2.1
func (h *Handle) ConntrackDeleteFilters(table ConntrackTableType, family InetFamily, filters ...CustomConntrackFilter) (uint, error)
ConntrackDeleteFilters deletes entries on the specified table matching any of the specified filters using the netlink handle passed conntrack -D [table] parameters Delete conntrack or expectation
func (*Handle) ConntrackTableFlush ¶
func (h *Handle) ConntrackTableFlush(table ConntrackTableType) error
ConntrackTableFlush flushes all the flows of a specified table using the netlink handle passed conntrack -F [table] Flush table The flush operation applies to all the family types
func (*Handle) ConntrackTableList ¶
func (h *Handle) ConntrackTableList(table ConntrackTableType, family InetFamily) ([]*ConntrackFlow, error)
ConntrackTableList returns the flow list of a table of a specific family using the netlink handle passed conntrack -L [table] [options] List conntrack or expectation table
func (*Handle) ConntrackUpdate ¶ added in v1.2.1
func (h *Handle) ConntrackUpdate(table ConntrackTableType, family InetFamily, flow *ConntrackFlow) error
ConntrackUpdate updates an existing conntrack flow in the desired table using the handle conntrack -U [table] Update a conntrack
func (*Handle) DevLinkGetAllPortList ¶ added in v1.2.1
func (h *Handle) DevLinkGetAllPortList() ([]*DevlinkPort, error)
DevLinkGetPortList provides a pointer to devlink ports and nil error, otherwise returns an error code.
func (*Handle) DevLinkGetDeviceByName ¶ added in v1.1.0
func (h *Handle) DevLinkGetDeviceByName(Bus string, Device string) (*DevlinkDevice, error)
DevlinkGetDeviceByName provides a pointer to devlink device and nil error, otherwise returns an error code.
func (*Handle) DevLinkGetDeviceList ¶ added in v1.1.0
func (h *Handle) DevLinkGetDeviceList() ([]*DevlinkDevice, error)
DevLinkGetDeviceList provides a pointer to devlink devices and nil error, otherwise returns an error code.
func (*Handle) DevLinkGetPortByIndex ¶ added in v1.2.1
func (h *Handle) DevLinkGetPortByIndex(Bus string, Device string, PortIndex uint32) (*DevlinkPort, error)
DevLinkGetPortByIndexprovides a pointer to devlink device and nil error, otherwise returns an error code.
func (*Handle) DevLinkPortAdd ¶ added in v1.2.1
func (h *Handle) DevLinkPortAdd(Bus string, Device string, Flavour uint16, Attrs DevLinkPortAddAttrs) (*DevlinkPort, error)
DevLinkPortAdd adds a devlink port and returns a port on success otherwise returns nil port and an error code.
func (*Handle) DevLinkPortDel ¶ added in v1.2.1
DevLinkPortDel deletes a devlink port and returns success or error code.
func (*Handle) DevLinkSetEswitchMode ¶ added in v1.1.0
func (h *Handle) DevLinkSetEswitchMode(Dev *DevlinkDevice, NewMode string) error
DevLinkSetEswitchMode sets eswitch mode if able to set successfully or returns an error code. Equivalent to: `devlink dev eswitch set $dev mode switchdev` Equivalent to: `devlink dev eswitch set $dev mode legacy`
func (*Handle) DevlinkGetDeviceInfoByName ¶ added in v1.2.1
func (h *Handle) DevlinkGetDeviceInfoByName(Bus string, Device string, getInfoMsg devlinkInfoGetter) (*DevlinkDeviceInfo, error)
DevlinkGetDeviceInfoByName returns devlink info for selected device, otherwise returns an error code. Equivalent to: `devlink dev info $dev`
func (*Handle) DevlinkGetDeviceInfoByNameAsMap ¶ added in v1.2.1
func (h *Handle) DevlinkGetDeviceInfoByNameAsMap(Bus string, Device string, getInfoMsg devlinkInfoGetter) (map[string]string, error)
DevlinkGetDeviceInfoByNameAsMap returns devlink info for selected device as a map, otherwise returns an error code. Equivalent to: `devlink dev info $dev`
func (*Handle) DevlinkGetDeviceParamByName ¶ added in v1.2.1
func (h *Handle) DevlinkGetDeviceParamByName(bus string, device string, param string) (*DevlinkParam, error)
DevlinkGetDeviceParamByName returns specific parameter for devlink device Equivalent to: `devlink dev param show <bus>/<device> name <param>`
func (*Handle) DevlinkGetDeviceParams ¶ added in v1.2.1
func (h *Handle) DevlinkGetDeviceParams(bus string, device string) ([]*DevlinkParam, error)
DevlinkGetDeviceParams returns parameters for devlink device Equivalent to: `devlink dev param show <bus>/<device>`
func (*Handle) DevlinkGetDeviceResources ¶ added in v1.2.1
func (h *Handle) DevlinkGetDeviceResources(bus string, device string) (*DevlinkResources, error)
DevlinkGetDeviceResources returns devlink device resources
func (*Handle) DevlinkPortFnSet ¶ added in v1.2.1
func (h *Handle) DevlinkPortFnSet(Bus string, Device string, PortIndex uint32, FnAttrs DevlinkPortFnSetAttrs) error
DevlinkPortFnSet sets one or more port function attributes specified by the attribute mask. It returns 0 on success or error code.
func (*Handle) DevlinkSetDeviceParam ¶ added in v1.2.1
func (h *Handle) DevlinkSetDeviceParam(bus string, device string, param string, cmode uint8, value interface{}) error
DevlinkSetDeviceParam set specific parameter for devlink device Equivalent to: `devlink dev param set <bus>/<device> name <param> cmode <cmode> value <value>` cmode argument should contain valid cmode value as uint8, modes are define in nl.DEVLINK_PARAM_CMODE_* constants value argument should have one of the following types: uint8, uint16, uint32, string, bool
func (*Handle) FilterAdd ¶
FilterAdd will add a filter to the system. Equivalent to: `tc filter add $filter`
func (*Handle) FilterDel ¶
FilterDel will delete a filter from the system. Equivalent to: `tc filter del $filter`
func (*Handle) FilterList ¶
FilterList gets a list of filters in the system. Equivalent to: `tc filter show`. Generally returns nothing if link and parent are not specified.
func (*Handle) FilterReplace ¶ added in v1.1.0
FilterReplace will replace a filter. Equivalent to: `tc filter replace $filter`
func (*Handle) GTPPDPByMSAddress ¶
func (*Handle) GTPPDPList ¶
func (*Handle) GenlFamilyGet ¶
func (h *Handle) GenlFamilyGet(name string) (*GenlFamily, error)
func (*Handle) GenlFamilyList ¶
func (h *Handle) GenlFamilyList() ([]*GenlFamily, error)
func (*Handle) GetNetNsIdByFd ¶ added in v1.1.0
GetNetNsIdByFd looks up the network namespace ID for a given fd. fd must be an open file descriptor to a namespace file. Returns -1 if the namespace does not have an ID set.
func (*Handle) GetNetNsIdByPid ¶ added in v1.1.0
GetNetNsIdByPid looks up the network namespace ID for a given pid (really thread id). Returns -1 if the namespace does not have an ID set.
func (*Handle) GetSocketReceiveBufferSize ¶
GetSocketReceiveBufferSize gets the receiver buffer size for each socket in the netlink handle. The retrieved value should be the double to the one set for SetSocketReceiveBufferSize.
func (*Handle) IpsetAdd ¶ added in v1.2.1
func (h *Handle) IpsetAdd(setname string, entry *IPSetEntry) error
IpsetAdd adds an entry to an existing ipset.
func (*Handle) IpsetCreate ¶ added in v1.2.1
func (h *Handle) IpsetCreate(setname, typename string, options IpsetCreateOptions) error
func (*Handle) IpsetDel ¶ added in v1.2.1
func (h *Handle) IpsetDel(setname string, entry *IPSetEntry) error
IpsetDel deletes an entry from an existing ipset.
func (*Handle) IpsetDestroy ¶ added in v1.2.1
func (*Handle) IpsetFlush ¶ added in v1.2.1
func (*Handle) IpsetList ¶ added in v1.2.1
func (h *Handle) IpsetList(name string) (*IPSetResult, error)
func (*Handle) IpsetListAll ¶ added in v1.2.1
func (h *Handle) IpsetListAll() ([]IPSetResult, error)
func (*Handle) IpsetProtocol ¶ added in v1.2.1
func (*Handle) IpsetTest ¶ added in v1.2.1
func (h *Handle) IpsetTest(setname string, entry *IPSetEntry) (bool, error)
func (*Handle) LinkAdd ¶
LinkAdd adds a new link device. The type and features of the device are taken from the parameters in the link object. Equivalent to: `ip link add $link`
func (*Handle) LinkAddAltName ¶ added in v1.2.1
LinkAddAltName adds a new alternative name for the link device. Equivalent to: `ip link property add $link altname $name`
func (*Handle) LinkByAlias ¶
LinkByAlias finds a link by its alias and returns a pointer to the object. If there are multiple links with the alias it returns the first one
func (*Handle) LinkByIndex ¶
LinkByIndex finds a link by index and returns a pointer to the object.
func (*Handle) LinkByName ¶
LinkByName finds a link by name and returns a pointer to the object.
func (*Handle) LinkDel ¶
LinkDel deletes link device. Either Index or Name must be set in the link object for it to be deleted. The other values are ignored. Equivalent to: `ip link del $link`
func (*Handle) LinkDelAltName ¶ added in v1.2.1
LinkDelAltName delete an alternative name for the link device. Equivalent to: `ip link property del $link altname $name`
func (*Handle) LinkModify ¶ added in v1.2.1
func (*Handle) LinkSetARPOff ¶
func (*Handle) LinkSetARPOn ¶
func (*Handle) LinkSetAlias ¶
LinkSetAlias sets the alias of the link device. Equivalent to: `ip link set dev $link alias $name`
func (*Handle) LinkSetAllmulticastOff ¶ added in v1.1.0
LinkSetAllmulticastOff disables the reception of all hardware multicast packets for the link device. Equivalent to: `ip link set $link allmulticast off`
func (*Handle) LinkSetAllmulticastOn ¶ added in v1.1.0
LinkSetAllmulticastOn enables the reception of all hardware multicast packets for the link device. Equivalent to: `ip link set $link allmulticast on`
func (*Handle) LinkSetBRSlaveGroupFwdMask ¶ added in v1.2.1
LinkSetBRSlaveGroupFwdMask set the group_fwd_mask of a bridge slave interface
func (*Handle) LinkSetBondSlaveQueueId ¶ added in v1.1.0
LinkSetBondSlaveQueueId modify bond slave queue-id.
func (*Handle) LinkSetBrNeighSuppress ¶ added in v1.2.1
func (*Handle) LinkSetBrProxyArpWiFi ¶
func (*Handle) LinkSetDown ¶
LinkSetDown disables link device. Equivalent to: `ip link set $link down`
func (*Handle) LinkSetGROIPv4MaxSize ¶ added in v1.2.1
LinkSetGROIPv4MaxSize sets the IPv4 GRO maximum size of the link device. Equivalent to: `ip link set $link gro_ipv4_max_size $maxSize`
func (*Handle) LinkSetGROMaxSize ¶ added in v1.2.1
LinkSetGROMaxSize sets the IPv6 GRO maximum size of the link device. Equivalent to: `ip link set $link gro_max_size $maxSize`
func (*Handle) LinkSetGSOIPv4MaxSize ¶ added in v1.2.1
LinkSetGSOIPv4MaxSize sets the IPv4 GSO maximum size of the link device. Equivalent to: `ip link set $link gso_ipv4_max_size $maxSize`
func (*Handle) LinkSetGSOMaxSegs ¶ added in v1.2.1
LinkSetGSOMaxSegs sets the GSO maximum segment count of the link device. Equivalent to: `ip link set $link gso_max_segs $maxSegs`
func (*Handle) LinkSetGSOMaxSize ¶ added in v1.2.1
LinkSetGSOMaxSize sets the IPv6 GSO maximum size of the link device. Equivalent to: `ip link set $link gso_max_size $maxSize`
func (*Handle) LinkSetGroup ¶ added in v1.1.0
LinkSetGroup sets the link group id which can be used to perform mass actions with iproute2 as well use it as a reference in nft filters. Equivalent to: `ip link set $link group $id`
func (*Handle) LinkSetHardwareAddr ¶
func (h *Handle) LinkSetHardwareAddr(link Link, hwaddr net.HardwareAddr) error
LinkSetHardwareAddr sets the hardware address of the link device. Equivalent to: `ip link set $link address $hwaddr`
func (*Handle) LinkSetIsolated ¶ added in v1.2.1
func (*Handle) LinkSetMTU ¶
LinkSetMTU sets the mtu of the link device. Equivalent to: `ip link set $link mtu $mtu`
func (*Handle) LinkSetMacvlanMode ¶ added in v1.2.1
func (h *Handle) LinkSetMacvlanMode(link Link, mode MacvlanMode) error
LinkSetMacvlanMode sets the mode of the macvlan or macvtap link device. Note that passthrough mode cannot be set to and from and will fail. Equivalent to: `ip link set $link type (macvlan|macvtap) mode $mode
func (*Handle) LinkSetMaster ¶
LinkSetMaster sets the master of the link device. Equivalent to: `ip link set $link master $master`
func (*Handle) LinkSetMasterByIndex ¶
LinkSetMasterByIndex sets the master of the link device. Equivalent to: `ip link set $link master $master`
func (*Handle) LinkSetMulticastOff ¶ added in v1.2.1
LinkSetAllmulticastOff disables the reception of multicast packets for the link device. Equivalent to: `ip link set $link multicast off`
func (*Handle) LinkSetMulticastOn ¶ added in v1.2.1
LinkSetMulticastOn enables the reception of multicast packets for the link device. Equivalent to: `ip link set $link multicast on`
func (*Handle) LinkSetName ¶
LinkSetName sets the name of the link device. Equivalent to: `ip link set $link name $name`
func (*Handle) LinkSetNoMaster ¶
LinkSetNoMaster removes the master of the link device. Equivalent to: `ip link set $link nomaster`
func (*Handle) LinkSetNsFd ¶
LinkSetNsFd puts the device into a new network namespace. The fd must be an open file descriptor to a network namespace. Similar to: `ip link set $link netns $ns`
func (*Handle) LinkSetNsPid ¶
LinkSetNsPid puts the device into a new network namespace. The pid must be a pid of a running process. Equivalent to: `ip link set $link netns $pid`
func (*Handle) LinkSetTxQLen ¶
LinkSetTxQLen sets the transaction queue length for the link. Equivalent to: `ip link set $link txqlen $qlen`
func (*Handle) LinkSetVfGUID ¶ added in v1.1.0
LinkSetVfGUID sets the node or port GUID of a vf for the link.
func (*Handle) LinkSetVfHardwareAddr ¶
LinkSetVfHardwareAddr sets the hardware address of a vf for the link. Equivalent to: `ip link set $link vf $vf mac $hwaddr`
func (*Handle) LinkSetVfRate ¶ added in v1.1.0
LinkSetVfRate sets the min and max tx rate of a vf for the link. Equivalent to: `ip link set $link vf $vf min_tx_rate $min_rate max_tx_rate $max_rate`
func (*Handle) LinkSetVfSpoofchk ¶
LinkSetVfSpoofchk enables/disables spoof check on a vf for the link. Equivalent to: `ip link set $link vf $vf spoofchk $check`
func (*Handle) LinkSetVfState ¶ added in v1.1.0
LinkSetVfState enables/disables virtual link state on a vf. Equivalent to: `ip link set $link vf $vf state $state`
func (*Handle) LinkSetVfTrust ¶
LinkSetVfTrust enables/disables trust state on a vf for the link. Equivalent to: `ip link set $link vf $vf trust $state`
func (*Handle) LinkSetVfTxRate ¶
LinkSetVfTxRate sets the tx rate of a vf for the link. Equivalent to: `ip link set $link vf $vf rate $rate`
func (*Handle) LinkSetVfVlan ¶
LinkSetVfVlan sets the vlan of a vf for the link. Equivalent to: `ip link set $link vf $vf vlan $vlan`
func (*Handle) LinkSetVfVlanQos ¶ added in v1.1.0
LinkSetVfVlanQos sets the vlan and qos priority of a vf for the link. Equivalent to: `ip link set $link vf $vf vlan $vlan qos $qos`
func (*Handle) LinkSetVfVlanQosProto ¶ added in v1.2.1
LinkSetVfVlanQosProto sets the vlan, qos and protocol of a vf for the link. Equivalent to: `ip link set $link vf $vf vlan $vlan qos $qos proto $proto`
func (*Handle) MacvlanMACAddrAdd ¶
func (h *Handle) MacvlanMACAddrAdd(link Link, addr net.HardwareAddr) error
func (*Handle) MacvlanMACAddrDel ¶
func (h *Handle) MacvlanMACAddrDel(link Link, addr net.HardwareAddr) error
func (*Handle) MacvlanMACAddrFlush ¶
func (*Handle) MacvlanMACAddrSet ¶
func (h *Handle) MacvlanMACAddrSet(link Link, addrs []net.HardwareAddr) error
func (*Handle) NeighAdd ¶
NeighAdd will add an IP to MAC mapping to the ARP table Equivalent to: `ip neigh add ....`
func (*Handle) NeighAppend ¶
NeighAppend will append an entry to FDB Equivalent to: `bridge fdb append...`
func (*Handle) NeighDel ¶
NeighDel will delete an IP address from a link device. Equivalent to: `ip addr del $addr dev $link`
func (*Handle) NeighList ¶
NeighList returns a list of IP-MAC mappings in the system (ARP table). Equivalent to: `ip neighbor show`. The list can be filtered by link and ip family.
func (*Handle) NeighListExecute ¶ added in v1.1.0
NeighListExecute returns a list of neighbour entries filtered by link, ip family, flag and state.
func (*Handle) NeighProxyList ¶
NeighProxyList returns a list of neighbor proxies in the system. Equivalent to: `ip neighbor show proxy`. The list can be filtered by link, ip family.
func (*Handle) NeighSet ¶
NeighSet will add or replace an IP to MAC mapping to the ARP table Equivalent to: `ip neigh replace....`
func (*Handle) QdiscAdd ¶
QdiscAdd will add a qdisc to the system. Equivalent to: `tc qdisc add $qdisc`
func (*Handle) QdiscChange ¶
QdiscChange will change a qdisc in place Equivalent to: `tc qdisc change $qdisc` The parent and handle MUST NOT be changed.
func (*Handle) QdiscDel ¶
QdiscDel will delete a qdisc from the system. Equivalent to: `tc qdisc del $qdisc`
func (*Handle) QdiscList ¶
QdiscList gets a list of qdiscs in the system. Equivalent to: `tc qdisc show`. The list can be filtered by link.
func (*Handle) QdiscReplace ¶
QdiscReplace will replace a qdisc to the system. Equivalent to: `tc qdisc replace $qdisc` The handle MUST change.
func (*Handle) RdmaLinkAdd ¶ added in v1.2.1
RdmaLinkAdd adds an rdma link for the specified type to the network device.
func (*Handle) RdmaLinkByName ¶ added in v1.1.0
RdmaLinkByName finds a link by name and returns a pointer to the object if found and nil error, otherwise returns error code.
func (*Handle) RdmaLinkDel ¶ added in v1.2.1
RdmaLinkDel deletes an rdma link.
func (*Handle) RdmaLinkList ¶ added in v1.2.1
RdmaLinkList gets a list of RDMA link devices. Equivalent to: `rdma dev show`
func (*Handle) RdmaLinkSetName ¶ added in v1.1.0
RdmaLinkSetName sets the name of the rdma link device. Return nil on success or error otherwise. Equivalent to: `rdma dev set $old_devname name $name`
func (*Handle) RdmaLinkSetNsFd ¶ added in v1.1.0
RdmaLinkSetNsFd puts the RDMA device into a new network namespace. The fd must be an open file descriptor to a network namespace. Similar to: `rdma dev set $dev netns $ns`
func (*Handle) RdmaSystemGetNetnsMode ¶ added in v1.1.0
RdmaSystemGetNetnsMode gets the net namespace mode for RDMA subsystem Returns mode string and error status as nil on success or returns error otherwise. Equivalent to: `rdma system show netns'
func (*Handle) RdmaSystemSetNetnsMode ¶ added in v1.1.0
RdmaSystemSetNetnsMode sets the net namespace mode for RDMA subsystem Returns nil on success or appropriate error code. Equivalent to: `rdma system set netns { shared | exclusive }'
func (*Handle) RouteAdd ¶
RouteAdd will add a route to the system. Equivalent to: `ip route add $route`
func (*Handle) RouteAddEcmp ¶ added in v1.2.1
RouteAddEcmp will add a route to the system.
func (*Handle) RouteAppend ¶ added in v1.2.1
RouteAppend will append a route to the system. Equivalent to: `ip route append $route`
func (*Handle) RouteChange ¶ added in v1.2.1
RouteChange will change an existing route in the system. Equivalent to: `ip route change $route`
func (*Handle) RouteDel ¶
RouteDel will delete a route from the system. Equivalent to: `ip route del $route`
func (*Handle) RouteGet ¶
RouteGet gets a route to a specific destination from the host system. Equivalent to: 'ip route get'.
func (*Handle) RouteGetWithOptions ¶ added in v1.2.1
RouteGetWithOptions gets a route to a specific destination from the host system. Equivalent to: 'ip route get <> vrf <VrfName>'.
func (*Handle) RouteList ¶
RouteList gets a list of routes in the system. Equivalent to: `ip route show`. The list can be filtered by link and ip family.
func (*Handle) RouteListFiltered ¶
RouteListFiltered gets a list of routes in the system filtered with specified rules. All rules must be defined in RouteFilter struct
func (*Handle) RouteListFilteredIter ¶ added in v1.2.1
func (*Handle) RouteReplace ¶
RouteReplace will add a route to the system. Equivalent to: `ip route replace $route`
func (*Handle) RuleListFiltered ¶ added in v1.2.1
RuleListFiltered lists rules in the system. Equivalent to: ip rule list
func (*Handle) SetNetNsIdByFd ¶ added in v1.1.0
SetNetNSIdByFd sets the ID of the network namespace for a given fd. fd must be an open file descriptor to a namespace file. The ID can only be set for namespaces without an ID already set.
func (*Handle) SetNetNsIdByPid ¶ added in v1.1.0
SetNetNSIdByPid sets the ID of the network namespace for a given pid (really thread id). The ID can only be set for namespaces without an ID already set.
func (*Handle) SetPromiscOff ¶
func (*Handle) SetPromiscOn ¶
func (*Handle) SetSocketReceiveBufferSize ¶
SetSocketReceiveBufferSize sets the receive buffer size for each socket in the netlink handle. The maximum value is capped by /proc/sys/net/core/rmem_max.
func (*Handle) SetSocketTimeout ¶
SetSocketTimeout sets the send and receive timeout for each socket in the netlink handle. Although the socket timeout has granularity of one microsecond, the effective granularity is floored by the kernel timer tick, which default value is four milliseconds.
func (*Handle) SetStrictCheck ¶ added in v1.2.1
SetStrictCheck sets the strict check socket option for each socket in the netlink handle. Returns early if any set operation fails
func (*Handle) SocketDestroy ¶ added in v1.2.1
SocketDestroy kills the Socket identified by its local and remote addresses.
func (*Handle) SocketDiagTCP ¶ added in v1.2.1
SocketDiagTCP requests INET_DIAG_INFO for TCP protocol for specified family type and return related socket.
func (*Handle) SocketDiagTCPInfo ¶ added in v1.2.1
func (h *Handle) SocketDiagTCPInfo(family uint8) ([]*InetDiagTCPInfoResp, error)
SocketDiagTCPInfo requests INET_DIAG_INFO for TCP protocol for specified family type and return with extension TCP info.
func (*Handle) SocketDiagUDP ¶ added in v1.2.1
SocketDiagUDP requests INET_DIAG_INFO for UDP protocol for specified family type and return related socket.
func (*Handle) SocketDiagUDPInfo ¶ added in v1.2.1
func (h *Handle) SocketDiagUDPInfo(family uint8) ([]*InetDiagUDPInfoResp, error)
SocketDiagUDPInfo requests INET_DIAG_INFO for UDP protocol for specified family type and return with extension info.
func (*Handle) SocketGet ¶ added in v1.2.1
SocketGet returns the Socket identified by its local and remote addresses.
func (*Handle) SupportsNetlinkFamily ¶
SupportsNetlinkFamily reports whether the passed netlink family is supported by this Handle
func (*Handle) UnixSocketDiag ¶ added in v1.2.1
func (h *Handle) UnixSocketDiag() ([]*UnixSocket, error)
UnixSocketDiag requests UNIX_DIAG_INFO for unix sockets.
func (*Handle) UnixSocketDiagInfo ¶ added in v1.2.1
func (h *Handle) UnixSocketDiagInfo() ([]*UnixDiagInfoResp, error)
UnixSocketDiagInfo requests UNIX_DIAG_INFO for unix sockets and return with extension info.
func (*Handle) VDPADelDev ¶ added in v1.2.1
VDPADelDev removes VDPA device Equivalent to: `vdpa dev del <name>`
func (*Handle) VDPAGetDevByName ¶ added in v1.2.1
VDPAGetDevByName returns VDPA device selected by name Equivalent to: `vdpa dev show <name>`
func (*Handle) VDPAGetDevConfigByName ¶ added in v1.2.1
func (h *Handle) VDPAGetDevConfigByName(name string) (*VDPADevConfig, error)
VDPAGetDevConfigByName returns VDPA device configuration selected by name Equivalent to: `vdpa dev config show <name>`
func (*Handle) VDPAGetDevConfigList ¶ added in v1.2.1
func (h *Handle) VDPAGetDevConfigList() ([]*VDPADevConfig, error)
VDPAGetDevConfigList returns list of VDPA devices configurations Equivalent to: `vdpa dev config show`
func (*Handle) VDPAGetDevList ¶ added in v1.2.1
VDPAGetDevList returns list of VDPA devices Equivalent to: `vdpa dev show`
func (*Handle) VDPAGetDevVStats ¶ added in v1.2.1
func (h *Handle) VDPAGetDevVStats(name string, queueIndex uint32) (*VDPADevVStats, error)
VDPAGetDevVStats returns vstats for VDPA device Equivalent to: `vdpa dev vstats show <name> qidx <queueIndex>`
func (*Handle) VDPAGetMGMTDevByBusAndName ¶ added in v1.2.1
func (h *Handle) VDPAGetMGMTDevByBusAndName(bus, name string) (*VDPAMGMTDev, error)
VDPAGetMGMTDevByBusAndName returns mgmt devices selected by bus and name Equivalent to: `vdpa mgmtdev show <bus>/<name>`
func (*Handle) VDPAGetMGMTDevList ¶ added in v1.2.1
func (h *Handle) VDPAGetMGMTDevList() ([]*VDPAMGMTDev, error)
VDPAGetMGMTDevList returns list of mgmt devices Equivalent to: `vdpa mgmtdev show`
func (*Handle) VDPANewDev ¶ added in v1.2.1
func (h *Handle) VDPANewDev(name, mgmtBus, mgmtName string, params VDPANewDevParams) error
VDPANewDev adds new VDPA device Equivalent to: `vdpa dev add name <name> mgmtdev <mgmtBus>/mgmtName [params]`
func (*Handle) XfrmPolicyAdd ¶
func (h *Handle) XfrmPolicyAdd(policy *XfrmPolicy) error
XfrmPolicyAdd will add an xfrm policy to the system. Equivalent to: `ip xfrm policy add $policy`
func (*Handle) XfrmPolicyDel ¶
func (h *Handle) XfrmPolicyDel(policy *XfrmPolicy) error
XfrmPolicyDel will delete an xfrm policy from the system. Note that the Tmpls are ignored when matching the policy to delete. Equivalent to: `ip xfrm policy del $policy`
func (*Handle) XfrmPolicyFlush ¶
XfrmPolicyFlush will flush the policies on the system. Equivalent to: `ip xfrm policy flush`
func (*Handle) XfrmPolicyGet ¶
func (h *Handle) XfrmPolicyGet(policy *XfrmPolicy) (*XfrmPolicy, error)
XfrmPolicyGet gets a the policy described by the index or selector, if found. Equivalent to: `ip xfrm policy get { SELECTOR | index INDEX } dir DIR [ctx CTX ] [ mark MARK [ mask MASK ] ] [ ptype PTYPE ]`.
func (*Handle) XfrmPolicyList ¶
func (h *Handle) XfrmPolicyList(family int) ([]XfrmPolicy, error)
XfrmPolicyList gets a list of xfrm policies in the system. Equivalent to: `ip xfrm policy show`. The list can be filtered by ip family.
func (*Handle) XfrmPolicyUpdate ¶
func (h *Handle) XfrmPolicyUpdate(policy *XfrmPolicy) error
XfrmPolicyUpdate will update an xfrm policy to the system. Equivalent to: `ip xfrm policy update $policy`
func (*Handle) XfrmStateAdd ¶
XfrmStateAdd will add an xfrm state to the system. Equivalent to: `ip xfrm state add $state`