gribi

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Jan 11, 2023 License: Apache-2.0 Imports: 9 Imported by: 19

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	AFTType_name = map[int32]string{
		0: "INVALID",
		1: "ALL",
		2: "IPV4",
		3: "IPV6",
		4: "MPLS",
		5: "NEXTHOP",
		6: "NEXTHOP_GROUP",
		7: "MAC",
		8: "POLICY_FORWARDING",
	}
	AFTType_value = map[string]int32{
		"INVALID":           0,
		"ALL":               1,
		"IPV4":              2,
		"IPV6":              3,
		"MPLS":              4,
		"NEXTHOP":           5,
		"NEXTHOP_GROUP":     6,
		"MAC":               7,
		"POLICY_FORWARDING": 8,
	}
)

Enum value maps for AFTType.

View Source
var (
	AFTOperation_Operation_name = map[int32]string{
		0: "INVALID",
		1: "ADD",
		2: "REPLACE",
		3: "DELETE",
	}
	AFTOperation_Operation_value = map[string]int32{
		"INVALID": 0,
		"ADD":     1,
		"REPLACE": 2,
		"DELETE":  3,
	}
)

Enum value maps for AFTOperation_Operation.

View Source
var (
	AFTResult_Status_name = map[int32]string{
		0: "UNSET",
		1: "OK",
		2: "FAILED",
		3: "RIB_PROGRAMMED",
		4: "FIB_PROGRAMMED",
		5: "FIB_FAILED",
	}
	AFTResult_Status_value = map[string]int32{
		"UNSET":          0,
		"OK":             1,
		"FAILED":         2,
		"RIB_PROGRAMMED": 3,
		"FIB_PROGRAMMED": 4,
		"FIB_FAILED":     5,
	}
)

Enum value maps for AFTResult_Status.

View Source
var (
	ModifyRPCErrorDetails_Reason_name = map[int32]string{
		0: "UNKNOWN",
		1: "UNSUPPORTED_PARAMS",
		2: "MODIFY_NOT_ALLOWED",
		3: "PARAMS_DIFFER_FROM_OTHER_CLIENTS",
		4: "ELECTION_ID_IN_ALL_PRIMARY",
	}
	ModifyRPCErrorDetails_Reason_value = map[string]int32{
		"UNKNOWN":                          0,
		"UNSUPPORTED_PARAMS":               1,
		"MODIFY_NOT_ALLOWED":               2,
		"PARAMS_DIFFER_FROM_OTHER_CLIENTS": 3,
		"ELECTION_ID_IN_ALL_PRIMARY":       4,
	}
)

Enum value maps for ModifyRPCErrorDetails_Reason.

View Source
var (
	SessionParametersResult_Status_name = map[int32]string{
		0: "OK",
	}
	SessionParametersResult_Status_value = map[string]int32{
		"OK": 0,
	}
)

Enum value maps for SessionParametersResult_Status.

View Source
var (
	SessionParameters_ClientRedundancy_name = map[int32]string{
		0: "ALL_PRIMARY",
		1: "SINGLE_PRIMARY",
	}
	SessionParameters_ClientRedundancy_value = map[string]int32{
		"ALL_PRIMARY":    0,
		"SINGLE_PRIMARY": 1,
	}
)

Enum value maps for SessionParameters_ClientRedundancy.

View Source
var (
	SessionParameters_AFTPersistence_name = map[int32]string{
		0: "DELETE",
		1: "PRESERVE",
	}
	SessionParameters_AFTPersistence_value = map[string]int32{
		"DELETE":   0,
		"PRESERVE": 1,
	}
)

Enum value maps for SessionParameters_AFTPersistence.

View Source
var (
	SessionParameters_AFTResultStatusType_name = map[int32]string{
		0: "RIB_ACK",
		1: "RIB_AND_FIB_ACK",
	}
	SessionParameters_AFTResultStatusType_value = map[string]int32{
		"RIB_ACK":         0,
		"RIB_AND_FIB_ACK": 1,
	}
)

Enum value maps for SessionParameters_AFTResultStatusType.

View Source
var (
	AFTEntry_Status_name = map[int32]string{
		0: "UNAVAILABLE",
		1: "PROGRAMMED",
		2: "NOT_PROGRAMMED",
	}
	AFTEntry_Status_value = map[string]int32{
		"UNAVAILABLE":    0,
		"PROGRAMMED":     1,
		"NOT_PROGRAMMED": 2,
	}
)

Enum value maps for AFTEntry_Status.

View Source
var (
	FlushResponse_Result_name = map[int32]string{
		0: "UNSET",
		1: "OK",
		2: "NON_ZERO_REFERENCE_REMAIN",
	}
	FlushResponse_Result_value = map[string]int32{
		"UNSET":                     0,
		"OK":                        1,
		"NON_ZERO_REFERENCE_REMAIN": 2,
	}
)

Enum value maps for FlushResponse_Result.

View Source
var (
	FlushResponseError_Reason_name = map[int32]string{
		0: "UNKNOWN",
		1: "NO_SUCH_NETWORK_INSTANCE",
		2: "NOT_PRIMARY",
		3: "ELECTION_ID_IN_ALL_PRIMARY",
		4: "UNSPECIFIED_ELECTION_BEHAVIOR",
		5: "INVALID_ELECTION_ID",
		6: "UNSPECIFIED_NETWORK_INSTANCE",
		7: "INVALID_NETWORK_INSTANCE",
	}
	FlushResponseError_Reason_value = map[string]int32{
		"UNKNOWN":                       0,
		"NO_SUCH_NETWORK_INSTANCE":      1,
		"NOT_PRIMARY":                   2,
		"ELECTION_ID_IN_ALL_PRIMARY":    3,
		"UNSPECIFIED_ELECTION_BEHAVIOR": 4,
		"INVALID_ELECTION_ID":           5,
		"UNSPECIFIED_NETWORK_INSTANCE":  6,
		"INVALID_NETWORK_INSTANCE":      7,
	}
)

Enum value maps for FlushResponseError_Reason.

View Source
var File_v1_proto_service_gribi_proto protoreflect.FileDescriptor
View Source
var GRIBI_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "gribi.gRIBI",
	HandlerType: (*GRIBIServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "Flush",
			Handler:    _GRIBI_Flush_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "Modify",
			Handler:       _GRIBI_Modify_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "Get",
			Handler:       _GRIBI_Get_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "v1/proto/service/gribi.proto",
}

GRIBI_ServiceDesc is the grpc.ServiceDesc for GRIBI service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterGRIBIServer

func RegisterGRIBIServer(s grpc.ServiceRegistrar, srv GRIBIServer)

Types

type AFTEntry

type AFTEntry struct {

	// The network_instance for which the response is being returned.
	NetworkInstance string `protobuf:"bytes,1,opt,name=network_instance,json=networkInstance,proto3" json:"network_instance,omitempty"`
	// Types that are assignable to Entry:
	//	*AFTEntry_Ipv4
	//	*AFTEntry_Ipv6
	//	*AFTEntry_Mpls
	//	*AFTEntry_NextHopGroup
	//	*AFTEntry_NextHop
	//	*AFTEntry_MacEntry
	//	*AFTEntry_PolicyForwardingEntry
	Entry isAFTEntry_Entry `protobuf_oneof:"entry"`
	// RIB programming status of the entry.
	RibStatus AFTEntry_Status `protobuf:"varint,11,opt,name=rib_status,json=ribStatus,proto3,enum=gribi.AFTEntry_Status" json:"rib_status,omitempty"`
	// FIB programming status of the entry.
	FibStatus AFTEntry_Status `protobuf:"varint,12,opt,name=fib_status,json=fibStatus,proto3,enum=gribi.AFTEntry_Status" json:"fib_status,omitempty"`
	// contains filtered or unexported fields
}

