srv6

package
v1.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2018 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package srv6 is a generated protocol buffer package.

It is generated from these files:

srv6.proto

It has these top-level messages:

LocalSID
Policy
PolicySegment
Steering

Index

Constants

View Source
const EtcdKeyPathDelimiter = "/"

EtcdKeyPathDelimiter is delimiter used in ETCD keys and can be used to combine multiple etcd key parts together (without worry that key part has accidentally this delimiter because otherwise it would not be one key part)

Variables

This section is empty.

Functions

func BasePrefix

func BasePrefix() string

BasePrefix returns the prefix used in ETCD to store vpp SRv6 config.

func IsPolicySegmentPrefix

func IsPolicySegmentPrefix(key string) bool

IsPolicySegmentPrefix check whether key has policy segment prefix

func LocalSIDPrefix

func LocalSIDPrefix() string

LocalSIDPrefix returns longest common prefix for all local SID keys

func ParsePolicySegmentKey

func ParsePolicySegmentKey(key string) (string, error)

ParsePolicySegmentKey parses policy segment name.

func PolicyPrefix

func PolicyPrefix() string

PolicyPrefix returns longest common prefix for all policy keys

func SteeringPrefix

func SteeringPrefix() string

SteeringPrefix returns longest common prefix for all steering keys

Types

type LocalSID

type LocalSID struct {
	Sid        string `protobuf:"bytes,1,opt,name=sid,proto3" json:"sid,omitempty"`
	FibTableId uint32 `protobuf:"varint,2,opt,name=fib_table_id,json=fibTableId,proto3" json:"fib_table_id,omitempty"`
	// Configuration for end functions (all end functions are mutually exclusive)
	BaseEndFunction *LocalSID_End    `protobuf:"bytes,3,opt,name=base_end_function,json=baseEndFunction" json:"base_end_function,omitempty"`
	EndFunction_X   *LocalSID_EndX   `protobuf:"bytes,4,opt,name=end_function_X,json=endFunctionX" json:"end_function_X,omitempty"`
	EndFunction_T   *LocalSID_EndT   `protobuf:"bytes,5,opt,name=end_function_T,json=endFunctionT" json:"end_function_T,omitempty"`
	EndFunction_DX2 *LocalSID_EndDX2 `protobuf:"bytes,6,opt,name=end_function_DX2,json=endFunctionDX2" json:"end_function_DX2,omitempty"`
	EndFunction_DX4 *LocalSID_EndDX4 `protobuf:"bytes,7,opt,name=end_function_DX4,json=endFunctionDX4" json:"end_function_DX4,omitempty"`
	EndFunction_DX6 *LocalSID_EndDX6 `protobuf:"bytes,8,opt,name=end_function_DX6,json=endFunctionDX6" json:"end_function_DX6,omitempty"`
	EndFunction_DT4 *LocalSID_EndDT4 `protobuf:"bytes,9,opt,name=end_function_DT4,json=endFunctionDT4" json:"end_function_DT4,omitempty"`
	EndFunction_DT6 *LocalSID_EndDT6 `protobuf:"bytes,10,opt,name=end_function_DT6,json=endFunctionDT6" json:"end_function_DT6,omitempty"`
}

func (*LocalSID) Descriptor

func (*LocalSID) Descriptor() ([]byte, []int)

func (*LocalSID) GetBaseEndFunction

func (m *LocalSID) GetBaseEndFunction() *LocalSID_End

func (*LocalSID) GetEndFunction_DT4

func (m *LocalSID) GetEndFunction_DT4() *LocalSID_EndDT4

func (*LocalSID) GetEndFunction_DT6

func (m *LocalSID) GetEndFunction_DT6() *LocalSID_EndDT6

func (*LocalSID) GetEndFunction_DX2

func (m *LocalSID) GetEndFunction_DX2() *LocalSID_EndDX2

func (*LocalSID) GetEndFunction_DX4

func (m *LocalSID) GetEndFunction_DX4() *LocalSID_EndDX4

func (*LocalSID) GetEndFunction_DX6

func (m *LocalSID) GetEndFunction_DX6() *LocalSID_EndDX6

func (*LocalSID) GetEndFunction_T

func (m *LocalSID) GetEndFunction_T() *LocalSID_EndT

func (*LocalSID) GetEndFunction_X

func (m *LocalSID) GetEndFunction_X() *LocalSID_EndX

func (*LocalSID) GetFibTableId

func (m *LocalSID) GetFibTableId() uint32

func (*LocalSID) GetSid

func (m *LocalSID) GetSid() string

func (*LocalSID) ProtoMessage

