Documentation
¶
Index ¶
- type LinuxArpDetails
- type LinuxArpMeta
- type LinuxRouteDetails
- type LinuxRouteMeta
- type NetLinkHandler
- func (handler *NetLinkHandler) AddArpEntry(name string, arpEntry *netlink.Neigh) error
- func (h *NetLinkHandler) AddStaticRoute(name string, route *netlink.Route) error
- func (handler *NetLinkHandler) DelArpEntry(name string, arpEntry *netlink.Neigh) error
- func (h *NetLinkHandler) DelStaticRoute(name string, route *netlink.Route) error
- func (h *NetLinkHandler) DumpArpEntries() ([]*LinuxArpDetails, error)
- func (h *NetLinkHandler) DumpRoutes() ([]*LinuxRouteDetails, error)
- func (handler *NetLinkHandler) GetArpEntries(interfaceIdx int, family int) ([]netlink.Neigh, error)
- func (h *NetLinkHandler) GetStaticRoutes(link netlink.Link, family int) ([]netlink.Route, error)
- func (h *NetLinkHandler) ReplaceStaticRoute(name string, route *netlink.Route) error
- func (handler *NetLinkHandler) SetArpEntry(name string, arpEntry *netlink.Neigh) error
- type NetlinkAPI
- type NetlinkAPIRead
- type NetlinkAPIWrite
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type LinuxArpDetails ¶
type LinuxArpDetails struct {
Arp *l3.LinuxStaticArpEntries_ArpEntry `json:"linux_arp"`
Meta *LinuxArpMeta `json:"linux_arp_meta"`
}
LinuxArpDetails is the wrapper structure for the linux ARP northbound API structure.
type LinuxArpMeta ¶
type LinuxArpMeta struct {
LinkIndex int `json:"link_index"`
Family int `json:"family"`
State int `json:"state"`
Type int `json:"type"`
Flags int `json:"flags"`
Vlan int `json:"vlan"`
VNI int `json:"vni"`
}
LinuxArpMeta is combination of proto-modelled ARP data and linux provided metadata
type LinuxRouteDetails ¶
type LinuxRouteDetails struct {
Route *l3.LinuxStaticRoutes_Route `json:"linux_route"`
Meta *LinuxRouteMeta `json:"linux_route_meta"`
}
LinuxRouteDetails is the wrapper structure for the linux route northbound API structure.
type LinuxRouteMeta ¶
type LinuxRouteMeta struct {
LinkIndex int `json:"link_index"`
ILinkIndex int `json:"ilink_index"`
Scope int `json:"scope"`
Protocol int `json:"protocol"`
Priority int `json:"priority"`
Table int `json:"table"`
Type int `json:"type"`
Tos int `json:"tos"`
Flags int `json:"flags"`
MTU int `json:"mtu"`
AdvMSS int `json:"adv_mss"`
NextHops []*nextHop `json:"next_hops"`
}
LinuxRouteMeta is combination of proto-modelled route data and linux provided metadata
type NetLinkHandler ¶
type NetLinkHandler struct {
// contains filtered or unexported fields
}
NetLinkHandler is accessor for netlink methods
func NewNetLinkHandler ¶
func NewNetLinkHandler(nsHandler nsplugin.NamespaceAPI, ifIndexes ifaceidx.LinuxIfIndex, arpIndexes l3idx.LinuxARPIndex, routeIndexes l3idx.LinuxRouteIndex, log logging.Logger) *NetLinkHandler
NewNetLinkHandler creates new instance of netlink handler
func (*NetLinkHandler) AddArpEntry ¶
func (handler *NetLinkHandler) AddArpEntry(name string, arpEntry *netlink.Neigh) error
AddArpEntry creates a new static ARP entry
func (*NetLinkHandler) AddStaticRoute ¶
func (h *NetLinkHandler) AddStaticRoute(name string, route *netlink.Route) error
AddStaticRoute creates the new static route
func (*NetLinkHandler) DelArpEntry ¶
func (handler *NetLinkHandler) DelArpEntry(name string, arpEntry *netlink.Neigh) error
DelArpEntry removes an static ARP entry
func (*NetLinkHandler) DelStaticRoute ¶
func (h *NetLinkHandler) DelStaticRoute(name string, route *netlink.Route) error
DelStaticRoute removes the static route
func (*NetLinkHandler) DumpArpEntries ¶
func (h *NetLinkHandler) DumpArpEntries() ([]*LinuxArpDetails, error)
DumpArpEntries is an implementation of linux L3 handler
func (*NetLinkHandler) DumpRoutes ¶
func (h *NetLinkHandler) DumpRoutes() ([]*LinuxRouteDetails, error)
DumpRoutes is an implementation of linux route handler
func (*NetLinkHandler) GetArpEntries ¶
GetArpEntries reads all configured static ARP entries for given interface <interfaceIdx> and <family> parameters works as filters, if they are set to zero, all arp entries are returned
func (*NetLinkHandler) GetStaticRoutes ¶
GetStaticRoutes reads linux routes. Possible to filter by interface and IP family.
type NetlinkAPI ¶
type NetlinkAPI interface {
NetlinkAPIWrite
NetlinkAPIRead
}
NetlinkAPI interface covers all methods inside linux calls package needed to manage linux ARP entries and routes.
type NetlinkAPIRead ¶
type NetlinkAPIRead interface {
/* ARP */
// GetArpEntries returns all configured ARP entries from current namespace in raw netlink format. Possible to
// filter by interface and IP family.
GetArpEntries(interfaceIdx int, family int) ([]netlink.Neigh, error)
// DumpArpEntries returns all configured ARP entries known to VPP agent from all known namespaces
// in proto-modelled format
DumpArpEntries() ([]*LinuxArpDetails, error)
/* Routes */
// GetStaticRoutes reads all linux routes from current namespace. Possible to filter by interface and IP family.
GetStaticRoutes(link netlink.Link, family int) ([]netlink.Route, error)
// DumpRoutes returns all configured routes entries known to VPP agent from all known namespaces
// in proto-modelled format
DumpRoutes() ([]*LinuxRouteDetails, error)
}
NetlinkAPIRead interface covers read methods inside linux calls package needed to manage linux ARP entries and routes.
type NetlinkAPIWrite ¶
type NetlinkAPIWrite interface {
/* ARP */
// AddArpEntry configures new linux ARP entry
AddArpEntry(name string, arpEntry *netlink.Neigh) error
// SetArpEntry modifies existing linux ARP entry
SetArpEntry(name string, arpEntry *netlink.Neigh) error
// DelArpEntry removes linux ARP entry
DelArpEntry(name string, arpEntry *netlink.Neigh) error
/* Routes */
// AddStaticRoute adds new linux static route
AddStaticRoute(name string, route *netlink.Route) error
// ReplaceStaticRoute changes existing linux static route
ReplaceStaticRoute(name string, route *netlink.Route) error
// DelStaticRoute removes linux static route
DelStaticRoute(name string, route *netlink.Route) error
}
NetlinkAPIWrite interface covers write methods inside linux calls package needed to manage linux ARP entries and routes.
Source Files
¶
- arp_linuxcalls.go
- dump_l3_linuxcalls.go
- netlink_api.go
- route_linuxcalls.go