An individual AFTEntry that is installed on the device.

func (*AFTEntry) Descriptor deprecated

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

Deprecated: Use AFTEntry.ProtoReflect.Descriptor instead.

func (*AFTEntry) GetEntry

func (m *AFTEntry) GetEntry() isAFTEntry_Entry

func (*AFTEntry) GetFibStatus

func (x *AFTEntry) GetFibStatus() AFTEntry_Status

func (*AFTEntry) GetIpv4

func (x *AFTEntry) GetIpv4() *gribi_aft.Afts_Ipv4EntryKey

func (*AFTEntry) GetIpv6

func (x *AFTEntry) GetIpv6() *gribi_aft.Afts_Ipv6EntryKey

func (*AFTEntry) GetMacEntry

func (x *AFTEntry) GetMacEntry() *gribi_aft.Afts_MacEntryKey

func (*AFTEntry) GetMpls

func (x *AFTEntry) GetMpls() *gribi_aft.Afts_LabelEntryKey

func (*AFTEntry) GetNetworkInstance

func (x *AFTEntry) GetNetworkInstance() string

func (*AFTEntry) GetNextHop

func (x *AFTEntry) GetNextHop() *gribi_aft.Afts_NextHopKey

func (*AFTEntry) GetNextHopGroup

func (x *AFTEntry) GetNextHopGroup() *gribi_aft.Afts_NextHopGroupKey

func (*AFTEntry) GetPolicyForwardingEntry

func (x *AFTEntry) GetPolicyForwardingEntry() *gribi_aft.Afts_PolicyForwardingEntryKey

func (*AFTEntry) GetRibStatus

func (x *AFTEntry) GetRibStatus() AFTEntry_Status

func (*AFTEntry) ProtoMessage

func (*AFTEntry) ProtoMessage()

func (*AFTEntry) ProtoReflect

func (x *AFTEntry) ProtoReflect() protoreflect.Message

func (*AFTEntry) Reset

func (x *AFTEntry) Reset()

func (*AFTEntry) String

func (x *AFTEntry) String() string

type AFTEntry_Ipv4

type AFTEntry_Ipv4 struct {
	// Each openconfig.AFT.* message is a protobuf transformed
	// message corresponding to the OpenConfig AFT for that
	// schema. The auto-generated paths can be found in the definition
	// of the AFTOperation.
	Ipv4 *gribi_aft.Afts_Ipv4EntryKey `protobuf:"bytes,4,opt,name=ipv4,proto3,oneof"`
}

type AFTEntry_Ipv6

type AFTEntry_Ipv6 struct {
	Ipv6 *gribi_aft.Afts_Ipv6EntryKey `protobuf:"bytes,5,opt,name=ipv6,proto3,oneof"`
}

type AFTEntry_MacEntry

type AFTEntry_MacEntry struct {
	MacEntry *gribi_aft.Afts_MacEntryKey `protobuf:"bytes,9,opt,name=mac_entry,json=macEntry,proto3,oneof"`
}

type AFTEntry_Mpls

type AFTEntry_Mpls struct {
	Mpls *gribi_aft.Afts_LabelEntryKey `protobuf:"bytes,6,opt,name=mpls,proto3,oneof"`
}

type AFTEntry_NextHop

type AFTEntry_NextHop struct {
	NextHop *gribi_aft.Afts_NextHopKey `protobuf:"bytes,8,opt,name=next_hop,json=nextHop,proto3,oneof"`
}

type AFTEntry_NextHopGroup

type AFTEntry_NextHopGroup struct {
	NextHopGroup *gribi_aft.Afts_NextHopGroupKey `protobuf:"bytes,7,opt,name=next_hop_group,json=nextHopGroup,proto3,oneof"`
}

type AFTEntry_PolicyForwardingEntry

type AFTEntry_PolicyForwardingEntry struct {
	PolicyForwardingEntry *gribi_aft.Afts_PolicyForwardingEntryKey `protobuf:"bytes,10,opt,name=policy_forwarding_entry,json=policyForwardingEntry,proto3,oneof"`
}

type AFTEntry_Status

type AFTEntry_Status int32
const (
	// The programming status is not available.
	// When the session parameter is set to RIB ack only, the device might
	// not keep track of FIB programming status.
	AFTEntry_UNAVAILABLE    AFTEntry_Status = 0
	AFTEntry_PROGRAMMED     AFTEntry_Status = 1
	AFTEntry_NOT_PROGRAMMED AFTEntry_Status = 2
)

func (AFTEntry_Status) Descriptor

func (AFTEntry_Status) Enum

func (x AFTEntry_Status) Enum() *AFTEntry_Status

func (AFTEntry_Status) EnumDescriptor deprecated

func (AFTEntry_Status) EnumDescriptor() ([]byte, []int)

Deprecated: Use AFTEntry_Status.Descriptor instead.

func (AFTEntry_Status) Number

func (AFTEntry_Status) String

func (x AFTEntry_Status) String() string

func (AFTEntry_Status) Type

type AFTErrorDetails

