diff --git a/go.mod b/go.mod index 7381d6c..2c6a6bc 100644 --- a/go.mod +++ b/go.mod @@ -1,18 +1,16 @@ module github.com/openconfig/gribi -go 1.25.0 - -toolchain go1.27.0 +go 1.26.0 require ( github.com/openconfig/ygot v0.35.0 - google.golang.org/grpc v1.83.1 + google.golang.org/grpc v1.84.0 google.golang.org/protobuf v1.36.12 ) require ( - golang.org/x/net v0.55.0 // indirect - golang.org/x/sys v0.45.0 // indirect - golang.org/x/text v0.37.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa // indirect + golang.org/x/net v0.59.0 // indirect + golang.org/x/sys v0.48.0 // indirect + golang.org/x/text v0.42.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20261005182115-fad411399dd8 // indirect ) diff --git a/go.sum b/go.sum index 86718ae..e2aef67 100644 --- a/go.sum +++ b/go.sum @@ -1,40 +1,20 @@ -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= -github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/openconfig/ygot v0.35.0 h1:RCS7a5h40cyGAZQjQZGA7SunPuKl188l94DYTnHFX9A= github.com/openconfig/ygot v0.35.0/go.mod h1:bMjol0ooiK1suQZ8vG3OVj+I6D8yk9/aP6zXCf+V0kQ= -go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= -go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/otel v1.44.0 h1:JjwHmHpA4iZ3wBxluu2fbbE7j4kqlE8jXyAyPXH7HqU= -go.opentelemetry.io/otel v1.44.0/go.mod h1:BMgjTHL9WPRlRjL2oZCBTL4whCGtXch2H4BhOPIAyYc= -go.opentelemetry.io/otel/metric v1.44.0 h1:1w0gILTcHdr3YI+ixLyjemwrVnsMURbTZFrSYCdDdmc= -go.opentelemetry.io/otel/metric v1.44.0/go.mod h1:8O7hanEPBNgEMmybD3s2VBKcgWOCsA6tzHBPODAiquo= -go.opentelemetry.io/otel/sdk v1.44.0 h1:nHYwb9lK+fJPU/dnT6s7W7Z8itMWyqrnVfbheVYrZ58= -go.opentelemetry.io/otel/sdk v1.44.0/go.mod h1:Osuydd3Se74nqjAKxid74N5eC+jfEqfTegHRnq58oK0= -go.opentelemetry.io/otel/sdk/metric v1.44.0 h1:3LlKgI+VjbVsjNRFZJZAJ30WjXC5VkNRks6si09iEfI= -go.opentelemetry.io/otel/sdk/metric v1.44.0/go.mod h1:5B5pMARnXxKhltooO4xUuCBorl65a4EpnTalObqOigA= -go.opentelemetry.io/otel/trace v1.44.0 h1:jxF5CsGYCe74MCRx2X4g7WsY/VBKRqqpNvXlX/6gtIk= -go.opentelemetry.io/otel/trace v1.44.0/go.mod h1:oLl1jrMQAVo6v3GAggN+1VH9VIz9iUSvW53sW1Q8PIE= -golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= -golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= -golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY= -golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= -golang.org/x/text v0.37.0 h1:Cqjiwd9eSg8e0QAkyCaQTNHFIIzWtidPahFWR83rTrc= -golang.org/x/text v0.37.0/go.mod h1:a5sjxXGs9hsn/AJVwuElvCAo9v8QYLzvavO5z2PiM38= +golang.org/x/net v0.59.0 h1:5zfYln+w5XCxwrnMMJPufRgNoXEaGxl0wo5GqPXyues= +golang.org/x/net v0.59.0/go.mod h1:2DA/G1UfVbCpQPeWTmMPGY7Cs2PkBkwu743bVX5PIVg= +golang.org/x/sys v0.48.0 h1:bbX/i/6MgT9BVLM9RT1thmxL04yeTAhbEz4SyadbXoo= +golang.org/x/sys v0.48.0/go.mod h1:hNLxWAXmnKAxqDtdwIYC4bM9oQPEecfsnNMuSxOs3og= +golang.org/x/text v0.42.0 h1:JbOZXgfeCPU9gacVtYliJqOhD+zhrEqK4LfdpmlUZqI= +golang.org/x/text v0.42.0/go.mod h1:ojzP1Z+2QtioaF8DTtO8K5q7JWVVYwZKenzujK0Zd0E= gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa h1:mZHHdPZl0dbGHCflZgAq/Q468DWVFcU2whhB2KAo8fk= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260526163538-3dc84a4a5aaa/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= -google.golang.org/grpc v1.83.1 h1:HIO0+BEtBP6soyqvqC8sNUjZ7bTs+0hFQuFF+RAy++Y= -google.golang.org/grpc v1.83.1/go.mod h1:kDyl6SKsiHKt0uylY5gtn5cEjkrIOhQOGDgIc4JGwzQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20261005182115-fad411399dd8 h1:0SXBqli5dnuCKMjI/X3FM226zEaEa0GUcSCJtN1vL2o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20261005182115-fad411399dd8/go.mod h1:OaIUM3+LpYcK2GXM4FTmhWoIq371Owdr+Cc7/BsYHHc= +google.golang.org/grpc v1.84.0 h1:soMyaPJ8pAak5PIQ0DGBUir0XRo2fRoMqhNWMLlLxO0= +google.golang.org/grpc v1.84.0/go.mod h1:ljCht0DrxQrXBDRTZp52Qxh3Ffk8CdYm2sj4O2QN2C0= google.golang.org/protobuf v1.36.12 h1:pJOKDDOyeXErUroCihFAd5LQuwXBSpVnKGrj5o/fwxc= google.golang.org/protobuf v1.36.12/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= diff --git a/v1/proto/gribi_aft/enums/enums.pb.go b/v1/proto/gribi_aft/enums/enums.pb.go index 32f13f8..0232501 100644 --- a/v1/proto/gribi_aft/enums/enums.pb.go +++ b/v1/proto/gribi_aft/enums/enums.pb.go @@ -9,8 +9,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.8 -// protoc v6.31.1 +// protoc-gen-go v1.36.7 +// protoc v3.21.12 // source: v1/proto/gribi_aft/enums/enums.proto package enums diff --git a/v1/proto/gribi_aft/gribi_aft.pb.go b/v1/proto/gribi_aft/gribi_aft.pb.go index 44952eb..2c14205 100644 --- a/v1/proto/gribi_aft/gribi_aft.pb.go +++ b/v1/proto/gribi_aft/gribi_aft.pb.go @@ -9,8 +9,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.8 -// protoc v6.31.1 +// protoc-gen-go v1.36.7 +// protoc v3.21.12 // source: v1/proto/gribi_aft/gribi_aft.proto package gribi_aft @@ -79,6 +79,7 @@ func (x *Device) GetAfts() *Afts { type Afts struct { state protoimpl.MessageState `protogen:"open.v1"` + BackupActivation []*Afts_BackupActivationKey `protobuf:"bytes,177885967,rep,name=backup_activation,json=backupActivation,proto3" json:"backup_activation,omitempty"` Ipv4Entry []*Afts_Ipv4EntryKey `protobuf:"bytes,410397655,rep,name=ipv4_entry,json=ipv4Entry,proto3" json:"ipv4_entry,omitempty"` Ipv6Entry []*Afts_Ipv6EntryKey `protobuf:"bytes,403891971,rep,name=ipv6_entry,json=ipv6Entry,proto3" json:"ipv6_entry,omitempty"` LabelEntry []*Afts_LabelEntryKey `protobuf:"bytes,153428187,rep,name=label_entry,json=labelEntry,proto3" json:"label_entry,omitempty"` @@ -120,6 +121,13 @@ func (*Afts) Descriptor() ([]byte, []int) { return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1} } +func (x *Afts) GetBackupActivation() []*Afts_BackupActivationKey { + if x != nil { + return x.BackupActivation + } + return nil +} + func (x *Afts) GetIpv4Entry() []*Afts_Ipv4EntryKey { if x != nil { return x.Ipv4Entry @@ -169,6 +177,94 @@ func (x *Afts) GetPolicyForwardingEntry() []*Afts_PolicyForwardingEntryKey { return nil } +type Afts_BackupActivation struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Afts_BackupActivation) Reset() { + *x = Afts_BackupActivation{} + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Afts_BackupActivation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Afts_BackupActivation) ProtoMessage() {} + +func (x *Afts_BackupActivation) ProtoReflect() protoreflect.Message { + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Afts_BackupActivation.ProtoReflect.Descriptor instead. +func (*Afts_BackupActivation) Descriptor() ([]byte, []int) { + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 0} +} + +type Afts_BackupActivationKey struct { + state protoimpl.MessageState `protogen:"open.v1"` + NextHopGroup uint64 `protobuf:"varint,1,opt,name=next_hop_group,json=nextHopGroup,proto3" json:"next_hop_group,omitempty"` + BackupActivation *Afts_BackupActivation `protobuf:"bytes,2,opt,name=backup_activation,json=backupActivation,proto3" json:"backup_activation,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Afts_BackupActivationKey) Reset() { + *x = Afts_BackupActivationKey{} + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Afts_BackupActivationKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Afts_BackupActivationKey) ProtoMessage() {} + +func (x *Afts_BackupActivationKey) ProtoReflect() protoreflect.Message { + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Afts_BackupActivationKey.ProtoReflect.Descriptor instead. +func (*Afts_BackupActivationKey) Descriptor() ([]byte, []int) { + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 1} +} + +func (x *Afts_BackupActivationKey) GetNextHopGroup() uint64 { + if x != nil { + return x.NextHopGroup + } + return 0 +} + +func (x *Afts_BackupActivationKey) GetBackupActivation() *Afts_BackupActivation { + if x != nil { + return x.BackupActivation + } + return nil +} + type Afts_Ipv4Entry struct { state protoimpl.MessageState `protogen:"open.v1"` DecapsulateHeader enums.OpenconfigAftTypesEncapsulationHeaderType `protobuf:"varint,383809427,opt,name=decapsulate_header,json=decapsulateHeader,proto3,enum=gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType" json:"decapsulate_header,omitempty"` @@ -181,7 +277,7 @@ type Afts_Ipv4Entry struct { func (x *Afts_Ipv4Entry) Reset() { *x = Afts_Ipv4Entry{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[2] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -193,7 +289,7 @@ func (x *Afts_Ipv4Entry) String() string { func (*Afts_Ipv4Entry) ProtoMessage() {} func (x *Afts_Ipv4Entry) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[2] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -206,7 +302,7 @@ func (x *Afts_Ipv4Entry) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_Ipv4Entry.ProtoReflect.Descriptor instead. func (*Afts_Ipv4Entry) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 0} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 2} } func (x *Afts_Ipv4Entry) GetDecapsulateHeader() enums.OpenconfigAftTypesEncapsulationHeaderType { @@ -247,7 +343,7 @@ type Afts_Ipv4EntryKey struct { func (x *Afts_Ipv4EntryKey) Reset() { *x = Afts_Ipv4EntryKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[3] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -259,7 +355,7 @@ func (x *Afts_Ipv4EntryKey) String() string { func (*Afts_Ipv4EntryKey) ProtoMessage() {} func (x *Afts_Ipv4EntryKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[3] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -272,7 +368,7 @@ func (x *Afts_Ipv4EntryKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_Ipv4EntryKey.ProtoReflect.Descriptor instead. func (*Afts_Ipv4EntryKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 1} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 3} } func (x *Afts_Ipv4EntryKey) GetPrefix() string { @@ -301,7 +397,7 @@ type Afts_Ipv6Entry struct { func (x *Afts_Ipv6Entry) Reset() { *x = Afts_Ipv6Entry{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[4] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -313,7 +409,7 @@ func (x *Afts_Ipv6Entry) String() string { func (*Afts_Ipv6Entry) ProtoMessage() {} func (x *Afts_Ipv6Entry) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[4] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -326,7 +422,7 @@ func (x *Afts_Ipv6Entry) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_Ipv6Entry.ProtoReflect.Descriptor instead. func (*Afts_Ipv6Entry) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 2} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 4} } func (x *Afts_Ipv6Entry) GetDecapsulateHeader() enums.OpenconfigAftTypesEncapsulationHeaderType { @@ -367,7 +463,7 @@ type Afts_Ipv6EntryKey struct { func (x *Afts_Ipv6EntryKey) Reset() { *x = Afts_Ipv6EntryKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[5] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -379,7 +475,7 @@ func (x *Afts_Ipv6EntryKey) String() string { func (*Afts_Ipv6EntryKey) ProtoMessage() {} func (x *Afts_Ipv6EntryKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[5] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -392,7 +488,7 @@ func (x *Afts_Ipv6EntryKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_Ipv6EntryKey.ProtoReflect.Descriptor instead. func (*Afts_Ipv6EntryKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 3} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 5} } func (x *Afts_Ipv6EntryKey) GetPrefix() string { @@ -421,7 +517,7 @@ type Afts_LabelEntry struct { func (x *Afts_LabelEntry) Reset() { *x = Afts_LabelEntry{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[6] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -433,7 +529,7 @@ func (x *Afts_LabelEntry) String() string { func (*Afts_LabelEntry) ProtoMessage() {} func (x *Afts_LabelEntry) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[6] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -446,7 +542,7 @@ func (x *Afts_LabelEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_LabelEntry.ProtoReflect.Descriptor instead. func (*Afts_LabelEntry) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 4} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 6} } func (x *Afts_LabelEntry) GetEntryMetadata() *ywrapper.BytesValue { @@ -491,7 +587,7 @@ type Afts_LabelEntryKey struct { func (x *Afts_LabelEntryKey) Reset() { *x = Afts_LabelEntryKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[7] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -503,7 +599,7 @@ func (x *Afts_LabelEntryKey) String() string { func (*Afts_LabelEntryKey) ProtoMessage() {} func (x *Afts_LabelEntryKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[7] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -516,7 +612,7 @@ func (x *Afts_LabelEntryKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_LabelEntryKey.ProtoReflect.Descriptor instead. func (*Afts_LabelEntryKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 5} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 7} } func (x *Afts_LabelEntryKey) GetLabel() isAfts_LabelEntryKey_Label { @@ -578,7 +674,7 @@ type Afts_MacEntry struct { func (x *Afts_MacEntry) Reset() { *x = Afts_MacEntry{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[8] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -590,7 +686,7 @@ func (x *Afts_MacEntry) String() string { func (*Afts_MacEntry) ProtoMessage() {} func (x *Afts_MacEntry) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[8] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -603,7 +699,7 @@ func (x *Afts_MacEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_MacEntry.ProtoReflect.Descriptor instead. func (*Afts_MacEntry) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 6} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8} } func (x *Afts_MacEntry) GetEntryMetadata() *ywrapper.BytesValue { @@ -637,7 +733,7 @@ type Afts_MacEntryKey struct { func (x *Afts_MacEntryKey) Reset() { *x = Afts_MacEntryKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[9] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -649,7 +745,7 @@ func (x *Afts_MacEntryKey) String() string { func (*Afts_MacEntryKey) ProtoMessage() {} func (x *Afts_MacEntryKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[9] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -662,7 +758,7 @@ func (x *Afts_MacEntryKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_MacEntryKey.ProtoReflect.Descriptor instead. func (*Afts_MacEntryKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 7} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 9} } func (x *Afts_MacEntryKey) GetMacAddress() string { @@ -700,7 +796,7 @@ type Afts_NextHop struct { func (x *Afts_NextHop) Reset() { *x = Afts_NextHop{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[10] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -712,7 +808,7 @@ func (x *Afts_NextHop) String() string { func (*Afts_NextHop) ProtoMessage() {} func (x *Afts_NextHop) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[10] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -725,7 +821,7 @@ func (x *Afts_NextHop) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop.ProtoReflect.Descriptor instead. func (*Afts_NextHop) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10} } func (x *Afts_NextHop) GetDecapsulateHeader() enums.OpenconfigAftTypesEncapsulationHeaderType { @@ -830,7 +926,7 @@ type Afts_NextHopGroup struct { func (x *Afts_NextHopGroup) Reset() { *x = Afts_NextHopGroup{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[11] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -842,7 +938,7 @@ func (x *Afts_NextHopGroup) String() string { func (*Afts_NextHopGroup) ProtoMessage() {} func (x *Afts_NextHopGroup) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[11] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -855,7 +951,7 @@ func (x *Afts_NextHopGroup) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHopGroup.ProtoReflect.Descriptor instead. func (*Afts_NextHopGroup) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 9} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 11} } func (x *Afts_NextHopGroup) GetBackupNextHopGroup() *ywrapper.UintValue { @@ -889,7 +985,7 @@ type Afts_NextHopGroupKey struct { func (x *Afts_NextHopGroupKey) Reset() { *x = Afts_NextHopGroupKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[12] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -901,7 +997,7 @@ func (x *Afts_NextHopGroupKey) String() string { func (*Afts_NextHopGroupKey) ProtoMessage() {} func (x *Afts_NextHopGroupKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[12] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -914,7 +1010,7 @@ func (x *Afts_NextHopGroupKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHopGroupKey.ProtoReflect.Descriptor instead. func (*Afts_NextHopGroupKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 12} } func (x *Afts_NextHopGroupKey) GetId() uint64 { @@ -941,7 +1037,7 @@ type Afts_NextHopKey struct { func (x *Afts_NextHopKey) Reset() { *x = Afts_NextHopKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[13] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -953,7 +1049,7 @@ func (x *Afts_NextHopKey) String() string { func (*Afts_NextHopKey) ProtoMessage() {} func (x *Afts_NextHopKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[13] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -966,7 +1062,7 @@ func (x *Afts_NextHopKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHopKey.ProtoReflect.Descriptor instead. func (*Afts_NextHopKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 11} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 13} } func (x *Afts_NextHopKey) GetIndex() uint64 { @@ -1010,7 +1106,7 @@ type Afts_PolicyForwardingEntry struct { func (x *Afts_PolicyForwardingEntry) Reset() { *x = Afts_PolicyForwardingEntry{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[14] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1022,7 +1118,7 @@ func (x *Afts_PolicyForwardingEntry) String() string { func (*Afts_PolicyForwardingEntry) ProtoMessage() {} func (x *Afts_PolicyForwardingEntry) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[14] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1035,7 +1131,7 @@ func (x *Afts_PolicyForwardingEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_PolicyForwardingEntry.ProtoReflect.Descriptor instead. func (*Afts_PolicyForwardingEntry) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 12} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 14} } func (x *Afts_PolicyForwardingEntry) GetEntryMetadata() *ywrapper.BytesValue { @@ -1195,7 +1291,7 @@ type Afts_PolicyForwardingEntryKey struct { func (x *Afts_PolicyForwardingEntryKey) Reset() { *x = Afts_PolicyForwardingEntryKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[15] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1207,7 +1303,7 @@ func (x *Afts_PolicyForwardingEntryKey) String() string { func (*Afts_PolicyForwardingEntryKey) ProtoMessage() {} func (x *Afts_PolicyForwardingEntryKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[15] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1220,7 +1316,7 @@ func (x *Afts_PolicyForwardingEntryKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_PolicyForwardingEntryKey.ProtoReflect.Descriptor instead. func (*Afts_PolicyForwardingEntryKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 13} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 15} } func (x *Afts_PolicyForwardingEntryKey) GetIndex() uint64 { @@ -1247,7 +1343,7 @@ type Afts_LabelEntry_PoppedMplsLabelStackUnion struct { func (x *Afts_LabelEntry_PoppedMplsLabelStackUnion) Reset() { *x = Afts_LabelEntry_PoppedMplsLabelStackUnion{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[16] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1259,7 +1355,7 @@ func (x *Afts_LabelEntry_PoppedMplsLabelStackUnion) String() string { func (*Afts_LabelEntry_PoppedMplsLabelStackUnion) ProtoMessage() {} func (x *Afts_LabelEntry_PoppedMplsLabelStackUnion) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[16] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1272,7 +1368,7 @@ func (x *Afts_LabelEntry_PoppedMplsLabelStackUnion) ProtoReflect() protoreflect. // Deprecated: Use Afts_LabelEntry_PoppedMplsLabelStackUnion.ProtoReflect.Descriptor instead. func (*Afts_LabelEntry_PoppedMplsLabelStackUnion) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 4, 0} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 6, 0} } func (x *Afts_LabelEntry_PoppedMplsLabelStackUnion) GetPoppedMplsLabelStackOpenconfigmplstypesmplslabelenum() enums.OpenconfigMplsTypesMplsLabelEnum { @@ -1304,7 +1400,7 @@ type Afts_NextHop_EncapHeader struct { func (x *Afts_NextHop_EncapHeader) Reset() { *x = Afts_NextHop_EncapHeader{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[17] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1316,7 +1412,7 @@ func (x *Afts_NextHop_EncapHeader) String() string { func (*Afts_NextHop_EncapHeader) ProtoMessage() {} func (x *Afts_NextHop_EncapHeader) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[17] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1329,7 +1425,7 @@ func (x *Afts_NextHop_EncapHeader) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_EncapHeader.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeader) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 0} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 0} } func (x *Afts_NextHop_EncapHeader) GetGre() *Afts_NextHop_EncapHeader_Gre { @@ -1391,7 +1487,7 @@ type Afts_NextHop_EncapHeaderKey struct { func (x *Afts_NextHop_EncapHeaderKey) Reset() { *x = Afts_NextHop_EncapHeaderKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[18] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1403,7 +1499,7 @@ func (x *Afts_NextHop_EncapHeaderKey) String() string { func (*Afts_NextHop_EncapHeaderKey) ProtoMessage() {} func (x *Afts_NextHop_EncapHeaderKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[18] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1416,7 +1512,7 @@ func (x *Afts_NextHop_EncapHeaderKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_EncapHeaderKey.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeaderKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 1} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 1} } func (x *Afts_NextHop_EncapHeaderKey) GetIndex() uint64 { @@ -1444,7 +1540,7 @@ type Afts_NextHop_Gre struct { func (x *Afts_NextHop_Gre) Reset() { *x = Afts_NextHop_Gre{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[19] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1456,7 +1552,7 @@ func (x *Afts_NextHop_Gre) String() string { func (*Afts_NextHop_Gre) ProtoMessage() {} func (x *Afts_NextHop_Gre) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[19] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1469,7 +1565,7 @@ func (x *Afts_NextHop_Gre) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_Gre.ProtoReflect.Descriptor instead. func (*Afts_NextHop_Gre) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 2} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 2} } func (x *Afts_NextHop_Gre) GetDstIp() *ywrapper.StringValue { @@ -1503,7 +1599,7 @@ type Afts_NextHop_InterfaceRef struct { func (x *Afts_NextHop_InterfaceRef) Reset() { *x = Afts_NextHop_InterfaceRef{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[20] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1515,7 +1611,7 @@ func (x *Afts_NextHop_InterfaceRef) String() string { func (*Afts_NextHop_InterfaceRef) ProtoMessage() {} func (x *Afts_NextHop_InterfaceRef) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[20] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1528,7 +1624,7 @@ func (x *Afts_NextHop_InterfaceRef) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_InterfaceRef.ProtoReflect.Descriptor instead. func (*Afts_NextHop_InterfaceRef) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 3} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 3} } func (x *Afts_NextHop_InterfaceRef) GetInterface() *ywrapper.StringValue { @@ -1555,7 +1651,7 @@ type Afts_NextHop_IpInIp struct { func (x *Afts_NextHop_IpInIp) Reset() { *x = Afts_NextHop_IpInIp{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[21] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1567,7 +1663,7 @@ func (x *Afts_NextHop_IpInIp) String() string { func (*Afts_NextHop_IpInIp) ProtoMessage() {} func (x *Afts_NextHop_IpInIp) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[21] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1580,7 +1676,7 @@ func (x *Afts_NextHop_IpInIp) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_IpInIp.ProtoReflect.Descriptor instead. func (*Afts_NextHop_IpInIp) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 4} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 4} } func (x *Afts_NextHop_IpInIp) GetDstIp() *ywrapper.StringValue { @@ -1607,7 +1703,7 @@ type Afts_NextHop_PushedMplsLabelStackUnion struct { func (x *Afts_NextHop_PushedMplsLabelStackUnion) Reset() { *x = Afts_NextHop_PushedMplsLabelStackUnion{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[22] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1619,7 +1715,7 @@ func (x *Afts_NextHop_PushedMplsLabelStackUnion) String() string { func (*Afts_NextHop_PushedMplsLabelStackUnion) ProtoMessage() {} func (x *Afts_NextHop_PushedMplsLabelStackUnion) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[22] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1632,7 +1728,7 @@ func (x *Afts_NextHop_PushedMplsLabelStackUnion) ProtoReflect() protoreflect.Mes // Deprecated: Use Afts_NextHop_PushedMplsLabelStackUnion.ProtoReflect.Descriptor instead. func (*Afts_NextHop_PushedMplsLabelStackUnion) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 5} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 5} } func (x *Afts_NextHop_PushedMplsLabelStackUnion) GetPushedMplsLabelStackOpenconfigmplstypesmplslabelenum() enums.OpenconfigMplsTypesMplsLabelEnum { @@ -1660,7 +1756,7 @@ type Afts_NextHop_EncapHeader_Gre struct { func (x *Afts_NextHop_EncapHeader_Gre) Reset() { *x = Afts_NextHop_EncapHeader_Gre{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[23] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1672,7 +1768,7 @@ func (x *Afts_NextHop_EncapHeader_Gre) String() string { func (*Afts_NextHop_EncapHeader_Gre) ProtoMessage() {} func (x *Afts_NextHop_EncapHeader_Gre) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[23] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1685,7 +1781,7 @@ func (x *Afts_NextHop_EncapHeader_Gre) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_EncapHeader_Gre.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeader_Gre) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 0, 0} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 0, 0} } func (x *Afts_NextHop_EncapHeader_Gre) GetDstIp() *ywrapper.StringValue { @@ -1719,7 +1815,7 @@ type Afts_NextHop_EncapHeader_Ipv4 struct { func (x *Afts_NextHop_EncapHeader_Ipv4) Reset() { *x = Afts_NextHop_EncapHeader_Ipv4{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[24] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1731,7 +1827,7 @@ func (x *Afts_NextHop_EncapHeader_Ipv4) String() string { func (*Afts_NextHop_EncapHeader_Ipv4) ProtoMessage() {} func (x *Afts_NextHop_EncapHeader_Ipv4) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[24] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1744,7 +1840,7 @@ func (x *Afts_NextHop_EncapHeader_Ipv4) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_EncapHeader_Ipv4.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeader_Ipv4) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 0, 1} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 0, 1} } func (x *Afts_NextHop_EncapHeader_Ipv4) GetDstIp() *ywrapper.StringValue { @@ -1771,7 +1867,7 @@ type Afts_NextHop_EncapHeader_Ipv6 struct { func (x *Afts_NextHop_EncapHeader_Ipv6) Reset() { *x = Afts_NextHop_EncapHeader_Ipv6{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[25] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1783,7 +1879,7 @@ func (x *Afts_NextHop_EncapHeader_Ipv6) String() string { func (*Afts_NextHop_EncapHeader_Ipv6) ProtoMessage() {} func (x *Afts_NextHop_EncapHeader_Ipv6) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[25] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[27] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1796,7 +1892,7 @@ func (x *Afts_NextHop_EncapHeader_Ipv6) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_EncapHeader_Ipv6.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeader_Ipv6) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 0, 2} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 0, 2} } func (x *Afts_NextHop_EncapHeader_Ipv6) GetDstIp() *ywrapper.StringValue { @@ -1823,7 +1919,7 @@ type Afts_NextHop_EncapHeader_Mpls struct { func (x *Afts_NextHop_EncapHeader_Mpls) Reset() { *x = Afts_NextHop_EncapHeader_Mpls{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[26] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1835,7 +1931,7 @@ func (x *Afts_NextHop_EncapHeader_Mpls) String() string { func (*Afts_NextHop_EncapHeader_Mpls) ProtoMessage() {} func (x *Afts_NextHop_EncapHeader_Mpls) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[26] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[28] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1848,7 +1944,7 @@ func (x *Afts_NextHop_EncapHeader_Mpls) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_EncapHeader_Mpls.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeader_Mpls) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 0, 3} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 0, 3} } func (x *Afts_NextHop_EncapHeader_Mpls) GetMplsLabelStack() []*Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion { @@ -1879,7 +1975,7 @@ type Afts_NextHop_EncapHeader_UdpV4 struct { func (x *Afts_NextHop_EncapHeader_UdpV4) Reset() { *x = Afts_NextHop_EncapHeader_UdpV4{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[27] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1891,7 +1987,7 @@ func (x *Afts_NextHop_EncapHeader_UdpV4) String() string { func (*Afts_NextHop_EncapHeader_UdpV4) ProtoMessage() {} func (x *Afts_NextHop_EncapHeader_UdpV4) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[27] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[29] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1904,7 +2000,7 @@ func (x *Afts_NextHop_EncapHeader_UdpV4) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_EncapHeader_UdpV4.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeader_UdpV4) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 0, 4} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 0, 4} } func (x *Afts_NextHop_EncapHeader_UdpV4) GetDscp() *ywrapper.UintValue { @@ -1963,7 +2059,7 @@ type Afts_NextHop_EncapHeader_UdpV6 struct { func (x *Afts_NextHop_EncapHeader_UdpV6) Reset() { *x = Afts_NextHop_EncapHeader_UdpV6{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[28] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1975,7 +2071,7 @@ func (x *Afts_NextHop_EncapHeader_UdpV6) String() string { func (*Afts_NextHop_EncapHeader_UdpV6) ProtoMessage() {} func (x *Afts_NextHop_EncapHeader_UdpV6) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[28] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[30] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1988,7 +2084,7 @@ func (x *Afts_NextHop_EncapHeader_UdpV6) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHop_EncapHeader_UdpV6.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeader_UdpV6) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 0, 5} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 0, 5} } func (x *Afts_NextHop_EncapHeader_UdpV6) GetDscp() *ywrapper.UintValue { @@ -2043,7 +2139,7 @@ type Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion struct { func (x *Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion) Reset() { *x = Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[29] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2055,7 +2151,7 @@ func (x *Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion) String() string { func (*Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion) ProtoMessage() {} func (x *Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[29] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[31] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2068,7 +2164,7 @@ func (x *Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion) ProtoReflect() proto // Deprecated: Use Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion.ProtoReflect.Descriptor instead. func (*Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 8, 0, 3, 0} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 10, 0, 3, 0} } func (x *Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion) GetMplsLabelStackOpenconfigmplstypesmplslabelenum() enums.OpenconfigMplsTypesMplsLabelEnum { @@ -2094,7 +2190,7 @@ type Afts_NextHopGroup_NextHop struct { func (x *Afts_NextHopGroup_NextHop) Reset() { *x = Afts_NextHopGroup_NextHop{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[30] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2106,7 +2202,7 @@ func (x *Afts_NextHopGroup_NextHop) String() string { func (*Afts_NextHopGroup_NextHop) ProtoMessage() {} func (x *Afts_NextHopGroup_NextHop) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[30] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[32] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2119,7 +2215,7 @@ func (x *Afts_NextHopGroup_NextHop) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHopGroup_NextHop.ProtoReflect.Descriptor instead. func (*Afts_NextHopGroup_NextHop) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 9, 0} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 11, 0} } func (x *Afts_NextHopGroup_NextHop) GetWeight() *ywrapper.UintValue { @@ -2139,7 +2235,7 @@ type Afts_NextHopGroup_NextHopKey struct { func (x *Afts_NextHopGroup_NextHopKey) Reset() { *x = Afts_NextHopGroup_NextHopKey{} - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[31] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2151,7 +2247,7 @@ func (x *Afts_NextHopGroup_NextHopKey) String() string { func (*Afts_NextHopGroup_NextHopKey) ProtoMessage() {} func (x *Afts_NextHopGroup_NextHopKey) ProtoReflect() protoreflect.Message { - mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[31] + mi := &file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2164,7 +2260,7 @@ func (x *Afts_NextHopGroup_NextHopKey) ProtoReflect() protoreflect.Message { // Deprecated: Use Afts_NextHopGroup_NextHopKey.ProtoReflect.Descriptor instead. func (*Afts_NextHopGroup_NextHopKey) Descriptor() ([]byte, []int) { - return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 9, 1} + return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP(), []int{1, 11, 1} } func (x *Afts_NextHopGroup_NextHopKey) GetIndex() uint64 { @@ -2187,8 +2283,9 @@ const file_v1_proto_gribi_aft_gribi_aft_proto_rawDesc = "" + "\n" + "\"v1/proto/gribi_aft/gribi_aft.proto\x12\tgribi_aft\x1a8github.com/openconfig/ygot/proto/ywrapper/ywrapper.proto\x1a0github.com/openconfig/ygot/proto/yext/yext.proto\x1a$v1/proto/gribi_aft/enums/enums.proto\":\n" + "\x06Device\x120\n" + - "\x04afts\x18\xb4\x96\x94\x11 \x01(\v2\x0f.gribi_aft.AftsB\b\x82A\x05/aftsR\x04afts\"\xb5s\n" + - "\x04Afts\x12a\n" + + "\x04afts\x18\xb4\x96\x94\x11 \x01(\v2\x0f.gribi_aft.AftsB\b\x82A\x05/aftsR\x04afts\"\xdav\n" + + "\x04Afts\x12\x82\x01\n" + + "\x11backup_activation\x18\x8f\xa6\xe9T \x03(\v2#.gribi_aft.Afts.BackupActivationKeyB-\x82A*/afts/backup-activations/backup-activationR\x10backupActivation\x12a\n" + "\n" + "ipv4_entry\x18\xd7\xd7\xd8\xc3\x01 \x03(\v2\x1c.gribi_aft.Afts.Ipv4EntryKeyB \x82A\x1d/afts/ipv4-unicast/ipv4-entryR\tipv4Entry\x12a\n" + "\n" + @@ -2198,7 +2295,11 @@ const file_v1_proto_gribi_aft_gribi_aft_proto_rawDesc = "" + "\tmac_entry\x18\xc1\x9e\xa8M \x03(\v2\x1b.gribi_aft.Afts.MacEntryKeyB\x1b\x82A\x18/afts/ethernet/mac-entryR\bmacEntry\x12U\n" + "\bnext_hop\x18\xb1͠? \x03(\v2\x1a.gribi_aft.Afts.NextHopKeyB\x1b\x82A\x18/afts/next-hops/next-hopR\anextHop\x12r\n" + "\x0enext_hop_group\x18\xf9ً\xad\x01 \x03(\v2\x1f.gribi_aft.Afts.NextHopGroupKeyB'\x82A$/afts/next-hop-groups/next-hop-groupR\fnextHopGroup\x12\x98\x01\n" + - "\x17policy_forwarding_entry\x18\x8b\x97À\x01 \x03(\v2(.gribi_aft.Afts.PolicyForwardingEntryKeyB2\x82A//afts/policy-forwarding/policy-forwarding-entryR\x15policyForwardingEntry\x1a\xcd\x04\n" + + "\x17policy_forwarding_entry\x18\x8b\x97À\x01 \x03(\v2(.gribi_aft.Afts.PolicyForwardingEntryKeyB2\x82A//afts/policy-forwarding/policy-forwarding-entryR\x15policyForwardingEntry\x1a\x12\n" + + "\x10BackupActivation\x1a\x89\x02\n" + + "\x13BackupActivationKey\x12\xa2\x01\n" + + "\x0enext_hop_group\x18\x01 \x01(\x04B|\x82Ay/afts/backup-activations/backup-activation/state/next-hop-group|/afts/backup-activations/backup-activation/next-hop-groupR\fnextHopGroup\x12M\n" + + "\x11backup_activation\x18\x02 \x01(\v2 .gribi_aft.Afts.BackupActivationR\x10backupActivation\x1a\xcd\x04\n" + "\tIpv4Entry\x12\xa8\x01\n" + "\x12decapsulate_header\x18\x93\uf077\x01 \x01(\x0e2:.gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderTypeB9\x82A6/afts/ipv4-unicast/ipv4-entry/state/decapsulate-headerR\x11decapsulateHeader\x12v\n" + "\x0eentry_metadata\x18\xe6\x9c݊\x01 \x01(\v2\x14.ywrapper.BytesValueB5\x82A2/afts/ipv4-unicast/ipv4-entry/state/entry-metadataR\rentryMetadata\x12t\n" + @@ -2365,153 +2466,157 @@ func file_v1_proto_gribi_aft_gribi_aft_proto_rawDescGZIP() []byte { return file_v1_proto_gribi_aft_gribi_aft_proto_rawDescData } -var file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes = make([]protoimpl.MessageInfo, 32) +var file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes = make([]protoimpl.MessageInfo, 34) var file_v1_proto_gribi_aft_gribi_aft_proto_goTypes = []any{ (*Device)(nil), // 0: gribi_aft.Device (*Afts)(nil), // 1: gribi_aft.Afts - (*Afts_Ipv4Entry)(nil), // 2: gribi_aft.Afts.Ipv4Entry - (*Afts_Ipv4EntryKey)(nil), // 3: gribi_aft.Afts.Ipv4EntryKey - (*Afts_Ipv6Entry)(nil), // 4: gribi_aft.Afts.Ipv6Entry - (*Afts_Ipv6EntryKey)(nil), // 5: gribi_aft.Afts.Ipv6EntryKey - (*Afts_LabelEntry)(nil), // 6: gribi_aft.Afts.LabelEntry - (*Afts_LabelEntryKey)(nil), // 7: gribi_aft.Afts.LabelEntryKey - (*Afts_MacEntry)(nil), // 8: gribi_aft.Afts.MacEntry - (*Afts_MacEntryKey)(nil), // 9: gribi_aft.Afts.MacEntryKey - (*Afts_NextHop)(nil), // 10: gribi_aft.Afts.NextHop - (*Afts_NextHopGroup)(nil), // 11: gribi_aft.Afts.NextHopGroup - (*Afts_NextHopGroupKey)(nil), // 12: gribi_aft.Afts.NextHopGroupKey - (*Afts_NextHopKey)(nil), // 13: gribi_aft.Afts.NextHopKey - (*Afts_PolicyForwardingEntry)(nil), // 14: gribi_aft.Afts.PolicyForwardingEntry - (*Afts_PolicyForwardingEntryKey)(nil), // 15: gribi_aft.Afts.PolicyForwardingEntryKey - (*Afts_LabelEntry_PoppedMplsLabelStackUnion)(nil), // 16: gribi_aft.Afts.LabelEntry.PoppedMplsLabelStackUnion - (*Afts_NextHop_EncapHeader)(nil), // 17: gribi_aft.Afts.NextHop.EncapHeader - (*Afts_NextHop_EncapHeaderKey)(nil), // 18: gribi_aft.Afts.NextHop.EncapHeaderKey - (*Afts_NextHop_Gre)(nil), // 19: gribi_aft.Afts.NextHop.Gre - (*Afts_NextHop_InterfaceRef)(nil), // 20: gribi_aft.Afts.NextHop.InterfaceRef - (*Afts_NextHop_IpInIp)(nil), // 21: gribi_aft.Afts.NextHop.IpInIp - (*Afts_NextHop_PushedMplsLabelStackUnion)(nil), // 22: gribi_aft.Afts.NextHop.PushedMplsLabelStackUnion - (*Afts_NextHop_EncapHeader_Gre)(nil), // 23: gribi_aft.Afts.NextHop.EncapHeader.Gre - (*Afts_NextHop_EncapHeader_Ipv4)(nil), // 24: gribi_aft.Afts.NextHop.EncapHeader.Ipv4 - (*Afts_NextHop_EncapHeader_Ipv6)(nil), // 25: gribi_aft.Afts.NextHop.EncapHeader.Ipv6 - (*Afts_NextHop_EncapHeader_Mpls)(nil), // 26: gribi_aft.Afts.NextHop.EncapHeader.Mpls - (*Afts_NextHop_EncapHeader_UdpV4)(nil), // 27: gribi_aft.Afts.NextHop.EncapHeader.UdpV4 - (*Afts_NextHop_EncapHeader_UdpV6)(nil), // 28: gribi_aft.Afts.NextHop.EncapHeader.UdpV6 - (*Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion)(nil), // 29: gribi_aft.Afts.NextHop.EncapHeader.Mpls.MplsLabelStackUnion - (*Afts_NextHopGroup_NextHop)(nil), // 30: gribi_aft.Afts.NextHopGroup.NextHop - (*Afts_NextHopGroup_NextHopKey)(nil), // 31: gribi_aft.Afts.NextHopGroup.NextHopKey - (enums.OpenconfigAftTypesEncapsulationHeaderType)(0), // 32: gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType - (*ywrapper.BytesValue)(nil), // 33: ywrapper.BytesValue - (*ywrapper.UintValue)(nil), // 34: ywrapper.UintValue - (*ywrapper.StringValue)(nil), // 35: ywrapper.StringValue - (enums.OpenconfigMplsTypesMplsLabelEnum)(0), // 36: gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum - (*ywrapper.BoolValue)(nil), // 37: ywrapper.BoolValue - (enums.OpenconfigPacketMatchTypesIPPROTOCOL)(0), // 38: gribi_aft.enums.OpenconfigPacketMatchTypesIPPROTOCOL + (*Afts_BackupActivation)(nil), // 2: gribi_aft.Afts.BackupActivation + (*Afts_BackupActivationKey)(nil), // 3: gribi_aft.Afts.BackupActivationKey + (*Afts_Ipv4Entry)(nil), // 4: gribi_aft.Afts.Ipv4Entry + (*Afts_Ipv4EntryKey)(nil), // 5: gribi_aft.Afts.Ipv4EntryKey + (*Afts_Ipv6Entry)(nil), // 6: gribi_aft.Afts.Ipv6Entry + (*Afts_Ipv6EntryKey)(nil), // 7: gribi_aft.Afts.Ipv6EntryKey + (*Afts_LabelEntry)(nil), // 8: gribi_aft.Afts.LabelEntry + (*Afts_LabelEntryKey)(nil), // 9: gribi_aft.Afts.LabelEntryKey + (*Afts_MacEntry)(nil), // 10: gribi_aft.Afts.MacEntry + (*Afts_MacEntryKey)(nil), // 11: gribi_aft.Afts.MacEntryKey + (*Afts_NextHop)(nil), // 12: gribi_aft.Afts.NextHop + (*Afts_NextHopGroup)(nil), // 13: gribi_aft.Afts.NextHopGroup + (*Afts_NextHopGroupKey)(nil), // 14: gribi_aft.Afts.NextHopGroupKey + (*Afts_NextHopKey)(nil), // 15: gribi_aft.Afts.NextHopKey + (*Afts_PolicyForwardingEntry)(nil), // 16: gribi_aft.Afts.PolicyForwardingEntry + (*Afts_PolicyForwardingEntryKey)(nil), // 17: gribi_aft.Afts.PolicyForwardingEntryKey + (*Afts_LabelEntry_PoppedMplsLabelStackUnion)(nil), // 18: gribi_aft.Afts.LabelEntry.PoppedMplsLabelStackUnion + (*Afts_NextHop_EncapHeader)(nil), // 19: gribi_aft.Afts.NextHop.EncapHeader + (*Afts_NextHop_EncapHeaderKey)(nil), // 20: gribi_aft.Afts.NextHop.EncapHeaderKey + (*Afts_NextHop_Gre)(nil), // 21: gribi_aft.Afts.NextHop.Gre + (*Afts_NextHop_InterfaceRef)(nil), // 22: gribi_aft.Afts.NextHop.InterfaceRef + (*Afts_NextHop_IpInIp)(nil), // 23: gribi_aft.Afts.NextHop.IpInIp + (*Afts_NextHop_PushedMplsLabelStackUnion)(nil), // 24: gribi_aft.Afts.NextHop.PushedMplsLabelStackUnion + (*Afts_NextHop_EncapHeader_Gre)(nil), // 25: gribi_aft.Afts.NextHop.EncapHeader.Gre + (*Afts_NextHop_EncapHeader_Ipv4)(nil), // 26: gribi_aft.Afts.NextHop.EncapHeader.Ipv4 + (*Afts_NextHop_EncapHeader_Ipv6)(nil), // 27: gribi_aft.Afts.NextHop.EncapHeader.Ipv6 + (*Afts_NextHop_EncapHeader_Mpls)(nil), // 28: gribi_aft.Afts.NextHop.EncapHeader.Mpls + (*Afts_NextHop_EncapHeader_UdpV4)(nil), // 29: gribi_aft.Afts.NextHop.EncapHeader.UdpV4 + (*Afts_NextHop_EncapHeader_UdpV6)(nil), // 30: gribi_aft.Afts.NextHop.EncapHeader.UdpV6 + (*Afts_NextHop_EncapHeader_Mpls_MplsLabelStackUnion)(nil), // 31: gribi_aft.Afts.NextHop.EncapHeader.Mpls.MplsLabelStackUnion + (*Afts_NextHopGroup_NextHop)(nil), // 32: gribi_aft.Afts.NextHopGroup.NextHop + (*Afts_NextHopGroup_NextHopKey)(nil), // 33: gribi_aft.Afts.NextHopGroup.NextHopKey + (enums.OpenconfigAftTypesEncapsulationHeaderType)(0), // 34: gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType + (*ywrapper.BytesValue)(nil), // 35: ywrapper.BytesValue + (*ywrapper.UintValue)(nil), // 36: ywrapper.UintValue + (*ywrapper.StringValue)(nil), // 37: ywrapper.StringValue + (enums.OpenconfigMplsTypesMplsLabelEnum)(0), // 38: gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum + (*ywrapper.BoolValue)(nil), // 39: ywrapper.BoolValue + (enums.OpenconfigPacketMatchTypesIPPROTOCOL)(0), // 40: gribi_aft.enums.OpenconfigPacketMatchTypesIPPROTOCOL } var file_v1_proto_gribi_aft_gribi_aft_proto_depIdxs = []int32{ - 1, // 0: gribi_aft.Device.afts:type_name -> gribi_aft.Afts - 3, // 1: gribi_aft.Afts.ipv4_entry:type_name -> gribi_aft.Afts.Ipv4EntryKey - 5, // 2: gribi_aft.Afts.ipv6_entry:type_name -> gribi_aft.Afts.Ipv6EntryKey - 7, // 3: gribi_aft.Afts.label_entry:type_name -> gribi_aft.Afts.LabelEntryKey - 9, // 4: gribi_aft.Afts.mac_entry:type_name -> gribi_aft.Afts.MacEntryKey - 13, // 5: gribi_aft.Afts.next_hop:type_name -> gribi_aft.Afts.NextHopKey - 12, // 6: gribi_aft.Afts.next_hop_group:type_name -> gribi_aft.Afts.NextHopGroupKey - 15, // 7: gribi_aft.Afts.policy_forwarding_entry:type_name -> gribi_aft.Afts.PolicyForwardingEntryKey - 32, // 8: gribi_aft.Afts.Ipv4Entry.decapsulate_header:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType - 33, // 9: gribi_aft.Afts.Ipv4Entry.entry_metadata:type_name -> ywrapper.BytesValue - 34, // 10: gribi_aft.Afts.Ipv4Entry.next_hop_group:type_name -> ywrapper.UintValue - 35, // 11: gribi_aft.Afts.Ipv4Entry.next_hop_group_network_instance:type_name -> ywrapper.StringValue - 2, // 12: gribi_aft.Afts.Ipv4EntryKey.ipv4_entry:type_name -> gribi_aft.Afts.Ipv4Entry - 32, // 13: gribi_aft.Afts.Ipv6Entry.decapsulate_header:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType - 33, // 14: gribi_aft.Afts.Ipv6Entry.entry_metadata:type_name -> ywrapper.BytesValue - 34, // 15: gribi_aft.Afts.Ipv6Entry.next_hop_group:type_name -> ywrapper.UintValue - 35, // 16: gribi_aft.Afts.Ipv6Entry.next_hop_group_network_instance:type_name -> ywrapper.StringValue - 4, // 17: gribi_aft.Afts.Ipv6EntryKey.ipv6_entry:type_name -> gribi_aft.Afts.Ipv6Entry - 33, // 18: gribi_aft.Afts.LabelEntry.entry_metadata:type_name -> ywrapper.BytesValue - 34, // 19: gribi_aft.Afts.LabelEntry.next_hop_group:type_name -> ywrapper.UintValue - 35, // 20: gribi_aft.Afts.LabelEntry.next_hop_group_network_instance:type_name -> ywrapper.StringValue - 16, // 21: gribi_aft.Afts.LabelEntry.popped_mpls_label_stack:type_name -> gribi_aft.Afts.LabelEntry.PoppedMplsLabelStackUnion - 36, // 22: gribi_aft.Afts.LabelEntryKey.label_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum - 6, // 23: gribi_aft.Afts.LabelEntryKey.label_entry:type_name -> gribi_aft.Afts.LabelEntry - 33, // 24: gribi_aft.Afts.MacEntry.entry_metadata:type_name -> ywrapper.BytesValue - 34, // 25: gribi_aft.Afts.MacEntry.next_hop_group:type_name -> ywrapper.UintValue - 35, // 26: gribi_aft.Afts.MacEntry.next_hop_group_network_instance:type_name -> ywrapper.StringValue - 8, // 27: gribi_aft.Afts.MacEntryKey.mac_entry:type_name -> gribi_aft.Afts.MacEntry - 32, // 28: gribi_aft.Afts.NextHop.decapsulate_header:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType - 18, // 29: gribi_aft.Afts.NextHop.encap_header:type_name -> gribi_aft.Afts.NextHop.EncapHeaderKey - 32, // 30: gribi_aft.Afts.NextHop.encapsulate_header:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType - 19, // 31: gribi_aft.Afts.NextHop.gre:type_name -> gribi_aft.Afts.NextHop.Gre - 20, // 32: gribi_aft.Afts.NextHop.interface_ref:type_name -> gribi_aft.Afts.NextHop.InterfaceRef - 35, // 33: gribi_aft.Afts.NextHop.ip_address:type_name -> ywrapper.StringValue - 21, // 34: gribi_aft.Afts.NextHop.ip_in_ip:type_name -> gribi_aft.Afts.NextHop.IpInIp - 35, // 35: gribi_aft.Afts.NextHop.mac_address:type_name -> ywrapper.StringValue - 35, // 36: gribi_aft.Afts.NextHop.network_instance:type_name -> ywrapper.StringValue - 37, // 37: gribi_aft.Afts.NextHop.pop_top_label:type_name -> ywrapper.BoolValue - 22, // 38: gribi_aft.Afts.NextHop.pushed_mpls_label_stack:type_name -> gribi_aft.Afts.NextHop.PushedMplsLabelStackUnion - 35, // 39: gribi_aft.Afts.NextHop.tunnel_src_ip_address:type_name -> ywrapper.StringValue - 34, // 40: gribi_aft.Afts.NextHop.vni_label:type_name -> ywrapper.UintValue - 34, // 41: gribi_aft.Afts.NextHopGroup.backup_next_hop_group:type_name -> ywrapper.UintValue - 34, // 42: gribi_aft.Afts.NextHopGroup.color:type_name -> ywrapper.UintValue - 31, // 43: gribi_aft.Afts.NextHopGroup.next_hop:type_name -> gribi_aft.Afts.NextHopGroup.NextHopKey - 11, // 44: gribi_aft.Afts.NextHopGroupKey.next_hop_group:type_name -> gribi_aft.Afts.NextHopGroup - 10, // 45: gribi_aft.Afts.NextHopKey.next_hop:type_name -> gribi_aft.Afts.NextHop - 33, // 46: gribi_aft.Afts.PolicyForwardingEntry.entry_metadata:type_name -> ywrapper.BytesValue - 34, // 47: gribi_aft.Afts.PolicyForwardingEntry.ip_dscp:type_name -> ywrapper.UintValue - 35, // 48: gribi_aft.Afts.PolicyForwardingEntry.ip_prefix:type_name -> ywrapper.StringValue - 38, // 49: gribi_aft.Afts.PolicyForwardingEntry.ip_protocol_openconfigpacketmatchtypesipprotocol:type_name -> gribi_aft.enums.OpenconfigPacketMatchTypesIPPROTOCOL - 34, // 50: gribi_aft.Afts.PolicyForwardingEntry.l4_dst_port:type_name -> ywrapper.UintValue - 34, // 51: gribi_aft.Afts.PolicyForwardingEntry.l4_src_port:type_name -> ywrapper.UintValue - 35, // 52: gribi_aft.Afts.PolicyForwardingEntry.mac_address:type_name -> ywrapper.StringValue - 36, // 53: gribi_aft.Afts.PolicyForwardingEntry.mpls_label_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum - 34, // 54: gribi_aft.Afts.PolicyForwardingEntry.mpls_tc:type_name -> ywrapper.UintValue - 34, // 55: gribi_aft.Afts.PolicyForwardingEntry.next_hop_group:type_name -> ywrapper.UintValue - 35, // 56: gribi_aft.Afts.PolicyForwardingEntry.next_hop_group_network_instance:type_name -> ywrapper.StringValue - 14, // 57: gribi_aft.Afts.PolicyForwardingEntryKey.policy_forwarding_entry:type_name -> gribi_aft.Afts.PolicyForwardingEntry - 36, // 58: gribi_aft.Afts.LabelEntry.PoppedMplsLabelStackUnion.popped_mpls_label_stack_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum - 23, // 59: gribi_aft.Afts.NextHop.EncapHeader.gre:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Gre - 24, // 60: gribi_aft.Afts.NextHop.EncapHeader.ipv4:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Ipv4 - 25, // 61: gribi_aft.Afts.NextHop.EncapHeader.ipv6:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Ipv6 - 26, // 62: gribi_aft.Afts.NextHop.EncapHeader.mpls:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Mpls - 32, // 63: gribi_aft.Afts.NextHop.EncapHeader.type:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType - 27, // 64: gribi_aft.Afts.NextHop.EncapHeader.udp_v4:type_name -> gribi_aft.Afts.NextHop.EncapHeader.UdpV4 - 28, // 65: gribi_aft.Afts.NextHop.EncapHeader.udp_v6:type_name -> gribi_aft.Afts.NextHop.EncapHeader.UdpV6 - 17, // 66: gribi_aft.Afts.NextHop.EncapHeaderKey.encap_header:type_name -> gribi_aft.Afts.NextHop.EncapHeader - 35, // 67: gribi_aft.Afts.NextHop.Gre.dst_ip:type_name -> ywrapper.StringValue - 35, // 68: gribi_aft.Afts.NextHop.Gre.src_ip:type_name -> ywrapper.StringValue - 34, // 69: gribi_aft.Afts.NextHop.Gre.ttl:type_name -> ywrapper.UintValue - 35, // 70: gribi_aft.Afts.NextHop.InterfaceRef.interface:type_name -> ywrapper.StringValue - 34, // 71: gribi_aft.Afts.NextHop.InterfaceRef.subinterface:type_name -> ywrapper.UintValue - 35, // 72: gribi_aft.Afts.NextHop.IpInIp.dst_ip:type_name -> ywrapper.StringValue - 35, // 73: gribi_aft.Afts.NextHop.IpInIp.src_ip:type_name -> ywrapper.StringValue - 36, // 74: gribi_aft.Afts.NextHop.PushedMplsLabelStackUnion.pushed_mpls_label_stack_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum - 35, // 75: gribi_aft.Afts.NextHop.EncapHeader.Gre.dst_ip:type_name -> ywrapper.StringValue - 35, // 76: gribi_aft.Afts.NextHop.EncapHeader.Gre.src_ip:type_name -> ywrapper.StringValue - 34, // 77: gribi_aft.Afts.NextHop.EncapHeader.Gre.ttl:type_name -> ywrapper.UintValue - 35, // 78: gribi_aft.Afts.NextHop.EncapHeader.Ipv4.dst_ip:type_name -> ywrapper.StringValue - 35, // 79: gribi_aft.Afts.NextHop.EncapHeader.Ipv4.src_ip:type_name -> ywrapper.StringValue - 35, // 80: gribi_aft.Afts.NextHop.EncapHeader.Ipv6.dst_ip:type_name -> ywrapper.StringValue - 35, // 81: gribi_aft.Afts.NextHop.EncapHeader.Ipv6.src_ip:type_name -> ywrapper.StringValue - 29, // 82: gribi_aft.Afts.NextHop.EncapHeader.Mpls.mpls_label_stack:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Mpls.MplsLabelStackUnion - 34, // 83: gribi_aft.Afts.NextHop.EncapHeader.Mpls.traffic_class:type_name -> ywrapper.UintValue - 34, // 84: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.dscp:type_name -> ywrapper.UintValue - 35, // 85: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.dst_ip:type_name -> ywrapper.StringValue - 34, // 86: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.dst_udp_port:type_name -> ywrapper.UintValue - 34, // 87: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.ip_ttl:type_name -> ywrapper.UintValue - 35, // 88: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.src_ip:type_name -> ywrapper.StringValue - 34, // 89: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.src_udp_port:type_name -> ywrapper.UintValue - 34, // 90: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.dscp:type_name -> ywrapper.UintValue - 35, // 91: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.dst_ip:type_name -> ywrapper.StringValue - 34, // 92: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.dst_udp_port:type_name -> ywrapper.UintValue - 34, // 93: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.ip_ttl:type_name -> ywrapper.UintValue - 35, // 94: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.src_ip:type_name -> ywrapper.StringValue - 34, // 95: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.src_udp_port:type_name -> ywrapper.UintValue - 36, // 96: gribi_aft.Afts.NextHop.EncapHeader.Mpls.MplsLabelStackUnion.mpls_label_stack_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum - 34, // 97: gribi_aft.Afts.NextHopGroup.NextHop.weight:type_name -> ywrapper.UintValue - 30, // 98: gribi_aft.Afts.NextHopGroup.NextHopKey.next_hop:type_name -> gribi_aft.Afts.NextHopGroup.NextHop - 99, // [99:99] is the sub-list for method output_type - 99, // [99:99] is the sub-list for method input_type - 99, // [99:99] is the sub-list for extension type_name - 99, // [99:99] is the sub-list for extension extendee - 0, // [0:99] is the sub-list for field type_name + 1, // 0: gribi_aft.Device.afts:type_name -> gribi_aft.Afts + 3, // 1: gribi_aft.Afts.backup_activation:type_name -> gribi_aft.Afts.BackupActivationKey + 5, // 2: gribi_aft.Afts.ipv4_entry:type_name -> gribi_aft.Afts.Ipv4EntryKey + 7, // 3: gribi_aft.Afts.ipv6_entry:type_name -> gribi_aft.Afts.Ipv6EntryKey + 9, // 4: gribi_aft.Afts.label_entry:type_name -> gribi_aft.Afts.LabelEntryKey + 11, // 5: gribi_aft.Afts.mac_entry:type_name -> gribi_aft.Afts.MacEntryKey + 15, // 6: gribi_aft.Afts.next_hop:type_name -> gribi_aft.Afts.NextHopKey + 14, // 7: gribi_aft.Afts.next_hop_group:type_name -> gribi_aft.Afts.NextHopGroupKey + 17, // 8: gribi_aft.Afts.policy_forwarding_entry:type_name -> gribi_aft.Afts.PolicyForwardingEntryKey + 2, // 9: gribi_aft.Afts.BackupActivationKey.backup_activation:type_name -> gribi_aft.Afts.BackupActivation + 34, // 10: gribi_aft.Afts.Ipv4Entry.decapsulate_header:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType + 35, // 11: gribi_aft.Afts.Ipv4Entry.entry_metadata:type_name -> ywrapper.BytesValue + 36, // 12: gribi_aft.Afts.Ipv4Entry.next_hop_group:type_name -> ywrapper.UintValue + 37, // 13: gribi_aft.Afts.Ipv4Entry.next_hop_group_network_instance:type_name -> ywrapper.StringValue + 4, // 14: gribi_aft.Afts.Ipv4EntryKey.ipv4_entry:type_name -> gribi_aft.Afts.Ipv4Entry + 34, // 15: gribi_aft.Afts.Ipv6Entry.decapsulate_header:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType + 35, // 16: gribi_aft.Afts.Ipv6Entry.entry_metadata:type_name -> ywrapper.BytesValue + 36, // 17: gribi_aft.Afts.Ipv6Entry.next_hop_group:type_name -> ywrapper.UintValue + 37, // 18: gribi_aft.Afts.Ipv6Entry.next_hop_group_network_instance:type_name -> ywrapper.StringValue + 6, // 19: gribi_aft.Afts.Ipv6EntryKey.ipv6_entry:type_name -> gribi_aft.Afts.Ipv6Entry + 35, // 20: gribi_aft.Afts.LabelEntry.entry_metadata:type_name -> ywrapper.BytesValue + 36, // 21: gribi_aft.Afts.LabelEntry.next_hop_group:type_name -> ywrapper.UintValue + 37, // 22: gribi_aft.Afts.LabelEntry.next_hop_group_network_instance:type_name -> ywrapper.StringValue + 18, // 23: gribi_aft.Afts.LabelEntry.popped_mpls_label_stack:type_name -> gribi_aft.Afts.LabelEntry.PoppedMplsLabelStackUnion + 38, // 24: gribi_aft.Afts.LabelEntryKey.label_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum + 8, // 25: gribi_aft.Afts.LabelEntryKey.label_entry:type_name -> gribi_aft.Afts.LabelEntry + 35, // 26: gribi_aft.Afts.MacEntry.entry_metadata:type_name -> ywrapper.BytesValue + 36, // 27: gribi_aft.Afts.MacEntry.next_hop_group:type_name -> ywrapper.UintValue + 37, // 28: gribi_aft.Afts.MacEntry.next_hop_group_network_instance:type_name -> ywrapper.StringValue + 10, // 29: gribi_aft.Afts.MacEntryKey.mac_entry:type_name -> gribi_aft.Afts.MacEntry + 34, // 30: gribi_aft.Afts.NextHop.decapsulate_header:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType + 20, // 31: gribi_aft.Afts.NextHop.encap_header:type_name -> gribi_aft.Afts.NextHop.EncapHeaderKey + 34, // 32: gribi_aft.Afts.NextHop.encapsulate_header:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType + 21, // 33: gribi_aft.Afts.NextHop.gre:type_name -> gribi_aft.Afts.NextHop.Gre + 22, // 34: gribi_aft.Afts.NextHop.interface_ref:type_name -> gribi_aft.Afts.NextHop.InterfaceRef + 37, // 35: gribi_aft.Afts.NextHop.ip_address:type_name -> ywrapper.StringValue + 23, // 36: gribi_aft.Afts.NextHop.ip_in_ip:type_name -> gribi_aft.Afts.NextHop.IpInIp + 37, // 37: gribi_aft.Afts.NextHop.mac_address:type_name -> ywrapper.StringValue + 37, // 38: gribi_aft.Afts.NextHop.network_instance:type_name -> ywrapper.StringValue + 39, // 39: gribi_aft.Afts.NextHop.pop_top_label:type_name -> ywrapper.BoolValue + 24, // 40: gribi_aft.Afts.NextHop.pushed_mpls_label_stack:type_name -> gribi_aft.Afts.NextHop.PushedMplsLabelStackUnion + 37, // 41: gribi_aft.Afts.NextHop.tunnel_src_ip_address:type_name -> ywrapper.StringValue + 36, // 42: gribi_aft.Afts.NextHop.vni_label:type_name -> ywrapper.UintValue + 36, // 43: gribi_aft.Afts.NextHopGroup.backup_next_hop_group:type_name -> ywrapper.UintValue + 36, // 44: gribi_aft.Afts.NextHopGroup.color:type_name -> ywrapper.UintValue + 33, // 45: gribi_aft.Afts.NextHopGroup.next_hop:type_name -> gribi_aft.Afts.NextHopGroup.NextHopKey + 13, // 46: gribi_aft.Afts.NextHopGroupKey.next_hop_group:type_name -> gribi_aft.Afts.NextHopGroup + 12, // 47: gribi_aft.Afts.NextHopKey.next_hop:type_name -> gribi_aft.Afts.NextHop + 35, // 48: gribi_aft.Afts.PolicyForwardingEntry.entry_metadata:type_name -> ywrapper.BytesValue + 36, // 49: gribi_aft.Afts.PolicyForwardingEntry.ip_dscp:type_name -> ywrapper.UintValue + 37, // 50: gribi_aft.Afts.PolicyForwardingEntry.ip_prefix:type_name -> ywrapper.StringValue + 40, // 51: gribi_aft.Afts.PolicyForwardingEntry.ip_protocol_openconfigpacketmatchtypesipprotocol:type_name -> gribi_aft.enums.OpenconfigPacketMatchTypesIPPROTOCOL + 36, // 52: gribi_aft.Afts.PolicyForwardingEntry.l4_dst_port:type_name -> ywrapper.UintValue + 36, // 53: gribi_aft.Afts.PolicyForwardingEntry.l4_src_port:type_name -> ywrapper.UintValue + 37, // 54: gribi_aft.Afts.PolicyForwardingEntry.mac_address:type_name -> ywrapper.StringValue + 38, // 55: gribi_aft.Afts.PolicyForwardingEntry.mpls_label_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum + 36, // 56: gribi_aft.Afts.PolicyForwardingEntry.mpls_tc:type_name -> ywrapper.UintValue + 36, // 57: gribi_aft.Afts.PolicyForwardingEntry.next_hop_group:type_name -> ywrapper.UintValue + 37, // 58: gribi_aft.Afts.PolicyForwardingEntry.next_hop_group_network_instance:type_name -> ywrapper.StringValue + 16, // 59: gribi_aft.Afts.PolicyForwardingEntryKey.policy_forwarding_entry:type_name -> gribi_aft.Afts.PolicyForwardingEntry + 38, // 60: gribi_aft.Afts.LabelEntry.PoppedMplsLabelStackUnion.popped_mpls_label_stack_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum + 25, // 61: gribi_aft.Afts.NextHop.EncapHeader.gre:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Gre + 26, // 62: gribi_aft.Afts.NextHop.EncapHeader.ipv4:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Ipv4 + 27, // 63: gribi_aft.Afts.NextHop.EncapHeader.ipv6:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Ipv6 + 28, // 64: gribi_aft.Afts.NextHop.EncapHeader.mpls:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Mpls + 34, // 65: gribi_aft.Afts.NextHop.EncapHeader.type:type_name -> gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType + 29, // 66: gribi_aft.Afts.NextHop.EncapHeader.udp_v4:type_name -> gribi_aft.Afts.NextHop.EncapHeader.UdpV4 + 30, // 67: gribi_aft.Afts.NextHop.EncapHeader.udp_v6:type_name -> gribi_aft.Afts.NextHop.EncapHeader.UdpV6 + 19, // 68: gribi_aft.Afts.NextHop.EncapHeaderKey.encap_header:type_name -> gribi_aft.Afts.NextHop.EncapHeader + 37, // 69: gribi_aft.Afts.NextHop.Gre.dst_ip:type_name -> ywrapper.StringValue + 37, // 70: gribi_aft.Afts.NextHop.Gre.src_ip:type_name -> ywrapper.StringValue + 36, // 71: gribi_aft.Afts.NextHop.Gre.ttl:type_name -> ywrapper.UintValue + 37, // 72: gribi_aft.Afts.NextHop.InterfaceRef.interface:type_name -> ywrapper.StringValue + 36, // 73: gribi_aft.Afts.NextHop.InterfaceRef.subinterface:type_name -> ywrapper.UintValue + 37, // 74: gribi_aft.Afts.NextHop.IpInIp.dst_ip:type_name -> ywrapper.StringValue + 37, // 75: gribi_aft.Afts.NextHop.IpInIp.src_ip:type_name -> ywrapper.StringValue + 38, // 76: gribi_aft.Afts.NextHop.PushedMplsLabelStackUnion.pushed_mpls_label_stack_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum + 37, // 77: gribi_aft.Afts.NextHop.EncapHeader.Gre.dst_ip:type_name -> ywrapper.StringValue + 37, // 78: gribi_aft.Afts.NextHop.EncapHeader.Gre.src_ip:type_name -> ywrapper.StringValue + 36, // 79: gribi_aft.Afts.NextHop.EncapHeader.Gre.ttl:type_name -> ywrapper.UintValue + 37, // 80: gribi_aft.Afts.NextHop.EncapHeader.Ipv4.dst_ip:type_name -> ywrapper.StringValue + 37, // 81: gribi_aft.Afts.NextHop.EncapHeader.Ipv4.src_ip:type_name -> ywrapper.StringValue + 37, // 82: gribi_aft.Afts.NextHop.EncapHeader.Ipv6.dst_ip:type_name -> ywrapper.StringValue + 37, // 83: gribi_aft.Afts.NextHop.EncapHeader.Ipv6.src_ip:type_name -> ywrapper.StringValue + 31, // 84: gribi_aft.Afts.NextHop.EncapHeader.Mpls.mpls_label_stack:type_name -> gribi_aft.Afts.NextHop.EncapHeader.Mpls.MplsLabelStackUnion + 36, // 85: gribi_aft.Afts.NextHop.EncapHeader.Mpls.traffic_class:type_name -> ywrapper.UintValue + 36, // 86: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.dscp:type_name -> ywrapper.UintValue + 37, // 87: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.dst_ip:type_name -> ywrapper.StringValue + 36, // 88: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.dst_udp_port:type_name -> ywrapper.UintValue + 36, // 89: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.ip_ttl:type_name -> ywrapper.UintValue + 37, // 90: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.src_ip:type_name -> ywrapper.StringValue + 36, // 91: gribi_aft.Afts.NextHop.EncapHeader.UdpV4.src_udp_port:type_name -> ywrapper.UintValue + 36, // 92: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.dscp:type_name -> ywrapper.UintValue + 37, // 93: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.dst_ip:type_name -> ywrapper.StringValue + 36, // 94: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.dst_udp_port:type_name -> ywrapper.UintValue + 36, // 95: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.ip_ttl:type_name -> ywrapper.UintValue + 37, // 96: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.src_ip:type_name -> ywrapper.StringValue + 36, // 97: gribi_aft.Afts.NextHop.EncapHeader.UdpV6.src_udp_port:type_name -> ywrapper.UintValue + 38, // 98: gribi_aft.Afts.NextHop.EncapHeader.Mpls.MplsLabelStackUnion.mpls_label_stack_openconfigmplstypesmplslabelenum:type_name -> gribi_aft.enums.OpenconfigMplsTypesMplsLabelEnum + 36, // 99: gribi_aft.Afts.NextHopGroup.NextHop.weight:type_name -> ywrapper.UintValue + 32, // 100: gribi_aft.Afts.NextHopGroup.NextHopKey.next_hop:type_name -> gribi_aft.Afts.NextHopGroup.NextHop + 101, // [101:101] is the sub-list for method output_type + 101, // [101:101] is the sub-list for method input_type + 101, // [101:101] is the sub-list for extension type_name + 101, // [101:101] is the sub-list for extension extendee + 0, // [0:101] is the sub-list for field type_name } func init() { file_v1_proto_gribi_aft_gribi_aft_proto_init() } @@ -2519,11 +2624,11 @@ func file_v1_proto_gribi_aft_gribi_aft_proto_init() { if File_v1_proto_gribi_aft_gribi_aft_proto != nil { return } - file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[7].OneofWrappers = []any{ + file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[9].OneofWrappers = []any{ (*Afts_LabelEntryKey_LabelOpenconfigmplstypesmplslabelenum)(nil), (*Afts_LabelEntryKey_LabelUint64)(nil), } - file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[14].OneofWrappers = []any{ + file_v1_proto_gribi_aft_gribi_aft_proto_msgTypes[16].OneofWrappers = []any{ (*Afts_PolicyForwardingEntry_IpProtocolOpenconfigpacketmatchtypesipprotocol)(nil), (*Afts_PolicyForwardingEntry_IpProtocolUint64)(nil), (*Afts_PolicyForwardingEntry_MplsLabelOpenconfigmplstypesmplslabelenum)(nil), @@ -2535,7 +2640,7 @@ func file_v1_proto_gribi_aft_gribi_aft_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_v1_proto_gribi_aft_gribi_aft_proto_rawDesc), len(file_v1_proto_gribi_aft_gribi_aft_proto_rawDesc)), NumEnums: 0, - NumMessages: 32, + NumMessages: 34, NumExtensions: 0, NumServices: 0, }, diff --git a/v1/proto/gribi_aft/gribi_aft.proto b/v1/proto/gribi_aft/gribi_aft.proto index 120015a..10c40a6 100644 --- a/v1/proto/gribi_aft/gribi_aft.proto +++ b/v1/proto/gribi_aft/gribi_aft.proto @@ -21,6 +21,12 @@ message Device { } message Afts { + message BackupActivation { + } + message BackupActivationKey { + uint64 next_hop_group = 1 [(yext.schemapath) = "/afts/backup-activations/backup-activation/state/next-hop-group|/afts/backup-activations/backup-activation/next-hop-group"]; + BackupActivation backup_activation = 2; + } message Ipv4Entry { gribi_aft.enums.OpenconfigAftTypesEncapsulationHeaderType decapsulate_header = 383809427 [(yext.schemapath) = "/afts/ipv4-unicast/ipv4-entry/state/decapsulate-header"]; ywrapper.BytesValue entry_metadata = 290934374 [(yext.schemapath) = "/afts/ipv4-unicast/ipv4-entry/state/entry-metadata"]; @@ -192,6 +198,7 @@ message Afts { uint64 index = 1 [(yext.schemapath) = "/afts/policy-forwarding/policy-forwarding-entry/state/index|/afts/policy-forwarding/policy-forwarding-entry/index"]; PolicyForwardingEntry policy_forwarding_entry = 2; } + repeated BackupActivationKey backup_activation = 177885967 [(yext.schemapath) = "/afts/backup-activations/backup-activation"]; repeated Ipv4EntryKey ipv4_entry = 410397655 [(yext.schemapath) = "/afts/ipv4-unicast/ipv4-entry"]; repeated Ipv6EntryKey ipv6_entry = 403891971 [(yext.schemapath) = "/afts/ipv6-unicast/ipv6-entry"]; repeated LabelEntryKey label_entry = 153428187 [(yext.schemapath) = "/afts/mpls/label-entry"]; diff --git a/v1/proto/service/gribi.pb.go b/v1/proto/service/gribi.pb.go index 16cca04..a10173c 100644 --- a/v1/proto/service/gribi.pb.go +++ b/v1/proto/service/gribi.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.36.8 -// protoc v6.31.1 +// protoc-gen-go v1.36.7 +// protoc v3.21.12 // source: v1/proto/service/gribi.proto package gribi @@ -50,6 +50,7 @@ const ( AFTType_NEXTHOP_GROUP AFTType = 6 AFTType_MAC AFTType = 7 AFTType_POLICY_FORWARDING AFTType = 8 + AFTType_BACKUP_ACTIVATE AFTType = 9 ) // Enum value maps for AFTType. @@ -64,6 +65,7 @@ var ( 6: "NEXTHOP_GROUP", 7: "MAC", 8: "POLICY_FORWARDING", + 9: "BACKUP_ACTIVATE", } AFTType_value = map[string]int32{ "INVALID": 0, @@ -75,6 +77,7 @@ var ( "NEXTHOP_GROUP": 6, "MAC": 7, "POLICY_FORWARDING": 8, + "BACKUP_ACTIVATE": 9, } ) @@ -918,6 +921,7 @@ type AFTOperation struct { // *AFTOperation_NextHop // *AFTOperation_MacEntry // *AFTOperation_PolicyForwardingEntry + // *AFTOperation_BackupActivation Entry isAFTOperation_Entry `protobuf_oneof:"entry"` // Election ID of the client. // In SINGLE_PRIMARY redundancy model, used by the server to determine @@ -1058,6 +1062,15 @@ func (x *AFTOperation) GetPolicyForwardingEntry() *gribi_aft.Afts_PolicyForwardi return nil } +func (x *AFTOperation) GetBackupActivation() *gribi_aft.Afts_BackupActivationKey { + if x != nil { + if x, ok := x.Entry.(*AFTOperation_BackupActivation); ok { + return x.BackupActivation + } + } + return nil +} + func (x *AFTOperation) GetElectionId() *Uint128 { if x != nil { return x.ElectionId @@ -1115,6 +1128,12 @@ type AFTOperation_PolicyForwardingEntry struct { PolicyForwardingEntry *gribi_aft.Afts_PolicyForwardingEntryKey `protobuf:"bytes,10,opt,name=policy_forwarding_entry,json=policyForwardingEntry,proto3,oneof"` } +type AFTOperation_BackupActivation struct { + // Schema for BackupActivateKey is generated from + // /network-instances/network-instance/afts/backup-activate + BackupActivation *gribi_aft.Afts_BackupActivationKey `protobuf:"bytes,12,opt,name=backup_activation,json=backupActivation,proto3,oneof"` +} + func (*AFTOperation_Ipv4) isAFTOperation_Entry() {} func (*AFTOperation_Ipv6) isAFTOperation_Entry() {} @@ -1129,6 +1148,8 @@ func (*AFTOperation_MacEntry) isAFTOperation_Entry() {} func (*AFTOperation_PolicyForwardingEntry) isAFTOperation_Entry() {} +func (*AFTOperation_BackupActivation) isAFTOperation_Entry() {} + // A set of AFT responses. type ModifyResponse struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -1686,6 +1707,7 @@ type AFTEntry struct { // *AFTEntry_NextHop // *AFTEntry_MacEntry // *AFTEntry_PolicyForwardingEntry + // *AFTEntry_BackupActivation 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"` @@ -1802,6 +1824,15 @@ func (x *AFTEntry) GetPolicyForwardingEntry() *gribi_aft.Afts_PolicyForwardingEn return nil } +func (x *AFTEntry) GetBackupActivation() *gribi_aft.Afts_BackupActivationKey { + if x != nil { + if x, ok := x.Entry.(*AFTEntry_BackupActivation); ok { + return x.BackupActivation + } + } + return nil +} + func (x *AFTEntry) GetRibStatus() AFTEntry_Status { if x != nil { return x.RibStatus @@ -1852,6 +1883,10 @@ type AFTEntry_PolicyForwardingEntry struct { PolicyForwardingEntry *gribi_aft.Afts_PolicyForwardingEntryKey `protobuf:"bytes,10,opt,name=policy_forwarding_entry,json=policyForwardingEntry,proto3,oneof"` } +type AFTEntry_BackupActivation struct { + BackupActivation *gribi_aft.Afts_BackupActivationKey `protobuf:"bytes,13,opt,name=backup_activation,json=backupActivation,proto3,oneof"` +} + func (*AFTEntry_Ipv4) isAFTEntry_Entry() {} func (*AFTEntry_Ipv6) isAFTEntry_Entry() {} @@ -1866,6 +1901,8 @@ func (*AFTEntry_MacEntry) isAFTEntry_Entry() {} func (*AFTEntry_PolicyForwardingEntry) isAFTEntry_Entry() {} +func (*AFTEntry_BackupActivation) isAFTEntry_Entry() {} + type GetResponse struct { state protoimpl.MessageState `protogen:"open.v1"` // A set of entries that are installed on the device. @@ -2190,7 +2227,7 @@ const file_v1_proto_service_gribi_proto_rawDesc = "" + "\toperation\x18\x01 \x03(\v2\x13.gribi.AFTOperationR\toperation\x120\n" + "\x06params\x18\x02 \x01(\v2\x18.gribi.SessionParametersR\x06params\x12/\n" + "\velection_id\x18\x03 \x01(\v2\x0e.gribi.Uint128R\n" + - "electionId\"\xad\x05\n" + + "electionId\"\x81\x06\n" + "\fAFTOperation\x12\x0e\n" + "\x02id\x18\x01 \x01(\x04R\x02id\x12)\n" + "\x10network_instance\x18\x02 \x01(\tR\x0fnetworkInstance\x12-\n" + @@ -2202,7 +2239,8 @@ const file_v1_proto_service_gribi_proto_rawDesc = "" + "\bnext_hop\x18\b \x01(\v2\x1a.gribi_aft.Afts.NextHopKeyH\x00R\anextHop\x12:\n" + "\tmac_entry\x18\t \x01(\v2\x1b.gribi_aft.Afts.MacEntryKeyH\x00R\bmacEntry\x12b\n" + "\x17policy_forwarding_entry\x18\n" + - " \x01(\v2(.gribi_aft.Afts.PolicyForwardingEntryKeyH\x00R\x15policyForwardingEntry\x12/\n" + + " \x01(\v2(.gribi_aft.Afts.PolicyForwardingEntryKeyH\x00R\x15policyForwardingEntry\x12R\n" + + "\x11backup_activation\x18\f \x01(\v2#.gribi_aft.Afts.BackupActivationKeyH\x00R\x10backupActivation\x12/\n" + "\velection_id\x18\v \x01(\v2\x0e.gribi.Uint128R\n" + "electionId\":\n" + "\tOperation\x12\v\n" + @@ -2271,7 +2309,7 @@ const file_v1_proto_service_gribi_proto_rawDesc = "" + "\x04name\x18\x01 \x01(\tH\x00R\x04name\x12 \n" + "\x03all\x18\x02 \x01(\v2\f.gribi.EmptyH\x00R\x03all\x12 \n" + "\x03aft\x18\x03 \x01(\x0e2\x0e.gribi.AFTTypeR\x03aftB\x12\n" + - "\x10network_instance\"\xaa\x05\n" + + "\x10network_instance\"\xfe\x05\n" + "\bAFTEntry\x12)\n" + "\x10network_instance\x18\x01 \x01(\tR\x0fnetworkInstance\x122\n" + "\x04ipv4\x18\x04 \x01(\v2\x1c.gribi_aft.Afts.Ipv4EntryKeyH\x00R\x04ipv4\x122\n" + @@ -2281,7 +2319,8 @@ const file_v1_proto_service_gribi_proto_rawDesc = "" + "\bnext_hop\x18\b \x01(\v2\x1a.gribi_aft.Afts.NextHopKeyH\x00R\anextHop\x12:\n" + "\tmac_entry\x18\t \x01(\v2\x1b.gribi_aft.Afts.MacEntryKeyH\x00R\bmacEntry\x12b\n" + "\x17policy_forwarding_entry\x18\n" + - " \x01(\v2(.gribi_aft.Afts.PolicyForwardingEntryKeyH\x00R\x15policyForwardingEntry\x125\n" + + " \x01(\v2(.gribi_aft.Afts.PolicyForwardingEntryKeyH\x00R\x15policyForwardingEntry\x12R\n" + + "\x11backup_activation\x18\r \x01(\v2#.gribi_aft.Afts.BackupActivationKeyH\x00R\x10backupActivation\x125\n" + "\n" + "rib_status\x18\v \x01(\x0e2\x16.gribi.AFTEntry.StatusR\tribStatus\x125\n" + "\n" + @@ -2319,7 +2358,7 @@ const file_v1_proto_service_gribi_proto_rawDesc = "" + "\x1dUNSPECIFIED_ELECTION_BEHAVIOR\x10\x04\x12\x17\n" + "\x13INVALID_ELECTION_ID\x10\x05\x12 \n" + "\x1cUNSPECIFIED_NETWORK_INSTANCE\x10\x06\x12\x1c\n" + - "\x18INVALID_NETWORK_INSTANCE\x10\a*}\n" + + "\x18INVALID_NETWORK_INSTANCE\x10\a*\x92\x01\n" + "\aAFTType\x12\v\n" + "\aINVALID\x10\x00\x12\a\n" + "\x03ALL\x10\x01\x12\b\n" + @@ -2329,7 +2368,8 @@ const file_v1_proto_service_gribi_proto_rawDesc = "" + "\aNEXTHOP\x10\x05\x12\x11\n" + "\rNEXTHOP_GROUP\x10\x06\x12\a\n" + "\x03MAC\x10\a\x12\x15\n" + - "\x11POLICY_FORWARDING\x10\b2\xa6\x01\n" + + "\x11POLICY_FORWARDING\x10\b\x12\x13\n" + + "\x0fBACKUP_ACTIVATE\x10\t2\xa6\x01\n" + "\x05gRIBI\x129\n" + "\x06Modify\x12\x14.gribi.ModifyRequest\x1a\x15.gribi.ModifyResponse(\x010\x01\x12.\n" + "\x03Get\x12\x11.gribi.GetRequest\x1a\x12.gribi.GetResponse0\x01\x122\n" + @@ -2384,6 +2424,7 @@ var file_v1_proto_service_gribi_proto_goTypes = []any{ (*gribi_aft.Afts_NextHopKey)(nil), // 31: gribi_aft.Afts.NextHopKey (*gribi_aft.Afts_MacEntryKey)(nil), // 32: gribi_aft.Afts.MacEntryKey (*gribi_aft.Afts_PolicyForwardingEntryKey)(nil), // 33: gribi_aft.Afts.PolicyForwardingEntryKey + (*gribi_aft.Afts_BackupActivationKey)(nil), // 34: gribi_aft.Afts.BackupActivationKey } var file_v1_proto_service_gribi_proto_depIdxs = []int32{ 12, // 0: gribi.ModifyRequest.operation:type_name -> gribi.AFTOperation @@ -2397,45 +2438,47 @@ var file_v1_proto_service_gribi_proto_depIdxs = []int32{ 31, // 8: gribi.AFTOperation.next_hop:type_name -> gribi_aft.Afts.NextHopKey 32, // 9: gribi.AFTOperation.mac_entry:type_name -> gribi_aft.Afts.MacEntryKey 33, // 10: gribi.AFTOperation.policy_forwarding_entry:type_name -> gribi_aft.Afts.PolicyForwardingEntryKey - 18, // 11: gribi.AFTOperation.election_id:type_name -> gribi.Uint128 - 14, // 12: gribi.ModifyResponse.result:type_name -> gribi.AFTResult - 17, // 13: gribi.ModifyResponse.session_params_result:type_name -> gribi.SessionParametersResult - 18, // 14: gribi.ModifyResponse.election_id:type_name -> gribi.Uint128 - 2, // 15: gribi.AFTResult.status:type_name -> gribi.AFTResult.Status - 15, // 16: gribi.AFTResult.error_details:type_name -> gribi.AFTErrorDetails - 3, // 17: gribi.ModifyRPCErrorDetails.reason:type_name -> gribi.ModifyRPCErrorDetails.Reason - 4, // 18: gribi.SessionParametersResult.status:type_name -> gribi.SessionParametersResult.Status - 5, // 19: gribi.SessionParameters.redundancy:type_name -> gribi.SessionParameters.ClientRedundancy - 6, // 20: gribi.SessionParameters.persistence:type_name -> gribi.SessionParameters.AFTPersistence - 7, // 21: gribi.SessionParameters.ack_type:type_name -> gribi.SessionParameters.AFTResultStatusType - 20, // 22: gribi.GetRequest.all:type_name -> gribi.Empty - 0, // 23: gribi.GetRequest.aft:type_name -> gribi.AFTType - 27, // 24: gribi.AFTEntry.ipv4:type_name -> gribi_aft.Afts.Ipv4EntryKey - 28, // 25: gribi.AFTEntry.ipv6:type_name -> gribi_aft.Afts.Ipv6EntryKey - 29, // 26: gribi.AFTEntry.mpls:type_name -> gribi_aft.Afts.LabelEntryKey - 30, // 27: gribi.AFTEntry.next_hop_group:type_name -> gribi_aft.Afts.NextHopGroupKey - 31, // 28: gribi.AFTEntry.next_hop:type_name -> gribi_aft.Afts.NextHopKey - 32, // 29: gribi.AFTEntry.mac_entry:type_name -> gribi_aft.Afts.MacEntryKey - 33, // 30: gribi.AFTEntry.policy_forwarding_entry:type_name -> gribi_aft.Afts.PolicyForwardingEntryKey - 8, // 31: gribi.AFTEntry.rib_status:type_name -> gribi.AFTEntry.Status - 8, // 32: gribi.AFTEntry.fib_status:type_name -> gribi.AFTEntry.Status - 22, // 33: gribi.GetResponse.entry:type_name -> gribi.AFTEntry - 18, // 34: gribi.FlushRequest.id:type_name -> gribi.Uint128 - 20, // 35: gribi.FlushRequest.override:type_name -> gribi.Empty - 20, // 36: gribi.FlushRequest.all:type_name -> gribi.Empty - 9, // 37: gribi.FlushResponse.result:type_name -> gribi.FlushResponse.Result - 10, // 38: gribi.FlushResponseError.status:type_name -> gribi.FlushResponseError.Reason - 11, // 39: gribi.gRIBI.Modify:input_type -> gribi.ModifyRequest - 21, // 40: gribi.gRIBI.Get:input_type -> gribi.GetRequest - 24, // 41: gribi.gRIBI.Flush:input_type -> gribi.FlushRequest - 13, // 42: gribi.gRIBI.Modify:output_type -> gribi.ModifyResponse - 23, // 43: gribi.gRIBI.Get:output_type -> gribi.GetResponse - 25, // 44: gribi.gRIBI.Flush:output_type -> gribi.FlushResponse - 42, // [42:45] is the sub-list for method output_type - 39, // [39:42] is the sub-list for method input_type - 39, // [39:39] is the sub-list for extension type_name - 39, // [39:39] is the sub-list for extension extendee - 0, // [0:39] is the sub-list for field type_name + 34, // 11: gribi.AFTOperation.backup_activation:type_name -> gribi_aft.Afts.BackupActivationKey + 18, // 12: gribi.AFTOperation.election_id:type_name -> gribi.Uint128 + 14, // 13: gribi.ModifyResponse.result:type_name -> gribi.AFTResult + 17, // 14: gribi.ModifyResponse.session_params_result:type_name -> gribi.SessionParametersResult + 18, // 15: gribi.ModifyResponse.election_id:type_name -> gribi.Uint128 + 2, // 16: gribi.AFTResult.status:type_name -> gribi.AFTResult.Status + 15, // 17: gribi.AFTResult.error_details:type_name -> gribi.AFTErrorDetails + 3, // 18: gribi.ModifyRPCErrorDetails.reason:type_name -> gribi.ModifyRPCErrorDetails.Reason + 4, // 19: gribi.SessionParametersResult.status:type_name -> gribi.SessionParametersResult.Status + 5, // 20: gribi.SessionParameters.redundancy:type_name -> gribi.SessionParameters.ClientRedundancy + 6, // 21: gribi.SessionParameters.persistence:type_name -> gribi.SessionParameters.AFTPersistence + 7, // 22: gribi.SessionParameters.ack_type:type_name -> gribi.SessionParameters.AFTResultStatusType + 20, // 23: gribi.GetRequest.all:type_name -> gribi.Empty + 0, // 24: gribi.GetRequest.aft:type_name -> gribi.AFTType + 27, // 25: gribi.AFTEntry.ipv4:type_name -> gribi_aft.Afts.Ipv4EntryKey + 28, // 26: gribi.AFTEntry.ipv6:type_name -> gribi_aft.Afts.Ipv6EntryKey + 29, // 27: gribi.AFTEntry.mpls:type_name -> gribi_aft.Afts.LabelEntryKey + 30, // 28: gribi.AFTEntry.next_hop_group:type_name -> gribi_aft.Afts.NextHopGroupKey + 31, // 29: gribi.AFTEntry.next_hop:type_name -> gribi_aft.Afts.NextHopKey + 32, // 30: gribi.AFTEntry.mac_entry:type_name -> gribi_aft.Afts.MacEntryKey + 33, // 31: gribi.AFTEntry.policy_forwarding_entry:type_name -> gribi_aft.Afts.PolicyForwardingEntryKey + 34, // 32: gribi.AFTEntry.backup_activation:type_name -> gribi_aft.Afts.BackupActivationKey + 8, // 33: gribi.AFTEntry.rib_status:type_name -> gribi.AFTEntry.Status + 8, // 34: gribi.AFTEntry.fib_status:type_name -> gribi.AFTEntry.Status + 22, // 35: gribi.GetResponse.entry:type_name -> gribi.AFTEntry + 18, // 36: gribi.FlushRequest.id:type_name -> gribi.Uint128 + 20, // 37: gribi.FlushRequest.override:type_name -> gribi.Empty + 20, // 38: gribi.FlushRequest.all:type_name -> gribi.Empty + 9, // 39: gribi.FlushResponse.result:type_name -> gribi.FlushResponse.Result + 10, // 40: gribi.FlushResponseError.status:type_name -> gribi.FlushResponseError.Reason + 11, // 41: gribi.gRIBI.Modify:input_type -> gribi.ModifyRequest + 21, // 42: gribi.gRIBI.Get:input_type -> gribi.GetRequest + 24, // 43: gribi.gRIBI.Flush:input_type -> gribi.FlushRequest + 13, // 44: gribi.gRIBI.Modify:output_type -> gribi.ModifyResponse + 23, // 45: gribi.gRIBI.Get:output_type -> gribi.GetResponse + 25, // 46: gribi.gRIBI.Flush:output_type -> gribi.FlushResponse + 44, // [44:47] is the sub-list for method output_type + 41, // [41:44] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name } func init() { file_v1_proto_service_gribi_proto_init() } @@ -2451,6 +2494,7 @@ func file_v1_proto_service_gribi_proto_init() { (*AFTOperation_NextHop)(nil), (*AFTOperation_MacEntry)(nil), (*AFTOperation_PolicyForwardingEntry)(nil), + (*AFTOperation_BackupActivation)(nil), } file_v1_proto_service_gribi_proto_msgTypes[10].OneofWrappers = []any{ (*GetRequest_Name)(nil), @@ -2464,6 +2508,7 @@ func file_v1_proto_service_gribi_proto_init() { (*AFTEntry_NextHop)(nil), (*AFTEntry_MacEntry)(nil), (*AFTEntry_PolicyForwardingEntry)(nil), + (*AFTEntry_BackupActivation)(nil), } file_v1_proto_service_gribi_proto_msgTypes[13].OneofWrappers = []any{ (*FlushRequest_Id)(nil), diff --git a/v1/proto/service/gribi.proto b/v1/proto/service/gribi.proto index dc421bd..1483e1e 100644 --- a/v1/proto/service/gribi.proto +++ b/v1/proto/service/gribi.proto @@ -192,28 +192,32 @@ message AFTOperation { // Each openconfig.AFT.* message is a protobuf transformed // message corresponding to the OpenConfig AFT for that // schema. - // Schema for IPv4UnicastEntry is generated from + // Schema for ipv4 is generated from // /network-instances/network-instance/afts/ipv4-unicast/ipv4-entry gribi_aft.Afts.Ipv4EntryKey ipv4 = 4; - // Schema for IPv6UnicastEntry is generated from + // Schema for ipv6 is generated from // /network-instances/network-instance/afts/ipv6-unicast/ipv6-entry gribi_aft.Afts.Ipv6EntryKey ipv6 = 5; - // Schema for MPLSLabelEntry is generated from + // Schema for mpls is generated from // /network-instances/network-instance/afts/mpls/label-entry gribi_aft.Afts.LabelEntryKey mpls = 6; - // Schema for NextHopGroup is generated from + // Schema for next_hop_group is generated from // /network-instances/network-instance/afts/next-hop-groups/next-hop-group gribi_aft.Afts.NextHopGroupKey next_hop_group = 7; - // Schema for NextHop is generated from + // Schema for next_hop is generated from // /network-instances/network-instance/afts/next-hops/next-hop. gribi_aft.Afts.NextHopKey next_hop = 8; - // Schema for MacEntry is generated from + // Schema for mac_entry is generated from // /network-instances/network-instance/afts/ethernet/mac-entry gribi_aft.Afts.MacEntryKey mac_entry = 9; - // Schema for PolicyForwardingGroup is generated from + // Schema for policy_forwarding_entry is generated from // /network-instances/network-instance/afts/policy-forwarding/ // policy-forwarding-entry gribi_aft.Afts.PolicyForwardingEntryKey policy_forwarding_entry = 10; + // Schema for backup_activation is generated from + // /network-instances/network-instance/afts/backup-activations/ + // backup-activation + gribi_aft.Afts.BackupActivationKey backup_activation = 12; } // Election ID of the client. @@ -435,6 +439,7 @@ enum AFTType { NEXTHOP_GROUP = 6; MAC = 7; POLICY_FORWARDING = 8; + BACKUP_ACTIVATE = 9; } // Empty is a specific message that is used as a marker where @@ -479,6 +484,7 @@ message AFTEntry { gribi_aft.Afts.NextHopKey next_hop = 8; gribi_aft.Afts.MacEntryKey mac_entry = 9; gribi_aft.Afts.PolicyForwardingEntryKey policy_forwarding_entry = 10; + gribi_aft.Afts.BackupActivationKey backup_activation = 13; } enum Status { // The programming status is not available. diff --git a/v1/proto/service/gribi_grpc.pb.go b/v1/proto/service/gribi_grpc.pb.go index 3dbf08a..d131509 100644 --- a/v1/proto/service/gribi_grpc.pb.go +++ b/v1/proto/service/gribi_grpc.pb.go @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v6.31.1 +// - protoc-gen-go-grpc v1.6.1 +// - protoc v3.21.12 // source: v1/proto/service/gribi.proto package gribi @@ -155,13 +155,13 @@ type GRIBIServer interface { type UnimplementedGRIBIServer struct{} func (UnimplementedGRIBIServer) Modify(grpc.BidiStreamingServer[ModifyRequest, ModifyResponse]) error { - return status.Errorf(codes.Unimplemented, "method Modify not implemented") + return status.Error(codes.Unimplemented, "method Modify not implemented") } func (UnimplementedGRIBIServer) Get(*GetRequest, grpc.ServerStreamingServer[GetResponse]) error { - return status.Errorf(codes.Unimplemented, "method Get not implemented") + return status.Error(codes.Unimplemented, "method Get not implemented") } func (UnimplementedGRIBIServer) Flush(context.Context, *FlushRequest) (*FlushResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Flush not implemented") + return nil, status.Error(codes.Unimplemented, "method Flush not implemented") } func (UnimplementedGRIBIServer) mustEmbedUnimplementedGRIBIServer() {} func (UnimplementedGRIBIServer) testEmbeddedByValue() {} @@ -174,7 +174,7 @@ type UnsafeGRIBIServer interface { } func RegisterGRIBIServer(s grpc.ServiceRegistrar, srv GRIBIServer) { - // If the following call pancis, it indicates UnimplementedGRIBIServer was + // If the following call panics, it indicates UnimplementedGRIBIServer was // embedded by pointer and is nil. This will cause panics if an // unimplemented method is ever invoked, so we test this at initialization // time to prevent it from happening at runtime later due to I/O. diff --git a/v1/yang/aft/openconfig-aft-common.yang b/v1/yang/aft/openconfig-aft-common.yang index 50eac8d..aa2b724 100644 --- a/v1/yang/aft/openconfig-aft-common.yang +++ b/v1/yang/aft/openconfig-aft-common.yang @@ -23,7 +23,52 @@ submodule openconfig-aft-common { "Submodule containing definitions of groupings that are re-used across multiple contexts within the AFT model."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "3.5.0"; + + revision "2026-09-01" { + description + "Add backup activation state for next-hop-groups."; + reference "3.5.0"; + } + + revision "2026-03-10" { + description + "Add global-filter container to support per-network-instance AFT prefix filtering."; + reference "3.4.0"; + } + + revision "2026-02-09" { + description + "Deprecate popped-mpls-label-stack and AFT NH pushed-mpls-label-stack + and mpls-label-stack leafs as they do not support duplicates. + Add decap-mpls-label-stack and AFT NH encap-mpls-label-stack + and encap-mpls-label-stack leafs that support duplicates."; + reference "3.3.0"; + } + + revision "2025-08-07" { + description + "Factor out AFT counters from atomic container into a unified subtree."; + reference "3.2.0"; + } + + revision "2025-05-15" { + description + "Add GRE and MPLS to encap-headers."; + reference "3.1.0"; + } + + revision "2025-03-12" { + description + "Use IP address-family specific types for UDP-V4 and UDP-V6 encapsulations in AFT."; + reference "3.0.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-09-05" { description @@ -170,6 +215,7 @@ submodule openconfig-aft-common { "Structural grouping describing a next-hop entry."; container next-hops { + config false; description "The list of next-hops that are to be used for entry within the AFT table. The structure of each next-hop is address @@ -212,7 +258,7 @@ submodule openconfig-aft-common { container counters { description - "Surrounding container for counters."; + "Deprecated container for counters."; uses aft-common-entry-counter-state; } @@ -258,7 +304,7 @@ submodule openconfig-aft-common { description "State parameters relating to GRE encapsulation."; - uses aft-common-entry-nexthop-gre-state; + uses aft-common-entry-nexthop-encap-gre-config; } } @@ -311,7 +357,7 @@ submodule openconfig-aft-common { description "State parameters relating to GRE encapsulation headers."; - uses aft-common-entry-nexthop-gre-state; + uses aft-common-entry-nexthop-encap-gre-config; } } @@ -356,6 +402,7 @@ submodule openconfig-aft-common { uses aft-common-entry-nexthop-mpls-state; } + uses aft-common-entry-nexthop-mpls-label-state; } container udp-v4 { @@ -370,7 +417,7 @@ submodule openconfig-aft-common { "State parameters relating to UDP in IPv4 encapsulation headers."; - uses aft-common-entry-nexthop-encap-udp-state; + uses aft-common-entry-nexthop-encap-udp-v4-state; } } @@ -386,7 +433,7 @@ submodule openconfig-aft-common { "State parameters relating to UDP in IPv6 encapsulation headers."; - uses aft-common-entry-nexthop-encap-udp-state; + uses aft-common-entry-nexthop-encap-udp-v6-state; } } @@ -436,7 +483,7 @@ submodule openconfig-aft-common { container counters { config false; description - "Surrounding container for counters."; + "Deprecated container for counters."; uses aft-common-entry-counter-state; } @@ -547,12 +594,14 @@ submodule openconfig-aft-common { leaf-list pushed-mpls-label-stack { type oc-mplst:mpls-label; ordered-by user; + status deprecated; description "The MPLS label stack imposed when forwarding packets to the next-hop - the stack is encoded as a leaf list whereby the order of the entries is such that the first entry in the list is the - label at the bottom of the stack to be pushed. + label at the bottom of the stack to be pushed. This does not + support duplicate labels. To this end, a packet which is to forwarded to a device using a service label of 42, and a transport label of 8072 will be @@ -564,10 +613,8 @@ submodule openconfig-aft-common { A swap operation is reflected by entries in the popped-mpls-label-stack and pushed-mpls-label-stack nodes. - This node must be supported in addition to the - encap-headers/encap-header tree. A future release of OpenConfig - will deprecate this node in favor of the - encap-headers/encap-header subtree."; + This node is deprecated in favor of the encap-headers/encap-header + subtree."; } leaf encapsulate-header { @@ -598,6 +645,60 @@ submodule openconfig-aft-common { uses aft-common-install-protocol; } + grouping aft-common-entry-nexthop-mpls-label-state { + description + "Parameters relating to a next-hop mpls state."; + + container encap-mpls-label-stacks { + description + "Surrounding container for groups of encap-mpls-label-stack."; + + list encap-mpls-label-stack { + ordered-by user; + description + "A stack of MPLS label values. The first entry in the list is the + label at the bottom of the stack. The bottom of the stack is adjacent + to the MPLS payload. This supports duplicate labels. + + For example, a packet with a label stack of two labels, the bottom + label being 42 and the top label being 8072 will be represented with + a leaf-list of [42, 8072]. The resulting packet, starting with the + beginning of the packet will be '[8072][42][Payload]'. + + Note: a swap operation is reflected by entries in the + decap-mpls-label-stack and the encap-mpls-label-stack"; + + key "id"; + + leaf id { + type leafref { + path "../state/id"; + } + description + "Reference to list key"; + } + + container state { + config false; + description + "State parameters relating to nexthop encap"; + + leaf id { + type uint8; + description + "Index for a label in the list."; + } + + leaf label { + type oc-mplst:mpls-label; + description + "MPLS label value."; + } + } + } + } + } + grouping aft-common-entry-nexthop-ip-state { description "IP encapsulation applied on a next-hop"; @@ -615,16 +716,14 @@ submodule openconfig-aft-common { } } - grouping aft-common-entry-nexthop-gre-state { + grouping aft-common-entry-nexthop-encap-gre-config { description "GRE encapsulation applied on a IPv4 and IPv6 next-hop."; leaf src-ip { type oc-inet:ip-address; description - "The source IP address for the GRE encapsulation may be expressed - using this leaf (src-ip) or if may be derived from - '../../interface-ref/state/subinterface'"; + "The source IP address for the GRE encapsulation."; } leaf dst-ip { @@ -636,10 +735,9 @@ submodule openconfig-aft-common { leaf ttl { type uint8; description - "This leaf reflects the configured/default TTL value that is used in the - outer header during packet encapsulation. When this leaf is not set, - the TTL value of the inner packet is copied over as the outer packet's - TTL value during encapsulation."; + "If specified, this TTL value is used on the GRE header during + encapsulation. If unspecified, the TTL value of the inner packet is + copied to the GRE header TTL value during encapsulation."; } } @@ -657,10 +755,13 @@ submodule openconfig-aft-common { leaf-list mpls-label-stack { type oc-mplst:mpls-label; ordered-by user; + status deprecated; description "A stack of MPLS label values. The first entry in the list is the label at the bottom of the stack. The bottom of the stack is adjacent - to the MPLS payload. + to the MPLS payload. This does not support duplicate labels. + + This node is deprecated in favor of the list encap-mpls-label-stack. For example, a packet with a label stack of two labels, the bottom label being 42 and the top label being 8072 will be represented with @@ -672,23 +773,79 @@ submodule openconfig-aft-common { } } + grouping aft-common-entry-nexthop-encap-mpls-config { + description + "MPLS encapsulation of a packet."; + + leaf traffic-class { + type oc-mplst:mpls-tc; + description + "The value of the MPLS traffic class (TC) bits, formerly known as the + EXP bits."; + } + leaf label { + type oc-mplst:mpls-label; + description + "A MPLS label value."; + } + } + + grouping aft-common-entry-nexthop-encap-udp-v4-state { + description + "UDP in IPv4 encapsulation applied on top of a packet."; + + uses aft-common-entry-nexthop-encap-udp-v4; - grouping aft-common-entry-nexthop-encap-udp-state { + uses aft-common-entry-nexthop-encap-udp; + } + + grouping aft-common-entry-nexthop-encap-udp-v6-state { + description + "UDP in IPv6 encapsulation applied on top of a packet."; + + uses aft-common-entry-nexthop-encap-udp-v6; + + uses aft-common-entry-nexthop-encap-udp; + } + + grouping aft-common-entry-nexthop-encap-udp-v4 { description - "UDP encapsulation applied on top of a packet."; + "IPv4 addresses for an UDP in IPv4 encapsulation"; leaf src-ip { - type oc-inet:ip-address; + type oc-inet:ipv4-address; description - "The source IP address for IP/UDP encapsulation."; + "The source IPv4 address for IP/UDP encapsulation."; } leaf dst-ip { - type oc-inet:ip-address; + type oc-inet:ipv4-address; + description + "Destination IPv4 address for IP/UDP encapsulation."; + } + } + + grouping aft-common-entry-nexthop-encap-udp-v6 { + description + "IPv6 addresses for an UDP in IPv6 encapsulation"; + + leaf src-ip { + type oc-inet:ipv6-address; description - "Destination IP address for IP/UDP encapsulation."; + "The source IPv6 address for IP/UDP encapsulation."; } + leaf dst-ip { + type oc-inet:ipv6-address; + description + "Destination IPv6 address for IP/UDP encapsulation."; + } + } + + grouping aft-common-entry-nexthop-encap-udp { + description + "Common fields used for UDP in IPv4/IPv6 encapsulation applied on top of a packet."; + leaf dscp { type oc-inet:dscp; description @@ -791,6 +948,7 @@ submodule openconfig-aft-common { "Logical grouping for groups of next-hops."; container next-hop-groups { + config false; description "Surrounding container for groups of next-hops."; @@ -934,6 +1092,50 @@ submodule openconfig-aft-common { } } + grouping aft-backup-activations-structural { + description + "Structural grouping for backup next-hop-group activation entries."; + + container backup-activations { + config false; + description + "Surrounding container for external/software-driven backup next-hop-group activations."; + + list backup-activation { + key "next-hop-group"; + + description + "An operational entry indicating that the backup-next-hop-group has been + activated for the specified next-hop-group."; + + leaf next-hop-group { + type leafref { + path "../state/next-hop-group"; + } + + description + "Reference to the target next-hop-group whose backup next-hop-group is activated."; + } + + container state { + config false; + + description + "Operational state parameters relating to backup activation."; + + leaf next-hop-group { + type leafref { + path "../../../../next-hop-groups/next-hop-group/state/id"; + } + + description + "The identifier of the next-hop-group for which backup is activated."; + } + } + } + } + } + grouping aft-nhg-state { description "Operational state parameters related to a next-hop-group."; @@ -1098,16 +1300,24 @@ submodule openconfig-aft-common { leaf packets-forwarded { type oc-yang:counter64; + status deprecated; description "The number of packets which have matched, and been forwarded, - based on the AFT entry."; + based on the AFT entry. + + This leaf has been deprecated and replaced by + .../afts/counters/.../state/packets-forwarded"; } leaf octets-forwarded { type oc-yang:counter64; + status deprecated; description "The number of octets which have matched, and been forwarded, - based on the AFT entry"; + based on the AFT entry + + This leaf has been deprecated and replaced by + .../afts/counters/.../state/octets-forwarded"; } } @@ -1117,16 +1327,24 @@ submodule openconfig-aft-common { leaf packets-forwarded-backup { type oc-yang:counter64; + status deprecated; description "The number of packets which have matched, and been forwarded, - based on the AFT backup entry."; + based on the AFT backup entry. + + This leaf has been deprecated and replaced by + .../afts/counters/.../state/packets-forwarded-backup"; } leaf octets-forwarded-backup { type oc-yang:counter64; + status deprecated; description "The number of octets which have matched, and been forwarded, - based on the AFT backup entry"; + based on the AFT backup entry + + This leaf has been deprecated and replaced by + .../afts/counters/.../state/octets-forwarded-backup"; } } } diff --git a/v1/yang/aft/openconfig-aft-ethernet.yang b/v1/yang/aft/openconfig-aft-ethernet.yang index 3fbe6ed..c97d5e0 100644 --- a/v1/yang/aft/openconfig-aft-ethernet.yang +++ b/v1/yang/aft/openconfig-aft-ethernet.yang @@ -20,7 +20,52 @@ submodule openconfig-aft-ethernet { "Submodule containing definitions of groupings for the abstract forwarding tables for Ethernet."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "3.5.0"; + + revision "2026-09-01" { + description + "Add backup activation state for next-hop-groups."; + reference "3.5.0"; + } + + revision "2026-03-10" { + description + "Add global-filter container to support per-network-instance AFT prefix filtering."; + reference "3.4.0"; + } + + revision "2026-02-09" { + description + "Deprecate popped-mpls-label-stack and AFT NH pushed-mpls-label-stack + and mpls-label-stack leafs as they do not support duplicates. + Add decap-mpls-label-stack and AFT NH encap-mpls-label-stack + and encap-mpls-label-stack leafs that support duplicates."; + reference "3.3.0"; + } + + revision "2025-08-07" { + description + "Factor out AFT counters from atomic container into a unified subtree."; + reference "3.2.0"; + } + + revision "2025-05-15" { + description + "Add GRE and MPLS to encap-headers."; + reference "3.1.0"; + } + + revision "2025-03-12" { + description + "Use IP address-family specific types for UDP-V4 and UDP-V6 encapsulations in AFT."; + reference "3.0.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-07-18" { description diff --git a/v1/yang/aft/openconfig-aft-ipv4.yang b/v1/yang/aft/openconfig-aft-ipv4.yang index 87fb7e6..373e8e3 100644 --- a/v1/yang/aft/openconfig-aft-ipv4.yang +++ b/v1/yang/aft/openconfig-aft-ipv4.yang @@ -20,7 +20,52 @@ submodule openconfig-aft-ipv4 { "Submodule containing definitions of groupings for the abstract forwarding tables for IPv4."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "3.5.0"; + + revision "2026-09-01" { + description + "Add backup activation state for next-hop-groups."; + reference "3.5.0"; + } + + revision "2026-03-10" { + description + "Add global-filter container to support per-network-instance AFT prefix filtering."; + reference "3.4.0"; + } + + revision "2026-02-09" { + description + "Deprecate popped-mpls-label-stack and AFT NH pushed-mpls-label-stack + and mpls-label-stack leafs as they do not support duplicates. + Add decap-mpls-label-stack and AFT NH encap-mpls-label-stack + and encap-mpls-label-stack leafs that support duplicates."; + reference "3.3.0"; + } + + revision "2025-08-07" { + description + "Factor out AFT counters from atomic container into a unified subtree."; + reference "3.2.0"; + } + + revision "2025-05-15" { + description + "Add GRE and MPLS to encap-headers."; + reference "3.1.0"; + } + + revision "2025-03-12" { + description + "Use IP address-family specific types for UDP-V4 and UDP-V6 encapsulations in AFT."; + reference "3.0.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-09-05" { description @@ -205,8 +250,9 @@ submodule openconfig-aft-ipv4 { uses aft-common-entry-state { augment counters { description - "The number of packets and octets matched the AFT entry - and routed to next-hops within the backup next-hop-group"; + "Deprecated location for the number of packets and octets + matched the AFT entry and routed to next-hops within the + backup next-hop-group."; uses aft-common-backup-entry-counter-state; } diff --git a/v1/yang/aft/openconfig-aft-ipv6.yang b/v1/yang/aft/openconfig-aft-ipv6.yang index 765830c..63c389c 100644 --- a/v1/yang/aft/openconfig-aft-ipv6.yang +++ b/v1/yang/aft/openconfig-aft-ipv6.yang @@ -20,7 +20,52 @@ submodule openconfig-aft-ipv6 { "Submodule containing definitions of groupings for the abstract forwarding tables for IPv6."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "3.5.0"; + + revision "2026-09-01" { + description + "Add backup activation state for next-hop-groups."; + reference "3.5.0"; + } + + revision "2026-03-10" { + description + "Add global-filter container to support per-network-instance AFT prefix filtering."; + reference "3.4.0"; + } + + revision "2026-02-09" { + description + "Deprecate popped-mpls-label-stack and AFT NH pushed-mpls-label-stack + and mpls-label-stack leafs as they do not support duplicates. + Add decap-mpls-label-stack and AFT NH encap-mpls-label-stack + and encap-mpls-label-stack leafs that support duplicates."; + reference "3.3.0"; + } + + revision "2025-08-07" { + description + "Factor out AFT counters from atomic container into a unified subtree."; + reference "3.2.0"; + } + + revision "2025-05-15" { + description + "Add GRE and MPLS to encap-headers."; + reference "3.1.0"; + } + + revision "2025-03-12" { + description + "Use IP address-family specific types for UDP-V4 and UDP-V6 encapsulations in AFT."; + reference "3.0.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-07-18" { description @@ -206,8 +251,9 @@ submodule openconfig-aft-ipv6 { uses aft-common-entry-state { augment counters { description - "The number of packets and octets matched the AFT entry - and routed to next-hops within the backup next-hop-group"; + "Deprecated location for the number of packets and octets + matched the AFT entry and routed to next-hops within the + backup next-hop-group."; uses aft-common-backup-entry-counter-state; } diff --git a/v1/yang/aft/openconfig-aft-mpls.yang b/v1/yang/aft/openconfig-aft-mpls.yang index c99e1c5..891a481 100644 --- a/v1/yang/aft/openconfig-aft-mpls.yang +++ b/v1/yang/aft/openconfig-aft-mpls.yang @@ -21,7 +21,52 @@ submodule openconfig-aft-mpls { "Submodule containing definitions of groupings for the abstract forwarding table for MPLS label forwarding."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "3.5.0"; + + revision "2026-09-01" { + description + "Add backup activation state for next-hop-groups."; + reference "3.5.0"; + } + + revision "2026-03-10" { + description + "Add global-filter container to support per-network-instance AFT prefix filtering."; + reference "3.4.0"; + } + + revision "2026-02-09" { + description + "Deprecate popped-mpls-label-stack and AFT NH pushed-mpls-label-stack + and mpls-label-stack leafs as they do not support duplicates. + Add decap-mpls-label-stack and AFT NH encap-mpls-label-stack + and encap-mpls-label-stack leafs that support duplicates."; + reference "3.3.0"; + } + + revision "2025-08-07" { + description + "Factor out AFT counters from atomic container into a unified subtree."; + reference "3.2.0"; + } + + revision "2025-05-15" { + description + "Add GRE and MPLS to encap-headers."; + reference "3.1.0"; + } + + revision "2025-03-12" { + description + "Use IP address-family specific types for UDP-V4 and UDP-V6 encapsulations in AFT."; + reference "3.0.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-09-05" { description @@ -184,6 +229,7 @@ submodule openconfig-aft-mpls { entry."; uses aft-mpls-entry-state; } + uses aft-mpls-entry-label-state; } } @@ -202,11 +248,15 @@ submodule openconfig-aft-mpls { leaf-list popped-mpls-label-stack { type oc-mplst:mpls-label; + status deprecated; description "The MPLS label stack to be popped from the packet when switched by the system. The stack is encoded as a leaf-list such that the first entry is the label that is outer-most (i.e., - furthest from the bottom of the stack). + furthest from the bottom of the stack). This does not support + duplicate labels. + + This node is deprecated in favor of the list decap-mpls-label-stack. If the local system pops the outer-most label 400, then the value of this list is [400,]. If the local system removes two @@ -217,4 +267,60 @@ submodule openconfig-aft-mpls { popped-mpls-label-stack and pushed-mpls-label-stack nodes."; } } + + grouping aft-mpls-entry-label-state { + description + "Parameters relating to mpls label state."; + + container decap-mpls-label-stacks { + description + "Surrounding container for groups of decap-mpls-label-stack."; + + list decap-mpls-label-stack { + ordered-by user; + description + "The MPLS label stack to be popped from the packet when + switched by the system. The stack is encoded as a list + such that the first entry is the label that is outer-most (i.e., + furthest from the bottom of the stack). This supports duplicate + labels. + + If the local system pops the outer-most label 400, then the + value of this list is [400,]. If the local system removes two + labels, the outer-most being 500, and the second of which is + 400, then the value of the list is [500, 400]. + + A swap operation is reflected by entries in the + decap-mpls-label-stack and encap-mpls-label-stack nodes."; + + key "id"; + + leaf id { + type leafref { + path "../state/id"; + } + description + "Reference to list key"; + } + + container state { + config false; + description + "State parameters relating to nexthop encap"; + + leaf id { + type uint8; + description + "Index for a label in the list."; + } + + leaf label { + type oc-mplst:mpls-label; + description + "MPLS label value."; + } + } + } + } + } } diff --git a/v1/yang/aft/openconfig-aft-pf.yang b/v1/yang/aft/openconfig-aft-pf.yang index 9980ad5..9c48b5d 100644 --- a/v1/yang/aft/openconfig-aft-pf.yang +++ b/v1/yang/aft/openconfig-aft-pf.yang @@ -28,7 +28,52 @@ submodule openconfig-aft-pf { fields other than the destination address that is used in other forwarding tables."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "3.5.0"; + + revision "2026-09-01" { + description + "Add backup activation state for next-hop-groups."; + reference "3.5.0"; + } + + revision "2026-03-10" { + description + "Add global-filter container to support per-network-instance AFT prefix filtering."; + reference "3.4.0"; + } + + revision "2026-02-09" { + description + "Deprecate popped-mpls-label-stack and AFT NH pushed-mpls-label-stack + and mpls-label-stack leafs as they do not support duplicates. + Add decap-mpls-label-stack and AFT NH encap-mpls-label-stack + and encap-mpls-label-stack leafs that support duplicates."; + reference "3.3.0"; + } + + revision "2025-08-07" { + description + "Factor out AFT counters from atomic container into a unified subtree."; + reference "3.2.0"; + } + + revision "2025-05-15" { + description + "Add GRE and MPLS to encap-headers."; + reference "3.1.0"; + } + + revision "2025-03-12" { + description + "Use IP address-family specific types for UDP-V4 and UDP-V6 encapsulations in AFT."; + reference "3.0.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-07-18" { description diff --git a/v1/yang/aft/openconfig-aft-state-synced.yang b/v1/yang/aft/openconfig-aft-state-synced.yang index fbe6eb5..d3fbd75 100644 --- a/v1/yang/aft/openconfig-aft-state-synced.yang +++ b/v1/yang/aft/openconfig-aft-state-synced.yang @@ -16,7 +16,52 @@ submodule openconfig-aft-state-synced { "Submodule containing definitions of groupings for the state synced signals corresponding to various abstract forwarding tables."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "3.5.0"; + + revision "2026-09-01" { + description + "Add backup activation state for next-hop-groups."; + reference "3.5.0"; + } + + revision "2026-03-10" { + description + "Add global-filter container to support per-network-instance AFT prefix filtering."; + reference "3.4.0"; + } + + revision "2026-02-09" { + description + "Deprecate popped-mpls-label-stack and AFT NH pushed-mpls-label-stack + and mpls-label-stack leafs as they do not support duplicates. + Add decap-mpls-label-stack and AFT NH encap-mpls-label-stack + and encap-mpls-label-stack leafs that support duplicates."; + reference "3.3.0"; + } + + revision "2025-08-07" { + description + "Factor out AFT counters from atomic container into a unified subtree."; + reference "3.2.0"; + } + + revision "2025-05-15" { + description + "Add GRE and MPLS to encap-headers."; + reference "3.1.0"; + } + + revision "2025-03-12" { + description + "Use IP address-family specific types for UDP-V4 and UDP-V6 encapsulations in AFT."; + reference "3.0.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-07-18" { description diff --git a/v1/yang/aft/openconfig-aft.yang b/v1/yang/aft/openconfig-aft.yang index de3ce20..d863584 100644 --- a/v1/yang/aft/openconfig-aft.yang +++ b/v1/yang/aft/openconfig-aft.yang @@ -42,7 +42,52 @@ module openconfig-aft { is referred to as an Abstract Forwarding Table (AFT), rather than the FIB."; - oc-ext:openconfig-version "2.7.0"; + oc-ext:openconfig-version "3.5.0"; + + revision "2026-09-01" { + description + "Add backup activation state for next-hop-groups."; + reference "3.5.0"; + } + + revision "2026-03-10" { + description + "Add global-filter container to support per-network-instance AFT prefix filtering."; + reference "3.4.0"; + } + + revision "2026-02-09" { + description + "Deprecate popped-mpls-label-stack and AFT NH pushed-mpls-label-stack + and mpls-label-stack leafs as they do not support duplicates. + Add decap-mpls-label-stack and AFT NH encap-mpls-label-stack + and encap-mpls-label-stack leafs that support duplicates."; + reference "3.3.0"; + } + + revision "2025-08-07" { + description + "Factor out AFT counters from atomic container into a unified subtree."; + reference "3.2.0"; + } + + revision "2025-05-15" { + description + "Add GRE and MPLS to encap-headers."; + reference "3.1.0"; + } + + revision "2025-03-12" { + description + "Use IP address-family specific types for UDP-V4 and UDP-V6 encapsulations in AFT."; + reference "3.0.0"; + } + + revision "2024-09-19" { + description + "Add atomic-exempt attribute to AFT counters containers."; + reference "2.8.0"; + } revision "2024-09-05" { description @@ -198,7 +243,6 @@ module openconfig-aft { AFT."; container afts { - config false; description "The abstract forwarding tables (AFTs) that are associated with the network instance. An AFT is instantiated per-protocol @@ -210,6 +254,7 @@ module openconfig-aft { forwarding entry."; container ipv4-unicast { + config false; description "The abstract forwarding table for IPv4 unicast. Entries within this table are uniquely keyed on the IPv4 unicast @@ -224,6 +269,7 @@ module openconfig-aft { } container ipv6-unicast { + config false; description "The abstract forwarding table for IPv6 unicast. Entries within this table are uniquely keyed on the IPv6 unicast @@ -238,6 +284,7 @@ module openconfig-aft { } container policy-forwarding { + config false; description "The abstract forwarding table for policy-based forwarding entries. Since multiple match criteria can be utilised @@ -255,6 +302,7 @@ module openconfig-aft { } container mpls { + config false; description "The abstract forwarding table for MPLS label based forwarding entries. Entries within the table are keyed based @@ -265,6 +313,7 @@ module openconfig-aft { } container ethernet { + config false; description "The abstract forwarding table for Ethernet based forwarding entries. Entries within the table are keyed based on the @@ -274,6 +323,7 @@ module openconfig-aft { } container state-synced { + config false; description "In some cases AFT streaming (e.g., over gNMI) is an eventually consistent system. When the device updates an entry it is usually expected to @@ -294,6 +344,7 @@ module openconfig-aft { uses aft-state-synced-structural; } + uses aft-backup-activations-structural; uses aft-next-hop-groups-structural; uses aft-nhop-structural; } diff --git a/v1/yang/gribi-aft.yang b/v1/yang/gribi-aft.yang index 844e058..1a0d509 100644 --- a/v1/yang/gribi-aft.yang +++ b/v1/yang/gribi-aft.yang @@ -16,6 +16,7 @@ module gribi-aft { namespace "http://github.com/openconfig/gribi/v1/yang/gribi/aft"; prefix "gaft"; + import openconfig-extensions { prefix "oc-ext"; } import openconfig-aft { prefix "oc-aft"; } organization @@ -29,6 +30,15 @@ module gribi-aft { the protobuf definition of the schema that is used in the protocol."; + oc-ext:openconfig-version "1.0.0"; + + revision "2026-10-13" { + description + "Add versioning of gribi-aft.yang. Deviate mpls-label-stack and + encap-mpls-label-stack as they are not supported in this release."; + reference "1.0.0"; + } + uses oc-aft:aft-top; deviation "/afts/next-hops/next-hop/state/origin-protocol" { @@ -149,6 +159,20 @@ module gribi-aft { deviate not-supported; } + deviation "/afts/mpls/label-entry/decap-mpls-label-stacks" { + description + "Decapsulation of MPLS label stacks is not supported in this release of + gRIBI. A future release of gRIBI could add support for this leaf."; + deviate not-supported; + } + + deviation "/afts/next-hops/next-hop/encap-headers/encap-header/mpls/encap-mpls-label-stacks" { + description + "Encapsulation of MPLS label stacks is not supported in this release of + gRIBI. A future release of gRIBI could add support for this leaf."; + deviate not-supported; + } + grouping entry-nhg-extensions { description "Leaves that are added as references in the openconfig-aft-network-instance