func (*LocalSID) ProtoMessage()

func (*LocalSID) Reset

func (m *LocalSID) Reset()

func (*LocalSID) String

func (m *LocalSID) String() string

type LocalSID_End

type LocalSID_End struct {
	Psp bool `protobuf:"varint,1,opt,name=psp,proto3" json:"psp,omitempty"`
}

End function behavior of simple endpoint

func (*LocalSID_End) Descriptor

func (*LocalSID_End) Descriptor() ([]byte, []int)

func (*LocalSID_End) GetPsp

func (m *LocalSID_End) GetPsp() bool

func (*LocalSID_End) ProtoMessage

func (*LocalSID_End) ProtoMessage()

func (*LocalSID_End) Reset

func (m *LocalSID_End) Reset()

func (*LocalSID_End) String

func (m *LocalSID_End) String() string

type LocalSID_EndDT4

type LocalSID_EndDT4 struct {
}

End function behavior of endpoint with decapsulation and specific IPv4 table lookup

func (*LocalSID_EndDT4) Descriptor

func (*LocalSID_EndDT4) Descriptor() ([]byte, []int)

func (*LocalSID_EndDT4) ProtoMessage

func (*LocalSID_EndDT4) ProtoMessage()

func (*LocalSID_EndDT4) Reset

func (m *LocalSID_EndDT4) Reset()

func (*LocalSID_EndDT4) String

func (m *LocalSID_EndDT4) String() string

type LocalSID_EndDT6

type LocalSID_EndDT6 struct {
}

End function behavior of endpoint with decapsulation and specific IPv6 table lookup

func (*LocalSID_EndDT6) Descriptor

func (*LocalSID_EndDT6) Descriptor() ([]byte, []int)

func (*LocalSID_EndDT6) ProtoMessage

func (*LocalSID_EndDT6) ProtoMessage()

func (*LocalSID_EndDT6) Reset

func (m *LocalSID_EndDT6) Reset()

func (*LocalSID_EndDT6) String

func (m *LocalSID_EndDT6) String() string

type LocalSID_EndDX2

type LocalSID_EndDX2 struct {
	VlanTag           uint32 `protobuf:"varint,1,opt,name=vlan_tag,json=vlanTag,proto3" json:"vlan_tag,omitempty"`
	OutgoingInterface string `protobuf:"bytes,2,opt,name=outgoing_interface,json=outgoingInterface,proto3" json:"outgoing_interface,omitempty"`
	NextHop           string `protobuf:"bytes,3,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"`
}

End function nehavior of endpoint with decapsulation and Layer-2 cross-connect (or DX2 with egress VLAN rewrite when VLAN notzero - not supported this variant yet)

func (*LocalSID_EndDX2) Descriptor

func (*LocalSID_EndDX2) Descriptor() ([]byte, []int)

func (*LocalSID_EndDX2) GetNextHop

func (m *LocalSID_EndDX2) GetNextHop() string

func (*LocalSID_EndDX2) GetOutgoingInterface

func (m *LocalSID_EndDX2) GetOutgoingInterface() string

func (*LocalSID_EndDX2) GetVlanTag

func (m *LocalSID_EndDX2) GetVlanTag() uint32

func (*LocalSID_EndDX2) ProtoMessage

func (*LocalSID_EndDX2) ProtoMessage()

func (*LocalSID_EndDX2) Reset

func (m *LocalSID_EndDX2) Reset()

func (*LocalSID_EndDX2) String

func (m *LocalSID_EndDX2) String() string

type LocalSID_EndDX4

type LocalSID_EndDX4 struct {
	OutgoingInterface string `protobuf:"bytes,1,opt,name=outgoing_interface,json=outgoingInterface,proto3" json:"outgoing_interface,omitempty"`
	NextHop           string `protobuf:"bytes,2,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"`
}

End function behavior of endpoint with decapsulation and IPv4 cross-connect

func (*LocalSID_EndDX4) Descriptor

func (*LocalSID_EndDX4) Descriptor() ([]byte, []int)

func (*LocalSID_EndDX4) GetNextHop

func (m *LocalSID_EndDX4) GetNextHop() string

func (*LocalSID_EndDX4) GetOutgoingInterface

func (m *LocalSID_EndDX4) GetOutgoingInterface() string

func (*LocalSID_EndDX4) ProtoMessage

func (*LocalSID_EndDX4) ProtoMessage()

func (*LocalSID_EndDX4) Reset

func (m *LocalSID_EndDX4) Reset()

func (*LocalSID_EndDX4) String

func (m *LocalSID_EndDX4) String() string