type AFTErrorDetails struct {

	// Human-readable error message in the case that status is FAILED
	// or FIB_FAILED.
	ErrorMessage string `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
	// contains filtered or unexported fields
}

Populated in 'error_details' in AFTResult for failed operations.

func (*AFTErrorDetails) Descriptor deprecated

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

Deprecated: Use AFTErrorDetails.ProtoReflect.Descriptor instead.

func (*AFTErrorDetails) GetErrorMessage

func (x *AFTErrorDetails) GetErrorMessage() string

func (*AFTErrorDetails) ProtoMessage

func (*AFTErrorDetails) ProtoMessage()

func (*AFTErrorDetails) ProtoReflect

func (x *AFTErrorDetails) ProtoReflect() protoreflect.Message

func (*AFTErrorDetails) Reset

func (x *AFTErrorDetails) Reset()

func (*AFTErrorDetails) String

func (x *AFTErrorDetails) String() string

type AFTOperation

type AFTOperation struct {

	// Associate an ID with this specific request since this allows the client
	// to determine exactly which modifications have been completed in the
	// case that are multiple operations within the AFT.
	Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	// Network Instance (aka vrf aka routing-instance) to apply to.
	// If it is not specified, or is the empty string "",
	// then the request is considered invalid and the server should
	// respond with the INVALID_ARGUMENT error code in the status.proto
	// carried along with the RPC response.
	NetworkInstance string                 `protobuf:"bytes,2,opt,name=network_instance,json=networkInstance,proto3" json:"network_instance,omitempty"`
	Op              AFTOperation_Operation `protobuf:"varint,3,opt,name=op,proto3,enum=gribi.AFTOperation_Operation" json:"op,omitempty"`
	// Types that are assignable to Entry:
	//	*AFTOperation_Ipv4
	//	*AFTOperation_Ipv6
	//	*AFTOperation_Mpls
	//	*AFTOperation_NextHopGroup
	//	*AFTOperation_NextHop
	//	*AFTOperation_MacEntry
	//	*AFTOperation_PolicyForwardingEntry
	Entry isAFTOperation_Entry `protobuf_oneof:"entry"`
	// Election ID of the client.
	// In SINGLE_PRIMARY redundancy model, used by the server to determine
	// whether to process the AFTOperation.
	// The server processes the AFTOperation if
	// 1. the election_id in the AFTOperation is equal to the election_id last
	//    advertised in a ModifyRequest by the client
	//    AND
	// 2. the election_id in the AFTOperation is the highest election_id
	//    amongst all the election IDs that the server knows about, ie.
	//    the client is the primary client
	// If the election_id in the AFTOperation does not meet these criteria
	// the server discards the AFTOperation and returns FAILED in AFTResult
	ElectionId *Uint128 `protobuf:"bytes,11,opt,name=election_id,json=electionId,proto3" json:"election_id,omitempty"`
	// contains filtered or unexported fields
}

A single request to add/modify/remove a single AFT entry

func (*AFTOperation) Descriptor deprecated

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

Deprecated: Use AFTOperation.ProtoReflect.Descriptor instead.

func (*AFTOperation) GetElectionId

func (x *AFTOperation) GetElectionId() *Uint128

func (*AFTOperation) GetEntry

func (m *AFTOperation) GetEntry() isAFTOperation_Entry

func (*AFTOperation) GetId

func (x *AFTOperation) GetId() uint64

func (*AFTOperation) GetIpv4

func (*AFTOperation) GetIpv6

func (*AFTOperation) GetMacEntry

func (x *AFTOperation) GetMacEntry() *gribi_aft.Afts_MacEntryKey

func (*AFTOperation) GetMpls

func (*AFTOperation) GetNetworkInstance

func (x *AFTOperation) GetNetworkInstance() string

func (*AFTOperation) GetNextHop

func (x *AFTOperation) GetNextHop() *gribi_aft.Afts_NextHopKey

func (*AFTOperation) GetNextHopGroup

func (x *AFTOperation) GetNextHopGroup() *gribi_aft.Afts_NextHopGroupKey

func (*AFTOperation) GetOp

func (*AFTOperation) GetPolicyForwardingEntry

func (x *AFTOperation) GetPolicyForwardingEntry() *gribi_aft.Afts_PolicyForwardingEntryKey

func (*AFTOperation) ProtoMessage

func (*AFTOperation) ProtoMessage()

func (*AFTOperation) ProtoReflect

func (x *AFTOperation) ProtoReflect() protoreflect.Message

func (*AFTOperation) Reset

func (x *AFTOperation) Reset()

func (*AFTOperation) String

func (x *AFTOperation) String() string

type AFTOperation_Ipv4

type AFTOperation_Ipv4 struct {
	// Each openconfig.AFT.* message is a protobuf transformed
	// message corresponding to the OpenConfig AFT for that
	// schema.
	// Schema for IPv4UnicastEntry is generated from
	// /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry
	Ipv4 *gribi_aft.Afts_Ipv4EntryKey `protobuf:"bytes,4,opt,name=ipv4,proto3,oneof"`
}

type AFTOperation_Ipv6

type AFTOperation_Ipv6 struct {
	// Schema for IPv6UnicastEntry is generated from
	// /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry
	Ipv6 *gribi_aft.Afts_Ipv6EntryKey `protobuf:"bytes,5,opt,name=ipv6,proto3,oneof"`
}

type AFTOperation_MacEntry

type AFTOperation_MacEntry struct {
	// Schema for MacEntry is generated from
	// /network-instances/network-instance/afts/ethernet/mac-entry
	MacEntry *gribi_aft.Afts_MacEntryKey `protobuf:"bytes,9,opt,name=mac_entry,json=macEntry,proto3,oneof"`
}

type AFTOperation_Mpls

type AFTOperation_Mpls struct {
	// Schema for MPLSLabelEntry is generated from
	// /network-instances/network-instance/afts/mpls/label-entry
	Mpls *gribi_aft.Afts_LabelEntryKey `protobuf:"bytes,6,opt,name=mpls,proto3,oneof"`
}

type AFTOperation_NextHop

type AFTOperation_NextHop struct {
	// Schema for NextHop is generated from
	// /network-instances/network-instance/afts/next-hops/next-hop.
	NextHop *gribi_aft.Afts_NextHopKey `protobuf:"bytes,8,opt,name=next_hop,json=nextHop,proto3,oneof"`
}

type AFTOperation_NextHopGroup

type AFTOperation_NextHopGroup struct {
	// Schema for NextHopGroup is generated from
	// /network-instances/network-instance/afts/next-hop-groups/next-hop-group
	NextHopGroup *gribi_aft.Afts_NextHopGroupKey `protobuf:"bytes,7,opt,name=next_hop_group,json=nextHopGroup,proto3,oneof"`
}

type AFTOperation_Operation

type AFTOperation_Operation int32

The operation that this request is - either add, replace, or delete any entry from the specific AFT.

const (
	// INVALID indicates that the sender did not set the operation, and
	// should be considered an error.
	AFTOperation_INVALID AFTOperation_Operation = 0
	// ADD creates an entry within the table. If the entry already exists
	// within the specified table, the ADD should be treated as replacing
	// the existing entry with the entry specified in the operation.
	AFTOperation_ADD AFTOperation_Operation = 1
	// REPLACE replaces an existing entry within a table, it should fail if
	// the entry does not exist. A replace operation should contain all of
	// the relevant fields, such that existing entry is completely replaced
	// with the specified entry.
	AFTOperation_REPLACE AFTOperation_Operation = 2
	// DELETE removes an entry from the table. It should be idempotent as to
	// the table state. The idempotent behavior should also cover the response.
	// For example, if the entry does not exist, the device should return
	// FIB_PROGRAMMED (in the session of ack_type=RIB_AND_FIB_ACK).
	AFTOperation_DELETE AFTOperation_Operation = 3
)

func (AFTOperation_Operation) Descriptor

func (AFTOperation_Operation) Enum

func (AFTOperation_Operation) EnumDescriptor deprecated

func (AFTOperation_Operation) EnumDescriptor() ([]byte, []int)

Deprecated: Use AFTOperation_Operation.Descriptor instead.

func (AFTOperation_Operation) Number

func (AFTOperation_Operation) String

func (x AFTOperation_Operation) String() string

func (AFTOperation_Operation) Type

type AFTOperation_PolicyForwardingEntry

type AFTOperation_PolicyForwardingEntry struct {
	// Schema for PolicyForwardingGroup is generated from
	// /network-instances/network-instance/afts/policy-forwarding/
	// policy-forwarding-entry
	PolicyForwardingEntry *gribi_aft.Afts_PolicyForwardingEntryKey `protobuf:"bytes,10,opt,name=policy_forwarding_entry,json=policyForwardingEntry,proto3,oneof"`
}

type AFTResult

type AFTResult struct {

	// The ID corresponds to the operation ID that was
	// specified in the AFTOperation.
	Id     uint64           `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
	Status AFTResult_Status `protobuf:"varint,2,opt,name=status,proto3,enum=gribi.AFTResult_Status" json:"status,omitempty"`
	// Timestamp corresponding to the success or failure case being reported.
	// The timestamp reflects the time at which the gRIBI daemon received and
	// processed the acknowledgement that the entry was programmed. The typical
	// use for this timestamp is to provide tracking of programming SLIs at the
	// device.
	//
	// The timestamp is expressed as nanoseconds since the Unix Epoch in UTC.
	Timestamp int64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// Contains error details if status is FAILED or FIB_FAILED.
	ErrorDetails *AFTErrorDetails `protobuf:"bytes,4,opt,name=error_details,json=errorDetails,proto3" json:"error_details,omitempty"`
	// contains filtered or unexported fields
}

A response to add/modify/remove a single AFT entry

func (*AFTResult) Descriptor deprecated

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

Deprecated: Use AFTResult.ProtoReflect.Descriptor instead.

func (*AFTResult) GetErrorDetails

func (x *AFTResult) GetErrorDetails() *AFTErrorDetails

func (*AFTResult) GetId

func (x *AFTResult) GetId() uint64

func (*AFTResult) GetStatus

func (x *AFTResult) GetStatus() AFTResult_Status

func (*AFTResult) GetTimestamp

func (x *AFTResult) GetTimestamp() int64

func (*AFTResult) ProtoMessage

