Documentation
¶
Overview ¶
Package vppcalls contains wrappers over VPP binary APIs for ARPs, proxy ARPs, L3 FIBs and helpers for dumping them.
Index ¶
- Constants
- type ArpDetails
- type ArpEntry
- type ArpMeta
- type ArpVppAPI
- type ArpVppHandler
- type ArpVppRead
- type ArpVppWrite
- type IPNeighHandler
- type IPNeighVppAPI
- type ProxyArpInterfaceDetails
- type ProxyArpInterfaceMeta
- type ProxyArpRangesDetails
- type ProxyArpVppAPI
- type ProxyArpVppHandler
- func (h *ProxyArpVppHandler) AddProxyArpRange(firstIP, lastIP []byte) error
- func (h *ProxyArpVppHandler) DeleteProxyArpRange(firstIP, lastIP []byte) error
- func (h *ProxyArpVppHandler) DisableProxyArpInterface(swIfIdx uint32) error
- func (h *ProxyArpVppHandler) DumpProxyArpInterfaces() (pArpIfs []*ProxyArpInterfaceDetails, err error)
- func (h *ProxyArpVppHandler) DumpProxyArpRanges() (pArpRngs []*ProxyArpRangesDetails, err error)
- func (h *ProxyArpVppHandler) EnableProxyArpInterface(swIfIdx uint32) error
- type ProxyArpVppRead
- type ProxyArpVppWrite
- type RouteDetails
- type RouteHandler
- type RouteMeta
- type RouteVppAPI
- type RouteVppRead
- type RouteVppWrite
Constants ¶
const ( // NextHopViaLabelUnset constant has to be assigned into the field next hop // via label in ip_add_del_route binary message if next hop via label is not defined. // Equals to MPLS_LABEL_INVALID defined in VPP NextHopViaLabelUnset uint32 = 0xfffff + 1 // ClassifyTableIndexUnset is a default value for field classify_table_index in ip_add_del_route binary message. ClassifyTableIndexUnset = ^uint32(0) // NextHopOutgoingIfUnset constant has to be assigned into the field next_hop_outgoing_interface // in ip_add_del_route binary message if outgoing interface for next hop is not defined. NextHopOutgoingIfUnset = ^uint32(0) )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ArpDetails ¶ added in v1.8.1
type ArpDetails struct {
Arp *l3.ArpTable_ArpEntry
Meta *ArpMeta
}
ArpDetails holds info about ARP entry as a proto model
type ArpEntry ¶
ArpEntry represents ARP entry for interface
type ArpMeta ¶ added in v1.8.1
type ArpMeta struct {
SwIfIndex uint32
}
ArpMeta contains interface index of the ARP interface
type ArpVppAPI ¶ added in v1.8.1
type ArpVppAPI interface {
ArpVppWrite
ArpVppRead
}
ArpVppAPI provides methods for managing ARP entries
type ArpVppHandler ¶ added in v1.8.1
type ArpVppHandler struct {
// contains filtered or unexported fields
}
ArpVppHandler is accessor for ARP-related vppcalls methods
func NewArpVppHandler ¶ added in v1.8.1
func NewArpVppHandler(callsChan govppapi.Channel, ifIndexes ifaceidx.SwIfIndex, log logging.Logger) *ArpVppHandler
NewArpVppHandler creates new instance of IPsec vppcalls handler
func (*ArpVppHandler) DumpArpEntries ¶ added in v1.8.1
func (h *ArpVppHandler) DumpArpEntries() ([]*ArpDetails, error)
DumpArpEntries implements arp handler.
func (*ArpVppHandler) VppAddArp ¶ added in v1.8.1
func (h *ArpVppHandler) VppAddArp(entry *ArpEntry) error
VppAddArp implements arp handler.
func (*ArpVppHandler) VppDelArp ¶ added in v1.8.1
func (h *ArpVppHandler) VppDelArp(entry *ArpEntry) error
VppDelArp implements arp handler.
type ArpVppRead ¶ added in v1.8.1
type ArpVppRead interface {
// DumpArpEntries dumps ARPs from VPP and fills them into the provided static route map.
DumpArpEntries() ([]*ArpDetails, error)
}
ArpVppRead provides read methods for ARPs
type ArpVppWrite ¶ added in v1.8.1
type ArpVppWrite interface {
// VppAddArp adds ARP entry according to provided input
VppAddArp(entry *ArpEntry) error
// VppDelArp removes old ARP entry according to provided input
VppDelArp(entry *ArpEntry) error
}
ArpVppWrite provides write methods for ARPs
type IPNeighHandler ¶ added in v1.8.1
type IPNeighHandler struct {
// contains filtered or unexported fields
}
IPNeighHandler is accessor for ip-neighbor-related vppcalls methods
func NewIPNeighVppHandler ¶ added in v1.8.1
func NewIPNeighVppHandler(callsChan govppapi.Channel, log logging.Logger) *IPNeighHandler
NewIPNeighVppHandler creates new instance of ip neighbor vppcalls handler
func (*IPNeighHandler) SetIPScanNeighbor ¶ added in v1.8.1
func (h *IPNeighHandler) SetIPScanNeighbor(data *l3.IPScanNeighbor) error
SetIPScanNeighbor implements ip neigh handler.
type IPNeighVppAPI ¶ added in v1.8.1
type IPNeighVppAPI interface {
// SetIPScanNeighbor configures IP scan neighbor to the VPP
SetIPScanNeighbor(data *l3.IPScanNeighbor) error
}
IPNeighVppAPI provides methods for managing IP scan neighbor configuration
type ProxyArpInterfaceDetails ¶ added in v1.8.1
type ProxyArpInterfaceDetails struct {
Interface *l3.ProxyArpInterfaces_InterfaceList_Interface
Meta *ProxyArpInterfaceMeta
}
ProxyArpInterfaceDetails holds info about proxy ARP interfaces as a proto modeled data
type ProxyArpInterfaceMeta ¶ added in v1.8.1
type ProxyArpInterfaceMeta struct {
SwIfIndex uint32
}
ProxyArpInterfaceMeta contains interface vpp index
type ProxyArpRangesDetails ¶ added in v1.8.1
type ProxyArpRangesDetails struct {
Range *l3.ProxyArpRanges_RangeList_Range
}
ProxyArpRangesDetails holds info about proxy ARP range as a proto modeled data
type ProxyArpVppAPI ¶ added in v1.8.1
type ProxyArpVppAPI interface {
ProxyArpVppWrite
ProxyArpVppRead
}
ProxyArpVppAPI provides methods for managing proxy ARP entries
type ProxyArpVppHandler ¶ added in v1.8.1
type ProxyArpVppHandler struct {
// contains filtered or unexported fields
}
ProxyArpVppHandler is accessor for proxy ARP-related vppcalls methods
func NewProxyArpVppHandler ¶ added in v1.8.1
func NewProxyArpVppHandler(callsChan govppapi.Channel, ifIndexes ifaceidx.SwIfIndex, log logging.Logger) *ProxyArpVppHandler
NewProxyArpVppHandler creates new instance of proxy ARP vppcalls handler
func (*ProxyArpVppHandler) AddProxyArpRange ¶ added in v1.8.1
func (h *ProxyArpVppHandler) AddProxyArpRange(firstIP, lastIP []byte) error
AddProxyArpRange implements proxy arp handler.
func (*ProxyArpVppHandler) DeleteProxyArpRange ¶ added in v1.8.1
func (h *ProxyArpVppHandler) DeleteProxyArpRange(firstIP, lastIP []byte) error
DeleteProxyArpRange implements proxy arp handler.
func (*ProxyArpVppHandler) DisableProxyArpInterface ¶ added in v1.8.1
func (h *ProxyArpVppHandler) DisableProxyArpInterface(swIfIdx uint32) error
DisableProxyArpInterface implements proxy arp handler.
func (*ProxyArpVppHandler) DumpProxyArpInterfaces ¶ added in v1.8.1
func (h *ProxyArpVppHandler) DumpProxyArpInterfaces() (pArpIfs []*ProxyArpInterfaceDetails, err error)
DumpProxyArpInterfaces implements proxy arp handler.
func (*ProxyArpVppHandler) DumpProxyArpRanges ¶ added in v1.8.1
func (h *ProxyArpVppHandler) DumpProxyArpRanges() (pArpRngs []*ProxyArpRangesDetails, err error)
DumpProxyArpRanges implements proxy arp handler.
func (*ProxyArpVppHandler) EnableProxyArpInterface ¶ added in v1.8.1
func (h *ProxyArpVppHandler) EnableProxyArpInterface(swIfIdx uint32) error
EnableProxyArpInterface implements proxy arp handler.
type ProxyArpVppRead ¶ added in v1.8.1
type ProxyArpVppRead interface {
// DumpProxyArpRanges returns configured proxy ARP ranges
DumpProxyArpRanges() ([]*ProxyArpRangesDetails, error)
// DumpProxyArpRanges returns configured proxy ARP interfaces
DumpProxyArpInterfaces() ([]*ProxyArpInterfaceDetails, error)
}
ProxyArpVppRead provides read methods for proxy ARPs
type ProxyArpVppWrite ¶ added in v1.8.1
type ProxyArpVppWrite interface {
// EnableProxyArpInterface enables interface for proxy ARP
EnableProxyArpInterface(swIfIdx uint32) error
// DisableProxyArpInterface disables interface for proxy ARP
DisableProxyArpInterface(swIfIdx uint32) error
// AddProxyArpRange adds new IP range for proxy ARP
AddProxyArpRange(firstIP, lastIP []byte) error
// DeleteProxyArpRange removes proxy ARP IP range
DeleteProxyArpRange(firstIP, lastIP []byte) error
}
ProxyArpVppWrite provides write methods for proxy ARPs
type RouteDetails ¶ added in v1.8.1
type RouteDetails struct {
Route *l3.StaticRoutes_Route
Meta *RouteMeta
}
RouteDetails is object returned as a VPP dump. It contains static route data in proto format, and VPP-specific metadata
type RouteHandler ¶ added in v1.8.1
type RouteHandler struct {
// contains filtered or unexported fields
}
RouteHandler is accessor for route-related vppcalls methods
func NewRouteVppHandler ¶ added in v1.8.1
func NewRouteVppHandler(callsChan govppapi.Channel, ifIndexes ifaceidx.SwIfIndex, log logging.Logger) *RouteHandler
NewRouteVppHandler creates new instance of route vppcalls handler
func (*RouteHandler) DumpStaticRoutes ¶ added in v1.8.1
func (h *RouteHandler) DumpStaticRoutes() ([]*RouteDetails, error)
DumpStaticRoutes implements route handler.
func (*RouteHandler) VppAddRoute ¶ added in v1.8.1
func (h *RouteHandler) VppAddRoute(ifHandler ifvppcalls.IfVppWrite, route *l3.StaticRoutes_Route, rtIfIdx uint32) error
VppAddRoute implements route handler.
func (*RouteHandler) VppDelRoute ¶ added in v1.8.1
func (h *RouteHandler) VppDelRoute(route *l3.StaticRoutes_Route, rtIfIdx uint32) error
VppDelRoute implements route handler.
type RouteMeta ¶ added in v1.8.1
type RouteMeta struct {
TableName string
OutgoingIfIdx uint32
IsIPv6 bool
Afi uint8
IsLocal bool
IsUDPEncap bool
IsUnreach bool
IsProhibit bool
IsResolveHost bool
IsResolveAttached bool
IsDvr bool
IsSourceLookup bool
NextHopID uint32
RpfID uint32
LabelStack []l3binapi.FibMplsLabel
}
RouteMeta holds fields returned from the VPP as details which are not in the model
type RouteVppAPI ¶ added in v1.8.1
type RouteVppAPI interface {
RouteVppWrite
RouteVppRead
}
RouteVppAPI provides methods for managing routes
type RouteVppRead ¶ added in v1.8.1
type RouteVppRead interface {
// DumpStaticRoutes dumps l3 routes from VPP and fills them into the provided static route map.
DumpStaticRoutes() ([]*RouteDetails, error)
}
RouteVppRead provides read methods for routes
type RouteVppWrite ¶ added in v1.8.1
type RouteVppWrite interface {
// VppAddRoute adds new route, according to provided input. Every route has to contain VRF ID (default is 0).
VppAddRoute(ifHandler vppcalls.IfVppWrite, route *l3.StaticRoutes_Route, rtIfIdx uint32) error
// VppDelRoute removes old route, according to provided input. Every route has to contain VRF ID (default is 0).
VppDelRoute(route *l3.StaticRoutes_Route, rtIfIdx uint32) error
}
RouteVppWrite provides write methods for routes
Source Files
¶
- api_vppcalls.go
- arp_dump.go
- arp_vppcalls.go
- doc.go
- ipneigh_vppcalls.go
- proxyarp_dump.go
- proxyarp_vppcalls.go
- route_dump.go
- route_vppcalls.go