type LocalSID_EndDX6

type LocalSID_EndDX6 struct {
	OutgoingInterface string `protobuf:"bytes,1,opt,name=outgoing_interface,json=outgoingInterface,proto3" json:"outgoing_interface,omitempty"`
	NextHop           string `protobuf:"bytes,2,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"`
}

End function behavior of endpoint with decapsulation and IPv6 cross-connect

func (*LocalSID_EndDX6) Descriptor

func (*LocalSID_EndDX6) Descriptor() ([]byte, []int)

func (*LocalSID_EndDX6) GetNextHop

func (m *LocalSID_EndDX6) GetNextHop() string

func (*LocalSID_EndDX6) GetOutgoingInterface

func (m *LocalSID_EndDX6) GetOutgoingInterface() string

func (*LocalSID_EndDX6) ProtoMessage

func (*LocalSID_EndDX6) ProtoMessage()

func (*LocalSID_EndDX6) Reset

func (m *LocalSID_EndDX6) Reset()

func (*LocalSID_EndDX6) String

func (m *LocalSID_EndDX6) String() string

type LocalSID_EndT

type LocalSID_EndT struct {
	Psp bool `protobuf:"varint,1,opt,name=psp,proto3" json:"psp,omitempty"`
}

End function behavior of endpoint with specific IPv6 table lookup

func (*LocalSID_EndT) Descriptor

func (*LocalSID_EndT) Descriptor() ([]byte, []int)

func (*LocalSID_EndT) GetPsp

func (m *LocalSID_EndT) GetPsp() bool

func (*LocalSID_EndT) ProtoMessage

func (*LocalSID_EndT) ProtoMessage()

func (*LocalSID_EndT) Reset

func (m *LocalSID_EndT) Reset()

func (*LocalSID_EndT) String

func (m *LocalSID_EndT) String() string

type LocalSID_EndX

type LocalSID_EndX struct {
	Psp               bool   `protobuf:"varint,1,opt,name=psp,proto3" json:"psp,omitempty"`
	OutgoingInterface string `protobuf:"bytes,2,opt,name=outgoing_interface,json=outgoingInterface,proto3" json:"outgoing_interface,omitempty"`
	NextHop           string `protobuf:"bytes,3,opt,name=next_hop,json=nextHop,proto3" json:"next_hop,omitempty"`
}

End function behavior of endpoint with Layer-3 cross-connect

func (*LocalSID_EndX) Descriptor

func (*LocalSID_EndX) Descriptor() ([]byte, []int)

func (*LocalSID_EndX) GetNextHop

func (m *LocalSID_EndX) GetNextHop() string

func (*LocalSID_EndX) GetOutgoingInterface

func (m *LocalSID_EndX) GetOutgoingInterface() string

func (*LocalSID_EndX) GetPsp

func (m *LocalSID_EndX) GetPsp() bool

func (*LocalSID_EndX) ProtoMessage

func (*LocalSID_EndX) ProtoMessage()

func (*LocalSID_EndX) Reset

func (m *LocalSID_EndX) Reset()

func (*LocalSID_EndX) String

func (m *LocalSID_EndX) String() string

type Policy

type Policy struct {
	Bsid             string `protobuf:"bytes,1,opt,name=bsid,proto3" json:"bsid,omitempty"`
	FibTableId       uint32 `protobuf:"varint,2,opt,name=fib_table_id,json=fibTableId,proto3" json:"fib_table_id,omitempty"`
	SrhEncapsulation bool   `protobuf:"varint,3,opt,name=srh_encapsulation,json=srhEncapsulation,proto3" json:"srh_encapsulation,omitempty"`
	SprayBehaviour   bool   `protobuf:"varint,4,opt,name=spray_behaviour,json=sprayBehaviour,proto3" json:"spray_behaviour,omitempty"`
}

Model for SRv6 policy (policy without at least one policy segment is only cached in ligato and not written to VPP)

func (*Policy) Descriptor

func (*Policy) Descriptor() ([]byte, []int)

func (*Policy) GetBsid

func (m *Policy) GetBsid() string

func (*Policy) GetFibTableId

func (m *Policy) GetFibTableId() uint32

func (*Policy) GetSprayBehaviour

func (m *Policy) GetSprayBehaviour() bool

func (*Policy) GetSrhEncapsulation

func (m *Policy) GetSrhEncapsulation() bool

func (*Policy) ProtoMessage

func (*Policy) ProtoMessage()

func (*Policy) Reset

func (m *Policy) Reset()

func (*Policy) String

func (m *Policy) String() string

type PolicySegment