func (*AFTResult) ProtoMessage()

func (*AFTResult) ProtoReflect

func (x *AFTResult) ProtoReflect() protoreflect.Message

func (*AFTResult) Reset

func (x *AFTResult) Reset()

func (*AFTResult) String

func (x *AFTResult) String() string

type AFTResult_Status

type AFTResult_Status int32

Status of the operation. Since this is within a stream we do not use status.proto to respond since this would fail the entire RPC connection, and hence have in-band errors.

const (
	AFTResult_UNSET AFTResult_Status = 0
	// Deprecate the OK status for a modify operation since
	// there are likely to be more different cases that we
	// want to use here - e.g., RIB_PROGRAMMED and FIB_PROGRAMMED.
	//
	// Deprecated: Do not use.
	AFTResult_OK AFTResult_Status = 1
	// FAILED is used to indicate that operation that was provided
	// cannot be programmed, for example, due to invalid message
	// contents, or missing references.
	AFTResult_FAILED AFTResult_Status = 2
	// RIB programmed indicates that the received operation was
	// syntactically valid, and was programmed successfully into
	// the RIB.
	AFTResult_RIB_PROGRAMMED AFTResult_Status = 3
	// FIB_PROGRAMMED indicates that the received operation was
	// successfully programmed into the FIB. "Programmed into the FIB" is
	// defined as the forwarding entry being operational in the underlying
	// forwarding resources across the system that it is relevant to (e.g.,
	// all linecards that host a particular VRF etc). This notification may
	// not always be sent for a particular operation since:
	//
	//  a) the entry may be duplicate for another gRIBI client.
	//  b) the entry may not be the preferred system route (e.g., there
	//     may be a higher-preference RIB client that has a matching
	//     entry, and hence the FIB is unchanged).
	//
	// In cases where the FIB was meant to be programmed, but an error
	// code was received from the underlying hardware abstraction layer
	// the FIB_FAILED error code is returned.
	AFTResult_FIB_PROGRAMMED AFTResult_Status = 4
	// FIB_FAILED indicates that the received operation failed FIB
	// programming. It is used when the operation has been accepted by
	// gRIBI, but FIB programming failed.
	AFTResult_FIB_FAILED AFTResult_Status = 5
)

func (AFTResult_Status) Descriptor

func (AFTResult_Status) Enum

func (AFTResult_Status) EnumDescriptor deprecated

func (AFTResult_Status) EnumDescriptor() ([]byte, []int)

Deprecated: Use AFTResult_Status.Descriptor instead.

func (AFTResult_Status) Number

func (AFTResult_Status) String

func (x AFTResult_Status) String() string

func (AFTResult_Status) Type

type AFTType

type AFTType int32

AFT describes the set of AFTs that are supported in the gRIBI protocol.

const (
	AFTType_INVALID           AFTType = 0
	AFTType_ALL               AFTType = 1
	AFTType_IPV4              AFTType = 2
	AFTType_IPV6              AFTType = 3
	AFTType_MPLS              AFTType = 4
	AFTType_NEXTHOP           AFTType = 5
	AFTType_NEXTHOP_GROUP     AFTType = 6
	AFTType_MAC               AFTType = 7
	AFTType_POLICY_FORWARDING AFTType = 8
)

func (AFTType) Descriptor

func (AFTType) Descriptor() protoreflect.EnumDescriptor

func (AFTType) Enum

func (x AFTType) Enum() *AFTType

func (AFTType) EnumDescriptor deprecated

func (AFTType) EnumDescriptor() ([]byte, []int)

Deprecated: Use AFTType.Descriptor instead.

func (AFTType) Number

func (x AFTType) Number() protoreflect.EnumNumber

func (AFTType) String

func (x AFTType) String() string

func (AFTType) Type

func (AFTType) Type() protoreflect.EnumType

type Empty

type Empty struct {
	// contains filtered or unexported fields
}

Empty is a specific message that is used as a marker where presence of a non-nil value indicates a particular function.

func (*Empty) Descriptor deprecated

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

Deprecated: Use Empty.ProtoReflect.Descriptor instead.

func (*Empty) ProtoMessage

func (*Empty) ProtoMessage()

func (*Empty) ProtoReflect

func (x *Empty) ProtoReflect() protoreflect.Message

func (*Empty) Reset

func (x *Empty) Reset()

func (*Empty) String

func (x *Empty) String() string

type FlushRequest

type FlushRequest struct {

	// election specifies the election ID from a client. It is valid only
	// when the server has clients that are operating in the SINGLE_PRIMARY mode.
	// If the client does not supply one of the messages within election, the
	// server should respond with an error with canonical code
	// FAILED_PRECONDITION, and specifying UNSPECIFIED_ELECTION_BEHAVIOR in the
	// FlushResponseError in the details returned.
	//
	// Types that are assignable to Election:
	//	*FlushRequest_Id
	//	*FlushRequest_Override
	Election isFlushRequest_Election `protobuf_oneof:"election"`
	// network_instance specifies the Network Instance that should be flushed. If
	// the client specifies neither name nor all the server should respond with
	// an error specifying the INVALID_ARGUMENT canonical error code, and the
	// UNSPECIFIED_NETWORK_INSTANCE error code.
	//
	// Types that are assignable to NetworkInstance:
	//	*FlushRequest_Name
	//	*FlushRequest_All
	NetworkInstance isFlushRequest_NetworkInstance `protobuf_oneof:"network_instance"`
	// contains filtered or unexported fields
}

FlushRequest is the request sent from the client to the server when a Flush RPC is called.

func (*FlushRequest) Descriptor deprecated

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

Deprecated: Use FlushRequest.ProtoReflect.Descriptor instead.

func (*FlushRequest) GetAll

func (x *FlushRequest) GetAll() *Empty

func (*FlushRequest) GetElection

func (m *FlushRequest) GetElection() isFlushRequest_Election

func (*FlushRequest) GetId

func (x *FlushRequest) GetId() *Uint128

func (*FlushRequest) GetName

func (x *FlushRequest) GetName() string

func (*FlushRequest) GetNetworkInstance

func (m *FlushRequest) GetNetworkInstance() isFlushRequest_NetworkInstance

func (*FlushRequest) GetOverride

func (x *FlushRequest) GetOverride() *Empty

func (*FlushRequest) ProtoMessage

func (*FlushRequest) ProtoMessage()

func (*FlushRequest) ProtoReflect

func (x *FlushRequest) ProtoReflect() protoreflect.Message

func (*FlushRequest) Reset

func (x *FlushRequest) Reset()

func (*FlushRequest) String

func (x *FlushRequest) String() string

type FlushRequest_All

type FlushRequest_All struct {
	// all indicates that entries for all network instances should be
	// flushed.
	All *Empty `protobuf:"bytes,4,opt,name=all,proto3,oneof"`
}

type FlushRequest_Id

type FlushRequest_Id struct {
	// id indicates that the Flush ID supplied should be compared to the
	// existing election ID on the server. The logic
	// for whether the Flush RPC is accepted is the same as that which is
	// implemented for Modify. In summary:
	//
	//   - if the election ID is equal to the previous highest known ID, the
	//     Flush is accepted.
	//   - if the election ID is greater than the previous highest known ID,
	//     the Flush is accepted.
	//   - if the election ID is less than the previous highest known ID, the
	//     Flush is rejected and an error with reason NOT_PRIMARY is returned.
	//     The canonical error code used should be FAILED_PRECONDITION.
	//
	// If the server is currently operating in ALL_PRIMARY mode the server
	// should return an error specifying ELECTION_ID_IN_ALL_PRIMARY reason. The
	// status (canonical error code) should be FAILED_PRECONDITION.
	Id *Uint128 `protobuf:"bytes,1,opt,name=id,proto3,oneof"`
}

type FlushRequest_Name

type FlushRequest_Name struct {
	// The network instance from which the entries should be flushed.
	// If name is set to "", this is considered invalid, and an error specifying
	// the INVALID_ARGUMENT canonical error code, and the
	// INVALID_NETWORK_INSTANCE reason should be specified. If the network
	// instance specified does not exist the INVALID_ARGUMENT canonical error
	// code, with the NO_SUCH_NETWORK_INSTANCE code should be specified.
	Name string `protobuf:"bytes,3,opt,name=name,proto3,oneof"`
}

type FlushRequest_Override

type FlushRequest_Override struct {
	// override indicates that the client explicitly requests that the election
	// ID should not be compared, regardless of whether there are SINGLE_PRIMARY
	// clients on the server.
	Override *Empty `protobuf:"bytes,2,opt,name=override,proto3,oneof"`
}

type FlushResponse

type FlushResponse struct {

	// The timestamp at which the Flush operation succeeded and was returned to
	// the client. It is specified in nanoseconds since the Unix epoch.
	Timestamp int64                `protobuf:"varint,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	Result    FlushResponse_Result `protobuf:"varint,2,opt,name=result,proto3,enum=gribi.FlushResponse_Result" json:"result,omitempty"`
	// contains filtered or unexported fields
}

FlushResponse is the response from the server to the client to the Flush RPC.

func (*FlushResponse) Descriptor deprecated

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

Deprecated: Use FlushResponse.ProtoReflect.Descriptor instead.

func (*FlushResponse) GetResult

func (x *FlushResponse) GetResult() FlushResponse_Result

func (*FlushResponse) GetTimestamp

func (x *FlushResponse) GetTimestamp() int64

func (*FlushResponse) ProtoMessage

func (*FlushResponse) ProtoMessage()

func (*FlushResponse) ProtoReflect

func (x *FlushResponse) ProtoReflect() protoreflect.Message

func (*FlushResponse) Reset

func (x *FlushResponse) Reset()

func (*FlushResponse) String

func (x *FlushResponse) String() string

type FlushResponseError

type FlushResponseError struct {
	Status FlushResponseError_Reason `protobuf:"varint,1,opt,name=status,proto3,enum=gribi.FlushResponseError_Reason" json:"status,omitempty"`
	// contains filtered or unexported fields
}

FlushResponseError is used in the details of the gRPC status in the case that the Flush RPC encounters an error.

func (*FlushResponseError) Descriptor deprecated

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

Deprecated: Use FlushResponseError.ProtoReflect.Descriptor instead.

func (*FlushResponseError) GetStatus

func (*FlushResponseError) ProtoMessage

func (*FlushResponseError) ProtoMessage()

func (*FlushResponseError) ProtoReflect

func (x *FlushResponseError) ProtoReflect() protoreflect.Message

func (*FlushResponseError) Reset

func (x *FlushResponseError) Reset()

func (*FlushResponseError) String

func (x *FlushResponseError) String() string

type FlushResponseError_Reason

type FlushResponseError_Reason int32
const (
	// An unknown failure occurred.
	FlushResponseError_UNKNOWN FlushResponseError_Reason = 0
	// The network instance specified was unknown.
	FlushResponseError_NO_SUCH_NETWORK_INSTANCE FlushResponseError_Reason = 1
	// The election ID that was specified was not the current primary.
	FlushResponseError_NOT_PRIMARY FlushResponseError_Reason = 2
	// An election ID was supplied when the server is operating in ALL_PRIMARY
	// mode.
	FlushResponseError_ELECTION_ID_IN_ALL_PRIMARY FlushResponseError_Reason = 3
	// The server is operating in SINGLE_PRIMARY mode and neither an election ID
	// nor an override was specified.
	FlushResponseError_UNSPECIFIED_ELECTION_BEHAVIOR FlushResponseError_Reason = 4
	// The client supplied an election ID value that is invalid (i.e., 0).
	FlushResponseError_INVALID_ELECTION_ID FlushResponseError_Reason = 5
	// The client did not specify a network instance to flush.
	FlushResponseError_UNSPECIFIED_NETWORK_INSTANCE FlushResponseError_Reason = 6
	// The client specified a network instance that was invalid.
	FlushResponseError_INVALID_NETWORK_INSTANCE FlushResponseError_Reason = 7
)

func (FlushResponseError_Reason) Descriptor

func (FlushResponseError_Reason) Enum

func (FlushResponseError_Reason) EnumDescriptor deprecated

func (FlushResponseError_Reason) EnumDescriptor() ([]byte, []int)

Deprecated: Use FlushResponseError_Reason.Descriptor instead.

func (FlushResponseError_Reason) Number

func (FlushResponseError_Reason) String

func (x FlushResponseError_Reason) String() string

func (FlushResponseError_Reason) Type

type FlushResponse_Result

type FlushResponse_Result int32
const (
	FlushResponse_UNSET FlushResponse_Result = 0
	// The device has removed all gRIBI objects in the specified network
	// instance.
	FlushResponse_OK FlushResponse_Result = 1
	// The specified network instance contains gRIBI NextHops or NextHopGroups
	// that are referenced by other network instances.
	// The device has removed all gRIBI objects except the non-zero referenced
	// NextHops and NextHopGroups in the network instance.
	FlushResponse_NON_ZERO_REFERENCE_REMAIN FlushResponse_Result = 2
)

func (FlushResponse_Result) Descriptor

func (FlushResponse_Result) Enum

func (FlushResponse_Result) EnumDescriptor deprecated

func (FlushResponse_Result) EnumDescriptor() ([]byte, []int)

Deprecated: Use FlushResponse_Result.Descriptor instead.

func (FlushResponse_Result) Number

func (FlushResponse_Result) String

func (x FlushResponse_Result) String() string

func (FlushResponse_Result) Type

type GRIBIClient

type GRIBIClient interface {
	// Modify provides a bidirectional streaming RPC that can be used to issue
	// modifications to the AFT in the form of ModifyRequest(s).
	// The network element responds (asynchronously) with a ModifyResponse
	// for each ModifyRequest indicating what action was taken, once each
	// Operation within the request has been completed.
	Modify(ctx context.Context, opts ...grpc.CallOption) (GRIBI_ModifyClient, error)
	// Get provides a client a means to retrieve the contents of the installed
	// AFTs from the gRIBI daemon. The client requests a Get, and the server
	// responds with the set of currently installed entries (that have been ACK'd
	// according to the underlying resource to be programmed to) via the
	// GetResponse stream. Once all entries have been sent, the server closes the
	// RPC.
	//
	// The Get RPC is typically used to allow reconcilation between a client and
	// a server or for periodical consistency checking.
	Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (GRIBI_GetClient, error)
	// Flush allows a client to remove all entries currently installed on the
	// server via gRIBI. The client requests a Flush, and the server removes all
	// entries that match the context described by the FlushRequest.
	Flush(ctx context.Context, in *FlushRequest, opts ...grpc.CallOption) (*FlushResponse, error)
}

GRIBIClient is the client API for GRIBI service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewGRIBIClient

func NewGRIBIClient(cc grpc.ClientConnInterface) GRIBIClient

type GRIBIServer

type GRIBIServer interface {
	// Modify provides a bidirectional streaming RPC that can be used to issue
	// modifications to the AFT in the form of ModifyRequest(s).
	// The network element responds (asynchronously) with a ModifyResponse
	// for each ModifyRequest indicating what action was taken, once each
	// Operation within the request has been completed.
	Modify(GRIBI_ModifyServer) error
	// Get provides a client a means to retrieve the contents of the installed
	// AFTs from the gRIBI daemon. The client requests a Get, and the server
	// responds with the set of currently installed entries (that have been ACK'd
	// according to the underlying resource to be programmed to) via the
	// GetResponse stream. Once all entries have been sent, the server closes the
	// RPC.
	//
	// The Get RPC is typically used to allow reconcilation between a client and
	// a server or for periodical consistency checking.
	Get(*GetRequest, GRIBI_GetServer) error
	// Flush allows a client to remove all entries currently installed on the
	// server via gRIBI. The client requests a Flush, and the server removes all
	// entries that match the context described by the FlushRequest.
	Flush(context.Context, *FlushRequest) (*FlushResponse, error)
	// contains filtered or unexported methods
}

GRIBIServer is the server API for GRIBI service. All implementations must embed UnimplementedGRIBIServer for forward compatibility

type GRIBI_GetClient

type GRIBI_GetClient interface {
	Recv() (*GetResponse, error)
	grpc.ClientStream
}

type GRIBI_GetServer

type GRIBI_GetServer interface {
	Send(*GetResponse) error
	grpc.ServerStream
}

type GRIBI_ModifyClient

type GRIBI_ModifyClient interface {
	Send(*ModifyRequest) error
	Recv() (*ModifyResponse, error)
	grpc.ClientStream
}

type GRIBI_ModifyServer

type GRIBI_ModifyServer interface {
	Send(*ModifyResponse) error
	Recv() (*ModifyRequest, error)
	grpc.ServerStream
}

type GetRequest

type GetRequest struct {

	// Types that are assignable to NetworkInstance:
	//	*GetRequest_Name
	//	*GetRequest_All
	NetworkInstance isGetRequest_NetworkInstance `protobuf_oneof:"network_instance"`
	// The AFT for which entries should be retrieved. If the AFT is
	// invalid, the server should respond with the INVALID_ARGUMENT
	// error code. If the AFT is unsupported, it should respond with
	// UNIMPLEMENTED in the status.proto carried along with the RPC
	// response.
	Aft AFTType `protobuf:"varint,3,opt,name=aft,proto3,enum=gribi.AFTType" json:"aft,omitempty"`
	// contains filtered or unexported fields
}

func (*GetRequest) Descriptor deprecated

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

Deprecated: Use GetRequest.ProtoReflect.Descriptor instead.

func (*GetRequest) GetAft

func (x *GetRequest) GetAft() AFTType

func (*GetRequest) GetAll

func (x *GetRequest) GetAll() *Empty

func (*GetRequest) GetName

func (x *GetRequest) GetName() string

func (*GetRequest) GetNetworkInstance

func (m *GetRequest) GetNetworkInstance() isGetRequest_NetworkInstance

func (*GetRequest) ProtoMessage

func (*GetRequest) ProtoMessage()

func (*GetRequest) ProtoReflect

func (x *GetRequest) ProtoReflect() protoreflect.Message

func (*GetRequest) Reset

func (x *GetRequest) Reset()

func (*GetRequest) String

func (x *GetRequest) String() string

type GetRequest_All

type GetRequest_All struct {
	// all indicates that entries for all network instances for the
	// should be returned.
	All *Empty `protobuf:"bytes,2,opt,name=all,proto3,oneof"`
}

type GetRequest_Name

type GetRequest_Name struct {
	// The network instance from which the entries should be retrieved.
	// If `network_instance` is nil (`name` and `all` not specified),
	// or if `name` is specified and it is the empty string "",
	// then the request is considered invalid and the server should
	// respond with the INVALID_ARGUMENT error code in the status.proto
	// carried along with the RPC response.
	Name string `protobuf:"bytes,1,opt,name=name,proto3,oneof"`
}

type GetResponse

type GetResponse struct {

	// A set of entries that are installed on the device.
	Entry []*AFTEntry `protobuf:"bytes,1,rep,name=entry,proto3" json:"entry,omitempty"`
	// contains filtered or unexported fields
}

func (*GetResponse) Descriptor deprecated

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

Deprecated: Use GetResponse.ProtoReflect.Descriptor instead.

func (*GetResponse) GetEntry

func (x *GetResponse) GetEntry() []*AFTEntry

func (*GetResponse) ProtoMessage

func (*GetResponse) ProtoMessage()

func (*GetResponse) ProtoReflect

func (x *GetResponse) ProtoReflect() protoreflect.Message

func (*GetResponse) Reset

func (x *GetResponse) Reset()

func (*GetResponse) String

func (x *GetResponse) String() string

type ModifyRPCErrorDetails

type ModifyRPCErrorDetails struct {
	Reason ModifyRPCErrorDetails_Reason `protobuf:"varint,1,opt,name=reason,proto3,enum=gribi.ModifyRPCErrorDetails_Reason" json:"reason,omitempty"`
	// contains filtered or unexported fields
}

Populated in `details` in status.proto when an error that causes the network element to close the stream.

func (*ModifyRPCErrorDetails) Descriptor deprecated

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

Deprecated: Use ModifyRPCErrorDetails.ProtoReflect.Descriptor instead.

func (*ModifyRPCErrorDetails) GetReason

func (*ModifyRPCErrorDetails) ProtoMessage

func (*ModifyRPCErrorDetails) ProtoMessage()

func (*ModifyRPCErrorDetails) ProtoReflect

func (x *ModifyRPCErrorDetails) ProtoReflect() protoreflect.Message

func (*ModifyRPCErrorDetails) Reset

func (x *ModifyRPCErrorDetails) Reset()

func (*ModifyRPCErrorDetails) String

func (x *ModifyRPCErrorDetails) String() string

type ModifyRPCErrorDetails_Reason

type ModifyRPCErrorDetails_Reason int32
const (
	// Error with an unknown cause.
	ModifyRPCErrorDetails_UNKNOWN ModifyRPCErrorDetails_Reason = 0
	// The network element cannot support the
	// aft_persistence or aft_result_status_type
	// requested in session parameters in ModifyRequest
	// If the client didn't send any session parameters, then
	// the network element doesn't support the default values.
	ModifyRPCErrorDetails_UNSUPPORTED_PARAMS ModifyRPCErrorDetails_Reason = 1
	// A session_parameters message in a ModifyRequest was received with
	// aft_persistence or aft_result_status_type more
	// than once; or was received after one or more AFTOperations
	// was issued.
	ModifyRPCErrorDetails_MODIFY_NOT_ALLOWED ModifyRPCErrorDetails_Reason = 2
	// The attribute values of atleast one session parameter
	// received in the ModifyRequest differs from the values received
	// from existing clients
	ModifyRPCErrorDetails_PARAMS_DIFFER_FROM_OTHER_CLIENTS ModifyRPCErrorDetails_Reason = 3
	// election_id in a ModifyRequest is not supported in ALL_PRIMARY
	// redundancy mode.
	ModifyRPCErrorDetails_ELECTION_ID_IN_ALL_PRIMARY ModifyRPCErrorDetails_Reason = 4
)

func (ModifyRPCErrorDetails_Reason) Descriptor

func (ModifyRPCErrorDetails_Reason) Enum

func (ModifyRPCErrorDetails_Reason) EnumDescriptor deprecated

func (ModifyRPCErrorDetails_Reason) EnumDescriptor() ([]byte, []int)

Deprecated: Use ModifyRPCErrorDetails_Reason.Descriptor instead.

func (ModifyRPCErrorDetails_Reason) Number

func (ModifyRPCErrorDetails_Reason) String

func (ModifyRPCErrorDetails_Reason) Type

type ModifyRequest

type ModifyRequest struct {

	// A group of requests to add/modify/remove a single AFT entry.
	//
	// A gRIBI server :
	//  * Should process AFTOperations per the received order.
	//  * Should not close the RPC session due to errors encountered in an
	//    AFTOperation. Invalid AFTOperations should be responded to with
	//    failures within the stream.
	//  * May finish pending AFTOperations if existing RPC session is
	//    dropped/closed/cancelled.
	Operation []*AFTOperation `protobuf:"bytes,1,rep,name=operation,proto3" json:"operation,omitempty"`
	// Meta information that the external entity sends to the network
	// element. If a non default set of parameters is required, then
	// `params` MUST be sent by the external entity before
	// it sends the network element any AFTOperations.
	// It's possible that the default set of parameters isn't supported
	// by a network element. In such a case, if the client hasn't sent
	// any session parameters, then the network element closes the Modify RPC
	// stream when the first AFTOperation is received in a ModifyRequest and
	// sets status.code
	// (http://tinyurl.com/grpc-status-proto)
	// to `UNIMPLEMENTED` and reason to `UNSUPPORTED_PARAMS`
	// in ModifyRPCErrorDetails. ModifyRPCErrorDetails is filled in
	// status.details.
	//
	// `params` MUST be sent only once during the lifetime of the session.
	// All clients programming a network element's RIB,
	// MUST send the same values of all the attributes of `params`
	//
	// The network element responds with session_params_result.status = OK in
	// ModifyResponse if it processed `params` without any error.
	//
	// The network element does not respond with session_params_result if
	// there's an error while processing `params`, instead it disconnects
	// the session and sets the RPC error code based on status.proto
	// (http://tinyurl.com/grpc-status-proto)
	// status.code is set to
	//  - UNIMPLEMENTED when it encounters an unsupported `persistence`
	//    or `ack_type` or `redundancy`
	//  - FAILED_PRECONDITION for the other cases
	// status.details is filled with the ModifyRPCErrorDetails message with
	// an appropriate `reason`.
	//
	// If the client does not send session_parameters, then the network element
	// assumes the following defaults:
	//   - ALL_PRIMARY for client redundancy
	//   - A client disconnect is treated as if the client issued DELETE
	//     AFTOperation for all the AFT entries that client ADDed.
	//   - Each AFTOperation is acknowledged with OK or FAILED in
	//     in the AFTResult of the ModifyResponse.
	Params *SessionParameters `protobuf:"bytes,2,opt,name=params,proto3" json:"params,omitempty"`
	// election_id is used by the network element to
	// select a primary client when the client redundancy mode
	// is SINGLE_PRIMARY.
	//
	// A client sends a ModifyRequest with only the election_id
	// field populated after it connects to the network element,
	// and everytime its election_id is updated (usually as a
	// result of an election amongst clients). The network element
	// responds with a ModifyResponse that has only the election_id
	// field populated. The election_id in the ModifyResponse is the
	// highest election_id that the network element has learnt
	// from any client.
	//
	// The network element selects the client with the highest
	// election_id as the primary. If the election_id sent by the
	// client matches the previous highest value, the newer client is
	// considered primary, in order to allow for a client to reconnect
	// without an external election having taken place.
	//
	// Upon discovering a failover, the server:
	//  * SHOULD stop processing pending AFTOperations that were sent by
	//    the previous primary.
	//  * MUST not send responses for AFTOperations of the previous primary
	//    to the acquiring-primary.
	//
	// Only AFT operations from the primary client are acted upon by
	// the network element. AFT operations from non-primary clients
	// are not actioned, and a failure response is sent to the client.
	//
	// If the client redundancy mode is ALL_PRIMARY, but a client
	// sends election_id, the network element closes the Modify RPC
	// stream, sets FAILED_PRECONDITION in
	// status.proto's `code` and sets ModifyRPCErrorDetails.reason
	// to ELECTION_ID_IN_ALL_PRIMARY.
	//
	// The election_id MUST be non zero. When a network element receives
	// an election_id of 0, it closes the stream with status.code
	// set to INVALID_ARGUMENT.
	// The election_id can only be increased monotonically by a client
	// during a RPC session. This simplifies server implementation.
	ElectionId *Uint128 `protobuf:"bytes,3,opt,name=election_id,json=electionId,proto3" json:"election_id,omitempty"`
	// contains filtered or unexported fields
}

ModifyRequest is a message used by the client to manipulate the state of the RIB on the target device.

func (*ModifyRequest) Descriptor deprecated

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

Deprecated: Use ModifyRequest.ProtoReflect.Descriptor instead.

func (*ModifyRequest) GetElectionId

func (x *ModifyRequest) GetElectionId() *Uint128

func (*ModifyRequest) GetOperation

func (x *ModifyRequest) GetOperation() []*AFTOperation

func (*ModifyRequest) GetParams

func (x *ModifyRequest) GetParams() *SessionParameters

func (*ModifyRequest) ProtoMessage

func (*ModifyRequest) ProtoMessage()

func (*ModifyRequest) ProtoReflect

func (x *ModifyRequest) ProtoReflect() protoreflect.Message

func (*ModifyRequest) Reset

func (x *ModifyRequest) Reset()

func (*ModifyRequest) String

func (x *ModifyRequest) String() string

type ModifyResponse

type ModifyResponse struct {

	// One or more responses to requests. Clients should expect that
	// the ModifyResponse *does not* correlate to the ModifyRequest’s
	// contents.
	Result []*AFTResult `protobuf:"bytes,1,rep,name=result,proto3" json:"result,omitempty"`
	// Response to the session_parameters in a ModifyRequest
	// when there are no errors.
	// If there's an error then ModifyRPCErrorDetails is filled
	// in status.proto's `details` attribute.
	SessionParamsResult *SessionParametersResult `protobuf:"bytes,2,opt,name=session_params_result,json=sessionParamsResult,proto3" json:"session_params_result,omitempty"`
	// Response to a ModifyRequest that contains only the election_id field.
	// The network element sends a ModifyResponse with only the election_id
	// populated. The value populated is the highest election_id that the
	// network element has learnt from any client.
	ElectionId *Uint128 `protobuf:"bytes,3,opt,name=election_id,json=electionId,proto3" json:"election_id,omitempty"`
	// contains filtered or unexported fields
}

A set of AFT responses.

func (*ModifyResponse) Descriptor deprecated

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

Deprecated: Use ModifyResponse.ProtoReflect.Descriptor instead.

func (*ModifyResponse) GetElectionId

func (x *ModifyResponse) GetElectionId() *Uint128

func (*ModifyResponse) GetResult

func (x *ModifyResponse) GetResult() []*AFTResult

func (*ModifyResponse) GetSessionParamsResult

func (x *ModifyResponse) GetSessionParamsResult() *SessionParametersResult

func (*ModifyResponse) ProtoMessage

func (*ModifyResponse) ProtoMessage()

func (*ModifyResponse) ProtoReflect

func (x *ModifyResponse) ProtoReflect() protoreflect.Message

func (*ModifyResponse) Reset

func (x *ModifyResponse) Reset()

func (*ModifyResponse) String

func (x *ModifyResponse) String() string

type SessionParameters

type SessionParameters struct {
	Redundancy  SessionParameters_ClientRedundancy    `protobuf:"varint,1,opt,name=redundancy,proto3,enum=gribi.SessionParameters_ClientRedundancy" json:"redundancy,omitempty"`
	Persistence SessionParameters_AFTPersistence      `protobuf:"varint,2,opt,name=persistence,proto3,enum=gribi.SessionParameters_AFTPersistence" json:"persistence,omitempty"`
	AckType     SessionParameters_AFTResultStatusType `` /* 132-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*SessionParameters) Descriptor deprecated

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

Deprecated: Use SessionParameters.ProtoReflect.Descriptor instead.

func (*SessionParameters) GetAckType

func (*SessionParameters) GetPersistence

func (*SessionParameters) GetRedundancy

func (*SessionParameters) ProtoMessage

func (*SessionParameters) ProtoMessage()

func (*SessionParameters) ProtoReflect

func (x *SessionParameters) ProtoReflect() protoreflect.Message

func (*SessionParameters) Reset

func (x *SessionParameters) Reset()

func (*SessionParameters) String

func (x *SessionParameters) String() string

type SessionParametersResult

type SessionParametersResult struct {
	Status SessionParametersResult_Status `protobuf:"varint,1,opt,name=status,proto3,enum=gribi.SessionParametersResult_Status" json:"status,omitempty"`
	// contains filtered or unexported fields
}

Response when ModifyRequest.params is syntactically valid and all requested parameters are supported by the network element.

func (*SessionParametersResult) Descriptor deprecated

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

Deprecated: Use SessionParametersResult.ProtoReflect.Descriptor instead.

func (*SessionParametersResult) GetStatus

func (*SessionParametersResult) ProtoMessage

func (*SessionParametersResult) ProtoMessage()

func (*SessionParametersResult) ProtoReflect

func (x *SessionParametersResult) ProtoReflect() protoreflect.Message

func (*SessionParametersResult) Reset

func (x *SessionParametersResult) Reset()

func (*SessionParametersResult) String

func (x *SessionParametersResult) String() string

type SessionParametersResult_Status

type SessionParametersResult_Status int32
const (
	// No errors, network element supports requested
	// parameters
	SessionParametersResult_OK SessionParametersResult_Status = 0
)

func (SessionParametersResult_Status) Descriptor

func (SessionParametersResult_Status) Enum

func (SessionParametersResult_Status) EnumDescriptor deprecated

func (SessionParametersResult_Status) EnumDescriptor() ([]byte, []int)

Deprecated: Use SessionParametersResult_Status.Descriptor instead.

func (SessionParametersResult_Status) Number

func (SessionParametersResult_Status) String

func (SessionParametersResult_Status) Type

type SessionParameters_AFTPersistence

type SessionParameters_AFTPersistence int32

The desired behavior when a client disconnects from the network element.

const (
	// When a client disconnects, the network element deletes
	// all AFT entries received from that client.
	SessionParameters_DELETE SessionParameters_AFTPersistence = 0
	// When the primary client disconects, the network element
	// preserves the gRIBI process' RIB, system RIB and system
	// FIB.
	// When a non primary client disconnects, there's no action
	// required as all network element state is conveyed by the
	// primary client
	SessionParameters_PRESERVE SessionParameters_AFTPersistence = 1
)

func (SessionParameters_AFTPersistence) Descriptor

func (SessionParameters_AFTPersistence) Enum

func (SessionParameters_AFTPersistence) EnumDescriptor deprecated

func (SessionParameters_AFTPersistence) EnumDescriptor() ([]byte, []int)

Deprecated: Use SessionParameters_AFTPersistence.Descriptor instead.

func (SessionParameters_AFTPersistence) Number

func (SessionParameters_AFTPersistence) String

func (SessionParameters_AFTPersistence) Type

type SessionParameters_AFTResultStatusType

type SessionParameters_AFTResultStatusType int32

The type of response that the client expects from the network element in AFTResult.status

const (
	// network element must respond with RIB_PROGRAMMED
	// on a successful update to the gRIBI process' RIB.
	SessionParameters_RIB_ACK SessionParameters_AFTResultStatusType = 0
	// network element must respond with RIB_PROGRAMMED
	// on a successful update to the gRIBI process' RIB.
	// If the AFT entry is also programmed in the network
	// element's FIB, a FIB_PROGRAMMED response must be sent
	// A FIB_PROGRAMMED response is a combined
	// acknowledgement that the AFT entry is programmed in
	// the gRIBI process' RIB and the FIB, so there's no need
	// to send both RIB_PROGRAMMED and FIB_PROGRAMMED when
	// the AFT entry is programmed in the FIB.
	SessionParameters_RIB_AND_FIB_ACK SessionParameters_AFTResultStatusType = 1
)

func (SessionParameters_AFTResultStatusType) Descriptor

func (SessionParameters_AFTResultStatusType) Enum

func (SessionParameters_AFTResultStatusType) EnumDescriptor deprecated

func (SessionParameters_AFTResultStatusType) EnumDescriptor() ([]byte, []int)

Deprecated: Use SessionParameters_AFTResultStatusType.Descriptor instead.

func (SessionParameters_AFTResultStatusType) Number

func (SessionParameters_AFTResultStatusType) String

func (SessionParameters_AFTResultStatusType) Type

type SessionParameters_ClientRedundancy

type SessionParameters_ClientRedundancy int32

The type of redundancy amongst the external entities

const (
	// Accept AFTOperations from all clients. The network element assumes
	// that all clients convey the same AFT state. The network element
	// uses "add on first ADD operation and delete on last DELETE operation
	// semantics, ie., it Adds an AFT entry to its gRIBI state when the
	// network element receives the first ADD AFTOperation from any client;
	// and the AFT entry is deleted from the network element's gRIBI state
	// when the network element has processed DELETE for the AFT entry
	// from all clients that issued an ADD for that AFT entry.
	// In other words, the AFT entries are reference counted, where
	// the reference count is the number of clients that have issued
	// ADD AFTOperation for that AFT entry.
	// REPLACE AFTOperations from all clients are processed for any
	// AFT entries.
	SessionParameters_ALL_PRIMARY SessionParameters_ClientRedundancy = 0
	// Clients take part in an election process that leads to
	// a single client becoming the primary client. The
	// primary client has the highest election ID. The network element
	// accepts AFTOperations from the primary client only.
	SessionParameters_SINGLE_PRIMARY SessionParameters_ClientRedundancy = 1
)

func (SessionParameters_ClientRedundancy) Descriptor

func (SessionParameters_ClientRedundancy) Enum

func (SessionParameters_ClientRedundancy) EnumDescriptor deprecated

func (SessionParameters_ClientRedundancy) EnumDescriptor() ([]byte, []int)

Deprecated: Use SessionParameters_ClientRedundancy.Descriptor instead.

func (SessionParameters_ClientRedundancy) Number

func (SessionParameters_ClientRedundancy) String

func (SessionParameters_ClientRedundancy) Type

type Uint128

type Uint128 struct {
	High uint64 `protobuf:"varint,1,opt,name=high,proto3" json:"high,omitempty"`
	Low  uint64 `protobuf:"varint,2,opt,name=low,proto3" json:"low,omitempty"`
	// contains filtered or unexported fields
}

func (*Uint128) Descriptor deprecated

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

Deprecated: Use Uint128.ProtoReflect.Descriptor instead.

func (*Uint128) GetHigh

func (x *Uint128) GetHigh() uint64

func (*Uint128) GetLow

func (x *Uint128) GetLow() uint64

func (*Uint128) ProtoMessage

func (*Uint128) ProtoMessage()

func (*Uint128) ProtoReflect

func (x *Uint128) ProtoReflect() protoreflect.Message

func (*Uint128) Reset

func (x *Uint128) Reset()

func (*Uint128) String

func (x *Uint128) String() string

type UnimplementedGRIBIServer

type UnimplementedGRIBIServer struct {
}

UnimplementedGRIBIServer must be embedded to have forward compatible implementations.

func (UnimplementedGRIBIServer) Flush

func (UnimplementedGRIBIServer) Get

func (UnimplementedGRIBIServer) Modify

type UnsafeGRIBIServer

type UnsafeGRIBIServer interface {
	// contains filtered or unexported methods
}

UnsafeGRIBIServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to GRIBIServer will result in compilation errors.

Jump to

Keyboard shortcuts

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