Documentation ¶
Overview ¶
Package vppcalls contains wrappers over VPP binary APIs to simplify their usage
Index ¶
Constants ¶
const ( BehaviorEnd uint8 = iota + 1 // Behavior of simple endpoint BehaviorX // Behavior of endpoint with Layer-3 cross-connect BehaviorT // Behavior of endpoint with specific IPv6 table lookup BehaviorDfirst // Unused. Separator in between regular and D BehaviorDX2 // Behavior of endpoint with decapulation and Layer-2 cross-connect (or DX2 with egress VLAN rewrite when VLAN notzero - not supported this variant yet) BehaviorDX6 // Behavior of endpoint with decapsulation and IPv6 cross-connect BehaviorDX4 // Behavior of endpoint with decapsulation and IPv4 cross-connect BehaviorDT6 // Behavior of endpoint with decapsulation and specific IPv6 table lookup BehaviorDT4 // Behavior of endpoint with decapsulation and specific IPv4 table lookup BehaviorLast // seems unused, note in VPP: "Must always be the last one" )
Constants for behavior function hardcoded into VPP (there can be also custom behavior functions implemented as VPP plugins) Constants are taken from VPP's vnet/srv6/sr.h (names are modified to Golang from original C form in VPP code)
const ( SteerTypeL2 uint8 = 2 SteerTypeIPv4 uint8 = 4 SteerTypeIPv6 uint8 = 6 )
Constants for steering type Constants are taken from VPP's vnet/srv6/sr.h (names are modified to Golang from original C form in VPP code)
const ( AddSRList uint8 = iota + 1 // Add SR List to an existing SR policy DeleteSRList // Delete SR List from an existing SR policy ModifyWeightOfSRList // Modify the weight of an existing SR List )
Constants for operation of SR policy modify binary API method
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SRv6Calls ¶
type SRv6Calls interface { // AddLocalSid adds local sid given by <sidAddr> and <localSID> into VPP AddLocalSid(sidAddr net.IP, localSID *srv6.LocalSID, swIfIndex ifaceidx.SwIfIndex, vppChan VPPChannel) error // DeleteLocalSid delets local sid given by <sidAddr> in VPP DeleteLocalSid(sidAddr net.IP, vppChan VPPChannel) error // SetEncapsSourceAddress sets for SRv6 in VPP the source address used for encapsulated packet SetEncapsSourceAddress(address string, vppChan VPPChannel) error // AddPolicy adds SRv6 policy given by identified <bindingSid>,initial segment for policy <policySegment> and other policy settings in <policy> AddPolicy(bindingSid net.IP, policy *srv6.Policy, policySegment *srv6.PolicySegment, vppChan VPPChannel) error // DeletePolicy deletes SRv6 policy given by binding SID <bindingSid> DeletePolicy(bindingSid net.IP, vppChan VPPChannel) error // AddPolicySegment adds segment <policySegment> to SRv6 policy <policy> that has policy BSID <bindingSid> AddPolicySegment(bindingSid net.IP, policy *srv6.Policy, policySegment *srv6.PolicySegment, vppChan VPPChannel) error // DeletePolicySegment removes segment <policySegment> (with segment index <segmentIndex>) from SRv6 policy <policy> that has policy BSID <bindingSid> DeletePolicySegment(bindingSid net.IP, policy *srv6.Policy, policySegment *srv6.PolicySegment, segmentIndex uint32, vppChan VPPChannel) error // AddSteering sets in VPP steering into SRv6 policy. AddSteering(steering *srv6.Steering, swIfIndex ifaceidx.SwIfIndex, vppChan VPPChannel) error // RemoveSteering removes in VPP steering into SRv6 policy. RemoveSteering(steering *srv6.Steering, swIfIndex ifaceidx.SwIfIndex, vppChan VPPChannel) error }
SRv6Calls is API boundary for vppcall package access, introduced to properly test code dependent on vppcalls package
type VPPChannel ¶
type VPPChannel interface { SendRequest(msg govppapi.Message) *govppapi.RequestCtx SendMultiRequest(msg govppapi.Message) *govppapi.MultiRequestCtx CheckMessageCompatibility(messages ...govppapi.Message) error SubscribeNotification(notifChan chan govppapi.Message, msgFactory func() govppapi.Message) (*govppapi.NotifSubscription, error) UnsubscribeNotification(subscription *govppapi.NotifSubscription) error }
VPPChannel is interface for send request to VPP channel