type PolicySegment struct {
	PolicyBsid string   `protobuf:"bytes,1,opt,name=policy_bsid,json=policyBsid,proto3" json:"policy_bsid,omitempty"`
	Weight     uint32   `protobuf:"varint,2,opt,name=weight,proto3" json:"weight,omitempty"`
	Segments   []string `protobuf:"bytes,3,rep,name=segments" json:"segments,omitempty"`
}

Model for segment of SRv6 policy (etcd key for segment has as prefix the etcd key for policy where it belongs)

func (*PolicySegment) Descriptor

func (*PolicySegment) Descriptor() ([]byte, []int)

func (*PolicySegment) GetPolicyBsid

func (m *PolicySegment) GetPolicyBsid() string

func (*PolicySegment) GetSegments

func (m *PolicySegment) GetSegments() []string

func (*PolicySegment) GetWeight

func (m *PolicySegment) GetWeight() uint32

func (*PolicySegment) ProtoMessage

func (*PolicySegment) ProtoMessage()

func (*PolicySegment) Reset

func (m *PolicySegment) Reset()

func (*PolicySegment) String

func (m *PolicySegment) String() string

type SID

type SID = net.IP

SID (in srv6 package) is SRv6's segment id. It is always represented as IPv6 address

type Steering

type Steering struct {
	PolicyBsid  string `protobuf:"bytes,1,opt,name=policy_bsid,json=policyBsid,proto3" json:"policy_bsid,omitempty"`
	PolicyIndex uint32 `protobuf:"varint,2,opt,name=policy_index,json=policyIndex,proto3" json:"policy_index,omitempty"`
	// Traffic configuration (all traffic messages are mutual exclusive)
	L2Traffic *Steering_L2Traffic `protobuf:"bytes,3,opt,name=l2_traffic,json=l2Traffic" json:"l2_traffic,omitempty"`
	L3Traffic *Steering_L3Traffic `protobuf:"bytes,4,opt,name=l3_traffic,json=l3Traffic" json:"l3_traffic,omitempty"`
}

Model for steering traffic to SRv6 policy

func (*Steering) Descriptor

func (*Steering) Descriptor() ([]byte, []int)

func (*Steering) GetL2Traffic

func (m *Steering) GetL2Traffic() *Steering_L2Traffic

func (*Steering) GetL3Traffic

func (m *Steering) GetL3Traffic() *Steering_L3Traffic

func (*Steering) GetPolicyBsid

func (m *Steering) GetPolicyBsid() string

func (*Steering) GetPolicyIndex

func (m *Steering) GetPolicyIndex() uint32

func (*Steering) ProtoMessage

func (*Steering) ProtoMessage()

func (*Steering) Reset

func (m *Steering) Reset()

func (*Steering) String

func (m *Steering) String() string

type Steering_L2Traffic

type Steering_L2Traffic struct {
	InterfaceName string `protobuf:"bytes,1,opt,name=interface_name,json=interfaceName,proto3" json:"interface_name,omitempty"`
}

func (*Steering_L2Traffic) Descriptor

func (*Steering_L2Traffic) Descriptor() ([]byte, []int)

func (*Steering_L2Traffic) GetInterfaceName

func (m *Steering_L2Traffic) GetInterfaceName() string

func (*Steering_L2Traffic) ProtoMessage

func (*Steering_L2Traffic) ProtoMessage()

func (*Steering_L2Traffic) Reset

func (m *Steering_L2Traffic) Reset()

func (*Steering_L2Traffic) String

func (m *Steering_L2Traffic) String() string

type Steering_L3Traffic

type Steering_L3Traffic struct {
	FibTableId    uint32 `protobuf:"varint,1,opt,name=fib_table_id,json=fibTableId,proto3" json:"fib_table_id,omitempty"`
	PrefixAddress string `protobuf:"bytes,2,opt,name=prefix_address,json=prefixAddress,proto3" json:"prefix_address,omitempty"`
}

func (*Steering_L3Traffic) Descriptor

func (*Steering_L3Traffic) Descriptor() ([]byte, []int)

func (*Steering_L3Traffic) GetFibTableId

func (m *Steering_L3Traffic) GetFibTableId() uint32

func (*Steering_L3Traffic) GetPrefixAddress

func (m *Steering_L3Traffic) GetPrefixAddress() string

func (*Steering_L3Traffic) ProtoMessage

func (*Steering_L3Traffic) ProtoMessage()

func (*Steering_L3Traffic) Reset

func (m *Steering_L3Traffic) Reset()

func (*Steering_L3Traffic) String

func (m *Steering_L3Traffic) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL