package netlink
import "github.com/docker/libnetwork/Godeps/_workspace/src/github.com/vishvananda/netlink"
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 HandleStr(handle uint32) string
- func LinkAdd(link *Link) error
- func LinkDel(link *Link) error
- func LinkSetDown(link *Link) error
- func LinkSetMTU(link *Link, mtu int) error
- func LinkSetMaster(link *Link, master *Link) error
- func LinkSetNsFd(link *Link, fd int) error
- func LinkSetNsPid(link *Link, nspid int) error
- func LinkSetUp(link *Link) 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 NeighDeserialize(m []byte) (*Ndmsg, *Neigh, error)
- func NeighSet(neigh *Neigh) error
- func NewIPNet(ip net.IP) *net.IPNet
- func ParseIPNet(s string) (*net.IPNet, error)
- func Percentage2u32(percentage float32) uint32
- func RouteAdd(route *Route) error
- func RouteDel(route *Route) error
- func SetFastLeave(link Link, mode bool) error
- func SetFlood(link Link, mode bool) error
- func SetGuard(link Link, mode bool) error
- func SetHairpin(link Link, mode bool) error
- func SetLearning(link Link, mode bool) error
- func SetRootBlock(link Link, mode bool) error
- func XfrmPolicyAdd(policy *XfrmPolicy) error
- func XfrmPolicyDel(policy *XfrmPolicy) error
- func XfrmStateAdd(policy *XfrmState) error
- func XfrmStateDel(policy *XfrmState) error
- type Addr
- func AddrList(link *Link, family int) ([]Addr, error)
- func ParseAddr(s string) (*Addr, error)
- func (a Addr) Equal(x Addr) bool
- func (a Addr) String() string
- type Bond
- func NewLinkBond(atr LinkAttrs) *Bond
- func (bond *Bond) Attrs() *LinkAttrs
- func (bond *Bond) Type() string
- type BondAdInfo
- type BondAdSelect
- type BondArpAllTargets
- type BondArpValidate
- type BondFailOverMac
- type BondLacpRate
- type BondMode
- type BondPrimaryReselect
- type BondXmitHashPolicy
- func StringToBondXmitHashPolicy(s string) BondXmitHashPolicy
- func (b BondXmitHashPolicy) String() string
- type Bridge
- type Class
- type ClassAttrs
- type Device
- type Dir
- type Dummy
- type EncapType
- type Filter
- type FilterAttrs
- type FilterFwAttrs
- type Fw
- func NewFw(attrs FilterAttrs, fattrs FilterFwAttrs) (*Fw, error)
- func (filter *Fw) Attrs() *FilterAttrs
- func (filter *Fw) Type() string
- type GenericClass
- type GenericFilter
- type GenericLink
- type GenericQdisc
- type Gretap
- type Htb
- func NewHtb(attrs QdiscAttrs) *Htb
- func (qdisc *Htb) Attrs() *QdiscAttrs
- func (qdisc *Htb) Type() string
- type HtbClass
- func NewHtbClass(attrs ClassAttrs, cattrs HtbClassAttrs) *HtbClass
- func (class *HtbClass) Attrs() *ClassAttrs
- func (q HtbClass) String() string
- func (class *HtbClass) Type() string
- type HtbClassAttrs
- type IPVlan
- type IPVlanMode
- type Ifb
- type Ingress
- type Link
- type LinkAttrs
- type Macvlan
- type MacvlanMode
- type Macvtap
- type Mode
- type Neigh
- type Netem
- func NewNetem(attrs QdiscAttrs, nattrs NetemQdiscAttrs) *Netem
- func (qdisc *Netem) Attrs() *QdiscAttrs
- func (qdisc *Netem) Type() string
- type NetemQdiscAttrs
- type NextHopFlag
- type NsFd
- type NsPid
- type PfifoFast
- type Prio
- func NewPrio(attrs QdiscAttrs) *Prio
- func (qdisc *Prio) Attrs() *QdiscAttrs
- func (qdisc *Prio) Type() string
- type Protinfo
- type Proto
- type Qdisc
- type QdiscAttrs
- type Route
- func RouteList(link *Link, family int) ([]Route, error)
- func (r *Route) ClearFlag(flag NextHopFlag)
- func (r *Route) ListFlags() []string
- func (r *Route) SetFlag(flag NextHopFlag)
- func (r Route) String() string
- type RouteUpdate
- type Rule
- type Scope
- type Tbf
- type Tuntap
- type TuntapMode
- type U32
- type Veth
- type Vlan
- type Vxlan
- type XfrmPolicy
- type XfrmPolicyTmpl
- type XfrmState
- type XfrmStateAlgo
- type XfrmStateEncap
Constants ¶
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 ( // Family type definitions FAMILY_ALL = nl.FAMILY_ALL FAMILY_V4 = nl.FAMILY_V4 FAMILY_V6 = nl.FAMILY_V6 )
const ( HANDLE_NONE = 0 HANDLE_INGRESS = 0xFFFFFFF1 HANDLE_ROOT = 0xFFFFFFFF PRIORITY_MAP_LEN = 16 )
Variables ¶
var StringToBondLacpRateMap = map[string]BondLacpRate{ "slow": BOND_LACP_RATE_SLOW, "fast": BOND_LACP_RATE_FAST, }
var StringToBondModeMap = map[string]BondMode{ "802.3ad": BOND_MODE_802_3AD, "balance-rr": BOND_MODE_BALANCE_RR, "active-backup": BOND_MODE_ACTIVE_BACKUP, "balance-xor": BOND_MODE_BALANCE_XOR, "broadcast": BOND_MODE_BROADCAST, "balance-tlb": BOND_MODE_BALANCE_TLB, "balance-alb": BOND_MODE_BALANCE_ALB, }
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, }
Functions ¶
func AddrAdd ¶
func AddrDel ¶
func HandleStr ¶
func LinkAdd ¶
func LinkDel ¶
func LinkSetDown ¶
func LinkSetMTU ¶
func LinkSetMaster ¶
func LinkSetNsFd ¶
func LinkSetNsPid ¶
func LinkSetUp ¶
func MajorMinor ¶
func MakeHandle ¶
func NeighAdd ¶
func NeighAppend ¶
func NeighDel ¶
func NeighDeserialize ¶
func NeighSet ¶
func NewIPNet ¶
NewIPNet generates an IPNet from an ip address using a netmask of 32 or 128.
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 RouteAdd ¶
func RouteDel ¶
func SetFastLeave ¶
func SetFlood ¶
func SetGuard ¶
func SetHairpin ¶
func SetLearning ¶
func SetRootBlock ¶
func XfrmPolicyAdd ¶
func XfrmPolicyAdd(policy *XfrmPolicy) error
func XfrmPolicyDel ¶
func XfrmPolicyDel(policy *XfrmPolicy) error
func XfrmStateAdd ¶
func XfrmStateDel ¶
Types ¶
type Addr ¶
Addr represents an IP address from netlink. Netlink ip addresses include a mask, so it stores the address as a net.IPNet.
func AddrList ¶
func ParseAddr ¶
ParseAddr parses the string representation of an address in the form $ip/$netmask $label. The label portion is optional
func (Addr) Equal ¶
Equal returns true if both Addrs have the same net.IPNet value.
func (Addr) String ¶
String returns $ip/$netmask $label
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 PackersPerSlave int LacpRate BondLacpRate AdSelect BondAdSelect // looking at iproute tool AdInfo can only be retrived. It can't be set. AdInfo *BondAdInfo }
Bond representation
func NewLinkBond ¶
func (*Bond) Attrs ¶
Attrs implementation.
func (*Bond) Type ¶
Type implementation fro Vxlan.
type BondAdInfo ¶
type BondAdInfo struct { AggregatorId int NumPorts int ActorKey int PartnerKey int PartnerMac net.HardwareAddr }
BondAdInfo
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
type BondArpAllTargets ¶
type BondArpAllTargets int
BondArpAllTargets type
const ( BOND_ARP_ALL_TARGETS_ANY BondArpAllTargets = iota BOND_ARP_ALL_TARGETS_ALL )
Possible BondArpAllTargets value
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
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
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 uknonw is the s is invalid.
func (BondLacpRate) String ¶
func (b BondLacpRate) String() string
type BondMode ¶
type BondMode int
BondMode type
const ( BOND_MODE_802_3AD BondMode = iota BOND_MODE_BALANCE_RR BOND_MODE_ACTIVE_BACKUP BOND_MODE_BALANCE_XOR BOND_MODE_BROADCAST BOND_MODE_BALANCE_TLB BOND_MODE_BALANCE_ALB BOND_MODE_UNKNOWN )
Possible BondMode
func StringToBondMode ¶
StringToBondMode returns bond mode, or uknonw is the s is invalid.
func (BondMode) String ¶
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
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_UNKNOWN )
Possible BondXmitHashPolicy value
func StringToBondXmitHashPolicy ¶
func StringToBondXmitHashPolicy(s string) BondXmitHashPolicy
StringToBondXmitHashPolicy returns bond lacp arte, or uknonw is the s is invalid.
func (BondXmitHashPolicy) String ¶
func (b BondXmitHashPolicy) String() string
type Bridge ¶
type Bridge struct { LinkAttrs }
Bridge links are simple linux bridges
func (*Bridge) Attrs ¶
func (*Bridge) Type ¶
type Class ¶
type Class interface { Attrs() *ClassAttrs Type() string }
type ClassAttrs ¶
Class 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 Device ¶
type Device struct { LinkAttrs }
Device links cannot be created via netlink. These links are links created by udev like 'lo' and 'etho0'
func (*Device) Attrs ¶
func (*Device) Type ¶
type Dir ¶
type Dir uint8
Dir is an enum representing an ipsec template direction.
const ( XFRM_DIR_IN Dir = iota XFRM_DIR_OUT XFRM_DIR_FWD XFRM_SOCKET_IN XFRM_SOCKET_OUT XFRM_SOCKET_FWD )
func (Dir) String ¶
type Dummy ¶
type Dummy struct { LinkAttrs }
Dummy links are dummy ethernet devices
func (*Dummy) Attrs ¶
func (*Dummy) Type ¶
type EncapType ¶
type EncapType uint8
EncapType is an enum representing an ipsec template direction.
func (EncapType) String ¶
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 // syscall.ETH_P_* }
Filter 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 FilterFwAttrs ¶
type FilterFwAttrs struct { ClassId uint32 InDev string Mask uint32 Index uint32 Buffer uint32 Mtu uint32 Mpu uint16 Rate uint32 AvRate uint32 PeakRate uint32 Action int Overhead uint16 LinkLayer int }
type Fw ¶
type Fw struct { FilterAttrs ClassId uint32 Police nl.TcPolice InDev string // TODO Action Mask uint32 AvRate uint32 Rtab [256]uint32 Ptab [256]uint32 }
FwFilter filters on firewall marks
func NewFw ¶
func NewFw(attrs FilterAttrs, fattrs FilterFwAttrs) (*Fw, error)
func (*Fw) Attrs ¶
func (filter *Fw) Attrs() *FilterAttrs
func (*Fw) Type ¶
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
func (*GenericClass) Type ¶
func (class *GenericClass) Type() string
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 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 }
GreTap devices must specify LocalIP and RemoteIP on create
func (*Gretap) Attrs ¶
func (*Gretap) Type ¶
type Htb ¶
type Htb struct { QdiscAttrs Version uint32 Rate2Quantum uint32 Defcls uint32 Debug uint32 DirectPkts uint32 }
Htb is a classful qdisc that rate limits based on tokens
func NewHtb ¶
func NewHtb(attrs QdiscAttrs) *Htb
func (*Htb) Attrs ¶
func (qdisc *Htb) Attrs() *QdiscAttrs
func (*Htb) Type ¶
type HtbClass ¶
type HtbClass struct { ClassAttrs Rate uint64 Ceil uint64 Buffer uint32 Cbuffer uint32 Quantum uint32 Level uint32 Prio uint32 }
Htb class
func NewHtbClass ¶
func NewHtbClass(attrs ClassAttrs, cattrs HtbClassAttrs) *HtbClass
func (*HtbClass) Attrs ¶
func (class *HtbClass) Attrs() *ClassAttrs
func (HtbClass) String ¶
func (*HtbClass) Type ¶
type HtbClassAttrs ¶
type HtbClassAttrs struct { // TODO handle all attributes Rate uint64 Ceil uint64 Buffer uint32 Cbuffer uint32 Quantum uint32 Level uint32 Prio uint32 }
func (HtbClassAttrs) String ¶
func (q HtbClassAttrs) String() string
type IPVlan ¶
type IPVlan struct { LinkAttrs Mode IPVlanMode }
func (*IPVlan) Attrs ¶
func (*IPVlan) Type ¶
type IPVlanMode ¶
type IPVlanMode uint16
const ( IPVLAN_MODE_L2 IPVlanMode = iota IPVLAN_MODE_L3 IPVLAN_MODE_MAX )
type Ifb ¶
type Ifb struct { LinkAttrs }
Ifb links are advanced dummy devices for packet filtering
func (*Ifb) Attrs ¶
func (*Ifb) Type ¶
type Ingress ¶
type Ingress struct { QdiscAttrs }
Ingress is a qdisc for adding ingress filters
func (*Ingress) Attrs ¶
func (qdisc *Ingress) Attrs() *QdiscAttrs
func (*Ingress) Type ¶
type Link ¶
Link represents a link device from netlink. Shared link attributes like name may be retrieved using the Attrs() method. Unique data can be retrieved by casting the object to the proper type.
func LinkList ¶
type LinkAttrs ¶
type LinkAttrs struct { Index int MTU int TxQLen int // Transmit Queue Length Name string HardwareAddr net.HardwareAddr Flags net.Flags ParentIndex int // index of the parent link device MasterIndex int // must be the index of a bridge Namespace interface{} // nil | NsPid | NsFd Alias string }
LinkAttrs represents data shared by most link types
func NewLinkAttrs ¶
func NewLinkAttrs() LinkAttrs
NewLinkAttrs returns LinkAttrs structure filled with default values
type Macvlan ¶
type Macvlan struct { LinkAttrs Mode MacvlanMode }
Macvlan links have ParentIndex set in their Attrs()
func (*Macvlan) Attrs ¶
func (*Macvlan) Type ¶
type MacvlanMode ¶
type MacvlanMode uint16
const ( MACVLAN_MODE_DEFAULT MacvlanMode = iota MACVLAN_MODE_PRIVATE MACVLAN_MODE_VEPA MACVLAN_MODE_BRIDGE MACVLAN_MODE_PASSTHRU MACVLAN_MODE_SOURCE )
type Macvtap ¶
type Macvtap struct { Macvlan }
Macvtap - macvtap is a virtual interfaces based on macvlan
func (Macvtap) Type ¶
type Mode ¶
type Mode uint8
Mode is an enum representing an ipsec transport.
const ( XFRM_MODE_TRANSPORT Mode = iota XFRM_MODE_TUNNEL XFRM_MODE_ROUTEOPTIMIZATION XFRM_MODE_IN_TRIGGER XFRM_MODE_BEET XFRM_MODE_MAX )
func (Mode) String ¶
type Neigh ¶
type Neigh struct { LinkIndex int Family int State int Type int Flags int IP net.IP HardwareAddr net.HardwareAddr }
Neigh represents a link layer neighbor from netlink.
func NeighList ¶
func (*Neigh) String ¶
String returns $ip/$hwaddr $label
type Netem ¶
type Netem struct { QdiscAttrs Latency uint32 DelayCorr uint32 Limit uint32 Loss uint32 LossCorr uint32 Gap uint32 Duplicate uint32 DuplicateCorr uint32 Jitter uint32 ReorderProb uint32 ReorderCorr uint32 CorruptProb uint32 CorruptCorr uint32 }
func NewNetem ¶
func NewNetem(attrs QdiscAttrs, nattrs NetemQdiscAttrs) *Netem
func (*Netem) Attrs ¶
func (qdisc *Netem) Attrs() *QdiscAttrs
func (*Netem) Type ¶
type NetemQdiscAttrs ¶
type NetemQdiscAttrs struct { Latency uint32 // in us DelayCorr float32 // in % Limit uint32 Loss float32 // in % LossCorr float32 // in % Gap uint32 Duplicate float32 // in % DuplicateCorr float32 // in % Jitter uint32 // in us ReorderProb float32 // in % ReorderCorr float32 // in % CorruptProb float32 // in % CorruptCorr float32 // in % }
func (NetemQdiscAttrs) String ¶
func (q NetemQdiscAttrs) String() string
type NextHopFlag ¶
type NextHopFlag int
const ( FLAG_ONLINK NextHopFlag = syscall.RTNH_F_ONLINK FLAG_PERVASIVE NextHopFlag = syscall.RTNH_F_PERVASIVE )
type NsFd ¶
type NsFd int
type NsPid ¶
type NsPid int
type PfifoFast ¶
type PfifoFast struct { QdiscAttrs Bands uint8 PriorityMap [PRIORITY_MAP_LEN]uint8 }
PfifoFast is the default qdisc created by the kernel if one has not been defined for the interface
func (*PfifoFast) Attrs ¶
func (qdisc *PfifoFast) Attrs() *QdiscAttrs
func (*PfifoFast) Type ¶
type Prio ¶
type Prio struct { QdiscAttrs Bands uint8 PriorityMap [PRIORITY_MAP_LEN]uint8 }
Prio is a basic qdisc that works just like PfifoFast
func NewPrio ¶
func NewPrio(attrs QdiscAttrs) *Prio
func (*Prio) Attrs ¶
func (qdisc *Prio) Attrs() *QdiscAttrs
func (*Prio) Type ¶
type Protinfo ¶
type Protinfo struct { Hairpin bool Guard bool FastLeave bool RootBlock bool Learning bool Flood bool }
Protinfo represents bridge flags from netlink.
func (*Protinfo) String ¶
String returns a list of enabled flags
type Proto ¶
type Proto uint8
Proto is an enum representing an ipsec protocol.
const ( XFRM_PROTO_ROUTE2 Proto = syscall.IPPROTO_ROUTING XFRM_PROTO_ESP Proto = syscall.IPPROTO_ESP XFRM_PROTO_AH Proto = syscall.IPPROTO_AH XFRM_PROTO_HAO Proto = syscall.IPPROTO_DSTOPTS XFRM_PROTO_COMP Proto = syscall.IPPROTO_COMP XFRM_PROTO_IPSEC_ANY Proto = syscall.IPPROTO_RAW )
func (Proto) String ¶
type Qdisc ¶
type Qdisc interface { Attrs() *QdiscAttrs Type() string }
type QdiscAttrs ¶
Qdisc represents a netlink qdisc. A qdisc is associated with a link, has a handle, a parent and a refcnt. The root qdisc of a device should have parent == HANDLE_ROOT.
func (QdiscAttrs) String ¶
func (q QdiscAttrs) String() string
type Route ¶
type Route struct { LinkIndex int ILinkIndex int Scope Scope Dst *net.IPNet Src net.IP Gw net.IP Protocol int Priority int Table int Type int Tos int Flags int }
Route represents a netlink route.
func RouteList ¶
func (*Route) ClearFlag ¶
func (r *Route) ClearFlag(flag NextHopFlag)
func (*Route) ListFlags ¶
func (*Route) SetFlag ¶
func (r *Route) SetFlag(flag NextHopFlag)
func (Route) String ¶
type RouteUpdate ¶
RouteUpdate is sent when a route changes - type is RTM_NEWROUTE or RTM_DELROUTE
type Rule ¶
type Rule struct { *nl.RtMsg Priority int Table int Mark int Mask int TunID uint Goto int Src *net.IPNet Dst *net.IPNet Flow int IifName string OifName string SuppressIfgroup int SuppressPrefixlen int }
Rule represents a netlink rule.
func NewRule ¶
func NewRule() *Rule
NewRule return empty rules.
func (Rule) String ¶
type Scope ¶
type Scope uint8
Scope is an enum representing a route scope.
const ( SCOPE_UNIVERSE Scope = syscall.RT_SCOPE_UNIVERSE SCOPE_SITE Scope = syscall.RT_SCOPE_SITE SCOPE_LINK Scope = syscall.RT_SCOPE_LINK SCOPE_HOST Scope = syscall.RT_SCOPE_HOST SCOPE_NOWHERE Scope = syscall.RT_SCOPE_NOWHERE )
type Tbf ¶
type Tbf struct { QdiscAttrs // TODO: handle 64bit rate properly Rate uint64 Limit uint32 Buffer uint32 }
Tbf is a classless qdisc that rate limits based on tokens
func (*Tbf) Attrs ¶
func (qdisc *Tbf) Attrs() *QdiscAttrs
func (*Tbf) Type ¶
type Tuntap ¶
type Tuntap struct { LinkAttrs Mode TuntapMode }
Tuntap links created via /dev/tun/tap, but can be destroyed via netlink
func (*Tuntap) Attrs ¶
func (*Tuntap) Type ¶
type TuntapMode ¶
type TuntapMode uint16
const ( TUNTAP_MODE_TUN TuntapMode = syscall.IFF_TUN TUNTAP_MODE_TAP TuntapMode = syscall.IFF_TAP )
type U32 ¶
type U32 struct { FilterAttrs // Currently only supports redirecting to another interface RedirIndex int }
U32 filters on many packet related properties
func (*U32) Attrs ¶
func (filter *U32) Attrs() *FilterAttrs
func (*U32) Type ¶
type Veth ¶
Veth devices must specify PeerName on create
func (*Veth) Attrs ¶
func (*Veth) Type ¶
type Vlan ¶
Vlan links have ParentIndex set in their Attrs()
func (*Vlan) Attrs ¶
func (*Vlan) Type ¶
type Vxlan ¶
type Vxlan struct { LinkAttrs VxlanId int VtepDevIndex int SrcAddr net.IP Group net.IP TTL int TOS int Learning bool Proxy bool RSC bool L2miss bool L3miss bool UDPCSum bool NoAge bool GBP bool Age int Limit int Port int PortLow int PortHigh int }
func (*Vxlan) Attrs ¶
func (*Vxlan) Type ¶
type XfrmPolicy ¶
type XfrmPolicy struct { Dst *net.IPNet Src *net.IPNet Dir Dir Priority int Index int Tmpls []XfrmPolicyTmpl }
XfrmPolicy represents an ipsec policy. It represents the overlay network and has a list of XfrmPolicyTmpls representing the base addresses of the policy.
func XfrmPolicyList ¶
func XfrmPolicyList(family int) ([]XfrmPolicy, error)
type XfrmPolicyTmpl ¶
XfrmPolicyTmpl encapsulates a rule for the base addresses of an ipsec policy. These rules are matched with XfrmState to determine encryption and authentication algorithms.
type XfrmState ¶
type XfrmState struct { Dst net.IP Src net.IP Proto Proto Mode Mode Spi int Reqid int ReplayWindow int Auth *XfrmStateAlgo Crypt *XfrmStateAlgo Encap *XfrmStateEncap }
XfrmState represents the state of an ipsec policy. It optionally contains an XfrmStateAlgo for encryption and one for authentication.
func XfrmStateList ¶
type XfrmStateAlgo ¶
XfrmStateAlgo represents the algorithm to use for the ipsec encryption.
type XfrmStateEncap ¶
XfrmEncap represents the encapsulation to use for the ipsec encryption.
Source Files ¶
addr.go class.go filter.go link.go neigh.go netlink.go netlink_unspecified.go protinfo.go qdisc.go route.go rule.go xfrm.go xfrm_policy.go xfrm_state.go
Directories ¶
Path | Synopsis |
---|---|
Godeps/_workspace/src/github.com/vishvananda/netlink/nl |
- Version
- v0.7.0-rc.3
- Published
- Apr 6, 2016
- Platform
- js/wasm
- Imports
- 7 packages
- Last checked
- 3 minutes ago –
Tools for package owners.