diff --git a/go/p4/config/v1/p4info.pb.go b/go/p4/config/v1/p4info.pb.go index 18e648fa..cac77bf0 100644 --- a/go/p4/config/v1/p4info.pb.go +++ b/go/p4/config/v1/p4info.pb.go @@ -62,6 +62,7 @@ const ( P4Ids_DIRECT_METER P4Ids_Prefix = 21 P4Ids_REGISTER P4Ids_Prefix = 22 P4Ids_DIGEST P4Ids_Prefix = 23 + P4Ids_GENERIC_TABLE P4Ids_Prefix = 24 // externs for other architectures (vendor extensions) P4Ids_OTHER_EXTERNS_START P4Ids_Prefix = 128 // max value for an unsigned 8-bit byte @@ -84,6 +85,7 @@ var ( 21: "DIRECT_METER", 22: "REGISTER", 23: "DIGEST", + 24: "GENERIC_TABLE", 128: "OTHER_EXTERNS_START", 255: "MAX", } @@ -101,6 +103,7 @@ var ( "DIRECT_METER": 21, "REGISTER": 22, "DIGEST": 23, + "GENERIC_TABLE": 24, "OTHER_EXTERNS_START": 128, "MAX": 255, } @@ -133,6 +136,56 @@ func (P4Ids_Prefix) EnumDescriptor() ([]byte, []int) { return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{3, 0} } +// The ID space is for Generic tables. In the Preamble ID, the MSB will be +// 0x18 but the next MSB is reserved for this enum. This shortens the ID +// space for tables in each type but it is still 64k (16 bits) for each table +type GenericTableType_Prefix int32 + +const ( + GenericTableType_GENERIC_TABLES_START GenericTableType_Prefix = 0 + // max value for an unsigned 8-bit byte + GenericTableType_MAX GenericTableType_Prefix = 255 +) + +// Enum value maps for GenericTableType_Prefix. +var ( + GenericTableType_Prefix_name = map[int32]string{ + 0: "GENERIC_TABLES_START", + 255: "MAX", + } + GenericTableType_Prefix_value = map[string]int32{ + "GENERIC_TABLES_START": 0, + "MAX": 255, + } +) + +func (x GenericTableType_Prefix) Enum() *GenericTableType_Prefix { + p := new(GenericTableType_Prefix) + *p = x + return p +} + +func (x GenericTableType_Prefix) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GenericTableType_Prefix) Descriptor() protoreflect.EnumDescriptor { + return file_p4_config_v1_p4info_proto_enumTypes[1].Descriptor() +} + +func (GenericTableType_Prefix) Type() protoreflect.EnumType { + return &file_p4_config_v1_p4info_proto_enumTypes[1] +} + +func (x GenericTableType_Prefix) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GenericTableType_Prefix.Descriptor instead. +func (GenericTableType_Prefix) EnumDescriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{4, 0} +} + type MatchField_MatchType int32 const ( @@ -175,11 +228,11 @@ func (x MatchField_MatchType) String() string { } func (MatchField_MatchType) Descriptor() protoreflect.EnumDescriptor { - return file_p4_config_v1_p4info_proto_enumTypes[1].Descriptor() + return file_p4_config_v1_p4info_proto_enumTypes[2].Descriptor() } func (MatchField_MatchType) Type() protoreflect.EnumType { - return &file_p4_config_v1_p4info_proto_enumTypes[1] + return &file_p4_config_v1_p4info_proto_enumTypes[2] } func (x MatchField_MatchType) Number() protoreflect.EnumNumber { @@ -188,7 +241,7 @@ func (x MatchField_MatchType) Number() protoreflect.EnumNumber { // Deprecated: Use MatchField_MatchType.Descriptor instead. func (MatchField_MatchType) EnumDescriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{7, 0} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{8, 0} } // this enum can be extended in the future with other behaviors, such as @@ -223,11 +276,11 @@ func (x Table_IdleTimeoutBehavior) String() string { } func (Table_IdleTimeoutBehavior) Descriptor() protoreflect.EnumDescriptor { - return file_p4_config_v1_p4info_proto_enumTypes[2].Descriptor() + return file_p4_config_v1_p4info_proto_enumTypes[3].Descriptor() } func (Table_IdleTimeoutBehavior) Type() protoreflect.EnumType { - return &file_p4_config_v1_p4info_proto_enumTypes[2] + return &file_p4_config_v1_p4info_proto_enumTypes[3] } func (x Table_IdleTimeoutBehavior) Number() protoreflect.EnumNumber { @@ -236,7 +289,7 @@ func (x Table_IdleTimeoutBehavior) Number() protoreflect.EnumNumber { // Deprecated: Use Table_IdleTimeoutBehavior.Descriptor instead. func (Table_IdleTimeoutBehavior) EnumDescriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{8, 0} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{9, 0} } type ActionRef_Scope int32 @@ -272,11 +325,11 @@ func (x ActionRef_Scope) String() string { } func (ActionRef_Scope) Descriptor() protoreflect.EnumDescriptor { - return file_p4_config_v1_p4info_proto_enumTypes[3].Descriptor() + return file_p4_config_v1_p4info_proto_enumTypes[4].Descriptor() } func (ActionRef_Scope) Type() protoreflect.EnumType { - return &file_p4_config_v1_p4info_proto_enumTypes[3] + return &file_p4_config_v1_p4info_proto_enumTypes[4] } func (x ActionRef_Scope) Number() protoreflect.EnumNumber { @@ -285,7 +338,7 @@ func (x ActionRef_Scope) Number() protoreflect.EnumNumber { // Deprecated: Use ActionRef_Scope.Descriptor instead. func (ActionRef_Scope) EnumDescriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{9, 0} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{10, 0} } // Corresponds to 'type' constructor parameter for Counter / DirectCounter in @@ -326,11 +379,11 @@ func (x CounterSpec_Unit) String() string { } func (CounterSpec_Unit) Descriptor() protoreflect.EnumDescriptor { - return file_p4_config_v1_p4info_proto_enumTypes[4].Descriptor() + return file_p4_config_v1_p4info_proto_enumTypes[5].Descriptor() } func (CounterSpec_Unit) Type() protoreflect.EnumType { - return &file_p4_config_v1_p4info_proto_enumTypes[4] + return &file_p4_config_v1_p4info_proto_enumTypes[5] } func (x CounterSpec_Unit) Number() protoreflect.EnumNumber { @@ -339,7 +392,7 @@ func (x CounterSpec_Unit) Number() protoreflect.EnumNumber { // Deprecated: Use CounterSpec_Unit.Descriptor instead. func (CounterSpec_Unit) EnumDescriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{12, 0} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{13, 0} } // Corresponds to 'type' constructor parameter for Meter / DirectMeter in PSA @@ -376,11 +429,11 @@ func (x MeterSpec_Unit) String() string { } func (MeterSpec_Unit) Descriptor() protoreflect.EnumDescriptor { - return file_p4_config_v1_p4info_proto_enumTypes[5].Descriptor() + return file_p4_config_v1_p4info_proto_enumTypes[6].Descriptor() } func (MeterSpec_Unit) Type() protoreflect.EnumType { - return &file_p4_config_v1_p4info_proto_enumTypes[5] + return &file_p4_config_v1_p4info_proto_enumTypes[6] } func (x MeterSpec_Unit) Number() protoreflect.EnumNumber { @@ -389,7 +442,114 @@ func (x MeterSpec_Unit) Number() protoreflect.EnumNumber { // Deprecated: Use MeterSpec_Unit.Descriptor instead. func (MeterSpec_Unit) EnumDescriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{15, 0} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{16, 0} +} + +type GenericMatchField_MatchType int32 + +const ( + GenericMatchField_UNSPECIFIED GenericMatchField_MatchType = 0 + GenericMatchField_EXACT GenericMatchField_MatchType = 2 + GenericMatchField_LPM GenericMatchField_MatchType = 3 + GenericMatchField_TERNARY GenericMatchField_MatchType = 4 + GenericMatchField_RANGE GenericMatchField_MatchType = 5 + GenericMatchField_OPTIONAL GenericMatchField_MatchType = 6 +) + +// Enum value maps for GenericMatchField_MatchType. +var ( + GenericMatchField_MatchType_name = map[int32]string{ + 0: "UNSPECIFIED", + 2: "EXACT", + 3: "LPM", + 4: "TERNARY", + 5: "RANGE", + 6: "OPTIONAL", + } + GenericMatchField_MatchType_value = map[string]int32{ + "UNSPECIFIED": 0, + "EXACT": 2, + "LPM": 3, + "TERNARY": 4, + "RANGE": 5, + "OPTIONAL": 6, + } +) + +func (x GenericMatchField_MatchType) Enum() *GenericMatchField_MatchType { + p := new(GenericMatchField_MatchType) + *p = x + return p +} + +func (x GenericMatchField_MatchType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GenericMatchField_MatchType) Descriptor() protoreflect.EnumDescriptor { + return file_p4_config_v1_p4info_proto_enumTypes[7].Descriptor() +} + +func (GenericMatchField_MatchType) Type() protoreflect.EnumType { + return &file_p4_config_v1_p4info_proto_enumTypes[7] +} + +func (x GenericMatchField_MatchType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GenericMatchField_MatchType.Descriptor instead. +func (GenericMatchField_MatchType) EnumDescriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{23, 0} +} + +type UnionRef_Scope int32 + +const ( + UnionRef_TABLE_AND_DEFAULT UnionRef_Scope = 0 + UnionRef_TABLE_ONLY UnionRef_Scope = 1 + UnionRef_DEFAULT_ONLY UnionRef_Scope = 2 +) + +// Enum value maps for UnionRef_Scope. +var ( + UnionRef_Scope_name = map[int32]string{ + 0: "TABLE_AND_DEFAULT", + 1: "TABLE_ONLY", + 2: "DEFAULT_ONLY", + } + UnionRef_Scope_value = map[string]int32{ + "TABLE_AND_DEFAULT": 0, + "TABLE_ONLY": 1, + "DEFAULT_ONLY": 2, + } +) + +func (x UnionRef_Scope) Enum() *UnionRef_Scope { + p := new(UnionRef_Scope) + *p = x + return p +} + +func (x UnionRef_Scope) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UnionRef_Scope) Descriptor() protoreflect.EnumDescriptor { + return file_p4_config_v1_p4info_proto_enumTypes[8].Descriptor() +} + +func (UnionRef_Scope) Type() protoreflect.EnumType { + return &file_p4_config_v1_p4info_proto_enumTypes[8] +} + +func (x UnionRef_Scope) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UnionRef_Scope.Descriptor instead. +func (UnionRef_Scope) EnumDescriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{24, 0} } type P4Info struct { @@ -409,6 +569,8 @@ type P4Info struct { ValueSets []*ValueSet `protobuf:"bytes,10,rep,name=value_sets,json=valueSets,proto3" json:"value_sets,omitempty"` Registers []*Register `protobuf:"bytes,11,rep,name=registers,proto3" json:"registers,omitempty"` Digests []*Digest `protobuf:"bytes,12,rep,name=digests,proto3" json:"digests,omitempty"` + GenericTables []*GenericTable `protobuf:"bytes,13,rep,name=generic_tables,json=genericTables,proto3" json:"generic_tables,omitempty"` + Unions []*Union `protobuf:"bytes,14,rep,name=unions,proto3" json:"unions,omitempty"` Externs []*Extern `protobuf:"bytes,100,rep,name=externs,proto3" json:"externs,omitempty"` TypeInfo *P4TypeInfo `protobuf:"bytes,200,opt,name=type_info,json=typeInfo,proto3" json:"type_info,omitempty"` } @@ -529,6 +691,20 @@ func (x *P4Info) GetDigests() []*Digest { return nil } +func (x *P4Info) GetGenericTables() []*GenericTable { + if x != nil { + return x.GenericTables + } + return nil +} + +func (x *P4Info) GetUnions() []*Union { + if x != nil { + return x.Unions + } + return nil +} + func (x *P4Info) GetExterns() []*Extern { if x != nil { return x.Externs @@ -774,6 +950,45 @@ func (*P4Ids) Descriptor() ([]byte, []int) { return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{3} } +// A subtype of P4IDs for GenericTables +type GenericTableType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GenericTableType) Reset() { + *x = GenericTableType{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_config_v1_p4info_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericTableType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericTableType) ProtoMessage() {} + +func (x *GenericTableType) ProtoReflect() protoreflect.Message { + mi := &file_p4_config_v1_p4info_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericTableType.ProtoReflect.Descriptor instead. +func (*GenericTableType) Descriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{4} +} + type Preamble struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -811,7 +1026,7 @@ type Preamble struct { func (x *Preamble) Reset() { *x = Preamble{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[4] + mi := &file_p4_config_v1_p4info_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -824,7 +1039,7 @@ func (x *Preamble) String() string { func (*Preamble) ProtoMessage() {} func (x *Preamble) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[4] + mi := &file_p4_config_v1_p4info_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -837,7 +1052,7 @@ func (x *Preamble) ProtoReflect() protoreflect.Message { // Deprecated: Use Preamble.ProtoReflect.Descriptor instead. func (*Preamble) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{4} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{5} } func (x *Preamble) GetId() uint32 { @@ -905,7 +1120,7 @@ type Extern struct { func (x *Extern) Reset() { *x = Extern{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[5] + mi := &file_p4_config_v1_p4info_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -918,7 +1133,7 @@ func (x *Extern) String() string { func (*Extern) ProtoMessage() {} func (x *Extern) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[5] + mi := &file_p4_config_v1_p4info_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -931,7 +1146,7 @@ func (x *Extern) ProtoReflect() protoreflect.Message { // Deprecated: Use Extern.ProtoReflect.Descriptor instead. func (*Extern) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{5} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{6} } func (x *Extern) GetExternTypeId() uint32 { @@ -969,7 +1184,7 @@ type ExternInstance struct { func (x *ExternInstance) Reset() { *x = ExternInstance{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[6] + mi := &file_p4_config_v1_p4info_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -982,7 +1197,7 @@ func (x *ExternInstance) String() string { func (*ExternInstance) ProtoMessage() {} func (x *ExternInstance) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[6] + mi := &file_p4_config_v1_p4info_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -995,7 +1210,7 @@ func (x *ExternInstance) ProtoReflect() protoreflect.Message { // Deprecated: Use ExternInstance.ProtoReflect.Descriptor instead. func (*ExternInstance) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{6} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{7} } func (x *ExternInstance) GetPreamble() *Preamble { @@ -1039,7 +1254,7 @@ type MatchField struct { func (x *MatchField) Reset() { *x = MatchField{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[7] + mi := &file_p4_config_v1_p4info_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1052,7 +1267,7 @@ func (x *MatchField) String() string { func (*MatchField) ProtoMessage() {} func (x *MatchField) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[7] + mi := &file_p4_config_v1_p4info_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1065,7 +1280,7 @@ func (x *MatchField) ProtoReflect() protoreflect.Message { // Deprecated: Use MatchField.ProtoReflect.Descriptor instead. func (*MatchField) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{7} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{8} } func (x *MatchField) GetId() uint32 { @@ -1209,7 +1424,7 @@ type Table struct { func (x *Table) Reset() { *x = Table{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[8] + mi := &file_p4_config_v1_p4info_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1222,7 +1437,7 @@ func (x *Table) String() string { func (*Table) ProtoMessage() {} func (x *Table) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[8] + mi := &file_p4_config_v1_p4info_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1235,7 +1450,7 @@ func (x *Table) ProtoReflect() protoreflect.Message { // Deprecated: Use Table.ProtoReflect.Descriptor instead. func (*Table) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{8} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{9} } func (x *Table) GetPreamble() *Preamble { @@ -1333,7 +1548,7 @@ type ActionRef struct { func (x *ActionRef) Reset() { *x = ActionRef{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[9] + mi := &file_p4_config_v1_p4info_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1346,7 +1561,7 @@ func (x *ActionRef) String() string { func (*ActionRef) ProtoMessage() {} func (x *ActionRef) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[9] + mi := &file_p4_config_v1_p4info_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1359,7 +1574,7 @@ func (x *ActionRef) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionRef.ProtoReflect.Descriptor instead. func (*ActionRef) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{9} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{10} } func (x *ActionRef) GetId() uint32 { @@ -1409,7 +1624,7 @@ type Action struct { func (x *Action) Reset() { *x = Action{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[10] + mi := &file_p4_config_v1_p4info_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1422,7 +1637,7 @@ func (x *Action) String() string { func (*Action) ProtoMessage() {} func (x *Action) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[10] + mi := &file_p4_config_v1_p4info_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1435,7 +1650,7 @@ func (x *Action) ProtoReflect() protoreflect.Message { // Deprecated: Use Action.ProtoReflect.Descriptor instead. func (*Action) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{10} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{11} } func (x *Action) GetPreamble() *Preamble { @@ -1481,7 +1696,7 @@ type ActionProfile struct { func (x *ActionProfile) Reset() { *x = ActionProfile{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[11] + mi := &file_p4_config_v1_p4info_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1494,7 +1709,7 @@ func (x *ActionProfile) String() string { func (*ActionProfile) ProtoMessage() {} func (x *ActionProfile) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[11] + mi := &file_p4_config_v1_p4info_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1507,7 +1722,7 @@ func (x *ActionProfile) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProfile.ProtoReflect.Descriptor instead. func (*ActionProfile) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{11} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{12} } func (x *ActionProfile) GetPreamble() *Preamble { @@ -1595,7 +1810,7 @@ type CounterSpec struct { func (x *CounterSpec) Reset() { *x = CounterSpec{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[12] + mi := &file_p4_config_v1_p4info_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1608,7 +1823,7 @@ func (x *CounterSpec) String() string { func (*CounterSpec) ProtoMessage() {} func (x *CounterSpec) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[12] + mi := &file_p4_config_v1_p4info_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1621,7 +1836,7 @@ func (x *CounterSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use CounterSpec.ProtoReflect.Descriptor instead. func (*CounterSpec) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{12} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{13} } func (x *CounterSpec) GetUnit() CounterSpec_Unit { @@ -1647,7 +1862,7 @@ type Counter struct { func (x *Counter) Reset() { *x = Counter{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[13] + mi := &file_p4_config_v1_p4info_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1660,7 +1875,7 @@ func (x *Counter) String() string { func (*Counter) ProtoMessage() {} func (x *Counter) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[13] + mi := &file_p4_config_v1_p4info_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1673,7 +1888,7 @@ func (x *Counter) ProtoReflect() protoreflect.Message { // Deprecated: Use Counter.ProtoReflect.Descriptor instead. func (*Counter) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{13} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{14} } func (x *Counter) GetPreamble() *Preamble { @@ -1718,7 +1933,7 @@ type DirectCounter struct { func (x *DirectCounter) Reset() { *x = DirectCounter{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[14] + mi := &file_p4_config_v1_p4info_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1731,7 +1946,7 @@ func (x *DirectCounter) String() string { func (*DirectCounter) ProtoMessage() {} func (x *DirectCounter) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[14] + mi := &file_p4_config_v1_p4info_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1744,7 +1959,7 @@ func (x *DirectCounter) ProtoReflect() protoreflect.Message { // Deprecated: Use DirectCounter.ProtoReflect.Descriptor instead. func (*DirectCounter) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{14} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{15} } func (x *DirectCounter) GetPreamble() *Preamble { @@ -1779,7 +1994,7 @@ type MeterSpec struct { func (x *MeterSpec) Reset() { *x = MeterSpec{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[15] + mi := &file_p4_config_v1_p4info_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1792,7 +2007,7 @@ func (x *MeterSpec) String() string { func (*MeterSpec) ProtoMessage() {} func (x *MeterSpec) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[15] + mi := &file_p4_config_v1_p4info_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1805,7 +2020,7 @@ func (x *MeterSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use MeterSpec.ProtoReflect.Descriptor instead. func (*MeterSpec) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{15} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{16} } func (x *MeterSpec) GetUnit() MeterSpec_Unit { @@ -1831,7 +2046,7 @@ type Meter struct { func (x *Meter) Reset() { *x = Meter{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[16] + mi := &file_p4_config_v1_p4info_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1844,7 +2059,7 @@ func (x *Meter) String() string { func (*Meter) ProtoMessage() {} func (x *Meter) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[16] + mi := &file_p4_config_v1_p4info_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1857,7 +2072,7 @@ func (x *Meter) ProtoReflect() protoreflect.Message { // Deprecated: Use Meter.ProtoReflect.Descriptor instead. func (*Meter) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{16} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{17} } func (x *Meter) GetPreamble() *Preamble { @@ -1902,7 +2117,7 @@ type DirectMeter struct { func (x *DirectMeter) Reset() { *x = DirectMeter{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[17] + mi := &file_p4_config_v1_p4info_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1915,7 +2130,7 @@ func (x *DirectMeter) String() string { func (*DirectMeter) ProtoMessage() {} func (x *DirectMeter) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[17] + mi := &file_p4_config_v1_p4info_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1928,7 +2143,7 @@ func (x *DirectMeter) ProtoReflect() protoreflect.Message { // Deprecated: Use DirectMeter.ProtoReflect.Descriptor instead. func (*DirectMeter) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{17} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{18} } func (x *DirectMeter) GetPreamble() *Preamble { @@ -1974,7 +2189,7 @@ type ControllerPacketMetadata struct { func (x *ControllerPacketMetadata) Reset() { *x = ControllerPacketMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[18] + mi := &file_p4_config_v1_p4info_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1987,7 +2202,7 @@ func (x *ControllerPacketMetadata) String() string { func (*ControllerPacketMetadata) ProtoMessage() {} func (x *ControllerPacketMetadata) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[18] + mi := &file_p4_config_v1_p4info_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2000,7 +2215,7 @@ func (x *ControllerPacketMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use ControllerPacketMetadata.ProtoReflect.Descriptor instead. func (*ControllerPacketMetadata) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{18} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{19} } func (x *ControllerPacketMetadata) GetPreamble() *Preamble { @@ -2031,7 +2246,7 @@ type ValueSet struct { func (x *ValueSet) Reset() { *x = ValueSet{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[19] + mi := &file_p4_config_v1_p4info_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2044,7 +2259,7 @@ func (x *ValueSet) String() string { func (*ValueSet) ProtoMessage() {} func (x *ValueSet) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[19] + mi := &file_p4_config_v1_p4info_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2057,7 +2272,7 @@ func (x *ValueSet) ProtoReflect() protoreflect.Message { // Deprecated: Use ValueSet.ProtoReflect.Descriptor instead. func (*ValueSet) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{19} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{20} } func (x *ValueSet) GetPreamble() *Preamble { @@ -2096,7 +2311,7 @@ type Register struct { func (x *Register) Reset() { *x = Register{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[20] + mi := &file_p4_config_v1_p4info_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2109,7 +2324,7 @@ func (x *Register) String() string { func (*Register) ProtoMessage() {} func (x *Register) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[20] + mi := &file_p4_config_v1_p4info_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2122,7 +2337,7 @@ func (x *Register) ProtoReflect() protoreflect.Message { // Deprecated: Use Register.ProtoReflect.Descriptor instead. func (*Register) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{20} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{21} } func (x *Register) GetPreamble() *Preamble { @@ -2165,7 +2380,7 @@ type Digest struct { func (x *Digest) Reset() { *x = Digest{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[21] + mi := &file_p4_config_v1_p4info_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2178,7 +2393,7 @@ func (x *Digest) String() string { func (*Digest) ProtoMessage() {} func (x *Digest) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[21] + mi := &file_p4_config_v1_p4info_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2191,19 +2406,460 @@ func (x *Digest) ProtoReflect() protoreflect.Message { // Deprecated: Use Digest.ProtoReflect.Descriptor instead. func (*Digest) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{21} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{22} } func (x *Digest) GetPreamble() *Preamble { if x != nil { return x.Preamble } - return nil + return nil +} + +func (x *Digest) GetTypeSpec() *P4DataTypeSpec { + if x != nil { + return x.TypeSpec + } + return nil +} + +type GenericMatchField struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + TypeSpec *GenericDataTypeSpec `protobuf:"bytes,3,opt,name=type_spec,json=typeSpec,proto3" json:"type_spec,omitempty"` + // Types that are assignable to Match: + // + // *GenericMatchField_MatchType_ + // *GenericMatchField_OtherMatchType + Match isGenericMatchField_Match `protobuf_oneof:"match"` + // Documentation of the match field + Doc *Documentation `protobuf:"bytes,6,opt,name=doc,proto3" json:"doc,omitempty"` + Annotations []string `protobuf:"bytes,7,rep,name=annotations,proto3" json:"annotations,omitempty"` + // Optional. If present, the location of `annotations[i]` is given by + // `annotation_locations[i]`. + StructuredAnnotations []*StructuredAnnotation `protobuf:"bytes,8,rep,name=structured_annotations,json=structuredAnnotations,proto3" json:"structured_annotations,omitempty"` + AnnotationLocations []*SourceLocation `protobuf:"bytes,9,rep,name=annotation_locations,json=annotationLocations,proto3" json:"annotation_locations,omitempty"` +} + +func (x *GenericMatchField) Reset() { + *x = GenericMatchField{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_config_v1_p4info_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericMatchField) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericMatchField) ProtoMessage() {} + +func (x *GenericMatchField) ProtoReflect() protoreflect.Message { + mi := &file_p4_config_v1_p4info_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericMatchField.ProtoReflect.Descriptor instead. +func (*GenericMatchField) Descriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{23} +} + +func (x *GenericMatchField) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *GenericMatchField) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GenericMatchField) GetTypeSpec() *GenericDataTypeSpec { + if x != nil { + return x.TypeSpec + } + return nil +} + +func (m *GenericMatchField) GetMatch() isGenericMatchField_Match { + if m != nil { + return m.Match + } + return nil +} + +func (x *GenericMatchField) GetMatchType() GenericMatchField_MatchType { + if x, ok := x.GetMatch().(*GenericMatchField_MatchType_); ok { + return x.MatchType + } + return GenericMatchField_UNSPECIFIED +} + +func (x *GenericMatchField) GetOtherMatchType() string { + if x, ok := x.GetMatch().(*GenericMatchField_OtherMatchType); ok { + return x.OtherMatchType + } + return "" +} + +func (x *GenericMatchField) GetDoc() *Documentation { + if x != nil { + return x.Doc + } + return nil +} + +func (x *GenericMatchField) GetAnnotations() []string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *GenericMatchField) GetStructuredAnnotations() []*StructuredAnnotation { + if x != nil { + return x.StructuredAnnotations + } + return nil +} + +func (x *GenericMatchField) GetAnnotationLocations() []*SourceLocation { + if x != nil { + return x.AnnotationLocations + } + return nil +} + +type isGenericMatchField_Match interface { + isGenericMatchField_Match() +} + +type GenericMatchField_MatchType_ struct { + MatchType GenericMatchField_MatchType `protobuf:"varint,4,opt,name=match_type,json=matchType,proto3,enum=p4.config.v1.GenericMatchField_MatchType,oneof"` +} + +type GenericMatchField_OtherMatchType struct { + // used for architecture-specific match types which are not part of the core + // P4 language or of the PSA architecture. + OtherMatchType string `protobuf:"bytes,5,opt,name=other_match_type,json=otherMatchType,proto3,oneof"` +} + +func (*GenericMatchField_MatchType_) isGenericMatchField_Match() {} + +func (*GenericMatchField_OtherMatchType) isGenericMatchField_Match() {} + +// used to list all possible unions in a Table +type UnionRef struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Scope UnionRef_Scope `protobuf:"varint,3,opt,name=scope,proto3,enum=p4.config.v1.UnionRef_Scope" json:"scope,omitempty"` + Annotations []string `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` + // Optional. If present, the location of `annotations[i]` is given by + // `annotation_locations[i]`. + AnnotationLocations []*SourceLocation `protobuf:"bytes,5,rep,name=annotation_locations,json=annotationLocations,proto3" json:"annotation_locations,omitempty"` + StructuredAnnotations []*StructuredAnnotation `protobuf:"bytes,4,rep,name=structured_annotations,json=structuredAnnotations,proto3" json:"structured_annotations,omitempty"` +} + +func (x *UnionRef) Reset() { + *x = UnionRef{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_config_v1_p4info_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnionRef) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnionRef) ProtoMessage() {} + +func (x *UnionRef) ProtoReflect() protoreflect.Message { + mi := &file_p4_config_v1_p4info_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnionRef.ProtoReflect.Descriptor instead. +func (*UnionRef) Descriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{24} +} + +func (x *UnionRef) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *UnionRef) GetScope() UnionRef_Scope { + if x != nil { + return x.Scope + } + return UnionRef_TABLE_AND_DEFAULT +} + +func (x *UnionRef) GetAnnotations() []string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *UnionRef) GetAnnotationLocations() []*SourceLocation { + if x != nil { + return x.AnnotationLocations + } + return nil +} + +func (x *UnionRef) GetStructuredAnnotations() []*StructuredAnnotation { + if x != nil { + return x.StructuredAnnotations + } + return nil +} + +type Union struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Preamble *Preamble `protobuf:"bytes,1,opt,name=preamble,proto3" json:"preamble,omitempty"` + Params []*Union_Param `protobuf:"bytes,2,rep,name=params,proto3" json:"params,omitempty"` +} + +func (x *Union) Reset() { + *x = Union{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_config_v1_p4info_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Union) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Union) ProtoMessage() {} + +func (x *Union) ProtoReflect() protoreflect.Message { + mi := &file_p4_config_v1_p4info_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Union.ProtoReflect.Descriptor instead. +func (*Union) Descriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{25} +} + +func (x *Union) GetPreamble() *Preamble { + if x != nil { + return x.Preamble + } + return nil +} + +func (x *Union) GetParams() []*Union_Param { + if x != nil { + return x.Params + } + return nil +} + +// All Tables of one type will be grouped in one message. +type GenericTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TypeId uint32 `protobuf:"varint,1,opt,name=type_id,json=typeId,proto3" json:"type_id,omitempty"` + TypeName string `protobuf:"bytes,2,opt,name=type_name,json=typeName,proto3" json:"type_name,omitempty"` + Properties []string `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"` + Instances []*GenericTableInstance `protobuf:"bytes,4,rep,name=instances,proto3" json:"instances,omitempty"` +} + +func (x *GenericTable) Reset() { + *x = GenericTable{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_config_v1_p4info_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericTable) ProtoMessage() {} + +func (x *GenericTable) ProtoReflect() protoreflect.Message { + mi := &file_p4_config_v1_p4info_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericTable.ProtoReflect.Descriptor instead. +func (*GenericTable) Descriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{26} +} + +func (x *GenericTable) GetTypeId() uint32 { + if x != nil { + return x.TypeId + } + return 0 +} + +func (x *GenericTable) GetTypeName() string { + if x != nil { + return x.TypeName + } + return "" +} + +func (x *GenericTable) GetProperties() []string { + if x != nil { + return x.Properties + } + return nil +} + +func (x *GenericTable) GetInstances() []*GenericTableInstance { + if x != nil { + return x.Instances + } + return nil +} + +type GenericTableInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Preamble *Preamble `protobuf:"bytes,1,opt,name=preamble,proto3" json:"preamble,omitempty"` + GenericMatchFields []*GenericMatchField `protobuf:"bytes,2,rep,name=generic_match_fields,json=genericMatchFields,proto3" json:"generic_match_fields,omitempty"` + UnionRefs []*UnionRef `protobuf:"bytes,3,rep,name=union_refs,json=unionRefs,proto3" json:"union_refs,omitempty"` + // 0 (default value) means that the table does not have a const default action + ConstDefaultUnionId uint32 `protobuf:"varint,4,opt,name=const_default_union_id,json=constDefaultUnionId,proto3" json:"const_default_union_id,omitempty"` + Size int64 `protobuf:"varint,5,opt,name=size,proto3" json:"size,omitempty"` // max number of entries in table + // architecture-specific table properties which are not part of the core P4 + // language or of the PSA architecture. + OtherProperties *anypb.Any `protobuf:"bytes,100,opt,name=other_properties,json=otherProperties,proto3" json:"other_properties,omitempty"` +} + +func (x *GenericTableInstance) Reset() { + *x = GenericTableInstance{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_config_v1_p4info_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericTableInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericTableInstance) ProtoMessage() {} + +func (x *GenericTableInstance) ProtoReflect() protoreflect.Message { + mi := &file_p4_config_v1_p4info_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericTableInstance.ProtoReflect.Descriptor instead. +func (*GenericTableInstance) Descriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{27} +} + +func (x *GenericTableInstance) GetPreamble() *Preamble { + if x != nil { + return x.Preamble + } + return nil +} + +func (x *GenericTableInstance) GetGenericMatchFields() []*GenericMatchField { + if x != nil { + return x.GenericMatchFields + } + return nil +} + +func (x *GenericTableInstance) GetUnionRefs() []*UnionRef { + if x != nil { + return x.UnionRefs + } + return nil +} + +func (x *GenericTableInstance) GetConstDefaultUnionId() uint32 { + if x != nil { + return x.ConstDefaultUnionId + } + return 0 +} + +func (x *GenericTableInstance) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 } -func (x *Digest) GetTypeSpec() *P4DataTypeSpec { +func (x *GenericTableInstance) GetOtherProperties() *anypb.Any { if x != nil { - return x.TypeSpec + return x.OtherProperties } return nil } @@ -2230,7 +2886,7 @@ type Action_Param struct { func (x *Action_Param) Reset() { *x = Action_Param{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[22] + mi := &file_p4_config_v1_p4info_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2243,7 +2899,7 @@ func (x *Action_Param) String() string { func (*Action_Param) ProtoMessage() {} func (x *Action_Param) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[22] + mi := &file_p4_config_v1_p4info_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2256,7 +2912,7 @@ func (x *Action_Param) ProtoReflect() protoreflect.Message { // Deprecated: Use Action_Param.ProtoReflect.Descriptor instead. func (*Action_Param) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{10, 0} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{11, 0} } func (x *Action_Param) GetId() uint32 { @@ -2327,7 +2983,7 @@ type ActionProfile_SumOfWeights struct { func (x *ActionProfile_SumOfWeights) Reset() { *x = ActionProfile_SumOfWeights{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[23] + mi := &file_p4_config_v1_p4info_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2340,7 +2996,7 @@ func (x *ActionProfile_SumOfWeights) String() string { func (*ActionProfile_SumOfWeights) ProtoMessage() {} func (x *ActionProfile_SumOfWeights) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[23] + mi := &file_p4_config_v1_p4info_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2353,7 +3009,7 @@ func (x *ActionProfile_SumOfWeights) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProfile_SumOfWeights.ProtoReflect.Descriptor instead. func (*ActionProfile_SumOfWeights) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{11, 0} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{12, 0} } // indicates that `size` and `max_group_size` represent the maximum number @@ -2371,7 +3027,7 @@ type ActionProfile_SumOfMembers struct { func (x *ActionProfile_SumOfMembers) Reset() { *x = ActionProfile_SumOfMembers{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[24] + mi := &file_p4_config_v1_p4info_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2384,7 +3040,7 @@ func (x *ActionProfile_SumOfMembers) String() string { func (*ActionProfile_SumOfMembers) ProtoMessage() {} func (x *ActionProfile_SumOfMembers) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[24] + mi := &file_p4_config_v1_p4info_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2397,7 +3053,7 @@ func (x *ActionProfile_SumOfMembers) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionProfile_SumOfMembers.ProtoReflect.Descriptor instead. func (*ActionProfile_SumOfMembers) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{11, 1} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{12, 1} } func (x *ActionProfile_SumOfMembers) GetMaxMemberWeight() int32 { @@ -2429,7 +3085,7 @@ type ControllerPacketMetadata_Metadata struct { func (x *ControllerPacketMetadata_Metadata) Reset() { *x = ControllerPacketMetadata_Metadata{} if protoimpl.UnsafeEnabled { - mi := &file_p4_config_v1_p4info_proto_msgTypes[25] + mi := &file_p4_config_v1_p4info_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2442,7 +3098,7 @@ func (x *ControllerPacketMetadata_Metadata) String() string { func (*ControllerPacketMetadata_Metadata) ProtoMessage() {} func (x *ControllerPacketMetadata_Metadata) ProtoReflect() protoreflect.Message { - mi := &file_p4_config_v1_p4info_proto_msgTypes[25] + mi := &file_p4_config_v1_p4info_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2455,7 +3111,7 @@ func (x *ControllerPacketMetadata_Metadata) ProtoReflect() protoreflect.Message // Deprecated: Use ControllerPacketMetadata_Metadata.ProtoReflect.Descriptor instead. func (*ControllerPacketMetadata_Metadata) Descriptor() ([]byte, []int) { - return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{18, 0} + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{19, 0} } func (x *ControllerPacketMetadata_Metadata) GetId() uint32 { @@ -2507,6 +3163,104 @@ func (x *ControllerPacketMetadata_Metadata) GetStructuredAnnotations() []*Struct return nil } +type Union_Param struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Annotations []string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty"` + TypeSpec *GenericDataTypeSpec `protobuf:"bytes,4,opt,name=type_spec,json=typeSpec,proto3" json:"type_spec,omitempty"` + // Documentation of the Param + Doc *Documentation `protobuf:"bytes,5,opt,name=doc,proto3" json:"doc,omitempty"` + StructuredAnnotations []*StructuredAnnotation `protobuf:"bytes,6,rep,name=structured_annotations,json=structuredAnnotations,proto3" json:"structured_annotations,omitempty"` + // Optional. If present, the location of `annotations[i]` is given by + // `annotation_locations[i]`. + AnnotationLocations []*SourceLocation `protobuf:"bytes,7,rep,name=annotation_locations,json=annotationLocations,proto3" json:"annotation_locations,omitempty"` +} + +func (x *Union_Param) Reset() { + *x = Union_Param{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_config_v1_p4info_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Union_Param) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Union_Param) ProtoMessage() {} + +func (x *Union_Param) ProtoReflect() protoreflect.Message { + mi := &file_p4_config_v1_p4info_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Union_Param.ProtoReflect.Descriptor instead. +func (*Union_Param) Descriptor() ([]byte, []int) { + return file_p4_config_v1_p4info_proto_rawDescGZIP(), []int{25, 0} +} + +func (x *Union_Param) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *Union_Param) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Union_Param) GetAnnotations() []string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Union_Param) GetTypeSpec() *GenericDataTypeSpec { + if x != nil { + return x.TypeSpec + } + return nil +} + +func (x *Union_Param) GetDoc() *Documentation { + if x != nil { + return x.Doc + } + return nil +} + +func (x *Union_Param) GetStructuredAnnotations() []*StructuredAnnotation { + if x != nil { + return x.StructuredAnnotations + } + return nil +} + +func (x *Union_Param) GetAnnotationLocations() []*SourceLocation { + if x != nil { + return x.AnnotationLocations + } + return nil +} + var File_p4_config_v1_p4info_proto protoreflect.FileDescriptor var file_p4_config_v1_p4info_proto_rawDesc = []byte{ @@ -2516,7 +3270,7 @@ var file_p4_config_v1_p4info_proto_rawDesc = []byte{ 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x70, 0x34, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x34, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xae, 0x06, 0x0a, 0x06, 0x50, 0x34, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x08, 0x70, + 0x22, 0x9e, 0x07, 0x0a, 0x06, 0x50, 0x34, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x6b, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6b, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x70, 0x6b, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x0a, @@ -2560,7 +3314,14 @@ var file_p4_config_v1_p4info_proto_rawDesc = []byte{ 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, - 0x52, 0x07, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x65, 0x78, 0x74, + 0x52, 0x07, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0d, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x06, + 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, + 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x0a, 0x07, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x18, 0x64, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x52, 0x07, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x79, 0x70, @@ -2597,8 +3358,8 @@ var file_p4_config_v1_p4info_proto_rawDesc = []byte{ 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x87, 0x02, 0x0a, 0x05, 0x50, 0x34, 0x49, 0x64, 0x73, 0x22, - 0xfd, 0x01, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9a, 0x02, 0x0a, 0x05, 0x50, 0x34, 0x49, 0x64, 0x73, 0x22, + 0x90, 0x02, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x10, @@ -2611,330 +3372,457 @@ var file_p4_config_v1_p4info_proto_rawDesc = []byte{ 0x45, 0x52, 0x10, 0x13, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x10, 0x15, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x10, 0x16, 0x12, - 0x0a, 0x0a, 0x06, 0x44, 0x49, 0x47, 0x45, 0x53, 0x54, 0x10, 0x17, 0x12, 0x18, 0x0a, 0x13, 0x4f, - 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x53, 0x5f, 0x53, 0x54, 0x41, - 0x52, 0x54, 0x10, 0x80, 0x01, 0x12, 0x08, 0x0a, 0x03, 0x4d, 0x41, 0x58, 0x10, 0xff, 0x01, 0x22, - 0xc1, 0x02, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x03, 0x64, 0x6f, 0x63, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x6f, 0x63, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x06, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x24, - 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, - 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x6e, 0x0a, 0x0e, 0x45, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x08, - 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, - 0x12, 0x28, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0xd3, 0x04, 0x0a, 0x0a, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x74, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x62, 0x69, 0x74, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x43, 0x0a, 0x0a, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, - 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, 0x0a, - 0x03, 0x64, 0x6f, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x34, 0x2e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x6f, 0x63, 0x12, 0x36, 0x0a, 0x09, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x56, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x45, 0x58, 0x41, 0x43, 0x54, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x50, 0x4d, 0x10, - 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x04, 0x12, 0x09, - 0x0a, 0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x50, 0x54, - 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x22, 0x89, 0x05, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, - 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, - 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, - 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x3b, - 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x0b, - 0x6d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x0b, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x66, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, - 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x5b, 0x0a, - 0x15, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, - 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, - 0x65, 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x65, 0x68, - 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x13, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x24, 0x0a, 0x0e, 0x69, 0x73, - 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, - 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, - 0x61, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x12, 0x3f, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, - 0x52, 0x0f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, - 0x73, 0x22, 0x39, 0x0a, 0x13, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x5f, 0x54, - 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x54, 0x49, - 0x46, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x01, 0x22, 0xe0, 0x02, 0x0a, - 0x09, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x63, - 0x6f, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x70, 0x34, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x66, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, - 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, - 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x40, 0x0a, - 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, - 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0e, 0x0a, - 0x0a, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x10, 0x0a, - 0x0c, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x22, - 0xef, 0x03, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, - 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, - 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, - 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x32, - 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x1a, 0xfc, 0x02, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x74, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x69, 0x74, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, - 0x2d, 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, - 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x6f, 0x63, 0x12, 0x36, - 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x74, 0x79, - 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, - 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0xe5, 0x03, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, - 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x08, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x74, - 0x68, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, - 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x34, - 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53, 0x75, 0x6d, 0x4f, 0x66, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x75, 0x6d, 0x4f, 0x66, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x75, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, - 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53, 0x75, 0x6d, 0x4f, 0x66, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x75, 0x6d, 0x4f, 0x66, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x0e, 0x0a, 0x0c, 0x53, 0x75, 0x6d, 0x4f, 0x66, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x1a, 0x55, 0x0a, 0x0c, 0x53, 0x75, 0x6d, 0x4f, 0x66, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x57, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, - 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x19, - 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, - 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x22, 0x7c, 0x0a, 0x0b, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x32, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, - 0x63, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x39, 0x0a, 0x04, - 0x55, 0x6e, 0x69, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x01, - 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x12, 0x08, 0x0a, - 0x04, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x03, 0x22, 0xc3, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, - 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x9a, 0x01, - 0x0a, 0x0d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x0a, 0x0a, 0x06, 0x44, 0x49, 0x47, 0x45, 0x53, 0x54, 0x10, 0x17, 0x12, 0x11, 0x0a, 0x0d, 0x47, + 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x18, 0x12, 0x18, + 0x0a, 0x13, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x53, 0x5f, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x80, 0x01, 0x12, 0x08, 0x0a, 0x03, 0x4d, 0x41, 0x58, 0x10, + 0xff, 0x01, 0x22, 0x40, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, 0x06, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x12, 0x18, 0x0a, 0x14, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43, 0x5f, 0x54, 0x41, 0x42, 0x4c, + 0x45, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x03, 0x4d, 0x41, + 0x58, 0x10, 0xff, 0x01, 0x22, 0xc1, 0x02, 0x0a, 0x08, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, + 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, + 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x6f, 0x63, 0x12, 0x59, 0x0a, + 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x06, 0x45, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, + 0x6e, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, + 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, + 0xd3, 0x04, 0x0a, 0x0a, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x13, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x74, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x69, 0x74, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x12, 0x43, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0e, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x6f, + 0x63, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, + 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x56, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x58, 0x41, 0x43, 0x54, 0x10, 0x02, 0x12, 0x07, 0x0a, + 0x03, 0x4c, 0x50, 0x4d, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x52, + 0x59, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x05, 0x12, 0x0c, + 0x0a, 0x08, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x89, 0x05, 0x0a, 0x05, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, - 0x62, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, - 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x09, 0x4d, 0x65, - 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x55, - 0x6e, 0x69, 0x74, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x2f, 0x0a, 0x04, 0x55, 0x6e, 0x69, - 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, - 0x07, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x22, 0xbf, 0x01, 0x0a, 0x05, 0x4d, - 0x65, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, - 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, - 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x96, 0x01, 0x0a, - 0x0b, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, - 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, - 0x12, 0x2b, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, - 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, - 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xee, 0x03, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x6c, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, - 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0xd0, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x0c, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x34, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x12, 0x38, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x52, 0x0a, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x73, 0x12, 0x35, 0x0a, 0x17, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x69, 0x6d, + 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2e, + 0x0a, 0x13, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x11, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x5b, 0x0a, 0x15, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x52, 0x13, 0x69, 0x64, 0x6c, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, + 0x24, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x11, 0x68, 0x61, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x45, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x0f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x39, 0x0a, 0x13, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x12, 0x0e, 0x0a, + 0x0a, 0x4e, 0x4f, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x00, 0x12, 0x12, 0x0a, + 0x0e, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, + 0x01, 0x22, 0xe0, 0x02, 0x0a, 0x09, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x33, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, + 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x05, 0x73, + 0x63, 0x6f, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x74, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x69, 0x74, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x40, 0x0a, 0x05, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, + 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, + 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4f, 0x4e, + 0x4c, 0x59, 0x10, 0x02, 0x22, 0xef, 0x03, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, + 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0xfc, 0x02, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x74, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x62, 0x69, 0x74, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, + 0x64, 0x6f, 0x63, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x08, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x53, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, - 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x08, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe5, 0x03, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, - 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x09, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x34, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x74, - 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x77, - 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, + 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0d, 0x52, + 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x77, 0x69, 0x74, 0x68, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x75, 0x6d, 0x5f, + 0x6f, 0x66, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53, 0x75, + 0x6d, 0x4f, 0x66, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x75, + 0x6d, 0x4f, 0x66, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x75, + 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, + 0x53, 0x75, 0x6d, 0x4f, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x48, 0x00, 0x52, 0x0c, + 0x73, 0x75, 0x6d, 0x4f, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x0e, 0x0a, 0x0c, + 0x53, 0x75, 0x6d, 0x4f, 0x66, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x1a, 0x55, 0x0a, 0x0c, + 0x53, 0x75, 0x6d, 0x4f, 0x66, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x11, + 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x88, 0x01, 0x01, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x77, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x73, 0x22, 0x7c, + 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x32, 0x0a, + 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, 0x75, 0x6e, 0x69, + 0x74, 0x22, 0x39, 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, + 0x54, 0x45, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, + 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x54, 0x48, 0x10, 0x03, 0x22, 0xc3, 0x01, 0x0a, + 0x07, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, + 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, + 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x04, + 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, + 0x41, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x9a, 0x01, 0x0a, 0x0d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, + 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, + 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x22, + 0x6e, 0x0a, 0x09, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x04, + 0x75, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, + 0x70, 0x65, 0x63, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0x2f, + 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, 0x54, 0x45, 0x53, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, 0x53, 0x10, 0x02, 0x22, + 0xbf, 0x01, 0x0a, 0x05, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, + 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, + 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x2b, 0x0a, + 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, + 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x41, + 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x22, 0x96, 0x01, 0x0a, 0x0b, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x65, + 0x72, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, + 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, + 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x64, 0x69, 0x72, + 0x65, 0x63, 0x74, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xee, 0x03, 0x0a, 0x18, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, + 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, + 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xd0, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x62, 0x69, 0x74, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x62, 0x69, 0x74, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, + 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x08, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, - 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x09, - 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x34, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x74, - 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x34, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x34, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x34, 0x2f, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x05, + 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x22, 0xd0, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, + 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, + 0x65, 0x12, 0x39, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x12, 0x41, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x4e, 0x61, 0x6d, 0x65, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x22, 0x77, 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, + 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, + 0x65, 0x12, 0x39, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x22, 0xcd, 0x04, 0x0a, + 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, + 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x34, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x74, 0x79, + 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x4a, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x70, 0x34, 0x2e, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x2e, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, + 0x6f, 0x74, 0x68, 0x65, 0x72, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2d, + 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x6f, 0x63, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x56, 0x0a, 0x09, 0x4d, + 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x58, 0x41, + 0x43, 0x54, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x50, 0x4d, 0x10, 0x03, 0x12, 0x0b, 0x0a, + 0x07, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x41, + 0x4e, 0x47, 0x45, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x4c, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0xde, 0x02, 0x0a, + 0x08, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, + 0x2e, 0x53, 0x63, 0x6f, 0x70, 0x65, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x59, 0x0a, 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x40, 0x0a, 0x05, 0x53, + 0x63, 0x6f, 0x70, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x4e, + 0x44, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, + 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x44, + 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x22, 0xd9, 0x03, + 0x0a, 0x05, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, + 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, + 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6f, 0x6e, + 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0xe8, + 0x02, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e, + 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x2d, + 0x0a, 0x03, 0x64, 0x6f, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x34, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, 0x6f, 0x63, 0x12, 0x59, 0x0a, + 0x16, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x15, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa6, 0x01, 0x0a, 0x0c, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x79, 0x70, + 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x22, 0xde, 0x02, 0x0a, 0x14, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x70, + 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, + 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x65, 0x61, 0x6d, 0x62, 0x6c, 0x65, 0x12, + 0x51, 0x0a, 0x14, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, + 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x12, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x12, 0x35, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x66, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x52, 0x09, + 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x66, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, + 0x7a, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, + 0x6e, 0x79, 0x52, 0x0f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x69, 0x65, 0x73, 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x70, 0x34, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x34, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x34, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, + 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2949,123 +3837,155 @@ func file_p4_config_v1_p4info_proto_rawDescGZIP() []byte { return file_p4_config_v1_p4info_proto_rawDescData } -var file_p4_config_v1_p4info_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_p4_config_v1_p4info_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_p4_config_v1_p4info_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_p4_config_v1_p4info_proto_msgTypes = make([]protoimpl.MessageInfo, 33) var file_p4_config_v1_p4info_proto_goTypes = []interface{}{ (P4Ids_Prefix)(0), // 0: p4.config.v1.P4Ids.Prefix - (MatchField_MatchType)(0), // 1: p4.config.v1.MatchField.MatchType - (Table_IdleTimeoutBehavior)(0), // 2: p4.config.v1.Table.IdleTimeoutBehavior - (ActionRef_Scope)(0), // 3: p4.config.v1.ActionRef.Scope - (CounterSpec_Unit)(0), // 4: p4.config.v1.CounterSpec.Unit - (MeterSpec_Unit)(0), // 5: p4.config.v1.MeterSpec.Unit - (*P4Info)(nil), // 6: p4.config.v1.P4Info - (*Documentation)(nil), // 7: p4.config.v1.Documentation - (*PkgInfo)(nil), // 8: p4.config.v1.PkgInfo - (*P4Ids)(nil), // 9: p4.config.v1.P4Ids - (*Preamble)(nil), // 10: p4.config.v1.Preamble - (*Extern)(nil), // 11: p4.config.v1.Extern - (*ExternInstance)(nil), // 12: p4.config.v1.ExternInstance - (*MatchField)(nil), // 13: p4.config.v1.MatchField - (*Table)(nil), // 14: p4.config.v1.Table - (*ActionRef)(nil), // 15: p4.config.v1.ActionRef - (*Action)(nil), // 16: p4.config.v1.Action - (*ActionProfile)(nil), // 17: p4.config.v1.ActionProfile - (*CounterSpec)(nil), // 18: p4.config.v1.CounterSpec - (*Counter)(nil), // 19: p4.config.v1.Counter - (*DirectCounter)(nil), // 20: p4.config.v1.DirectCounter - (*MeterSpec)(nil), // 21: p4.config.v1.MeterSpec - (*Meter)(nil), // 22: p4.config.v1.Meter - (*DirectMeter)(nil), // 23: p4.config.v1.DirectMeter - (*ControllerPacketMetadata)(nil), // 24: p4.config.v1.ControllerPacketMetadata - (*ValueSet)(nil), // 25: p4.config.v1.ValueSet - (*Register)(nil), // 26: p4.config.v1.Register - (*Digest)(nil), // 27: p4.config.v1.Digest - (*Action_Param)(nil), // 28: p4.config.v1.Action.Param - (*ActionProfile_SumOfWeights)(nil), // 29: p4.config.v1.ActionProfile.SumOfWeights - (*ActionProfile_SumOfMembers)(nil), // 30: p4.config.v1.ActionProfile.SumOfMembers - (*ControllerPacketMetadata_Metadata)(nil), // 31: p4.config.v1.ControllerPacketMetadata.Metadata - (*P4TypeInfo)(nil), // 32: p4.config.v1.P4TypeInfo - (*SourceLocation)(nil), // 33: p4.config.v1.SourceLocation - (*StructuredAnnotation)(nil), // 34: p4.config.v1.StructuredAnnotation - (*anypb.Any)(nil), // 35: google.protobuf.Any - (*P4NamedType)(nil), // 36: p4.config.v1.P4NamedType - (*P4DataTypeSpec)(nil), // 37: p4.config.v1.P4DataTypeSpec + (GenericTableType_Prefix)(0), // 1: p4.config.v1.GenericTableType.Prefix + (MatchField_MatchType)(0), // 2: p4.config.v1.MatchField.MatchType + (Table_IdleTimeoutBehavior)(0), // 3: p4.config.v1.Table.IdleTimeoutBehavior + (ActionRef_Scope)(0), // 4: p4.config.v1.ActionRef.Scope + (CounterSpec_Unit)(0), // 5: p4.config.v1.CounterSpec.Unit + (MeterSpec_Unit)(0), // 6: p4.config.v1.MeterSpec.Unit + (GenericMatchField_MatchType)(0), // 7: p4.config.v1.GenericMatchField.MatchType + (UnionRef_Scope)(0), // 8: p4.config.v1.UnionRef.Scope + (*P4Info)(nil), // 9: p4.config.v1.P4Info + (*Documentation)(nil), // 10: p4.config.v1.Documentation + (*PkgInfo)(nil), // 11: p4.config.v1.PkgInfo + (*P4Ids)(nil), // 12: p4.config.v1.P4Ids + (*GenericTableType)(nil), // 13: p4.config.v1.GenericTableType + (*Preamble)(nil), // 14: p4.config.v1.Preamble + (*Extern)(nil), // 15: p4.config.v1.Extern + (*ExternInstance)(nil), // 16: p4.config.v1.ExternInstance + (*MatchField)(nil), // 17: p4.config.v1.MatchField + (*Table)(nil), // 18: p4.config.v1.Table + (*ActionRef)(nil), // 19: p4.config.v1.ActionRef + (*Action)(nil), // 20: p4.config.v1.Action + (*ActionProfile)(nil), // 21: p4.config.v1.ActionProfile + (*CounterSpec)(nil), // 22: p4.config.v1.CounterSpec + (*Counter)(nil), // 23: p4.config.v1.Counter + (*DirectCounter)(nil), // 24: p4.config.v1.DirectCounter + (*MeterSpec)(nil), // 25: p4.config.v1.MeterSpec + (*Meter)(nil), // 26: p4.config.v1.Meter + (*DirectMeter)(nil), // 27: p4.config.v1.DirectMeter + (*ControllerPacketMetadata)(nil), // 28: p4.config.v1.ControllerPacketMetadata + (*ValueSet)(nil), // 29: p4.config.v1.ValueSet + (*Register)(nil), // 30: p4.config.v1.Register + (*Digest)(nil), // 31: p4.config.v1.Digest + (*GenericMatchField)(nil), // 32: p4.config.v1.GenericMatchField + (*UnionRef)(nil), // 33: p4.config.v1.UnionRef + (*Union)(nil), // 34: p4.config.v1.Union + (*GenericTable)(nil), // 35: p4.config.v1.GenericTable + (*GenericTableInstance)(nil), // 36: p4.config.v1.GenericTableInstance + (*Action_Param)(nil), // 37: p4.config.v1.Action.Param + (*ActionProfile_SumOfWeights)(nil), // 38: p4.config.v1.ActionProfile.SumOfWeights + (*ActionProfile_SumOfMembers)(nil), // 39: p4.config.v1.ActionProfile.SumOfMembers + (*ControllerPacketMetadata_Metadata)(nil), // 40: p4.config.v1.ControllerPacketMetadata.Metadata + (*Union_Param)(nil), // 41: p4.config.v1.Union.Param + (*P4TypeInfo)(nil), // 42: p4.config.v1.P4TypeInfo + (*SourceLocation)(nil), // 43: p4.config.v1.SourceLocation + (*StructuredAnnotation)(nil), // 44: p4.config.v1.StructuredAnnotation + (*anypb.Any)(nil), // 45: google.protobuf.Any + (*P4NamedType)(nil), // 46: p4.config.v1.P4NamedType + (*P4DataTypeSpec)(nil), // 47: p4.config.v1.P4DataTypeSpec + (*GenericDataTypeSpec)(nil), // 48: p4.config.v1.GenericDataTypeSpec } var file_p4_config_v1_p4info_proto_depIdxs = []int32{ - 8, // 0: p4.config.v1.P4Info.pkg_info:type_name -> p4.config.v1.PkgInfo - 14, // 1: p4.config.v1.P4Info.tables:type_name -> p4.config.v1.Table - 16, // 2: p4.config.v1.P4Info.actions:type_name -> p4.config.v1.Action - 17, // 3: p4.config.v1.P4Info.action_profiles:type_name -> p4.config.v1.ActionProfile - 19, // 4: p4.config.v1.P4Info.counters:type_name -> p4.config.v1.Counter - 20, // 5: p4.config.v1.P4Info.direct_counters:type_name -> p4.config.v1.DirectCounter - 22, // 6: p4.config.v1.P4Info.meters:type_name -> p4.config.v1.Meter - 23, // 7: p4.config.v1.P4Info.direct_meters:type_name -> p4.config.v1.DirectMeter - 24, // 8: p4.config.v1.P4Info.controller_packet_metadata:type_name -> p4.config.v1.ControllerPacketMetadata - 25, // 9: p4.config.v1.P4Info.value_sets:type_name -> p4.config.v1.ValueSet - 26, // 10: p4.config.v1.P4Info.registers:type_name -> p4.config.v1.Register - 27, // 11: p4.config.v1.P4Info.digests:type_name -> p4.config.v1.Digest - 11, // 12: p4.config.v1.P4Info.externs:type_name -> p4.config.v1.Extern - 32, // 13: p4.config.v1.P4Info.type_info:type_name -> p4.config.v1.P4TypeInfo - 7, // 14: p4.config.v1.PkgInfo.doc:type_name -> p4.config.v1.Documentation - 33, // 15: p4.config.v1.PkgInfo.annotation_locations:type_name -> p4.config.v1.SourceLocation - 34, // 16: p4.config.v1.PkgInfo.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation - 33, // 17: p4.config.v1.Preamble.annotation_locations:type_name -> p4.config.v1.SourceLocation - 7, // 18: p4.config.v1.Preamble.doc:type_name -> p4.config.v1.Documentation - 34, // 19: p4.config.v1.Preamble.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation - 12, // 20: p4.config.v1.Extern.instances:type_name -> p4.config.v1.ExternInstance - 10, // 21: p4.config.v1.ExternInstance.preamble:type_name -> p4.config.v1.Preamble - 35, // 22: p4.config.v1.ExternInstance.info:type_name -> google.protobuf.Any - 33, // 23: p4.config.v1.MatchField.annotation_locations:type_name -> p4.config.v1.SourceLocation - 1, // 24: p4.config.v1.MatchField.match_type:type_name -> p4.config.v1.MatchField.MatchType - 7, // 25: p4.config.v1.MatchField.doc:type_name -> p4.config.v1.Documentation - 36, // 26: p4.config.v1.MatchField.type_name:type_name -> p4.config.v1.P4NamedType - 34, // 27: p4.config.v1.MatchField.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation - 10, // 28: p4.config.v1.Table.preamble:type_name -> p4.config.v1.Preamble - 13, // 29: p4.config.v1.Table.match_fields:type_name -> p4.config.v1.MatchField - 15, // 30: p4.config.v1.Table.action_refs:type_name -> p4.config.v1.ActionRef - 2, // 31: p4.config.v1.Table.idle_timeout_behavior:type_name -> p4.config.v1.Table.IdleTimeoutBehavior - 35, // 32: p4.config.v1.Table.other_properties:type_name -> google.protobuf.Any - 3, // 33: p4.config.v1.ActionRef.scope:type_name -> p4.config.v1.ActionRef.Scope - 33, // 34: p4.config.v1.ActionRef.annotation_locations:type_name -> p4.config.v1.SourceLocation - 34, // 35: p4.config.v1.ActionRef.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation - 10, // 36: p4.config.v1.Action.preamble:type_name -> p4.config.v1.Preamble - 28, // 37: p4.config.v1.Action.params:type_name -> p4.config.v1.Action.Param - 10, // 38: p4.config.v1.ActionProfile.preamble:type_name -> p4.config.v1.Preamble - 29, // 39: p4.config.v1.ActionProfile.sum_of_weights:type_name -> p4.config.v1.ActionProfile.SumOfWeights - 30, // 40: p4.config.v1.ActionProfile.sum_of_members:type_name -> p4.config.v1.ActionProfile.SumOfMembers - 4, // 41: p4.config.v1.CounterSpec.unit:type_name -> p4.config.v1.CounterSpec.Unit - 10, // 42: p4.config.v1.Counter.preamble:type_name -> p4.config.v1.Preamble - 18, // 43: p4.config.v1.Counter.spec:type_name -> p4.config.v1.CounterSpec - 36, // 44: p4.config.v1.Counter.index_type_name:type_name -> p4.config.v1.P4NamedType - 10, // 45: p4.config.v1.DirectCounter.preamble:type_name -> p4.config.v1.Preamble - 18, // 46: p4.config.v1.DirectCounter.spec:type_name -> p4.config.v1.CounterSpec - 5, // 47: p4.config.v1.MeterSpec.unit:type_name -> p4.config.v1.MeterSpec.Unit - 10, // 48: p4.config.v1.Meter.preamble:type_name -> p4.config.v1.Preamble - 21, // 49: p4.config.v1.Meter.spec:type_name -> p4.config.v1.MeterSpec - 36, // 50: p4.config.v1.Meter.index_type_name:type_name -> p4.config.v1.P4NamedType - 10, // 51: p4.config.v1.DirectMeter.preamble:type_name -> p4.config.v1.Preamble - 21, // 52: p4.config.v1.DirectMeter.spec:type_name -> p4.config.v1.MeterSpec - 10, // 53: p4.config.v1.ControllerPacketMetadata.preamble:type_name -> p4.config.v1.Preamble - 31, // 54: p4.config.v1.ControllerPacketMetadata.metadata:type_name -> p4.config.v1.ControllerPacketMetadata.Metadata - 10, // 55: p4.config.v1.ValueSet.preamble:type_name -> p4.config.v1.Preamble - 13, // 56: p4.config.v1.ValueSet.match:type_name -> p4.config.v1.MatchField - 10, // 57: p4.config.v1.Register.preamble:type_name -> p4.config.v1.Preamble - 37, // 58: p4.config.v1.Register.type_spec:type_name -> p4.config.v1.P4DataTypeSpec - 36, // 59: p4.config.v1.Register.index_type_name:type_name -> p4.config.v1.P4NamedType - 10, // 60: p4.config.v1.Digest.preamble:type_name -> p4.config.v1.Preamble - 37, // 61: p4.config.v1.Digest.type_spec:type_name -> p4.config.v1.P4DataTypeSpec - 33, // 62: p4.config.v1.Action.Param.annotation_locations:type_name -> p4.config.v1.SourceLocation - 7, // 63: p4.config.v1.Action.Param.doc:type_name -> p4.config.v1.Documentation - 36, // 64: p4.config.v1.Action.Param.type_name:type_name -> p4.config.v1.P4NamedType - 34, // 65: p4.config.v1.Action.Param.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation - 33, // 66: p4.config.v1.ControllerPacketMetadata.Metadata.annotation_locations:type_name -> p4.config.v1.SourceLocation - 36, // 67: p4.config.v1.ControllerPacketMetadata.Metadata.type_name:type_name -> p4.config.v1.P4NamedType - 34, // 68: p4.config.v1.ControllerPacketMetadata.Metadata.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation - 69, // [69:69] is the sub-list for method output_type - 69, // [69:69] is the sub-list for method input_type - 69, // [69:69] is the sub-list for extension type_name - 69, // [69:69] is the sub-list for extension extendee - 0, // [0:69] is the sub-list for field type_name + 11, // 0: p4.config.v1.P4Info.pkg_info:type_name -> p4.config.v1.PkgInfo + 18, // 1: p4.config.v1.P4Info.tables:type_name -> p4.config.v1.Table + 20, // 2: p4.config.v1.P4Info.actions:type_name -> p4.config.v1.Action + 21, // 3: p4.config.v1.P4Info.action_profiles:type_name -> p4.config.v1.ActionProfile + 23, // 4: p4.config.v1.P4Info.counters:type_name -> p4.config.v1.Counter + 24, // 5: p4.config.v1.P4Info.direct_counters:type_name -> p4.config.v1.DirectCounter + 26, // 6: p4.config.v1.P4Info.meters:type_name -> p4.config.v1.Meter + 27, // 7: p4.config.v1.P4Info.direct_meters:type_name -> p4.config.v1.DirectMeter + 28, // 8: p4.config.v1.P4Info.controller_packet_metadata:type_name -> p4.config.v1.ControllerPacketMetadata + 29, // 9: p4.config.v1.P4Info.value_sets:type_name -> p4.config.v1.ValueSet + 30, // 10: p4.config.v1.P4Info.registers:type_name -> p4.config.v1.Register + 31, // 11: p4.config.v1.P4Info.digests:type_name -> p4.config.v1.Digest + 35, // 12: p4.config.v1.P4Info.generic_tables:type_name -> p4.config.v1.GenericTable + 34, // 13: p4.config.v1.P4Info.unions:type_name -> p4.config.v1.Union + 15, // 14: p4.config.v1.P4Info.externs:type_name -> p4.config.v1.Extern + 42, // 15: p4.config.v1.P4Info.type_info:type_name -> p4.config.v1.P4TypeInfo + 10, // 16: p4.config.v1.PkgInfo.doc:type_name -> p4.config.v1.Documentation + 43, // 17: p4.config.v1.PkgInfo.annotation_locations:type_name -> p4.config.v1.SourceLocation + 44, // 18: p4.config.v1.PkgInfo.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 43, // 19: p4.config.v1.Preamble.annotation_locations:type_name -> p4.config.v1.SourceLocation + 10, // 20: p4.config.v1.Preamble.doc:type_name -> p4.config.v1.Documentation + 44, // 21: p4.config.v1.Preamble.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 16, // 22: p4.config.v1.Extern.instances:type_name -> p4.config.v1.ExternInstance + 14, // 23: p4.config.v1.ExternInstance.preamble:type_name -> p4.config.v1.Preamble + 45, // 24: p4.config.v1.ExternInstance.info:type_name -> google.protobuf.Any + 43, // 25: p4.config.v1.MatchField.annotation_locations:type_name -> p4.config.v1.SourceLocation + 2, // 26: p4.config.v1.MatchField.match_type:type_name -> p4.config.v1.MatchField.MatchType + 10, // 27: p4.config.v1.MatchField.doc:type_name -> p4.config.v1.Documentation + 46, // 28: p4.config.v1.MatchField.type_name:type_name -> p4.config.v1.P4NamedType + 44, // 29: p4.config.v1.MatchField.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 14, // 30: p4.config.v1.Table.preamble:type_name -> p4.config.v1.Preamble + 17, // 31: p4.config.v1.Table.match_fields:type_name -> p4.config.v1.MatchField + 19, // 32: p4.config.v1.Table.action_refs:type_name -> p4.config.v1.ActionRef + 3, // 33: p4.config.v1.Table.idle_timeout_behavior:type_name -> p4.config.v1.Table.IdleTimeoutBehavior + 45, // 34: p4.config.v1.Table.other_properties:type_name -> google.protobuf.Any + 4, // 35: p4.config.v1.ActionRef.scope:type_name -> p4.config.v1.ActionRef.Scope + 43, // 36: p4.config.v1.ActionRef.annotation_locations:type_name -> p4.config.v1.SourceLocation + 44, // 37: p4.config.v1.ActionRef.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 14, // 38: p4.config.v1.Action.preamble:type_name -> p4.config.v1.Preamble + 37, // 39: p4.config.v1.Action.params:type_name -> p4.config.v1.Action.Param + 14, // 40: p4.config.v1.ActionProfile.preamble:type_name -> p4.config.v1.Preamble + 38, // 41: p4.config.v1.ActionProfile.sum_of_weights:type_name -> p4.config.v1.ActionProfile.SumOfWeights + 39, // 42: p4.config.v1.ActionProfile.sum_of_members:type_name -> p4.config.v1.ActionProfile.SumOfMembers + 5, // 43: p4.config.v1.CounterSpec.unit:type_name -> p4.config.v1.CounterSpec.Unit + 14, // 44: p4.config.v1.Counter.preamble:type_name -> p4.config.v1.Preamble + 22, // 45: p4.config.v1.Counter.spec:type_name -> p4.config.v1.CounterSpec + 46, // 46: p4.config.v1.Counter.index_type_name:type_name -> p4.config.v1.P4NamedType + 14, // 47: p4.config.v1.DirectCounter.preamble:type_name -> p4.config.v1.Preamble + 22, // 48: p4.config.v1.DirectCounter.spec:type_name -> p4.config.v1.CounterSpec + 6, // 49: p4.config.v1.MeterSpec.unit:type_name -> p4.config.v1.MeterSpec.Unit + 14, // 50: p4.config.v1.Meter.preamble:type_name -> p4.config.v1.Preamble + 25, // 51: p4.config.v1.Meter.spec:type_name -> p4.config.v1.MeterSpec + 46, // 52: p4.config.v1.Meter.index_type_name:type_name -> p4.config.v1.P4NamedType + 14, // 53: p4.config.v1.DirectMeter.preamble:type_name -> p4.config.v1.Preamble + 25, // 54: p4.config.v1.DirectMeter.spec:type_name -> p4.config.v1.MeterSpec + 14, // 55: p4.config.v1.ControllerPacketMetadata.preamble:type_name -> p4.config.v1.Preamble + 40, // 56: p4.config.v1.ControllerPacketMetadata.metadata:type_name -> p4.config.v1.ControllerPacketMetadata.Metadata + 14, // 57: p4.config.v1.ValueSet.preamble:type_name -> p4.config.v1.Preamble + 17, // 58: p4.config.v1.ValueSet.match:type_name -> p4.config.v1.MatchField + 14, // 59: p4.config.v1.Register.preamble:type_name -> p4.config.v1.Preamble + 47, // 60: p4.config.v1.Register.type_spec:type_name -> p4.config.v1.P4DataTypeSpec + 46, // 61: p4.config.v1.Register.index_type_name:type_name -> p4.config.v1.P4NamedType + 14, // 62: p4.config.v1.Digest.preamble:type_name -> p4.config.v1.Preamble + 47, // 63: p4.config.v1.Digest.type_spec:type_name -> p4.config.v1.P4DataTypeSpec + 48, // 64: p4.config.v1.GenericMatchField.type_spec:type_name -> p4.config.v1.GenericDataTypeSpec + 7, // 65: p4.config.v1.GenericMatchField.match_type:type_name -> p4.config.v1.GenericMatchField.MatchType + 10, // 66: p4.config.v1.GenericMatchField.doc:type_name -> p4.config.v1.Documentation + 44, // 67: p4.config.v1.GenericMatchField.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 43, // 68: p4.config.v1.GenericMatchField.annotation_locations:type_name -> p4.config.v1.SourceLocation + 8, // 69: p4.config.v1.UnionRef.scope:type_name -> p4.config.v1.UnionRef.Scope + 43, // 70: p4.config.v1.UnionRef.annotation_locations:type_name -> p4.config.v1.SourceLocation + 44, // 71: p4.config.v1.UnionRef.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 14, // 72: p4.config.v1.Union.preamble:type_name -> p4.config.v1.Preamble + 41, // 73: p4.config.v1.Union.params:type_name -> p4.config.v1.Union.Param + 36, // 74: p4.config.v1.GenericTable.instances:type_name -> p4.config.v1.GenericTableInstance + 14, // 75: p4.config.v1.GenericTableInstance.preamble:type_name -> p4.config.v1.Preamble + 32, // 76: p4.config.v1.GenericTableInstance.generic_match_fields:type_name -> p4.config.v1.GenericMatchField + 33, // 77: p4.config.v1.GenericTableInstance.union_refs:type_name -> p4.config.v1.UnionRef + 45, // 78: p4.config.v1.GenericTableInstance.other_properties:type_name -> google.protobuf.Any + 43, // 79: p4.config.v1.Action.Param.annotation_locations:type_name -> p4.config.v1.SourceLocation + 10, // 80: p4.config.v1.Action.Param.doc:type_name -> p4.config.v1.Documentation + 46, // 81: p4.config.v1.Action.Param.type_name:type_name -> p4.config.v1.P4NamedType + 44, // 82: p4.config.v1.Action.Param.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 43, // 83: p4.config.v1.ControllerPacketMetadata.Metadata.annotation_locations:type_name -> p4.config.v1.SourceLocation + 46, // 84: p4.config.v1.ControllerPacketMetadata.Metadata.type_name:type_name -> p4.config.v1.P4NamedType + 44, // 85: p4.config.v1.ControllerPacketMetadata.Metadata.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 48, // 86: p4.config.v1.Union.Param.type_spec:type_name -> p4.config.v1.GenericDataTypeSpec + 10, // 87: p4.config.v1.Union.Param.doc:type_name -> p4.config.v1.Documentation + 44, // 88: p4.config.v1.Union.Param.structured_annotations:type_name -> p4.config.v1.StructuredAnnotation + 43, // 89: p4.config.v1.Union.Param.annotation_locations:type_name -> p4.config.v1.SourceLocation + 90, // [90:90] is the sub-list for method output_type + 90, // [90:90] is the sub-list for method input_type + 90, // [90:90] is the sub-list for extension type_name + 90, // [90:90] is the sub-list for extension extendee + 0, // [0:90] is the sub-list for field type_name } func init() { file_p4_config_v1_p4info_proto_init() } @@ -3124,7 +4044,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Preamble); i { + switch v := v.(*GenericTableType); i { case 0: return &v.state case 1: @@ -3136,7 +4056,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Extern); i { + switch v := v.(*Preamble); i { case 0: return &v.state case 1: @@ -3148,7 +4068,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExternInstance); i { + switch v := v.(*Extern); i { case 0: return &v.state case 1: @@ -3160,7 +4080,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MatchField); i { + switch v := v.(*ExternInstance); i { case 0: return &v.state case 1: @@ -3172,7 +4092,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Table); i { + switch v := v.(*MatchField); i { case 0: return &v.state case 1: @@ -3184,7 +4104,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionRef); i { + switch v := v.(*Table); i { case 0: return &v.state case 1: @@ -3196,7 +4116,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Action); i { + switch v := v.(*ActionRef); i { case 0: return &v.state case 1: @@ -3208,7 +4128,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProfile); i { + switch v := v.(*Action); i { case 0: return &v.state case 1: @@ -3220,7 +4140,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CounterSpec); i { + switch v := v.(*ActionProfile); i { case 0: return &v.state case 1: @@ -3232,7 +4152,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Counter); i { + switch v := v.(*CounterSpec); i { case 0: return &v.state case 1: @@ -3244,7 +4164,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DirectCounter); i { + switch v := v.(*Counter); i { case 0: return &v.state case 1: @@ -3256,7 +4176,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MeterSpec); i { + switch v := v.(*DirectCounter); i { case 0: return &v.state case 1: @@ -3268,7 +4188,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Meter); i { + switch v := v.(*MeterSpec); i { case 0: return &v.state case 1: @@ -3280,7 +4200,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DirectMeter); i { + switch v := v.(*Meter); i { case 0: return &v.state case 1: @@ -3292,7 +4212,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ControllerPacketMetadata); i { + switch v := v.(*DirectMeter); i { case 0: return &v.state case 1: @@ -3304,7 +4224,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ValueSet); i { + switch v := v.(*ControllerPacketMetadata); i { case 0: return &v.state case 1: @@ -3316,7 +4236,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Register); i { + switch v := v.(*ValueSet); i { case 0: return &v.state case 1: @@ -3328,7 +4248,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Digest); i { + switch v := v.(*Register); i { case 0: return &v.state case 1: @@ -3340,7 +4260,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Action_Param); i { + switch v := v.(*Digest); i { case 0: return &v.state case 1: @@ -3352,7 +4272,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProfile_SumOfWeights); i { + switch v := v.(*GenericMatchField); i { case 0: return &v.state case 1: @@ -3364,7 +4284,7 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProfile_SumOfMembers); i { + switch v := v.(*UnionRef); i { case 0: return &v.state case 1: @@ -3376,6 +4296,78 @@ func file_p4_config_v1_p4info_proto_init() { } } file_p4_config_v1_p4info_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Union); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_config_v1_p4info_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenericTable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_config_v1_p4info_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenericTableInstance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_config_v1_p4info_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Action_Param); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_config_v1_p4info_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProfile_SumOfWeights); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_config_v1_p4info_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProfile_SumOfMembers); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_config_v1_p4info_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ControllerPacketMetadata_Metadata); i { case 0: return &v.state @@ -3387,23 +4379,39 @@ func file_p4_config_v1_p4info_proto_init() { return nil } } + file_p4_config_v1_p4info_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Union_Param); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - file_p4_config_v1_p4info_proto_msgTypes[7].OneofWrappers = []interface{}{ + file_p4_config_v1_p4info_proto_msgTypes[8].OneofWrappers = []interface{}{ (*MatchField_MatchType_)(nil), (*MatchField_OtherMatchType)(nil), } - file_p4_config_v1_p4info_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_p4_config_v1_p4info_proto_msgTypes[12].OneofWrappers = []interface{}{ (*ActionProfile_SumOfWeights_)(nil), (*ActionProfile_SumOfMembers_)(nil), } - file_p4_config_v1_p4info_proto_msgTypes[24].OneofWrappers = []interface{}{} + file_p4_config_v1_p4info_proto_msgTypes[23].OneofWrappers = []interface{}{ + (*GenericMatchField_MatchType_)(nil), + (*GenericMatchField_OtherMatchType)(nil), + } + file_p4_config_v1_p4info_proto_msgTypes[30].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_p4_config_v1_p4info_proto_rawDesc, - NumEnums: 6, - NumMessages: 26, + NumEnums: 9, + NumMessages: 33, NumExtensions: 0, NumServices: 0, }, diff --git a/go/p4/v1/p4runtime.pb.go b/go/p4/v1/p4runtime.pb.go index 008b0fba..092378c4 100644 --- a/go/p4/v1/p4runtime.pb.go +++ b/go/p4/v1/p4runtime.pb.go @@ -679,6 +679,7 @@ type Entity struct { // *Entity_ValueSetEntry // *Entity_RegisterEntry // *Entity_DigestEntry + // *Entity_GenericTableEntry Entity isEntity_Entity `protobuf_oneof:"entity"` } @@ -805,6 +806,13 @@ func (x *Entity) GetDigestEntry() *DigestEntry { return nil } +func (x *Entity) GetGenericTableEntry() *GenericTableEntry { + if x, ok := x.GetEntity().(*Entity_GenericTableEntry); ok { + return x.GenericTableEntry + } + return nil +} + type isEntity_Entity interface { isEntity_Entity() } @@ -857,6 +865,10 @@ type Entity_DigestEntry struct { DigestEntry *DigestEntry `protobuf:"bytes,12,opt,name=digest_entry,json=digestEntry,proto3,oneof"` } +type Entity_GenericTableEntry struct { + GenericTableEntry *GenericTableEntry `protobuf:"bytes,13,opt,name=generic_table_entry,json=genericTableEntry,proto3,oneof"` +} + func (*Entity_ExternEntry) isEntity_Entity() {} func (*Entity_TableEntry) isEntity_Entity() {} @@ -881,6 +893,8 @@ func (*Entity_RegisterEntry) isEntity_Entity() {} func (*Entity_DigestEntry) isEntity_Entity() {} +func (*Entity_GenericTableEntry) isEntity_Entity() {} + type ExternEntry struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1023,6 +1037,10 @@ type TableEntry struct { // the first two cases above, but newer P4Runtime API servers will. // Added in 1.4.0. IsConst bool `protobuf:"varint,13,opt,name=is_const,json=isConst,proto3" json:"is_const,omitempty"` + // list of GenericTableEntry + // The match fields aren't used. + // Only the union fields and priority + Resources []*GenericTableEntry `protobuf:"bytes,14,rep,name=resources,proto3" json:"resources,omitempty"` } func (x *TableEntry) Reset() { @@ -1149,6 +1167,13 @@ func (x *TableEntry) GetIsConst() bool { return false } +func (x *TableEntry) GetResources() []*GenericTableEntry { + if x != nil { + return x.Resources + } + return nil +} + // field_match_type ::= exact | ternary | lpm | range | optional type FieldMatch struct { state protoimpl.MessageState @@ -4449,6 +4474,306 @@ func (x *CapabilitiesResponse) GetP4RuntimeApiVersion() string { return "" } +// //// Begin : GenericTables messages +type GenericFieldMatch struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FieldId uint32 `protobuf:"varint,1,opt,name=field_id,json=fieldId,proto3" json:"field_id,omitempty"` + // Types that are assignable to FieldMatchType: + // + // *GenericFieldMatch_Exact_ + // *GenericFieldMatch_Ternary_ + // *GenericFieldMatch_Lpm + // *GenericFieldMatch_Range_ + // *GenericFieldMatch_Optional_ + // *GenericFieldMatch_Other + FieldMatchType isGenericFieldMatch_FieldMatchType `protobuf_oneof:"field_match_type"` +} + +func (x *GenericFieldMatch) Reset() { + *x = GenericFieldMatch{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericFieldMatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericFieldMatch) ProtoMessage() {} + +func (x *GenericFieldMatch) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericFieldMatch.ProtoReflect.Descriptor instead. +func (*GenericFieldMatch) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{54} +} + +func (x *GenericFieldMatch) GetFieldId() uint32 { + if x != nil { + return x.FieldId + } + return 0 +} + +func (m *GenericFieldMatch) GetFieldMatchType() isGenericFieldMatch_FieldMatchType { + if m != nil { + return m.FieldMatchType + } + return nil +} + +func (x *GenericFieldMatch) GetExact() *GenericFieldMatch_Exact { + if x, ok := x.GetFieldMatchType().(*GenericFieldMatch_Exact_); ok { + return x.Exact + } + return nil +} + +func (x *GenericFieldMatch) GetTernary() *GenericFieldMatch_Ternary { + if x, ok := x.GetFieldMatchType().(*GenericFieldMatch_Ternary_); ok { + return x.Ternary + } + return nil +} + +func (x *GenericFieldMatch) GetLpm() *GenericFieldMatch_LPM { + if x, ok := x.GetFieldMatchType().(*GenericFieldMatch_Lpm); ok { + return x.Lpm + } + return nil +} + +func (x *GenericFieldMatch) GetRange() *GenericFieldMatch_Range { + if x, ok := x.GetFieldMatchType().(*GenericFieldMatch_Range_); ok { + return x.Range + } + return nil +} + +func (x *GenericFieldMatch) GetOptional() *GenericFieldMatch_Optional { + if x, ok := x.GetFieldMatchType().(*GenericFieldMatch_Optional_); ok { + return x.Optional + } + return nil +} + +func (x *GenericFieldMatch) GetOther() *anypb.Any { + if x, ok := x.GetFieldMatchType().(*GenericFieldMatch_Other); ok { + return x.Other + } + return nil +} + +type isGenericFieldMatch_FieldMatchType interface { + isGenericFieldMatch_FieldMatchType() +} + +type GenericFieldMatch_Exact_ struct { + Exact *GenericFieldMatch_Exact `protobuf:"bytes,2,opt,name=exact,proto3,oneof"` +} + +type GenericFieldMatch_Ternary_ struct { + Ternary *GenericFieldMatch_Ternary `protobuf:"bytes,3,opt,name=ternary,proto3,oneof"` +} + +type GenericFieldMatch_Lpm struct { + Lpm *GenericFieldMatch_LPM `protobuf:"bytes,4,opt,name=lpm,proto3,oneof"` +} + +type GenericFieldMatch_Range_ struct { + Range *GenericFieldMatch_Range `protobuf:"bytes,6,opt,name=range,proto3,oneof"` +} + +type GenericFieldMatch_Optional_ struct { + Optional *GenericFieldMatch_Optional `protobuf:"bytes,7,opt,name=optional,proto3,oneof"` +} + +type GenericFieldMatch_Other struct { + // Architecture-specific match value; it corresponds to the other_match_type + // in the P4Info MatchField message. + Other *anypb.Any `protobuf:"bytes,100,opt,name=other,proto3,oneof"` +} + +func (*GenericFieldMatch_Exact_) isGenericFieldMatch_FieldMatchType() {} + +func (*GenericFieldMatch_Ternary_) isGenericFieldMatch_FieldMatchType() {} + +func (*GenericFieldMatch_Lpm) isGenericFieldMatch_FieldMatchType() {} + +func (*GenericFieldMatch_Range_) isGenericFieldMatch_FieldMatchType() {} + +func (*GenericFieldMatch_Optional_) isGenericFieldMatch_FieldMatchType() {} + +func (*GenericFieldMatch_Other) isGenericFieldMatch_FieldMatchType() {} + +type GenericTableEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TableId uint32 `protobuf:"varint,1,opt,name=table_id,json=tableId,proto3" json:"table_id,omitempty"` + Match []*GenericFieldMatch `protobuf:"bytes,2,rep,name=match,proto3" json:"match,omitempty"` + TableDataUnion *TableDataUnion `protobuf:"bytes,3,opt,name=table_data_union,json=tableDataUnion,proto3" json:"table_data_union,omitempty"` + // Should only be set if the match implies a TCAM lookup, i.e. at least one of + // the match fields is Optional, Ternary or Range. A higher number indicates + // higher priority. Only a highest priority entry that matches the packet + // must be selected. Multiple entries in the same table with the same + // priority value are permitted. See Section "TableEntry" in the + // specification for details of the behavior. + Priority int32 `protobuf:"varint,4,opt,name=priority,proto3" json:"priority,omitempty"` + // Set to true if the table entry is being used to update the single default + // entry of the table. If true, the "match" field must be empty and + // the "data union" field must be populated with a valid data union. + IsDefaultEntry bool `protobuf:"varint,5,opt,name=is_default_entry,json=isDefaultEntry,proto3" json:"is_default_entry,omitempty"` + // Arbitrary metadata from the controller that is opaque to the target. + Metadata []byte `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *GenericTableEntry) Reset() { + *x = GenericTableEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericTableEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericTableEntry) ProtoMessage() {} + +func (x *GenericTableEntry) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[55] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericTableEntry.ProtoReflect.Descriptor instead. +func (*GenericTableEntry) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{55} +} + +func (x *GenericTableEntry) GetTableId() uint32 { + if x != nil { + return x.TableId + } + return 0 +} + +func (x *GenericTableEntry) GetMatch() []*GenericFieldMatch { + if x != nil { + return x.Match + } + return nil +} + +func (x *GenericTableEntry) GetTableDataUnion() *TableDataUnion { + if x != nil { + return x.TableDataUnion + } + return nil +} + +func (x *GenericTableEntry) GetPriority() int32 { + if x != nil { + return x.Priority + } + return 0 +} + +func (x *GenericTableEntry) GetIsDefaultEntry() bool { + if x != nil { + return x.IsDefaultEntry + } + return false +} + +func (x *GenericTableEntry) GetMetadata() []byte { + if x != nil { + return x.Metadata + } + return nil +} + +type TableDataUnion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UnionId uint32 `protobuf:"varint,1,opt,name=union_id,json=unionId,proto3" json:"union_id,omitempty"` + Params []*TableDataUnion_Param `protobuf:"bytes,4,rep,name=params,proto3" json:"params,omitempty"` +} + +func (x *TableDataUnion) Reset() { + *x = TableDataUnion{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TableDataUnion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TableDataUnion) ProtoMessage() {} + +func (x *TableDataUnion) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[56] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TableDataUnion.ProtoReflect.Descriptor instead. +func (*TableDataUnion) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{56} +} + +func (x *TableDataUnion) GetUnionId() uint32 { + if x != nil { + return x.UnionId + } + return 0 +} + +func (x *TableDataUnion) GetParams() []*TableDataUnion_Param { + if x != nil { + return x.Params + } + return nil +} + type TableEntry_IdleTimeout struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4462,7 +4787,7 @@ type TableEntry_IdleTimeout struct { func (x *TableEntry_IdleTimeout) Reset() { *x = TableEntry_IdleTimeout{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[54] + mi := &file_p4_v1_p4runtime_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4475,7 +4800,7 @@ func (x *TableEntry_IdleTimeout) String() string { func (*TableEntry_IdleTimeout) ProtoMessage() {} func (x *TableEntry_IdleTimeout) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[54] + mi := &file_p4_v1_p4runtime_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4511,7 +4836,7 @@ type FieldMatch_Exact struct { func (x *FieldMatch_Exact) Reset() { *x = FieldMatch_Exact{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[55] + mi := &file_p4_v1_p4runtime_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4524,7 +4849,7 @@ func (x *FieldMatch_Exact) String() string { func (*FieldMatch_Exact) ProtoMessage() {} func (x *FieldMatch_Exact) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[55] + mi := &file_p4_v1_p4runtime_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4559,7 +4884,7 @@ type FieldMatch_Ternary struct { func (x *FieldMatch_Ternary) Reset() { *x = FieldMatch_Ternary{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[56] + mi := &file_p4_v1_p4runtime_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4572,7 +4897,7 @@ func (x *FieldMatch_Ternary) String() string { func (*FieldMatch_Ternary) ProtoMessage() {} func (x *FieldMatch_Ternary) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[56] + mi := &file_p4_v1_p4runtime_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4614,7 +4939,7 @@ type FieldMatch_LPM struct { func (x *FieldMatch_LPM) Reset() { *x = FieldMatch_LPM{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[57] + mi := &file_p4_v1_p4runtime_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4627,7 +4952,7 @@ func (x *FieldMatch_LPM) String() string { func (*FieldMatch_LPM) ProtoMessage() {} func (x *FieldMatch_LPM) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[57] + mi := &file_p4_v1_p4runtime_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4671,7 +4996,7 @@ type FieldMatch_Range struct { func (x *FieldMatch_Range) Reset() { *x = FieldMatch_Range{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[58] + mi := &file_p4_v1_p4runtime_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4684,7 +5009,7 @@ func (x *FieldMatch_Range) String() string { func (*FieldMatch_Range) ProtoMessage() {} func (x *FieldMatch_Range) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[58] + mi := &file_p4_v1_p4runtime_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4727,7 +5052,7 @@ type FieldMatch_Optional struct { func (x *FieldMatch_Optional) Reset() { *x = FieldMatch_Optional{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[59] + mi := &file_p4_v1_p4runtime_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4740,7 +5065,7 @@ func (x *FieldMatch_Optional) String() string { func (*FieldMatch_Optional) ProtoMessage() {} func (x *FieldMatch_Optional) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[59] + mi := &file_p4_v1_p4runtime_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4775,7 +5100,7 @@ type Action_Param struct { func (x *Action_Param) Reset() { *x = Action_Param{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[60] + mi := &file_p4_v1_p4runtime_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4788,7 +5113,7 @@ func (x *Action_Param) String() string { func (*Action_Param) ProtoMessage() {} func (x *Action_Param) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[60] + mi := &file_p4_v1_p4runtime_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4835,7 +5160,7 @@ type ActionProfileGroup_Member struct { func (x *ActionProfileGroup_Member) Reset() { *x = ActionProfileGroup_Member{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[61] + mi := &file_p4_v1_p4runtime_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4848,7 +5173,7 @@ func (x *ActionProfileGroup_Member) String() string { func (*ActionProfileGroup_Member) ProtoMessage() {} func (x *ActionProfileGroup_Member) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[61] + mi := &file_p4_v1_p4runtime_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4937,7 +5262,7 @@ type DigestEntry_Config struct { func (x *DigestEntry_Config) Reset() { *x = DigestEntry_Config{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[62] + mi := &file_p4_v1_p4runtime_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4950,7 +5275,7 @@ func (x *DigestEntry_Config) String() string { func (*DigestEntry_Config) ProtoMessage() {} func (x *DigestEntry_Config) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[62] + mi := &file_p4_v1_p4runtime_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5005,7 +5330,7 @@ type ForwardingPipelineConfig_Cookie struct { func (x *ForwardingPipelineConfig_Cookie) Reset() { *x = ForwardingPipelineConfig_Cookie{} if protoimpl.UnsafeEnabled { - mi := &file_p4_v1_p4runtime_proto_msgTypes[63] + mi := &file_p4_v1_p4runtime_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5018,7 +5343,7 @@ func (x *ForwardingPipelineConfig_Cookie) String() string { func (*ForwardingPipelineConfig_Cookie) ProtoMessage() {} func (x *ForwardingPipelineConfig_Cookie) ProtoReflect() protoreflect.Message { - mi := &file_p4_v1_p4runtime_proto_msgTypes[63] + mi := &file_p4_v1_p4runtime_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5041,6 +5366,324 @@ func (x *ForwardingPipelineConfig_Cookie) GetCookie() uint64 { return 0 } +type GenericFieldMatch_Exact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *GenericData `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *GenericFieldMatch_Exact) Reset() { + *x = GenericFieldMatch_Exact{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericFieldMatch_Exact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericFieldMatch_Exact) ProtoMessage() {} + +func (x *GenericFieldMatch_Exact) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[67] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericFieldMatch_Exact.ProtoReflect.Descriptor instead. +func (*GenericFieldMatch_Exact) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{54, 0} +} + +func (x *GenericFieldMatch_Exact) GetValue() *GenericData { + if x != nil { + return x.Value + } + return nil +} + +type GenericFieldMatch_Ternary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + Mask []byte `protobuf:"bytes,2,opt,name=mask,proto3" json:"mask,omitempty"` +} + +func (x *GenericFieldMatch_Ternary) Reset() { + *x = GenericFieldMatch_Ternary{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericFieldMatch_Ternary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericFieldMatch_Ternary) ProtoMessage() {} + +func (x *GenericFieldMatch_Ternary) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[68] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericFieldMatch_Ternary.ProtoReflect.Descriptor instead. +func (*GenericFieldMatch_Ternary) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{54, 1} +} + +func (x *GenericFieldMatch_Ternary) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +func (x *GenericFieldMatch_Ternary) GetMask() []byte { + if x != nil { + return x.Mask + } + return nil +} + +type GenericFieldMatch_LPM struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` + PrefixLen int32 `protobuf:"varint,2,opt,name=prefix_len,json=prefixLen,proto3" json:"prefix_len,omitempty"` // in bits +} + +func (x *GenericFieldMatch_LPM) Reset() { + *x = GenericFieldMatch_LPM{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericFieldMatch_LPM) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericFieldMatch_LPM) ProtoMessage() {} + +func (x *GenericFieldMatch_LPM) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[69] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericFieldMatch_LPM.ProtoReflect.Descriptor instead. +func (*GenericFieldMatch_LPM) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{54, 2} +} + +func (x *GenericFieldMatch_LPM) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +func (x *GenericFieldMatch_LPM) GetPrefixLen() int32 { + if x != nil { + return x.PrefixLen + } + return 0 +} + +// A Range is logically a set that contains all values numerically between +// 'low' and 'high' inclusively. +type GenericFieldMatch_Range struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Low []byte `protobuf:"bytes,1,opt,name=low,proto3" json:"low,omitempty"` + High []byte `protobuf:"bytes,2,opt,name=high,proto3" json:"high,omitempty"` +} + +func (x *GenericFieldMatch_Range) Reset() { + *x = GenericFieldMatch_Range{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericFieldMatch_Range) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericFieldMatch_Range) ProtoMessage() {} + +func (x *GenericFieldMatch_Range) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[70] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericFieldMatch_Range.ProtoReflect.Descriptor instead. +func (*GenericFieldMatch_Range) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{54, 3} +} + +func (x *GenericFieldMatch_Range) GetLow() []byte { + if x != nil { + return x.Low + } + return nil +} + +func (x *GenericFieldMatch_Range) GetHigh() []byte { + if x != nil { + return x.High + } + return nil +} + +// If the Optional match should be a wildcard, the FieldMatch must be omitted. +// Otherwise, this behaves like an exact match. +type GenericFieldMatch_Optional struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value *GenericData `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *GenericFieldMatch_Optional) Reset() { + *x = GenericFieldMatch_Optional{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenericFieldMatch_Optional) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenericFieldMatch_Optional) ProtoMessage() {} + +func (x *GenericFieldMatch_Optional) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[71] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenericFieldMatch_Optional.ProtoReflect.Descriptor instead. +func (*GenericFieldMatch_Optional) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{54, 4} +} + +func (x *GenericFieldMatch_Optional) GetValue() *GenericData { + if x != nil { + return x.Value + } + return nil +} + +type TableDataUnion_Param struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ParamId uint32 `protobuf:"varint,2,opt,name=param_id,json=paramId,proto3" json:"param_id,omitempty"` + Value *GenericData `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *TableDataUnion_Param) Reset() { + *x = TableDataUnion_Param{} + if protoimpl.UnsafeEnabled { + mi := &file_p4_v1_p4runtime_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TableDataUnion_Param) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TableDataUnion_Param) ProtoMessage() {} + +func (x *TableDataUnion_Param) ProtoReflect() protoreflect.Message { + mi := &file_p4_v1_p4runtime_proto_msgTypes[72] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TableDataUnion_Param.ProtoReflect.Descriptor instead. +func (*TableDataUnion_Param) Descriptor() ([]byte, []int) { + return file_p4_v1_p4runtime_proto_rawDescGZIP(), []int{56, 0} +} + +func (x *TableDataUnion_Param) GetParamId() uint32 { + if x != nil { + return x.ParamId + } + return 0 +} + +func (x *TableDataUnion_Param) GetValue() *GenericData { + if x != nil { + return x.Value + } + return nil +} + var File_p4_v1_p4runtime_proto protoreflect.FileDescriptor var file_p4_v1_p4runtime_proto_rawDesc = []byte{ @@ -5093,7 +5736,7 @@ var file_p4_v1_p4runtime_proto_rawDesc = []byte{ 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x49, 0x4e, 0x53, 0x45, 0x52, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x59, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, - 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x22, 0xd2, 0x06, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x22, 0x9e, 0x07, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x37, 0x0a, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x65, @@ -5146,547 +5789,624 @@ var file_p4_v1_p4runtime_proto_rawDesc = []byte{ 0x73, 0x74, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x42, 0x08, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x7c, 0x0a, 0x0b, 0x45, - 0x78, 0x74, 0x65, 0x72, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x78, - 0x74, 0x65, 0x72, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, - 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, - 0x6e, 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x89, 0x05, 0x0a, 0x0a, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, - 0x65, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, - 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, - 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x0c, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x35, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x12, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, - 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x64, - 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x73, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x4e, 0x73, 0x12, 0x4c, 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, - 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x10, - 0x74, 0x69, 0x6d, 0x65, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, - 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x69, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x1a, 0x2c, 0x0a, 0x0b, 0x49, 0x64, 0x6c, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x4e, 0x73, 0x22, 0xc8, 0x04, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, - 0x2f, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x79, 0x12, 0x4a, 0x0a, 0x13, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x11, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x08, 0x0a, + 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x7c, 0x0a, 0x0b, 0x45, 0x78, 0x74, 0x65, 0x72, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x6e, 0x74, + 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0xc1, 0x05, 0x0a, 0x0a, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x49, 0x64, 0x12, + 0x27, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, - 0x68, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, - 0x12, 0x35, 0x0a, 0x07, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x2e, 0x54, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x48, 0x00, 0x52, 0x07, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x6c, 0x70, 0x6d, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4c, 0x50, 0x4d, 0x48, 0x00, 0x52, 0x03, 0x6c, - 0x70, 0x6d, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, - 0x61, 0x74, 0x63, 0x68, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2c, 0x0a, - 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, - 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x1a, 0x1d, 0x0a, 0x05, 0x45, - 0x78, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x33, 0x0a, 0x07, 0x54, 0x65, - 0x72, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, - 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x1a, - 0x3a, 0x0a, 0x03, 0x4c, 0x50, 0x4d, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x1a, 0x2d, 0x0a, 0x05, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x1a, 0x20, 0x0a, 0x08, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x12, 0x0a, 0x10, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x22, 0x8e, 0x02, 0x0a, 0x0b, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x27, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x18, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x15, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x5a, 0x0a, - 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x48, - 0x00, 0x52, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x06, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x34, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x38, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, - 0x19, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x6a, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x50, 0x0a, 0x16, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x34, 0x2e, - 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x9f, 0x01, 0x0a, - 0x13, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x77, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x77, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x05, 0x77, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, 0x77, 0x61, 0x74, 0x63, 0x68, 0x12, - 0x1f, 0x0a, 0x0a, 0x77, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x77, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x72, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x85, - 0x01, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x25, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x02, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x0a, - 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x88, 0x01, 0x0a, 0x06, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x05, 0x77, - 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, - 0x52, 0x05, 0x77, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0a, 0x77, 0x61, 0x74, 0x63, 0x68, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x77, - 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x61, 0x74, 0x63, - 0x68, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x1d, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, - 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, - 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb3, 0x01, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x22, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x12, 0x2a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x3a, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0xae, 0x01, 0x0a, 0x10, - 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, - 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0x61, 0x0a, 0x0b, - 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x63, - 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x63, 0x69, 0x72, 0x12, 0x16, 0x0a, - 0x06, 0x63, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, - 0x62, 0x75, 0x72, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x03, 0x70, 0x69, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x62, 0x75, 0x72, 0x73, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x62, 0x75, 0x72, 0x73, 0x74, 0x22, - 0x79, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, - 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x70, 0x0a, 0x12, 0x44, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, - 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x12, 0x33, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x35, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x0b, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x0c, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4f, 0x0a, 0x0b, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x62, - 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x09, 0x62, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8e, 0x01, - 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x28, 0x0a, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x2a, 0x0a, 0x06, - 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, - 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x06, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x24, 0x0a, 0x03, 0x72, 0x65, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x72, 0x65, 0x64, 0x22, 0xc4, - 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x50, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x75, - 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x4a, 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6c, 0x6f, 0x6e, - 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6f, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x65, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, - 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x4d, 0x75, 0x6c, 0x74, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2c, - 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x08, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x22, 0xb8, 0x01, 0x0a, 0x11, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x08, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x34, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6f, - 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, - 0x39, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x27, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, - 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x62, 0x0a, 0x0d, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x74, 0x49, 0x64, 0x12, 0x2f, 0x0a, - 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x22, 0x77, - 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x22, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd7, 0x01, 0x0a, 0x0b, 0x44, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x67, 0x65, 0x73, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x67, - 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x78, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x6c, - 0x69, 0x73, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x6d, 0x61, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, - 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, - 0x73, 0x22, 0xf5, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x72, - 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x72, - 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, - 0x00, 0x52, 0x0b, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, - 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, - 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x35, 0x0a, 0x0a, 0x64, 0x69, - 0x67, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x41, 0x63, - 0x6b, 0x12, 0x2c, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x45, 0x0a, 0x12, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x73, 0x12, 0x4c, + 0x0a, 0x13, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x34, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x49, + 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x52, 0x10, 0x74, 0x69, 0x6d, 0x65, + 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x48, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x43, 0x6f, + 0x6e, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x2c, 0x0a, 0x0b, 0x49, + 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6c, + 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x4e, 0x73, 0x22, 0xc8, 0x04, 0x0a, 0x0a, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x45, 0x78, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, + 0x78, 0x61, 0x63, 0x74, 0x12, 0x35, 0x0a, 0x07, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x54, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, + 0x48, 0x00, 0x52, 0x07, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x03, 0x6c, + 0x70, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4c, 0x50, 0x4d, 0x48, + 0x00, 0x52, 0x03, 0x6c, 0x70, 0x6d, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, + 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x34, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x12, 0x2c, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x42, - 0x08, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, 0x09, 0x50, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x45, 0x0a, 0x0d, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x06, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x22, 0xf5, 0x02, 0x0a, 0x15, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x34, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x62, - 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x67, 0x65, - 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, - 0x12, 0x5c, 0x0a, 0x19, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x69, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, - 0x75, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, - 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, - 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x22, 0x57, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x34, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x83, 0x01, 0x0a, 0x0a, - 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, - 0x67, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, - 0x69, 0x67, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, - 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0x47, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x17, 0x4d, - 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x0b, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x34, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38, 0x52, 0x0a, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, - 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x5c, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, - 0x6b, 0x0a, 0x17, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb1, 0x02, 0x0a, - 0x0b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, - 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x34, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x12, - 0x43, 0x0a, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x61, - 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x63, 0x6b, 0x12, 0x2f, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, - 0x6f, 0x74, 0x68, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x22, 0x41, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x4f, 0x75, 0x74, 0x22, 0x52, 0x0a, 0x12, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x63, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3c, 0x0a, 0x0f, 0x64, 0x69, 0x67, - 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, + 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x1a, + 0x1d, 0x0a, 0x05, 0x45, 0x78, 0x61, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x33, + 0x0a, 0x07, 0x54, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, + 0x61, 0x73, 0x6b, 0x1a, 0x3a, 0x0a, 0x03, 0x4c, 0x50, 0x4d, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x1a, + 0x2d, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, + 0x67, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x1a, 0x20, + 0x0a, 0x08, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0x8e, 0x02, 0x0a, 0x0b, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, + 0x18, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, + 0x00, 0x52, 0x15, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x17, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x14, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x12, 0x5a, 0x0a, 0x19, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x65, 0x74, 0x48, 0x00, 0x52, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x42, 0x06, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, + 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x38, 0x0a, 0x05, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6a, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x12, 0x50, + 0x0a, 0x16, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x9f, 0x01, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1a, 0x0a, 0x05, 0x77, 0x61, 0x74, 0x63, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, 0x77, 0x61, + 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0a, 0x77, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x09, 0x77, 0x61, 0x74, 0x63, 0x68, + 0x50, 0x6f, 0x72, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x77, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x69, + 0x6e, 0x64, 0x22, 0x85, 0x01, 0x0a, 0x13, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xbd, 0x02, 0x0a, 0x12, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70, 0x34, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x1a, + 0x88, 0x01, 0x0a, 0x06, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x1a, 0x0a, 0x05, 0x77, 0x61, 0x74, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x02, + 0x18, 0x01, 0x48, 0x00, 0x52, 0x05, 0x77, 0x61, 0x74, 0x63, 0x68, 0x12, 0x1f, 0x0a, 0x0a, 0x77, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x09, 0x77, 0x61, 0x74, 0x63, 0x68, 0x50, 0x6f, 0x72, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x77, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x1d, 0x0a, 0x05, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xb3, 0x01, 0x0a, 0x0a, 0x4d, 0x65, + 0x74, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, + 0xae, 0x01, 0x0a, 0x10, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x61, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x10, 0x0a, 0x03, 0x63, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x63, 0x69, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x63, 0x62, 0x75, 0x72, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x70, 0x69, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x70, 0x62, 0x75, + 0x72, 0x73, 0x74, 0x22, 0x79, 0x0a, 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x70, + 0x0a, 0x12, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x32, 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x26, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x4f, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x1d, 0x0a, 0x0a, 0x62, 0x79, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x09, 0x62, 0x79, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x67, 0x72, 0x65, 0x65, 0x6e, + 0x12, 0x2a, 0x0a, 0x06, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x06, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x24, 0x0a, 0x03, + 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x03, 0x72, + 0x65, 0x64, 0x22, 0xc4, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x50, 0x0a, 0x15, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, + 0x52, 0x13, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x4a, 0x0a, 0x13, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x6e, 0x65, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x11, + 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x6f, 0x0a, 0x07, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x12, 0x25, 0x0a, 0x0b, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, + 0x0a, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0b, 0x0a, + 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x13, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x12, 0x2a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb8, 0x01, 0x0a, 0x11, 0x43, 0x6c, 0x6f, + 0x6e, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, + 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, + 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x11, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x22, 0x39, 0x0a, 0x0e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x74, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x22, 0x62, + 0x0a, 0x0d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x20, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x22, 0x77, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x34, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xd7, 0x01, 0x0a, 0x0b, + 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x64, + 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x78, 0x0a, 0x06, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, + 0x61, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6d, + 0x61, 0x78, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x24, 0x0a, 0x0e, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x4e, 0x73, 0x22, 0xf5, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, + 0x0a, 0x0b, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x4f, 0x75, 0x74, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x35, + 0x0a, 0x0a, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x52, 0x0d, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x22, 0x3e, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x05, 0x6f, - 0x74, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, - 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x22, 0x2f, 0x0a, 0x07, 0x55, 0x69, 0x6e, 0x74, 0x31, - 0x32, 0x38, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x22, 0x9f, 0x03, 0x0a, 0x22, 0x53, 0x65, 0x74, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x07, - 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, - 0x01, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x2f, 0x0a, - 0x0b, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, - 0x32, 0x38, 0x52, 0x0a, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x48, - 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, - 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, - 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0x77, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, - 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x45, 0x52, 0x49, - 0x46, 0x59, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x41, 0x56, 0x45, 0x10, 0x02, 0x12, 0x15, 0x0a, - 0x11, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, - 0x49, 0x54, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x04, - 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x43, 0x49, 0x4c, 0x45, 0x5f, 0x41, 0x4e, - 0x44, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x05, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x65, - 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xd4, 0x01, 0x0a, 0x18, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, - 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, - 0x0a, 0x06, 0x70, 0x34, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x70, 0x34, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x10, - 0x70, 0x34, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x34, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x52, 0x06, - 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x1a, 0x20, 0x0a, 0x06, 0x43, 0x6f, 0x6f, 0x6b, 0x69, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, - 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0d, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5d, 0x0a, 0x0c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, - 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x4f, 0x4b, 0x49, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, - 0x59, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x34, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x41, 0x4e, - 0x44, 0x5f, 0x43, 0x4f, 0x4f, 0x4b, 0x49, 0x45, 0x10, 0x02, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x45, - 0x56, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, 0x41, 0x4e, 0x44, 0x5f, - 0x43, 0x4f, 0x4f, 0x4b, 0x49, 0x45, 0x10, 0x03, 0x22, 0x5e, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, - 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa2, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, - 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, - 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x09, 0x64, 0x69, 0x67, 0x65, + 0x73, 0x74, 0x41, 0x63, 0x6b, 0x12, 0x2c, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x74, + 0x68, 0x65, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, + 0x09, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x31, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x45, 0x0a, 0x0d, 0x44, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x67, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x69, 0x67, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x69, 0x73, 0x74, 0x49, 0x64, 0x22, 0xf5, + 0x02, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x72, 0x62, 0x69, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x72, 0x62, 0x69, + 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x0b, 0x61, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x06, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70, + 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x49, 0x6e, 0x48, 0x00, 0x52, + 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x2b, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x64, 0x69, + 0x67, 0x65, 0x73, 0x74, 0x12, 0x5c, 0x0a, 0x19, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x69, 0x64, 0x6c, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, + 0x12, 0x2a, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x57, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x49, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x31, 0x0a, 0x08, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x83, 0x01, 0x0a, 0x0a, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, + 0x0a, 0x09, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6c, + 0x69, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x69, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x34, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x47, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb4, + 0x01, 0x0a, 0x17, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x41, 0x72, 0x62, 0x69, 0x74, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x0b, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38, 0x52, 0x0a, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5c, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0x6b, 0x0a, 0x17, 0x49, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, + 0x0a, 0x0b, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x22, 0xb1, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x0a, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, + 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x4f, 0x75, 0x74, 0x12, 0x43, 0x0a, 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, + 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x63, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x12, 0x2f, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x48, 0x00, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x73, 0x22, 0x41, 0x0a, 0x0e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, + 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2f, 0x0a, 0x0a, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x34, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x52, 0x09, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x22, 0x52, 0x0a, 0x12, 0x44, 0x69, 0x67, 0x65, 0x73, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3c, 0x0a, + 0x0f, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x61, 0x63, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x69, 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x52, 0x0d, 0x64, 0x69, + 0x67, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x63, 0x6b, 0x22, 0x3e, 0x0a, 0x10, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x2a, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x15, 0x0a, - 0x13, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x14, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x15, - 0x70, 0x34, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x34, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x2a, 0x8a, 0x01, 0x0a, 0x07, 0x53, 0x64, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x10, - 0x53, 0x44, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x44, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, - 0x49, 0x4e, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x0c, 0x53, 0x44, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, - 0x5f, 0x4d, 0x41, 0x58, 0x10, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, - 0x21, 0x0a, 0x14, 0x53, 0x44, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x49, - 0x52, 0x43, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x10, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x01, 0x12, 0x19, 0x0a, 0x0c, 0x53, 0x44, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, - 0x50, 0x55, 0x10, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x32, 0x83, 0x04, - 0x0a, 0x09, 0x50, 0x34, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x57, - 0x72, 0x69, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x34, 0x2e, 0x76, - 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x33, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, - 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x76, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2a, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, + 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x22, 0x2f, 0x0a, 0x07, 0x55, + 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, + 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6c, 0x6f, 0x77, 0x22, 0x9f, 0x03, 0x0a, + 0x22, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, + 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, + 0x65, 0x12, 0x2f, 0x0a, 0x0b, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38, 0x52, 0x0a, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x48, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, + 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x77, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, + 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x53, 0x41, 0x56, 0x45, 0x10, + 0x02, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, 0x41, 0x4e, 0x44, 0x5f, + 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, + 0x49, 0x54, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x43, 0x49, 0x4c, + 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x05, 0x22, 0x25, + 0x0a, 0x23, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, + 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd4, 0x01, 0x0a, 0x18, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x06, 0x70, 0x34, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x34, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x34, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x70, 0x34, 0x69, 0x6e, 0x66, 0x6f, + 0x12, 0x28, 0x0a, 0x10, 0x70, 0x34, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x70, 0x34, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x6f, + 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x70, 0x34, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6f, 0x6b, + 0x69, 0x65, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x1a, 0x20, 0x0a, 0x06, 0x43, 0x6f, + 0x6f, 0x6b, 0x69, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x22, 0xfd, 0x01, 0x0a, + 0x22, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, + 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, + 0x12, 0x5b, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x0c, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x5d, 0x0a, + 0x0c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, + 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x4f, 0x4b, 0x49, 0x45, + 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x34, 0x49, 0x4e, 0x46, + 0x4f, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4f, 0x4b, 0x49, 0x45, 0x10, 0x02, 0x12, 0x1c, + 0x0a, 0x18, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4f, 0x4b, 0x49, 0x45, 0x10, 0x03, 0x22, 0x5e, 0x0a, 0x23, + 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, - 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, - 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x42, 0x29, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x70, 0x34, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x34, 0x72, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x34, 0x2f, 0x76, 0x31, 0xf8, 0x01, 0x01, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xa2, 0x01, 0x0a, + 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, + 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x22, 0x15, 0x0a, 0x13, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x14, 0x43, 0x61, 0x70, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x32, 0x0a, 0x15, 0x70, 0x34, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x13, 0x70, 0x34, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x41, 0x70, 0x69, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x9a, 0x05, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x45, + 0x78, 0x61, 0x63, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x78, 0x61, 0x63, 0x74, 0x12, 0x3c, 0x0a, + 0x07, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x54, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, + 0x48, 0x00, 0x52, 0x07, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x30, 0x0a, 0x03, 0x6c, + 0x70, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x2e, 0x4c, 0x50, 0x4d, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x70, 0x6d, 0x12, 0x36, 0x0a, + 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, + 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, + 0x68, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x18, + 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x05, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x1a, 0x31, 0x0a, 0x05, 0x45, 0x78, 0x61, 0x63, 0x74, 0x12, 0x28, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, + 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x33, 0x0a, 0x07, 0x54, 0x65, 0x72, 0x6e, 0x61, + 0x72, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x61, 0x73, 0x6b, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6d, 0x61, 0x73, 0x6b, 0x1a, 0x3a, 0x0a, 0x03, + 0x4c, 0x50, 0x4d, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x1a, 0x2d, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, + 0x6c, 0x6f, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x1a, 0x34, 0x0a, 0x08, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x12, 0x0a, + 0x10, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x22, 0x81, 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x05, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x12, 0x3f, 0x0a, 0x10, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x75, 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, + 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x55, 0x6e, + 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x55, 0x6e, + 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x44, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x75, 0x6e, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x55, 0x6e, 0x69, 0x6f, 0x6e, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x05, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x34, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x8a, 0x01, 0x0a, 0x07, 0x53, 0x64, 0x6e, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x44, 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x44, 0x4e, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x0c, 0x53, 0x44, + 0x4e, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x41, 0x58, 0x10, 0xff, 0xfd, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x21, 0x0a, 0x14, 0x53, 0x44, 0x4e, 0x5f, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x52, 0x45, 0x43, 0x49, 0x52, 0x43, 0x55, 0x4c, 0x41, 0x54, 0x45, 0x10, 0xfa, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x12, 0x19, 0x0a, 0x0c, 0x53, 0x44, 0x4e, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x50, 0x55, 0x10, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x32, 0x83, 0x04, 0x0a, 0x09, 0x50, 0x34, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x12, 0x34, 0x0a, 0x05, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x13, 0x2e, 0x70, 0x34, 0x2e, + 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x14, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x33, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, + 0x12, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x76, 0x0a, 0x1b, + 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x70, 0x34, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, + 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x76, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x29, 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, + 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0d, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1b, 0x2e, + 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x34, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x49, + 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1a, + 0x2e, 0x70, 0x34, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x34, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x29, 0x5a, 0x24, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x34, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, + 0x34, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x34, 0x2f, 0x76, + 0x31, 0xf8, 0x01, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -5702,7 +6422,7 @@ func file_p4_v1_p4runtime_proto_rawDescGZIP() []byte { } var file_p4_v1_p4runtime_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_p4_v1_p4runtime_proto_msgTypes = make([]protoimpl.MessageInfo, 64) +var file_p4_v1_p4runtime_proto_msgTypes = make([]protoimpl.MessageInfo, 73) var file_p4_v1_p4runtime_proto_goTypes = []interface{}{ (SdnPort)(0), // 0: p4.v1.SdnPort (WriteRequest_Atomicity)(0), // 1: p4.v1.WriteRequest.Atomicity @@ -5763,132 +6483,156 @@ var file_p4_v1_p4runtime_proto_goTypes = []interface{}{ (*Error)(nil), // 56: p4.v1.Error (*CapabilitiesRequest)(nil), // 57: p4.v1.CapabilitiesRequest (*CapabilitiesResponse)(nil), // 58: p4.v1.CapabilitiesResponse - (*TableEntry_IdleTimeout)(nil), // 59: p4.v1.TableEntry.IdleTimeout - (*FieldMatch_Exact)(nil), // 60: p4.v1.FieldMatch.Exact - (*FieldMatch_Ternary)(nil), // 61: p4.v1.FieldMatch.Ternary - (*FieldMatch_LPM)(nil), // 62: p4.v1.FieldMatch.LPM - (*FieldMatch_Range)(nil), // 63: p4.v1.FieldMatch.Range - (*FieldMatch_Optional)(nil), // 64: p4.v1.FieldMatch.Optional - (*Action_Param)(nil), // 65: p4.v1.Action.Param - (*ActionProfileGroup_Member)(nil), // 66: p4.v1.ActionProfileGroup.Member - (*DigestEntry_Config)(nil), // 67: p4.v1.DigestEntry.Config - (*ForwardingPipelineConfig_Cookie)(nil), // 68: p4.v1.ForwardingPipelineConfig.Cookie - (*anypb.Any)(nil), // 69: google.protobuf.Any - (*P4Data)(nil), // 70: p4.v1.P4Data - (*status.Status)(nil), // 71: google.rpc.Status - (*v1.P4Info)(nil), // 72: p4.config.v1.P4Info + (*GenericFieldMatch)(nil), // 59: p4.v1.GenericFieldMatch + (*GenericTableEntry)(nil), // 60: p4.v1.GenericTableEntry + (*TableDataUnion)(nil), // 61: p4.v1.TableDataUnion + (*TableEntry_IdleTimeout)(nil), // 62: p4.v1.TableEntry.IdleTimeout + (*FieldMatch_Exact)(nil), // 63: p4.v1.FieldMatch.Exact + (*FieldMatch_Ternary)(nil), // 64: p4.v1.FieldMatch.Ternary + (*FieldMatch_LPM)(nil), // 65: p4.v1.FieldMatch.LPM + (*FieldMatch_Range)(nil), // 66: p4.v1.FieldMatch.Range + (*FieldMatch_Optional)(nil), // 67: p4.v1.FieldMatch.Optional + (*Action_Param)(nil), // 68: p4.v1.Action.Param + (*ActionProfileGroup_Member)(nil), // 69: p4.v1.ActionProfileGroup.Member + (*DigestEntry_Config)(nil), // 70: p4.v1.DigestEntry.Config + (*ForwardingPipelineConfig_Cookie)(nil), // 71: p4.v1.ForwardingPipelineConfig.Cookie + (*GenericFieldMatch_Exact)(nil), // 72: p4.v1.GenericFieldMatch.Exact + (*GenericFieldMatch_Ternary)(nil), // 73: p4.v1.GenericFieldMatch.Ternary + (*GenericFieldMatch_LPM)(nil), // 74: p4.v1.GenericFieldMatch.LPM + (*GenericFieldMatch_Range)(nil), // 75: p4.v1.GenericFieldMatch.Range + (*GenericFieldMatch_Optional)(nil), // 76: p4.v1.GenericFieldMatch.Optional + (*TableDataUnion_Param)(nil), // 77: p4.v1.TableDataUnion.Param + (*anypb.Any)(nil), // 78: google.protobuf.Any + (*P4Data)(nil), // 79: p4.v1.P4Data + (*status.Status)(nil), // 80: google.rpc.Status + (*v1.P4Info)(nil), // 81: p4.config.v1.P4Info + (*GenericData)(nil), // 82: p4.v1.GenericData } var file_p4_v1_p4runtime_proto_depIdxs = []int32{ - 50, // 0: p4.v1.WriteRequest.election_id:type_name -> p4.v1.Uint128 - 9, // 1: p4.v1.WriteRequest.updates:type_name -> p4.v1.Update - 1, // 2: p4.v1.WriteRequest.atomicity:type_name -> p4.v1.WriteRequest.Atomicity - 10, // 3: p4.v1.ReadRequest.entities:type_name -> p4.v1.Entity - 10, // 4: p4.v1.ReadResponse.entities:type_name -> p4.v1.Entity - 2, // 5: p4.v1.Update.type:type_name -> p4.v1.Update.Type - 10, // 6: p4.v1.Update.entity:type_name -> p4.v1.Entity - 11, // 7: p4.v1.Entity.extern_entry:type_name -> p4.v1.ExternEntry - 12, // 8: p4.v1.Entity.table_entry:type_name -> p4.v1.TableEntry - 18, // 9: p4.v1.Entity.action_profile_member:type_name -> p4.v1.ActionProfileMember - 19, // 10: p4.v1.Entity.action_profile_group:type_name -> p4.v1.ActionProfileGroup - 21, // 11: p4.v1.Entity.meter_entry:type_name -> p4.v1.MeterEntry - 22, // 12: p4.v1.Entity.direct_meter_entry:type_name -> p4.v1.DirectMeterEntry - 24, // 13: p4.v1.Entity.counter_entry:type_name -> p4.v1.CounterEntry - 25, // 14: p4.v1.Entity.direct_counter_entry:type_name -> p4.v1.DirectCounterEntry - 28, // 15: p4.v1.Entity.packet_replication_engine_entry:type_name -> p4.v1.PacketReplicationEngineEntry - 33, // 16: p4.v1.Entity.value_set_entry:type_name -> p4.v1.ValueSetEntry - 34, // 17: p4.v1.Entity.register_entry:type_name -> p4.v1.RegisterEntry - 35, // 18: p4.v1.Entity.digest_entry:type_name -> p4.v1.DigestEntry - 69, // 19: p4.v1.ExternEntry.entry:type_name -> google.protobuf.Any - 13, // 20: p4.v1.TableEntry.match:type_name -> p4.v1.FieldMatch - 14, // 21: p4.v1.TableEntry.action:type_name -> p4.v1.TableAction - 23, // 22: p4.v1.TableEntry.meter_config:type_name -> p4.v1.MeterConfig - 26, // 23: p4.v1.TableEntry.counter_data:type_name -> p4.v1.CounterData - 27, // 24: p4.v1.TableEntry.meter_counter_data:type_name -> p4.v1.MeterCounterData - 59, // 25: p4.v1.TableEntry.time_since_last_hit:type_name -> p4.v1.TableEntry.IdleTimeout - 60, // 26: p4.v1.FieldMatch.exact:type_name -> p4.v1.FieldMatch.Exact - 61, // 27: p4.v1.FieldMatch.ternary:type_name -> p4.v1.FieldMatch.Ternary - 62, // 28: p4.v1.FieldMatch.lpm:type_name -> p4.v1.FieldMatch.LPM - 63, // 29: p4.v1.FieldMatch.range:type_name -> p4.v1.FieldMatch.Range - 64, // 30: p4.v1.FieldMatch.optional:type_name -> p4.v1.FieldMatch.Optional - 69, // 31: p4.v1.FieldMatch.other:type_name -> google.protobuf.Any - 15, // 32: p4.v1.TableAction.action:type_name -> p4.v1.Action - 16, // 33: p4.v1.TableAction.action_profile_action_set:type_name -> p4.v1.ActionProfileActionSet - 65, // 34: p4.v1.Action.params:type_name -> p4.v1.Action.Param - 17, // 35: p4.v1.ActionProfileActionSet.action_profile_actions:type_name -> p4.v1.ActionProfileAction - 15, // 36: p4.v1.ActionProfileAction.action:type_name -> p4.v1.Action - 15, // 37: p4.v1.ActionProfileMember.action:type_name -> p4.v1.Action - 66, // 38: p4.v1.ActionProfileGroup.members:type_name -> p4.v1.ActionProfileGroup.Member - 20, // 39: p4.v1.MeterEntry.index:type_name -> p4.v1.Index - 23, // 40: p4.v1.MeterEntry.config:type_name -> p4.v1.MeterConfig - 27, // 41: p4.v1.MeterEntry.counter_data:type_name -> p4.v1.MeterCounterData - 12, // 42: p4.v1.DirectMeterEntry.table_entry:type_name -> p4.v1.TableEntry - 23, // 43: p4.v1.DirectMeterEntry.config:type_name -> p4.v1.MeterConfig - 27, // 44: p4.v1.DirectMeterEntry.counter_data:type_name -> p4.v1.MeterCounterData - 20, // 45: p4.v1.CounterEntry.index:type_name -> p4.v1.Index - 26, // 46: p4.v1.CounterEntry.data:type_name -> p4.v1.CounterData - 12, // 47: p4.v1.DirectCounterEntry.table_entry:type_name -> p4.v1.TableEntry - 26, // 48: p4.v1.DirectCounterEntry.data:type_name -> p4.v1.CounterData - 26, // 49: p4.v1.MeterCounterData.green:type_name -> p4.v1.CounterData - 26, // 50: p4.v1.MeterCounterData.yellow:type_name -> p4.v1.CounterData - 26, // 51: p4.v1.MeterCounterData.red:type_name -> p4.v1.CounterData - 30, // 52: p4.v1.PacketReplicationEngineEntry.multicast_group_entry:type_name -> p4.v1.MulticastGroupEntry - 31, // 53: p4.v1.PacketReplicationEngineEntry.clone_session_entry:type_name -> p4.v1.CloneSessionEntry - 29, // 54: p4.v1.MulticastGroupEntry.replicas:type_name -> p4.v1.Replica - 29, // 55: p4.v1.CloneSessionEntry.replicas:type_name -> p4.v1.Replica - 13, // 56: p4.v1.ValueSetMember.match:type_name -> p4.v1.FieldMatch - 32, // 57: p4.v1.ValueSetEntry.members:type_name -> p4.v1.ValueSetMember - 20, // 58: p4.v1.RegisterEntry.index:type_name -> p4.v1.Index - 70, // 59: p4.v1.RegisterEntry.data:type_name -> p4.v1.P4Data - 67, // 60: p4.v1.DigestEntry.config:type_name -> p4.v1.DigestEntry.Config - 43, // 61: p4.v1.StreamMessageRequest.arbitration:type_name -> p4.v1.MasterArbitrationUpdate - 37, // 62: p4.v1.StreamMessageRequest.packet:type_name -> p4.v1.PacketOut - 38, // 63: p4.v1.StreamMessageRequest.digest_ack:type_name -> p4.v1.DigestListAck - 69, // 64: p4.v1.StreamMessageRequest.other:type_name -> google.protobuf.Any - 42, // 65: p4.v1.PacketOut.metadata:type_name -> p4.v1.PacketMetadata - 43, // 66: p4.v1.StreamMessageResponse.arbitration:type_name -> p4.v1.MasterArbitrationUpdate - 40, // 67: p4.v1.StreamMessageResponse.packet:type_name -> p4.v1.PacketIn - 41, // 68: p4.v1.StreamMessageResponse.digest:type_name -> p4.v1.DigestList - 45, // 69: p4.v1.StreamMessageResponse.idle_timeout_notification:type_name -> p4.v1.IdleTimeoutNotification - 69, // 70: p4.v1.StreamMessageResponse.other:type_name -> google.protobuf.Any - 46, // 71: p4.v1.StreamMessageResponse.error:type_name -> p4.v1.StreamError - 42, // 72: p4.v1.PacketIn.metadata:type_name -> p4.v1.PacketMetadata - 70, // 73: p4.v1.DigestList.data:type_name -> p4.v1.P4Data - 44, // 74: p4.v1.MasterArbitrationUpdate.role:type_name -> p4.v1.Role - 50, // 75: p4.v1.MasterArbitrationUpdate.election_id:type_name -> p4.v1.Uint128 - 71, // 76: p4.v1.MasterArbitrationUpdate.status:type_name -> google.rpc.Status - 69, // 77: p4.v1.Role.config:type_name -> google.protobuf.Any - 12, // 78: p4.v1.IdleTimeoutNotification.table_entry:type_name -> p4.v1.TableEntry - 47, // 79: p4.v1.StreamError.packet_out:type_name -> p4.v1.PacketOutError - 48, // 80: p4.v1.StreamError.digest_list_ack:type_name -> p4.v1.DigestListAckError - 49, // 81: p4.v1.StreamError.other:type_name -> p4.v1.StreamOtherError - 37, // 82: p4.v1.PacketOutError.packet_out:type_name -> p4.v1.PacketOut - 38, // 83: p4.v1.DigestListAckError.digest_list_ack:type_name -> p4.v1.DigestListAck - 69, // 84: p4.v1.StreamOtherError.other:type_name -> google.protobuf.Any - 50, // 85: p4.v1.SetForwardingPipelineConfigRequest.election_id:type_name -> p4.v1.Uint128 - 3, // 86: p4.v1.SetForwardingPipelineConfigRequest.action:type_name -> p4.v1.SetForwardingPipelineConfigRequest.Action - 53, // 87: p4.v1.SetForwardingPipelineConfigRequest.config:type_name -> p4.v1.ForwardingPipelineConfig - 72, // 88: p4.v1.ForwardingPipelineConfig.p4info:type_name -> p4.config.v1.P4Info - 68, // 89: p4.v1.ForwardingPipelineConfig.cookie:type_name -> p4.v1.ForwardingPipelineConfig.Cookie - 4, // 90: p4.v1.GetForwardingPipelineConfigRequest.response_type:type_name -> p4.v1.GetForwardingPipelineConfigRequest.ResponseType - 53, // 91: p4.v1.GetForwardingPipelineConfigResponse.config:type_name -> p4.v1.ForwardingPipelineConfig - 69, // 92: p4.v1.Error.details:type_name -> google.protobuf.Any - 5, // 93: p4.v1.P4Runtime.Write:input_type -> p4.v1.WriteRequest - 7, // 94: p4.v1.P4Runtime.Read:input_type -> p4.v1.ReadRequest - 51, // 95: p4.v1.P4Runtime.SetForwardingPipelineConfig:input_type -> p4.v1.SetForwardingPipelineConfigRequest - 54, // 96: p4.v1.P4Runtime.GetForwardingPipelineConfig:input_type -> p4.v1.GetForwardingPipelineConfigRequest - 36, // 97: p4.v1.P4Runtime.StreamChannel:input_type -> p4.v1.StreamMessageRequest - 57, // 98: p4.v1.P4Runtime.Capabilities:input_type -> p4.v1.CapabilitiesRequest - 6, // 99: p4.v1.P4Runtime.Write:output_type -> p4.v1.WriteResponse - 8, // 100: p4.v1.P4Runtime.Read:output_type -> p4.v1.ReadResponse - 52, // 101: p4.v1.P4Runtime.SetForwardingPipelineConfig:output_type -> p4.v1.SetForwardingPipelineConfigResponse - 55, // 102: p4.v1.P4Runtime.GetForwardingPipelineConfig:output_type -> p4.v1.GetForwardingPipelineConfigResponse - 39, // 103: p4.v1.P4Runtime.StreamChannel:output_type -> p4.v1.StreamMessageResponse - 58, // 104: p4.v1.P4Runtime.Capabilities:output_type -> p4.v1.CapabilitiesResponse - 99, // [99:105] is the sub-list for method output_type - 93, // [93:99] is the sub-list for method input_type - 93, // [93:93] is the sub-list for extension type_name - 93, // [93:93] is the sub-list for extension extendee - 0, // [0:93] is the sub-list for field type_name + 50, // 0: p4.v1.WriteRequest.election_id:type_name -> p4.v1.Uint128 + 9, // 1: p4.v1.WriteRequest.updates:type_name -> p4.v1.Update + 1, // 2: p4.v1.WriteRequest.atomicity:type_name -> p4.v1.WriteRequest.Atomicity + 10, // 3: p4.v1.ReadRequest.entities:type_name -> p4.v1.Entity + 10, // 4: p4.v1.ReadResponse.entities:type_name -> p4.v1.Entity + 2, // 5: p4.v1.Update.type:type_name -> p4.v1.Update.Type + 10, // 6: p4.v1.Update.entity:type_name -> p4.v1.Entity + 11, // 7: p4.v1.Entity.extern_entry:type_name -> p4.v1.ExternEntry + 12, // 8: p4.v1.Entity.table_entry:type_name -> p4.v1.TableEntry + 18, // 9: p4.v1.Entity.action_profile_member:type_name -> p4.v1.ActionProfileMember + 19, // 10: p4.v1.Entity.action_profile_group:type_name -> p4.v1.ActionProfileGroup + 21, // 11: p4.v1.Entity.meter_entry:type_name -> p4.v1.MeterEntry + 22, // 12: p4.v1.Entity.direct_meter_entry:type_name -> p4.v1.DirectMeterEntry + 24, // 13: p4.v1.Entity.counter_entry:type_name -> p4.v1.CounterEntry + 25, // 14: p4.v1.Entity.direct_counter_entry:type_name -> p4.v1.DirectCounterEntry + 28, // 15: p4.v1.Entity.packet_replication_engine_entry:type_name -> p4.v1.PacketReplicationEngineEntry + 33, // 16: p4.v1.Entity.value_set_entry:type_name -> p4.v1.ValueSetEntry + 34, // 17: p4.v1.Entity.register_entry:type_name -> p4.v1.RegisterEntry + 35, // 18: p4.v1.Entity.digest_entry:type_name -> p4.v1.DigestEntry + 60, // 19: p4.v1.Entity.generic_table_entry:type_name -> p4.v1.GenericTableEntry + 78, // 20: p4.v1.ExternEntry.entry:type_name -> google.protobuf.Any + 13, // 21: p4.v1.TableEntry.match:type_name -> p4.v1.FieldMatch + 14, // 22: p4.v1.TableEntry.action:type_name -> p4.v1.TableAction + 23, // 23: p4.v1.TableEntry.meter_config:type_name -> p4.v1.MeterConfig + 26, // 24: p4.v1.TableEntry.counter_data:type_name -> p4.v1.CounterData + 27, // 25: p4.v1.TableEntry.meter_counter_data:type_name -> p4.v1.MeterCounterData + 62, // 26: p4.v1.TableEntry.time_since_last_hit:type_name -> p4.v1.TableEntry.IdleTimeout + 60, // 27: p4.v1.TableEntry.resources:type_name -> p4.v1.GenericTableEntry + 63, // 28: p4.v1.FieldMatch.exact:type_name -> p4.v1.FieldMatch.Exact + 64, // 29: p4.v1.FieldMatch.ternary:type_name -> p4.v1.FieldMatch.Ternary + 65, // 30: p4.v1.FieldMatch.lpm:type_name -> p4.v1.FieldMatch.LPM + 66, // 31: p4.v1.FieldMatch.range:type_name -> p4.v1.FieldMatch.Range + 67, // 32: p4.v1.FieldMatch.optional:type_name -> p4.v1.FieldMatch.Optional + 78, // 33: p4.v1.FieldMatch.other:type_name -> google.protobuf.Any + 15, // 34: p4.v1.TableAction.action:type_name -> p4.v1.Action + 16, // 35: p4.v1.TableAction.action_profile_action_set:type_name -> p4.v1.ActionProfileActionSet + 68, // 36: p4.v1.Action.params:type_name -> p4.v1.Action.Param + 17, // 37: p4.v1.ActionProfileActionSet.action_profile_actions:type_name -> p4.v1.ActionProfileAction + 15, // 38: p4.v1.ActionProfileAction.action:type_name -> p4.v1.Action + 15, // 39: p4.v1.ActionProfileMember.action:type_name -> p4.v1.Action + 69, // 40: p4.v1.ActionProfileGroup.members:type_name -> p4.v1.ActionProfileGroup.Member + 20, // 41: p4.v1.MeterEntry.index:type_name -> p4.v1.Index + 23, // 42: p4.v1.MeterEntry.config:type_name -> p4.v1.MeterConfig + 27, // 43: p4.v1.MeterEntry.counter_data:type_name -> p4.v1.MeterCounterData + 12, // 44: p4.v1.DirectMeterEntry.table_entry:type_name -> p4.v1.TableEntry + 23, // 45: p4.v1.DirectMeterEntry.config:type_name -> p4.v1.MeterConfig + 27, // 46: p4.v1.DirectMeterEntry.counter_data:type_name -> p4.v1.MeterCounterData + 20, // 47: p4.v1.CounterEntry.index:type_name -> p4.v1.Index + 26, // 48: p4.v1.CounterEntry.data:type_name -> p4.v1.CounterData + 12, // 49: p4.v1.DirectCounterEntry.table_entry:type_name -> p4.v1.TableEntry + 26, // 50: p4.v1.DirectCounterEntry.data:type_name -> p4.v1.CounterData + 26, // 51: p4.v1.MeterCounterData.green:type_name -> p4.v1.CounterData + 26, // 52: p4.v1.MeterCounterData.yellow:type_name -> p4.v1.CounterData + 26, // 53: p4.v1.MeterCounterData.red:type_name -> p4.v1.CounterData + 30, // 54: p4.v1.PacketReplicationEngineEntry.multicast_group_entry:type_name -> p4.v1.MulticastGroupEntry + 31, // 55: p4.v1.PacketReplicationEngineEntry.clone_session_entry:type_name -> p4.v1.CloneSessionEntry + 29, // 56: p4.v1.MulticastGroupEntry.replicas:type_name -> p4.v1.Replica + 29, // 57: p4.v1.CloneSessionEntry.replicas:type_name -> p4.v1.Replica + 13, // 58: p4.v1.ValueSetMember.match:type_name -> p4.v1.FieldMatch + 32, // 59: p4.v1.ValueSetEntry.members:type_name -> p4.v1.ValueSetMember + 20, // 60: p4.v1.RegisterEntry.index:type_name -> p4.v1.Index + 79, // 61: p4.v1.RegisterEntry.data:type_name -> p4.v1.P4Data + 70, // 62: p4.v1.DigestEntry.config:type_name -> p4.v1.DigestEntry.Config + 43, // 63: p4.v1.StreamMessageRequest.arbitration:type_name -> p4.v1.MasterArbitrationUpdate + 37, // 64: p4.v1.StreamMessageRequest.packet:type_name -> p4.v1.PacketOut + 38, // 65: p4.v1.StreamMessageRequest.digest_ack:type_name -> p4.v1.DigestListAck + 78, // 66: p4.v1.StreamMessageRequest.other:type_name -> google.protobuf.Any + 42, // 67: p4.v1.PacketOut.metadata:type_name -> p4.v1.PacketMetadata + 43, // 68: p4.v1.StreamMessageResponse.arbitration:type_name -> p4.v1.MasterArbitrationUpdate + 40, // 69: p4.v1.StreamMessageResponse.packet:type_name -> p4.v1.PacketIn + 41, // 70: p4.v1.StreamMessageResponse.digest:type_name -> p4.v1.DigestList + 45, // 71: p4.v1.StreamMessageResponse.idle_timeout_notification:type_name -> p4.v1.IdleTimeoutNotification + 78, // 72: p4.v1.StreamMessageResponse.other:type_name -> google.protobuf.Any + 46, // 73: p4.v1.StreamMessageResponse.error:type_name -> p4.v1.StreamError + 42, // 74: p4.v1.PacketIn.metadata:type_name -> p4.v1.PacketMetadata + 79, // 75: p4.v1.DigestList.data:type_name -> p4.v1.P4Data + 44, // 76: p4.v1.MasterArbitrationUpdate.role:type_name -> p4.v1.Role + 50, // 77: p4.v1.MasterArbitrationUpdate.election_id:type_name -> p4.v1.Uint128 + 80, // 78: p4.v1.MasterArbitrationUpdate.status:type_name -> google.rpc.Status + 78, // 79: p4.v1.Role.config:type_name -> google.protobuf.Any + 12, // 80: p4.v1.IdleTimeoutNotification.table_entry:type_name -> p4.v1.TableEntry + 47, // 81: p4.v1.StreamError.packet_out:type_name -> p4.v1.PacketOutError + 48, // 82: p4.v1.StreamError.digest_list_ack:type_name -> p4.v1.DigestListAckError + 49, // 83: p4.v1.StreamError.other:type_name -> p4.v1.StreamOtherError + 37, // 84: p4.v1.PacketOutError.packet_out:type_name -> p4.v1.PacketOut + 38, // 85: p4.v1.DigestListAckError.digest_list_ack:type_name -> p4.v1.DigestListAck + 78, // 86: p4.v1.StreamOtherError.other:type_name -> google.protobuf.Any + 50, // 87: p4.v1.SetForwardingPipelineConfigRequest.election_id:type_name -> p4.v1.Uint128 + 3, // 88: p4.v1.SetForwardingPipelineConfigRequest.action:type_name -> p4.v1.SetForwardingPipelineConfigRequest.Action + 53, // 89: p4.v1.SetForwardingPipelineConfigRequest.config:type_name -> p4.v1.ForwardingPipelineConfig + 81, // 90: p4.v1.ForwardingPipelineConfig.p4info:type_name -> p4.config.v1.P4Info + 71, // 91: p4.v1.ForwardingPipelineConfig.cookie:type_name -> p4.v1.ForwardingPipelineConfig.Cookie + 4, // 92: p4.v1.GetForwardingPipelineConfigRequest.response_type:type_name -> p4.v1.GetForwardingPipelineConfigRequest.ResponseType + 53, // 93: p4.v1.GetForwardingPipelineConfigResponse.config:type_name -> p4.v1.ForwardingPipelineConfig + 78, // 94: p4.v1.Error.details:type_name -> google.protobuf.Any + 72, // 95: p4.v1.GenericFieldMatch.exact:type_name -> p4.v1.GenericFieldMatch.Exact + 73, // 96: p4.v1.GenericFieldMatch.ternary:type_name -> p4.v1.GenericFieldMatch.Ternary + 74, // 97: p4.v1.GenericFieldMatch.lpm:type_name -> p4.v1.GenericFieldMatch.LPM + 75, // 98: p4.v1.GenericFieldMatch.range:type_name -> p4.v1.GenericFieldMatch.Range + 76, // 99: p4.v1.GenericFieldMatch.optional:type_name -> p4.v1.GenericFieldMatch.Optional + 78, // 100: p4.v1.GenericFieldMatch.other:type_name -> google.protobuf.Any + 59, // 101: p4.v1.GenericTableEntry.match:type_name -> p4.v1.GenericFieldMatch + 61, // 102: p4.v1.GenericTableEntry.table_data_union:type_name -> p4.v1.TableDataUnion + 77, // 103: p4.v1.TableDataUnion.params:type_name -> p4.v1.TableDataUnion.Param + 82, // 104: p4.v1.GenericFieldMatch.Exact.value:type_name -> p4.v1.GenericData + 82, // 105: p4.v1.GenericFieldMatch.Optional.value:type_name -> p4.v1.GenericData + 82, // 106: p4.v1.TableDataUnion.Param.value:type_name -> p4.v1.GenericData + 5, // 107: p4.v1.P4Runtime.Write:input_type -> p4.v1.WriteRequest + 7, // 108: p4.v1.P4Runtime.Read:input_type -> p4.v1.ReadRequest + 51, // 109: p4.v1.P4Runtime.SetForwardingPipelineConfig:input_type -> p4.v1.SetForwardingPipelineConfigRequest + 54, // 110: p4.v1.P4Runtime.GetForwardingPipelineConfig:input_type -> p4.v1.GetForwardingPipelineConfigRequest + 36, // 111: p4.v1.P4Runtime.StreamChannel:input_type -> p4.v1.StreamMessageRequest + 57, // 112: p4.v1.P4Runtime.Capabilities:input_type -> p4.v1.CapabilitiesRequest + 6, // 113: p4.v1.P4Runtime.Write:output_type -> p4.v1.WriteResponse + 8, // 114: p4.v1.P4Runtime.Read:output_type -> p4.v1.ReadResponse + 52, // 115: p4.v1.P4Runtime.SetForwardingPipelineConfig:output_type -> p4.v1.SetForwardingPipelineConfigResponse + 55, // 116: p4.v1.P4Runtime.GetForwardingPipelineConfig:output_type -> p4.v1.GetForwardingPipelineConfigResponse + 39, // 117: p4.v1.P4Runtime.StreamChannel:output_type -> p4.v1.StreamMessageResponse + 58, // 118: p4.v1.P4Runtime.Capabilities:output_type -> p4.v1.CapabilitiesResponse + 113, // [113:119] is the sub-list for method output_type + 107, // [107:113] is the sub-list for method input_type + 107, // [107:107] is the sub-list for extension type_name + 107, // [107:107] is the sub-list for extension extendee + 0, // [0:107] is the sub-list for field type_name } func init() { file_p4_v1_p4runtime_proto_init() } @@ -6547,7 +7291,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TableEntry_IdleTimeout); i { + switch v := v.(*GenericFieldMatch); i { case 0: return &v.state case 1: @@ -6559,7 +7303,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FieldMatch_Exact); i { + switch v := v.(*GenericTableEntry); i { case 0: return &v.state case 1: @@ -6571,7 +7315,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FieldMatch_Ternary); i { + switch v := v.(*TableDataUnion); i { case 0: return &v.state case 1: @@ -6583,7 +7327,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FieldMatch_LPM); i { + switch v := v.(*TableEntry_IdleTimeout); i { case 0: return &v.state case 1: @@ -6595,7 +7339,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FieldMatch_Range); i { + switch v := v.(*FieldMatch_Exact); i { case 0: return &v.state case 1: @@ -6607,7 +7351,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FieldMatch_Optional); i { + switch v := v.(*FieldMatch_Ternary); i { case 0: return &v.state case 1: @@ -6619,7 +7363,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Action_Param); i { + switch v := v.(*FieldMatch_LPM); i { case 0: return &v.state case 1: @@ -6631,7 +7375,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ActionProfileGroup_Member); i { + switch v := v.(*FieldMatch_Range); i { case 0: return &v.state case 1: @@ -6643,7 +7387,7 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DigestEntry_Config); i { + switch v := v.(*FieldMatch_Optional); i { case 0: return &v.state case 1: @@ -6655,6 +7399,42 @@ func file_p4_v1_p4runtime_proto_init() { } } file_p4_v1_p4runtime_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Action_Param); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_v1_p4runtime_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ActionProfileGroup_Member); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_v1_p4runtime_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DigestEntry_Config); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_v1_p4runtime_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ForwardingPipelineConfig_Cookie); i { case 0: return &v.state @@ -6666,6 +7446,78 @@ func file_p4_v1_p4runtime_proto_init() { return nil } } + file_p4_v1_p4runtime_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenericFieldMatch_Exact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_v1_p4runtime_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenericFieldMatch_Ternary); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_v1_p4runtime_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenericFieldMatch_LPM); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_v1_p4runtime_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenericFieldMatch_Range); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_v1_p4runtime_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenericFieldMatch_Optional); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_p4_v1_p4runtime_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TableDataUnion_Param); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_p4_v1_p4runtime_proto_msgTypes[5].OneofWrappers = []interface{}{ (*Entity_ExternEntry)(nil), @@ -6680,6 +7532,7 @@ func file_p4_v1_p4runtime_proto_init() { (*Entity_ValueSetEntry)(nil), (*Entity_RegisterEntry)(nil), (*Entity_DigestEntry)(nil), + (*Entity_GenericTableEntry)(nil), } file_p4_v1_p4runtime_proto_msgTypes[8].OneofWrappers = []interface{}{ (*FieldMatch_Exact_)(nil), @@ -6726,7 +7579,15 @@ func file_p4_v1_p4runtime_proto_init() { (*StreamError_DigestListAck)(nil), (*StreamError_Other)(nil), } - file_p4_v1_p4runtime_proto_msgTypes[61].OneofWrappers = []interface{}{ + file_p4_v1_p4runtime_proto_msgTypes[54].OneofWrappers = []interface{}{ + (*GenericFieldMatch_Exact_)(nil), + (*GenericFieldMatch_Ternary_)(nil), + (*GenericFieldMatch_Lpm)(nil), + (*GenericFieldMatch_Range_)(nil), + (*GenericFieldMatch_Optional_)(nil), + (*GenericFieldMatch_Other)(nil), + } + file_p4_v1_p4runtime_proto_msgTypes[64].OneofWrappers = []interface{}{ (*ActionProfileGroup_Member_Watch)(nil), (*ActionProfileGroup_Member_WatchPort)(nil), } @@ -6736,7 +7597,7 @@ func file_p4_v1_p4runtime_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_p4_v1_p4runtime_proto_rawDesc, NumEnums: 5, - NumMessages: 64, + NumMessages: 73, NumExtensions: 0, NumServices: 1, }, diff --git a/py/p4/config/v1/p4info_pb2.py b/py/p4/config/v1/p4info_pb2.py index 30bce078..4dfda78e 100644 --- a/py/p4/config/v1/p4info_pb2.py +++ b/py/p4/config/v1/p4info_pb2.py @@ -21,7 +21,7 @@ syntax='proto3', serialized_options=b'Z+github.com/p4lang/p4runtime/go/p4/config/v1', create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x19p4/config/v1/p4info.proto\x12\x0cp4.config.v1\x1a\x19google/protobuf/any.proto\x1a\x1ap4/config/v1/p4types.proto\"\x88\x05\n\x06P4Info\x12\'\n\x08pkg_info\x18\x01 \x01(\x0b\x32\x15.p4.config.v1.PkgInfo\x12#\n\x06tables\x18\x02 \x03(\x0b\x32\x13.p4.config.v1.Table\x12%\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x14.p4.config.v1.Action\x12\x34\n\x0f\x61\x63tion_profiles\x18\x04 \x03(\x0b\x32\x1b.p4.config.v1.ActionProfile\x12\'\n\x08\x63ounters\x18\x05 \x03(\x0b\x32\x15.p4.config.v1.Counter\x12\x34\n\x0f\x64irect_counters\x18\x06 \x03(\x0b\x32\x1b.p4.config.v1.DirectCounter\x12#\n\x06meters\x18\x07 \x03(\x0b\x32\x13.p4.config.v1.Meter\x12\x30\n\rdirect_meters\x18\x08 \x03(\x0b\x32\x19.p4.config.v1.DirectMeter\x12J\n\x1a\x63ontroller_packet_metadata\x18\t \x03(\x0b\x32&.p4.config.v1.ControllerPacketMetadata\x12*\n\nvalue_sets\x18\n \x03(\x0b\x32\x16.p4.config.v1.ValueSet\x12)\n\tregisters\x18\x0b \x03(\x0b\x32\x16.p4.config.v1.Register\x12%\n\x07\x64igests\x18\x0c \x03(\x0b\x32\x14.p4.config.v1.Digest\x12%\n\x07\x65xterns\x18\x64 \x03(\x0b\x32\x14.p4.config.v1.Extern\x12,\n\ttype_info\x18\xc8\x01 \x01(\x0b\x32\x18.p4.config.v1.P4TypeInfo\"3\n\rDocumentation\x12\r\n\x05\x62rief\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"\xa9\x02\n\x07PkgInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12(\n\x03\x64oc\x18\x03 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12\x13\n\x0b\x61nnotations\x18\x04 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\n \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x0c\n\x04\x61rch\x18\x05 \x01(\t\x12\x14\n\x0corganization\x18\x06 \x01(\t\x12\x0f\n\x07\x63ontact\x18\x07 \x01(\t\x12\x0b\n\x03url\x18\x08 \x01(\t\x12\x42\n\x16structured_annotations\x18\t \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"\x87\x02\n\x05P4Ids\"\xfd\x01\n\x06Prefix\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TION\x10\x01\x12\t\n\x05TABLE\x10\x02\x12\r\n\tVALUE_SET\x10\x03\x12\x15\n\x11\x43ONTROLLER_HEADER\x10\x04\x12\x15\n\x11PSA_EXTERNS_START\x10\x10\x12\x12\n\x0e\x41\x43TION_PROFILE\x10\x11\x12\x0b\n\x07\x43OUNTER\x10\x12\x12\x12\n\x0e\x44IRECT_COUNTER\x10\x13\x12\t\n\x05METER\x10\x14\x12\x10\n\x0c\x44IRECT_METER\x10\x15\x12\x0c\n\x08REGISTER\x10\x16\x12\n\n\x06\x44IGEST\x10\x17\x12\x18\n\x13OTHER_EXTERNS_START\x10\x80\x01\x12\x08\n\x03MAX\x10\xff\x01\"\xf2\x01\n\x08Preamble\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x04 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x07 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12(\n\x03\x64oc\x18\x05 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12\x42\n\x16structured_annotations\x18\x06 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"k\n\x06\x45xtern\x12\x16\n\x0e\x65xtern_type_id\x18\x01 \x01(\r\x12\x18\n\x10\x65xtern_type_name\x18\x02 \x01(\t\x12/\n\tinstances\x18\x03 \x03(\x0b\x32\x1c.p4.config.v1.ExternInstance\"^\n\x0e\x45xternInstance\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\"\n\x04info\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\"\xdc\x03\n\nMatchField\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\n \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12\x38\n\nmatch_type\x18\x05 \x01(\x0e\x32\".p4.config.v1.MatchField.MatchTypeH\x00\x12\x1a\n\x10other_match_type\x18\x07 \x01(\tH\x00\x12(\n\x03\x64oc\x18\x06 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12,\n\ttype_name\x18\x08 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\x12\x42\n\x16structured_annotations\x18\t \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"V\n\tMatchType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x45XACT\x10\x02\x12\x07\n\x03LPM\x10\x03\x12\x0b\n\x07TERNARY\x10\x04\x12\t\n\x05RANGE\x10\x05\x12\x0c\n\x08OPTIONAL\x10\x06\x42\x07\n\x05match\"\xde\x03\n\x05Table\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12.\n\x0cmatch_fields\x18\x02 \x03(\x0b\x32\x18.p4.config.v1.MatchField\x12,\n\x0b\x61\x63tion_refs\x18\x03 \x03(\x0b\x32\x17.p4.config.v1.ActionRef\x12\x1f\n\x17\x63onst_default_action_id\x18\x04 \x01(\r\x12\x19\n\x11implementation_id\x18\x06 \x01(\r\x12\x1b\n\x13\x64irect_resource_ids\x18\x07 \x03(\r\x12\x0c\n\x04size\x18\x08 \x01(\x03\x12\x46\n\x15idle_timeout_behavior\x18\t \x01(\x0e\x32\'.p4.config.v1.Table.IdleTimeoutBehavior\x12\x16\n\x0eis_const_table\x18\n \x01(\x08\x12\x1b\n\x13has_initial_entries\x18\x0b \x01(\x08\x12.\n\x10other_properties\x18\x64 \x01(\x0b\x32\x14.google.protobuf.Any\"9\n\x13IdleTimeoutBehavior\x12\x0e\n\nNO_TIMEOUT\x10\x00\x12\x12\n\x0eNOTIFY_CONTROL\x10\x01\"\x9c\x02\n\tActionRef\x12\n\n\x02id\x18\x01 \x01(\r\x12,\n\x05scope\x18\x03 \x01(\x0e\x32\x1d.p4.config.v1.ActionRef.Scope\x12\x13\n\x0b\x61nnotations\x18\x02 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x05 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x42\n\x16structured_annotations\x18\x04 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"@\n\x05Scope\x12\x15\n\x11TABLE_AND_DEFAULT\x10\x00\x12\x0e\n\nTABLE_ONLY\x10\x01\x12\x10\n\x0c\x44\x45\x46\x41ULT_ONLY\x10\x02\"\x81\x03\n\x06\x41\x63tion\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12*\n\x06params\x18\x02 \x03(\x0b\x32\x1a.p4.config.v1.Action.Param\x1a\xa0\x02\n\x05Param\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x08 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12(\n\x03\x64oc\x18\x05 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12,\n\ttype_name\x18\x06 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\x12\x42\n\x16structured_annotations\x18\x07 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"\x82\x03\n\rActionProfile\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\x11\n\ttable_ids\x18\x02 \x03(\r\x12\x15\n\rwith_selector\x18\x03 \x01(\x08\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x16\n\x0emax_group_size\x18\x05 \x01(\x05\x12\x42\n\x0esum_of_weights\x18\x06 \x01(\x0b\x32(.p4.config.v1.ActionProfile.SumOfWeightsH\x00\x12\x42\n\x0esum_of_members\x18\x07 \x01(\x0b\x32(.p4.config.v1.ActionProfile.SumOfMembersH\x00\x1a\x0e\n\x0cSumOfWeights\x1a\x44\n\x0cSumOfMembers\x12\x1e\n\x11max_member_weight\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x14\n\x12_max_member_weightB\x19\n\x17selector_size_semantics\"v\n\x0b\x43ounterSpec\x12,\n\x04unit\x18\x01 \x01(\x0e\x32\x1e.p4.config.v1.CounterSpec.Unit\"9\n\x04Unit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\x0b\n\x07PACKETS\x10\x02\x12\x08\n\x04\x42OTH\x10\x03\"\x9e\x01\n\x07\x43ounter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x04spec\x18\x02 \x01(\x0b\x32\x19.p4.config.v1.CounterSpec\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"{\n\rDirectCounter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x04spec\x18\x02 \x01(\x0b\x32\x19.p4.config.v1.CounterSpec\x12\x17\n\x0f\x64irect_table_id\x18\x03 \x01(\r\"h\n\tMeterSpec\x12*\n\x04unit\x18\x01 \x01(\x0e\x32\x1c.p4.config.v1.MeterSpec.Unit\"/\n\x04Unit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\x0b\n\x07PACKETS\x10\x02\"\x9a\x01\n\x05Meter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12%\n\x04spec\x18\x02 \x01(\x0b\x32\x17.p4.config.v1.MeterSpec\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"w\n\x0b\x44irectMeter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12%\n\x04spec\x18\x02 \x01(\x0b\x32\x17.p4.config.v1.MeterSpec\x12\x17\n\x0f\x64irect_table_id\x18\x03 \x01(\r\"\x83\x03\n\x18\x43ontrollerPacketMetadata\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\x41\n\x08metadata\x18\x02 \x03(\x0b\x32/.p4.config.v1.ControllerPacketMetadata.Metadata\x1a\xf9\x01\n\x08Metadata\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x07 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12,\n\ttype_name\x18\x05 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\x12\x42\n\x16structured_annotations\x18\x06 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"k\n\x08ValueSet\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x05match\x18\x02 \x03(\x0b\x32\x18.p4.config.v1.MatchField\x12\x0c\n\x04size\x18\x03 \x01(\x05\"\xa7\x01\n\x08Register\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12/\n\ttype_spec\x18\x02 \x01(\x0b\x32\x1c.p4.config.v1.P4DataTypeSpec\x12\x0c\n\x04size\x18\x03 \x01(\x05\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"c\n\x06\x44igest\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12/\n\ttype_spec\x18\x02 \x01(\x0b\x32\x1c.p4.config.v1.P4DataTypeSpecB-Z+github.com/p4lang/p4runtime/go/p4/config/v1b\x06proto3' + serialized_pb=b'\n\x19p4/config/v1/p4info.proto\x12\x0cp4.config.v1\x1a\x19google/protobuf/any.proto\x1a\x1ap4/config/v1/p4types.proto\"\xe1\x05\n\x06P4Info\x12\'\n\x08pkg_info\x18\x01 \x01(\x0b\x32\x15.p4.config.v1.PkgInfo\x12#\n\x06tables\x18\x02 \x03(\x0b\x32\x13.p4.config.v1.Table\x12%\n\x07\x61\x63tions\x18\x03 \x03(\x0b\x32\x14.p4.config.v1.Action\x12\x34\n\x0f\x61\x63tion_profiles\x18\x04 \x03(\x0b\x32\x1b.p4.config.v1.ActionProfile\x12\'\n\x08\x63ounters\x18\x05 \x03(\x0b\x32\x15.p4.config.v1.Counter\x12\x34\n\x0f\x64irect_counters\x18\x06 \x03(\x0b\x32\x1b.p4.config.v1.DirectCounter\x12#\n\x06meters\x18\x07 \x03(\x0b\x32\x13.p4.config.v1.Meter\x12\x30\n\rdirect_meters\x18\x08 \x03(\x0b\x32\x19.p4.config.v1.DirectMeter\x12J\n\x1a\x63ontroller_packet_metadata\x18\t \x03(\x0b\x32&.p4.config.v1.ControllerPacketMetadata\x12*\n\nvalue_sets\x18\n \x03(\x0b\x32\x16.p4.config.v1.ValueSet\x12)\n\tregisters\x18\x0b \x03(\x0b\x32\x16.p4.config.v1.Register\x12%\n\x07\x64igests\x18\x0c \x03(\x0b\x32\x14.p4.config.v1.Digest\x12\x32\n\x0egeneric_tables\x18\r \x03(\x0b\x32\x1a.p4.config.v1.GenericTable\x12#\n\x06unions\x18\x0e \x03(\x0b\x32\x13.p4.config.v1.Union\x12%\n\x07\x65xterns\x18\x64 \x03(\x0b\x32\x14.p4.config.v1.Extern\x12,\n\ttype_info\x18\xc8\x01 \x01(\x0b\x32\x18.p4.config.v1.P4TypeInfo\"3\n\rDocumentation\x12\r\n\x05\x62rief\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"\xa9\x02\n\x07PkgInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12(\n\x03\x64oc\x18\x03 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12\x13\n\x0b\x61nnotations\x18\x04 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\n \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x0c\n\x04\x61rch\x18\x05 \x01(\t\x12\x14\n\x0corganization\x18\x06 \x01(\t\x12\x0f\n\x07\x63ontact\x18\x07 \x01(\t\x12\x0b\n\x03url\x18\x08 \x01(\t\x12\x42\n\x16structured_annotations\x18\t \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"\x9a\x02\n\x05P4Ids\"\x90\x02\n\x06Prefix\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06\x41\x43TION\x10\x01\x12\t\n\x05TABLE\x10\x02\x12\r\n\tVALUE_SET\x10\x03\x12\x15\n\x11\x43ONTROLLER_HEADER\x10\x04\x12\x15\n\x11PSA_EXTERNS_START\x10\x10\x12\x12\n\x0e\x41\x43TION_PROFILE\x10\x11\x12\x0b\n\x07\x43OUNTER\x10\x12\x12\x12\n\x0e\x44IRECT_COUNTER\x10\x13\x12\t\n\x05METER\x10\x14\x12\x10\n\x0c\x44IRECT_METER\x10\x15\x12\x0c\n\x08REGISTER\x10\x16\x12\n\n\x06\x44IGEST\x10\x17\x12\x11\n\rGENERIC_TABLE\x10\x18\x12\x18\n\x13OTHER_EXTERNS_START\x10\x80\x01\x12\x08\n\x03MAX\x10\xff\x01\"@\n\x10GenericTableType\",\n\x06Prefix\x12\x18\n\x14GENERIC_TABLES_START\x10\x00\x12\x08\n\x03MAX\x10\xff\x01\"\xf2\x01\n\x08Preamble\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\r\n\x05\x61lias\x18\x03 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x04 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x07 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12(\n\x03\x64oc\x18\x05 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12\x42\n\x16structured_annotations\x18\x06 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"k\n\x06\x45xtern\x12\x16\n\x0e\x65xtern_type_id\x18\x01 \x01(\r\x12\x18\n\x10\x65xtern_type_name\x18\x02 \x01(\t\x12/\n\tinstances\x18\x03 \x03(\x0b\x32\x1c.p4.config.v1.ExternInstance\"^\n\x0e\x45xternInstance\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\"\n\x04info\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\"\xdc\x03\n\nMatchField\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\n \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12\x38\n\nmatch_type\x18\x05 \x01(\x0e\x32\".p4.config.v1.MatchField.MatchTypeH\x00\x12\x1a\n\x10other_match_type\x18\x07 \x01(\tH\x00\x12(\n\x03\x64oc\x18\x06 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12,\n\ttype_name\x18\x08 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\x12\x42\n\x16structured_annotations\x18\t \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"V\n\tMatchType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x45XACT\x10\x02\x12\x07\n\x03LPM\x10\x03\x12\x0b\n\x07TERNARY\x10\x04\x12\t\n\x05RANGE\x10\x05\x12\x0c\n\x08OPTIONAL\x10\x06\x42\x07\n\x05match\"\xde\x03\n\x05Table\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12.\n\x0cmatch_fields\x18\x02 \x03(\x0b\x32\x18.p4.config.v1.MatchField\x12,\n\x0b\x61\x63tion_refs\x18\x03 \x03(\x0b\x32\x17.p4.config.v1.ActionRef\x12\x1f\n\x17\x63onst_default_action_id\x18\x04 \x01(\r\x12\x19\n\x11implementation_id\x18\x06 \x01(\r\x12\x1b\n\x13\x64irect_resource_ids\x18\x07 \x03(\r\x12\x0c\n\x04size\x18\x08 \x01(\x03\x12\x46\n\x15idle_timeout_behavior\x18\t \x01(\x0e\x32\'.p4.config.v1.Table.IdleTimeoutBehavior\x12\x16\n\x0eis_const_table\x18\n \x01(\x08\x12\x1b\n\x13has_initial_entries\x18\x0b \x01(\x08\x12.\n\x10other_properties\x18\x64 \x01(\x0b\x32\x14.google.protobuf.Any\"9\n\x13IdleTimeoutBehavior\x12\x0e\n\nNO_TIMEOUT\x10\x00\x12\x12\n\x0eNOTIFY_CONTROL\x10\x01\"\x9c\x02\n\tActionRef\x12\n\n\x02id\x18\x01 \x01(\r\x12,\n\x05scope\x18\x03 \x01(\x0e\x32\x1d.p4.config.v1.ActionRef.Scope\x12\x13\n\x0b\x61nnotations\x18\x02 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x05 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x42\n\x16structured_annotations\x18\x04 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"@\n\x05Scope\x12\x15\n\x11TABLE_AND_DEFAULT\x10\x00\x12\x0e\n\nTABLE_ONLY\x10\x01\x12\x10\n\x0c\x44\x45\x46\x41ULT_ONLY\x10\x02\"\x81\x03\n\x06\x41\x63tion\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12*\n\x06params\x18\x02 \x03(\x0b\x32\x1a.p4.config.v1.Action.Param\x1a\xa0\x02\n\x05Param\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x08 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12(\n\x03\x64oc\x18\x05 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12,\n\ttype_name\x18\x06 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\x12\x42\n\x16structured_annotations\x18\x07 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"\x82\x03\n\rActionProfile\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\x11\n\ttable_ids\x18\x02 \x03(\r\x12\x15\n\rwith_selector\x18\x03 \x01(\x08\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x16\n\x0emax_group_size\x18\x05 \x01(\x05\x12\x42\n\x0esum_of_weights\x18\x06 \x01(\x0b\x32(.p4.config.v1.ActionProfile.SumOfWeightsH\x00\x12\x42\n\x0esum_of_members\x18\x07 \x01(\x0b\x32(.p4.config.v1.ActionProfile.SumOfMembersH\x00\x1a\x0e\n\x0cSumOfWeights\x1a\x44\n\x0cSumOfMembers\x12\x1e\n\x11max_member_weight\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x14\n\x12_max_member_weightB\x19\n\x17selector_size_semantics\"v\n\x0b\x43ounterSpec\x12,\n\x04unit\x18\x01 \x01(\x0e\x32\x1e.p4.config.v1.CounterSpec.Unit\"9\n\x04Unit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\x0b\n\x07PACKETS\x10\x02\x12\x08\n\x04\x42OTH\x10\x03\"\x9e\x01\n\x07\x43ounter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x04spec\x18\x02 \x01(\x0b\x32\x19.p4.config.v1.CounterSpec\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"{\n\rDirectCounter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x04spec\x18\x02 \x01(\x0b\x32\x19.p4.config.v1.CounterSpec\x12\x17\n\x0f\x64irect_table_id\x18\x03 \x01(\r\"h\n\tMeterSpec\x12*\n\x04unit\x18\x01 \x01(\x0e\x32\x1c.p4.config.v1.MeterSpec.Unit\"/\n\x04Unit\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x42YTES\x10\x01\x12\x0b\n\x07PACKETS\x10\x02\"\x9a\x01\n\x05Meter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12%\n\x04spec\x18\x02 \x01(\x0b\x32\x17.p4.config.v1.MeterSpec\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"w\n\x0b\x44irectMeter\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12%\n\x04spec\x18\x02 \x01(\x0b\x32\x17.p4.config.v1.MeterSpec\x12\x17\n\x0f\x64irect_table_id\x18\x03 \x01(\r\"\x83\x03\n\x18\x43ontrollerPacketMetadata\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\x41\n\x08metadata\x18\x02 \x03(\x0b\x32/.p4.config.v1.ControllerPacketMetadata.Metadata\x1a\xf9\x01\n\x08Metadata\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x07 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x10\n\x08\x62itwidth\x18\x04 \x01(\x05\x12,\n\ttype_name\x18\x05 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\x12\x42\n\x16structured_annotations\x18\x06 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"k\n\x08ValueSet\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12\'\n\x05match\x18\x02 \x03(\x0b\x32\x18.p4.config.v1.MatchField\x12\x0c\n\x04size\x18\x03 \x01(\x05\"\xa7\x01\n\x08Register\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12/\n\ttype_spec\x18\x02 \x01(\x0b\x32\x1c.p4.config.v1.P4DataTypeSpec\x12\x0c\n\x04size\x18\x03 \x01(\x05\x12\x32\n\x0findex_type_name\x18\x04 \x01(\x0b\x32\x19.p4.config.v1.P4NamedType\"c\n\x06\x44igest\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12/\n\ttype_spec\x18\x02 \x01(\x0b\x32\x1c.p4.config.v1.P4DataTypeSpec\"\xe0\x03\n\x11GenericMatchField\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x34\n\ttype_spec\x18\x03 \x01(\x0b\x32!.p4.config.v1.GenericDataTypeSpec\x12?\n\nmatch_type\x18\x04 \x01(\x0e\x32).p4.config.v1.GenericMatchField.MatchTypeH\x00\x12\x1a\n\x10other_match_type\x18\x05 \x01(\tH\x00\x12(\n\x03\x64oc\x18\x06 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12\x13\n\x0b\x61nnotations\x18\x07 \x03(\t\x12\x42\n\x16structured_annotations\x18\x08 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\x12:\n\x14\x61nnotation_locations\x18\t \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\"V\n\tMatchType\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\t\n\x05\x45XACT\x10\x02\x12\x07\n\x03LPM\x10\x03\x12\x0b\n\x07TERNARY\x10\x04\x12\t\n\x05RANGE\x10\x05\x12\x0c\n\x08OPTIONAL\x10\x06\x42\x07\n\x05match\"\x9a\x02\n\x08UnionRef\x12\n\n\x02id\x18\x01 \x01(\r\x12+\n\x05scope\x18\x03 \x01(\x0e\x32\x1c.p4.config.v1.UnionRef.Scope\x12\x13\n\x0b\x61nnotations\x18\x02 \x03(\t\x12:\n\x14\x61nnotation_locations\x18\x05 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\x12\x42\n\x16structured_annotations\x18\x04 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\"@\n\x05Scope\x12\x15\n\x11TABLE_AND_DEFAULT\x10\x00\x12\x0e\n\nTABLE_ONLY\x10\x01\x12\x10\n\x0c\x44\x45\x46\x41ULT_ONLY\x10\x02\"\xf5\x02\n\x05Union\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12)\n\x06params\x18\x02 \x03(\x0b\x32\x19.p4.config.v1.Union.Param\x1a\x96\x02\n\x05Param\x12\n\n\x02id\x18\x01 \x01(\r\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x61nnotations\x18\x03 \x03(\t\x12\x34\n\ttype_spec\x18\x04 \x01(\x0b\x32!.p4.config.v1.GenericDataTypeSpec\x12(\n\x03\x64oc\x18\x05 \x01(\x0b\x32\x1b.p4.config.v1.Documentation\x12\x42\n\x16structured_annotations\x18\x06 \x03(\x0b\x32\".p4.config.v1.StructuredAnnotation\x12:\n\x14\x61nnotation_locations\x18\x07 \x03(\x0b\x32\x1c.p4.config.v1.SourceLocation\"}\n\x0cGenericTable\x12\x0f\n\x07type_id\x18\x01 \x01(\r\x12\x11\n\ttype_name\x18\x02 \x01(\t\x12\x12\n\nproperties\x18\x03 \x03(\t\x12\x35\n\tinstances\x18\x04 \x03(\x0b\x32\".p4.config.v1.GenericTableInstance\"\x89\x02\n\x14GenericTableInstance\x12(\n\x08preamble\x18\x01 \x01(\x0b\x32\x16.p4.config.v1.Preamble\x12=\n\x14generic_match_fields\x18\x02 \x03(\x0b\x32\x1f.p4.config.v1.GenericMatchField\x12*\n\nunion_refs\x18\x03 \x03(\x0b\x32\x16.p4.config.v1.UnionRef\x12\x1e\n\x16\x63onst_default_union_id\x18\x04 \x01(\r\x12\x0c\n\x04size\x18\x05 \x01(\x03\x12.\n\x10other_properties\x18\x64 \x01(\x0b\x32\x14.google.protobuf.AnyB-Z+github.com/p4lang/p4runtime/go/p4/config/v1b\x06proto3' , dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,p4_dot_config_dot_v1_dot_p4types__pb2.DESCRIPTOR,]) @@ -100,23 +100,53 @@ type=None, create_key=_descriptor._internal_create_key), _descriptor.EnumValueDescriptor( - name='OTHER_EXTERNS_START', index=13, number=128, + name='GENERIC_TABLE', index=13, number=24, serialized_options=None, type=None, create_key=_descriptor._internal_create_key), _descriptor.EnumValueDescriptor( - name='MAX', index=14, number=255, + name='OTHER_EXTERNS_START', index=14, number=128, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAX', index=15, number=255, serialized_options=None, type=None, create_key=_descriptor._internal_create_key), ], containing_type=None, serialized_options=None, - serialized_start=1113, - serialized_end=1366, + serialized_start=1202, + serialized_end=1474, ) _sym_db.RegisterEnumDescriptor(_P4IDS_PREFIX) +_GENERICTABLETYPE_PREFIX = _descriptor.EnumDescriptor( + name='Prefix', + full_name='p4.config.v1.GenericTableType.Prefix', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='GENERIC_TABLES_START', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='MAX', index=1, number=255, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=1496, + serialized_end=1540, +) +_sym_db.RegisterEnumDescriptor(_GENERICTABLETYPE_PREFIX) + _MATCHFIELD_MATCHTYPE = _descriptor.EnumDescriptor( name='MatchType', full_name='p4.config.v1.MatchField.MatchType', @@ -157,8 +187,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2200, - serialized_end=2286, + serialized_start=2374, + serialized_end=2460, ) _sym_db.RegisterEnumDescriptor(_MATCHFIELD_MATCHTYPE) @@ -182,8 +212,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2719, - serialized_end=2776, + serialized_start=2893, + serialized_end=2950, ) _sym_db.RegisterEnumDescriptor(_TABLE_IDLETIMEOUTBEHAVIOR) @@ -212,8 +242,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2999, - serialized_end=3063, + serialized_start=3173, + serialized_end=3237, ) _sym_db.RegisterEnumDescriptor(_ACTIONREF_SCOPE) @@ -247,8 +277,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=3903, - serialized_end=3960, + serialized_start=4077, + serialized_end=4134, ) _sym_db.RegisterEnumDescriptor(_COUNTERSPEC_UNIT) @@ -277,11 +307,86 @@ ], containing_type=None, serialized_options=None, - serialized_start=3903, - serialized_end=3950, + serialized_start=4077, + serialized_end=4124, ) _sym_db.RegisterEnumDescriptor(_METERSPEC_UNIT) +_GENERICMATCHFIELD_MATCHTYPE = _descriptor.EnumDescriptor( + name='MatchType', + full_name='p4.config.v1.GenericMatchField.MatchType', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='UNSPECIFIED', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='EXACT', index=1, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='LPM', index=2, number=3, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TERNARY', index=3, number=4, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='RANGE', index=4, number=5, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='OPTIONAL', index=5, number=6, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=2374, + serialized_end=2460, +) +_sym_db.RegisterEnumDescriptor(_GENERICMATCHFIELD_MATCHTYPE) + +_UNIONREF_SCOPE = _descriptor.EnumDescriptor( + name='Scope', + full_name='p4.config.v1.UnionRef.Scope', + filename=None, + file=DESCRIPTOR, + create_key=_descriptor._internal_create_key, + values=[ + _descriptor.EnumValueDescriptor( + name='TABLE_AND_DEFAULT', index=0, number=0, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='TABLE_ONLY', index=1, number=1, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + _descriptor.EnumValueDescriptor( + name='DEFAULT_ONLY', index=2, number=2, + serialized_options=None, + type=None, + create_key=_descriptor._internal_create_key), + ], + containing_type=None, + serialized_options=None, + serialized_start=3173, + serialized_end=3237, +) +_sym_db.RegisterEnumDescriptor(_UNIONREF_SCOPE) + _P4INFO = _descriptor.Descriptor( name='P4Info', @@ -376,14 +481,28 @@ is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='externs', full_name='p4.config.v1.P4Info.externs', index=12, + name='generic_tables', full_name='p4.config.v1.P4Info.generic_tables', index=12, + number=13, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='unions', full_name='p4.config.v1.P4Info.unions', index=13, + number=14, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='externs', full_name='p4.config.v1.P4Info.externs', index=14, number=100, type=11, cpp_type=10, label=3, has_default_value=False, default_value=[], message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), _descriptor.FieldDescriptor( - name='type_info', full_name='p4.config.v1.P4Info.type_info', index=13, + name='type_info', full_name='p4.config.v1.P4Info.type_info', index=15, number=200, type=11, cpp_type=10, label=1, has_default_value=False, default_value=None, message_type=None, enum_type=None, containing_type=None, @@ -402,7 +521,7 @@ oneofs=[ ], serialized_start=99, - serialized_end=747, + serialized_end=836, ) @@ -440,8 +559,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=749, - serialized_end=800, + serialized_start=838, + serialized_end=889, ) @@ -535,8 +654,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=803, - serialized_end=1100, + serialized_start=892, + serialized_end=1189, ) @@ -561,8 +680,34 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1103, - serialized_end=1366, + serialized_start=1192, + serialized_end=1474, +) + + +_GENERICTABLETYPE = _descriptor.Descriptor( + name='GenericTableType', + full_name='p4.config.v1.GenericTableType', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _GENERICTABLETYPE_PREFIX, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=1476, + serialized_end=1540, ) @@ -635,8 +780,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1369, - serialized_end=1611, + serialized_start=1543, + serialized_end=1785, ) @@ -681,8 +826,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1613, - serialized_end=1720, + serialized_start=1787, + serialized_end=1894, ) @@ -720,8 +865,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1722, - serialized_end=1816, + serialized_start=1896, + serialized_end=1990, ) @@ -821,8 +966,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=1819, - serialized_end=2295, + serialized_start=1993, + serialized_end=2469, ) @@ -924,8 +1069,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2298, - serialized_end=2776, + serialized_start=2472, + serialized_end=2950, ) @@ -985,8 +1130,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2779, - serialized_end=3063, + serialized_start=2953, + serialized_end=3237, ) @@ -1066,8 +1211,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3163, - serialized_end=3451, + serialized_start=3337, + serialized_end=3625, ) _ACTION = _descriptor.Descriptor( @@ -1104,8 +1249,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3066, - serialized_end=3451, + serialized_start=3240, + serialized_end=3625, ) @@ -1129,8 +1274,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3729, - serialized_end=3743, + serialized_start=3903, + serialized_end=3917, ) _ACTIONPROFILE_SUMOFMEMBERS = _descriptor.Descriptor( @@ -1165,8 +1310,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3745, - serialized_end=3813, + serialized_start=3919, + serialized_end=3987, ) _ACTIONPROFILE = _descriptor.Descriptor( @@ -1243,8 +1388,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3454, - serialized_end=3840, + serialized_start=3628, + serialized_end=4014, ) @@ -1276,8 +1421,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3842, - serialized_end=3960, + serialized_start=4016, + serialized_end=4134, ) @@ -1329,8 +1474,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3963, - serialized_end=4121, + serialized_start=4137, + serialized_end=4295, ) @@ -1375,8 +1520,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4123, - serialized_end=4246, + serialized_start=4297, + serialized_end=4420, ) @@ -1408,8 +1553,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4248, - serialized_end=4352, + serialized_start=4422, + serialized_end=4526, ) @@ -1461,8 +1606,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4355, - serialized_end=4509, + serialized_start=4529, + serialized_end=4683, ) @@ -1507,8 +1652,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4511, - serialized_end=4630, + serialized_start=4685, + serialized_end=4804, ) @@ -1581,8 +1726,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4771, - serialized_end=5020, + serialized_start=4945, + serialized_end=5194, ) _CONTROLLERPACKETMETADATA = _descriptor.Descriptor( @@ -1619,8 +1764,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4633, - serialized_end=5020, + serialized_start=4807, + serialized_end=5194, ) @@ -1665,8 +1810,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5022, - serialized_end=5129, + serialized_start=5196, + serialized_end=5303, ) @@ -1718,8 +1863,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5132, - serialized_end=5299, + serialized_start=5306, + serialized_end=5473, ) @@ -1757,8 +1902,395 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5301, - serialized_end=5400, + serialized_start=5475, + serialized_end=5574, +) + + +_GENERICMATCHFIELD = _descriptor.Descriptor( + name='GenericMatchField', + full_name='p4.config.v1.GenericMatchField', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='p4.config.v1.GenericMatchField.id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='p4.config.v1.GenericMatchField.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type_spec', full_name='p4.config.v1.GenericMatchField.type_spec', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='match_type', full_name='p4.config.v1.GenericMatchField.match_type', index=3, + number=4, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='other_match_type', full_name='p4.config.v1.GenericMatchField.other_match_type', index=4, + number=5, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='doc', full_name='p4.config.v1.GenericMatchField.doc', index=5, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='annotations', full_name='p4.config.v1.GenericMatchField.annotations', index=6, + number=7, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='structured_annotations', full_name='p4.config.v1.GenericMatchField.structured_annotations', index=7, + number=8, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='annotation_locations', full_name='p4.config.v1.GenericMatchField.annotation_locations', index=8, + number=9, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _GENERICMATCHFIELD_MATCHTYPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='match', full_name='p4.config.v1.GenericMatchField.match', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=5577, + serialized_end=6057, +) + + +_UNIONREF = _descriptor.Descriptor( + name='UnionRef', + full_name='p4.config.v1.UnionRef', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='p4.config.v1.UnionRef.id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='scope', full_name='p4.config.v1.UnionRef.scope', index=1, + number=3, type=14, cpp_type=8, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='annotations', full_name='p4.config.v1.UnionRef.annotations', index=2, + number=2, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='annotation_locations', full_name='p4.config.v1.UnionRef.annotation_locations', index=3, + number=5, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='structured_annotations', full_name='p4.config.v1.UnionRef.structured_annotations', index=4, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + _UNIONREF_SCOPE, + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6060, + serialized_end=6342, +) + + +_UNION_PARAM = _descriptor.Descriptor( + name='Param', + full_name='p4.config.v1.Union.Param', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='id', full_name='p4.config.v1.Union.Param.id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='name', full_name='p4.config.v1.Union.Param.name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='annotations', full_name='p4.config.v1.Union.Param.annotations', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type_spec', full_name='p4.config.v1.Union.Param.type_spec', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='doc', full_name='p4.config.v1.Union.Param.doc', index=4, + number=5, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='structured_annotations', full_name='p4.config.v1.Union.Param.structured_annotations', index=5, + number=6, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='annotation_locations', full_name='p4.config.v1.Union.Param.annotation_locations', index=6, + number=7, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6440, + serialized_end=6718, +) + +_UNION = _descriptor.Descriptor( + name='Union', + full_name='p4.config.v1.Union', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='preamble', full_name='p4.config.v1.Union.preamble', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='params', full_name='p4.config.v1.Union.params', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_UNION_PARAM, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6345, + serialized_end=6718, +) + + +_GENERICTABLE = _descriptor.Descriptor( + name='GenericTable', + full_name='p4.config.v1.GenericTable', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='type_id', full_name='p4.config.v1.GenericTable.type_id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='type_name', full_name='p4.config.v1.GenericTable.type_name', index=1, + number=2, type=9, cpp_type=9, label=1, + has_default_value=False, default_value=b"".decode('utf-8'), + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='properties', full_name='p4.config.v1.GenericTable.properties', index=2, + number=3, type=9, cpp_type=9, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='instances', full_name='p4.config.v1.GenericTable.instances', index=3, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6720, + serialized_end=6845, +) + + +_GENERICTABLEINSTANCE = _descriptor.Descriptor( + name='GenericTableInstance', + full_name='p4.config.v1.GenericTableInstance', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='preamble', full_name='p4.config.v1.GenericTableInstance.preamble', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='generic_match_fields', full_name='p4.config.v1.GenericTableInstance.generic_match_fields', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='union_refs', full_name='p4.config.v1.GenericTableInstance.union_refs', index=2, + number=3, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='const_default_union_id', full_name='p4.config.v1.GenericTableInstance.const_default_union_id', index=3, + number=4, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='size', full_name='p4.config.v1.GenericTableInstance.size', index=4, + number=5, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='other_properties', full_name='p4.config.v1.GenericTableInstance.other_properties', index=5, + number=100, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=6848, + serialized_end=7113, ) _P4INFO.fields_by_name['pkg_info'].message_type = _PKGINFO @@ -1773,12 +2305,15 @@ _P4INFO.fields_by_name['value_sets'].message_type = _VALUESET _P4INFO.fields_by_name['registers'].message_type = _REGISTER _P4INFO.fields_by_name['digests'].message_type = _DIGEST +_P4INFO.fields_by_name['generic_tables'].message_type = _GENERICTABLE +_P4INFO.fields_by_name['unions'].message_type = _UNION _P4INFO.fields_by_name['externs'].message_type = _EXTERN _P4INFO.fields_by_name['type_info'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4TYPEINFO _PKGINFO.fields_by_name['doc'].message_type = _DOCUMENTATION _PKGINFO.fields_by_name['annotation_locations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._SOURCELOCATION _PKGINFO.fields_by_name['structured_annotations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._STRUCTUREDANNOTATION _P4IDS_PREFIX.containing_type = _P4IDS +_GENERICTABLETYPE_PREFIX.containing_type = _GENERICTABLETYPE _PREAMBLE.fields_by_name['annotation_locations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._SOURCELOCATION _PREAMBLE.fields_by_name['doc'].message_type = _DOCUMENTATION _PREAMBLE.fields_by_name['structured_annotations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._STRUCTUREDANNOTATION @@ -1855,10 +2390,39 @@ _REGISTER.fields_by_name['index_type_name'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4NAMEDTYPE _DIGEST.fields_by_name['preamble'].message_type = _PREAMBLE _DIGEST.fields_by_name['type_spec'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._P4DATATYPESPEC +_GENERICMATCHFIELD.fields_by_name['type_spec'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._GENERICDATATYPESPEC +_GENERICMATCHFIELD.fields_by_name['match_type'].enum_type = _GENERICMATCHFIELD_MATCHTYPE +_GENERICMATCHFIELD.fields_by_name['doc'].message_type = _DOCUMENTATION +_GENERICMATCHFIELD.fields_by_name['structured_annotations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._STRUCTUREDANNOTATION +_GENERICMATCHFIELD.fields_by_name['annotation_locations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._SOURCELOCATION +_GENERICMATCHFIELD_MATCHTYPE.containing_type = _GENERICMATCHFIELD +_GENERICMATCHFIELD.oneofs_by_name['match'].fields.append( + _GENERICMATCHFIELD.fields_by_name['match_type']) +_GENERICMATCHFIELD.fields_by_name['match_type'].containing_oneof = _GENERICMATCHFIELD.oneofs_by_name['match'] +_GENERICMATCHFIELD.oneofs_by_name['match'].fields.append( + _GENERICMATCHFIELD.fields_by_name['other_match_type']) +_GENERICMATCHFIELD.fields_by_name['other_match_type'].containing_oneof = _GENERICMATCHFIELD.oneofs_by_name['match'] +_UNIONREF.fields_by_name['scope'].enum_type = _UNIONREF_SCOPE +_UNIONREF.fields_by_name['annotation_locations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._SOURCELOCATION +_UNIONREF.fields_by_name['structured_annotations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._STRUCTUREDANNOTATION +_UNIONREF_SCOPE.containing_type = _UNIONREF +_UNION_PARAM.fields_by_name['type_spec'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._GENERICDATATYPESPEC +_UNION_PARAM.fields_by_name['doc'].message_type = _DOCUMENTATION +_UNION_PARAM.fields_by_name['structured_annotations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._STRUCTUREDANNOTATION +_UNION_PARAM.fields_by_name['annotation_locations'].message_type = p4_dot_config_dot_v1_dot_p4types__pb2._SOURCELOCATION +_UNION_PARAM.containing_type = _UNION +_UNION.fields_by_name['preamble'].message_type = _PREAMBLE +_UNION.fields_by_name['params'].message_type = _UNION_PARAM +_GENERICTABLE.fields_by_name['instances'].message_type = _GENERICTABLEINSTANCE +_GENERICTABLEINSTANCE.fields_by_name['preamble'].message_type = _PREAMBLE +_GENERICTABLEINSTANCE.fields_by_name['generic_match_fields'].message_type = _GENERICMATCHFIELD +_GENERICTABLEINSTANCE.fields_by_name['union_refs'].message_type = _UNIONREF +_GENERICTABLEINSTANCE.fields_by_name['other_properties'].message_type = google_dot_protobuf_dot_any__pb2._ANY DESCRIPTOR.message_types_by_name['P4Info'] = _P4INFO DESCRIPTOR.message_types_by_name['Documentation'] = _DOCUMENTATION DESCRIPTOR.message_types_by_name['PkgInfo'] = _PKGINFO DESCRIPTOR.message_types_by_name['P4Ids'] = _P4IDS +DESCRIPTOR.message_types_by_name['GenericTableType'] = _GENERICTABLETYPE DESCRIPTOR.message_types_by_name['Preamble'] = _PREAMBLE DESCRIPTOR.message_types_by_name['Extern'] = _EXTERN DESCRIPTOR.message_types_by_name['ExternInstance'] = _EXTERNINSTANCE @@ -1877,6 +2441,11 @@ DESCRIPTOR.message_types_by_name['ValueSet'] = _VALUESET DESCRIPTOR.message_types_by_name['Register'] = _REGISTER DESCRIPTOR.message_types_by_name['Digest'] = _DIGEST +DESCRIPTOR.message_types_by_name['GenericMatchField'] = _GENERICMATCHFIELD +DESCRIPTOR.message_types_by_name['UnionRef'] = _UNIONREF +DESCRIPTOR.message_types_by_name['Union'] = _UNION +DESCRIPTOR.message_types_by_name['GenericTable'] = _GENERICTABLE +DESCRIPTOR.message_types_by_name['GenericTableInstance'] = _GENERICTABLEINSTANCE _sym_db.RegisterFileDescriptor(DESCRIPTOR) P4Info = _reflection.GeneratedProtocolMessageType('P4Info', (_message.Message,), { @@ -1907,6 +2476,13 @@ }) _sym_db.RegisterMessage(P4Ids) +GenericTableType = _reflection.GeneratedProtocolMessageType('GenericTableType', (_message.Message,), { + 'DESCRIPTOR' : _GENERICTABLETYPE, + '__module__' : 'p4.config.v1.p4info_pb2' + # @@protoc_insertion_point(class_scope:p4.config.v1.GenericTableType) + }) +_sym_db.RegisterMessage(GenericTableType) + Preamble = _reflection.GeneratedProtocolMessageType('Preamble', (_message.Message,), { 'DESCRIPTOR' : _PREAMBLE, '__module__' : 'p4.config.v1.p4info_pb2' @@ -2065,6 +2641,49 @@ }) _sym_db.RegisterMessage(Digest) +GenericMatchField = _reflection.GeneratedProtocolMessageType('GenericMatchField', (_message.Message,), { + 'DESCRIPTOR' : _GENERICMATCHFIELD, + '__module__' : 'p4.config.v1.p4info_pb2' + # @@protoc_insertion_point(class_scope:p4.config.v1.GenericMatchField) + }) +_sym_db.RegisterMessage(GenericMatchField) + +UnionRef = _reflection.GeneratedProtocolMessageType('UnionRef', (_message.Message,), { + 'DESCRIPTOR' : _UNIONREF, + '__module__' : 'p4.config.v1.p4info_pb2' + # @@protoc_insertion_point(class_scope:p4.config.v1.UnionRef) + }) +_sym_db.RegisterMessage(UnionRef) + +Union = _reflection.GeneratedProtocolMessageType('Union', (_message.Message,), { + + 'Param' : _reflection.GeneratedProtocolMessageType('Param', (_message.Message,), { + 'DESCRIPTOR' : _UNION_PARAM, + '__module__' : 'p4.config.v1.p4info_pb2' + # @@protoc_insertion_point(class_scope:p4.config.v1.Union.Param) + }) + , + 'DESCRIPTOR' : _UNION, + '__module__' : 'p4.config.v1.p4info_pb2' + # @@protoc_insertion_point(class_scope:p4.config.v1.Union) + }) +_sym_db.RegisterMessage(Union) +_sym_db.RegisterMessage(Union.Param) + +GenericTable = _reflection.GeneratedProtocolMessageType('GenericTable', (_message.Message,), { + 'DESCRIPTOR' : _GENERICTABLE, + '__module__' : 'p4.config.v1.p4info_pb2' + # @@protoc_insertion_point(class_scope:p4.config.v1.GenericTable) + }) +_sym_db.RegisterMessage(GenericTable) + +GenericTableInstance = _reflection.GeneratedProtocolMessageType('GenericTableInstance', (_message.Message,), { + 'DESCRIPTOR' : _GENERICTABLEINSTANCE, + '__module__' : 'p4.config.v1.p4info_pb2' + # @@protoc_insertion_point(class_scope:p4.config.v1.GenericTableInstance) + }) +_sym_db.RegisterMessage(GenericTableInstance) + DESCRIPTOR._options = None # @@protoc_insertion_point(module_scope) diff --git a/py/p4/v1/p4runtime_pb2.py b/py/p4/v1/p4runtime_pb2.py index 0d4b8a0d..16b372f2 100644 --- a/py/p4/v1/p4runtime_pb2.py +++ b/py/p4/v1/p4runtime_pb2.py @@ -24,7 +24,7 @@ syntax='proto3', serialized_options=b'Z$github.com/p4lang/p4runtime/go/p4/v1\370\001\001', create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x15p4/v1/p4runtime.proto\x12\x05p4.v1\x1a\x19google/protobuf/any.proto\x1a\x17google/rpc/status.proto\x1a\x19p4/config/v1/p4info.proto\x1a\x12p4/v1/p4data.proto\"\x8c\x02\n\x0cWriteRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x13\n\x07role_id\x18\x02 \x01(\x04\x42\x02\x18\x01\x12\x0c\n\x04role\x18\x06 \x01(\t\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12\x1e\n\x07updates\x18\x04 \x03(\x0b\x32\r.p4.v1.Update\x12\x30\n\tatomicity\x18\x05 \x01(\x0e\x32\x1d.p4.v1.WriteRequest.Atomicity\"O\n\tAtomicity\x12\x15\n\x11\x43ONTINUE_ON_ERROR\x10\x00\x12\x15\n\x11ROLLBACK_ON_ERROR\x10\x01\x12\x14\n\x10\x44\x41TAPLANE_ATOMIC\x10\x02\"\x0f\n\rWriteResponse\"O\n\x0bReadRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x0c\n\x04role\x18\x03 \x01(\t\x12\x1f\n\x08\x65ntities\x18\x02 \x03(\x0b\x32\r.p4.v1.Entity\"/\n\x0cReadResponse\x12\x1f\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\r.p4.v1.Entity\"\x86\x01\n\x06Update\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.p4.v1.Update.Type\x12\x1d\n\x06\x65ntity\x18\x02 \x01(\x0b\x32\r.p4.v1.Entity\";\n\x04Type\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06INSERT\x10\x01\x12\n\n\x06MODIFY\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\"\x87\x05\n\x06\x45ntity\x12*\n\x0c\x65xtern_entry\x18\x01 \x01(\x0b\x32\x12.p4.v1.ExternEntryH\x00\x12(\n\x0btable_entry\x18\x02 \x01(\x0b\x32\x11.p4.v1.TableEntryH\x00\x12;\n\x15\x61\x63tion_profile_member\x18\x03 \x01(\x0b\x32\x1a.p4.v1.ActionProfileMemberH\x00\x12\x39\n\x14\x61\x63tion_profile_group\x18\x04 \x01(\x0b\x32\x19.p4.v1.ActionProfileGroupH\x00\x12(\n\x0bmeter_entry\x18\x05 \x01(\x0b\x32\x11.p4.v1.MeterEntryH\x00\x12\x35\n\x12\x64irect_meter_entry\x18\x06 \x01(\x0b\x32\x17.p4.v1.DirectMeterEntryH\x00\x12,\n\rcounter_entry\x18\x07 \x01(\x0b\x32\x13.p4.v1.CounterEntryH\x00\x12\x39\n\x14\x64irect_counter_entry\x18\x08 \x01(\x0b\x32\x19.p4.v1.DirectCounterEntryH\x00\x12N\n\x1fpacket_replication_engine_entry\x18\t \x01(\x0b\x32#.p4.v1.PacketReplicationEngineEntryH\x00\x12/\n\x0fvalue_set_entry\x18\n \x01(\x0b\x32\x14.p4.v1.ValueSetEntryH\x00\x12.\n\x0eregister_entry\x18\x0b \x01(\x0b\x32\x14.p4.v1.RegisterEntryH\x00\x12*\n\x0c\x64igest_entry\x18\x0c \x01(\x0b\x32\x12.p4.v1.DigestEntryH\x00\x42\x08\n\x06\x65ntity\"]\n\x0b\x45xternEntry\x12\x16\n\x0e\x65xtern_type_id\x18\x01 \x01(\r\x12\x11\n\textern_id\x18\x02 \x01(\r\x12#\n\x05\x65ntry\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\"\xd7\x03\n\nTableEntry\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12 \n\x05match\x18\x02 \x03(\x0b\x32\x11.p4.v1.FieldMatch\x12\"\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\x12.p4.v1.TableAction\x12\x10\n\x08priority\x18\x04 \x01(\x05\x12\x1f\n\x13\x63ontroller_metadata\x18\x05 \x01(\x04\x42\x02\x18\x01\x12(\n\x0cmeter_config\x18\x06 \x01(\x0b\x32\x12.p4.v1.MeterConfig\x12(\n\x0c\x63ounter_data\x18\x07 \x01(\x0b\x32\x12.p4.v1.CounterData\x12\x33\n\x12meter_counter_data\x18\x0c \x01(\x0b\x32\x17.p4.v1.MeterCounterData\x12\x19\n\x11is_default_action\x18\x08 \x01(\x08\x12\x17\n\x0fidle_timeout_ns\x18\t \x01(\x03\x12:\n\x13time_since_last_hit\x18\n \x01(\x0b\x32\x1d.p4.v1.TableEntry.IdleTimeout\x12\x10\n\x08metadata\x18\x0b \x01(\x0c\x12\x10\n\x08is_const\x18\r \x01(\x08\x1a!\n\x0bIdleTimeout\x12\x12\n\nelapsed_ns\x18\x01 \x01(\x03\"\xda\x03\n\nFieldMatch\x12\x10\n\x08\x66ield_id\x18\x01 \x01(\r\x12(\n\x05\x65xact\x18\x02 \x01(\x0b\x32\x17.p4.v1.FieldMatch.ExactH\x00\x12,\n\x07ternary\x18\x03 \x01(\x0b\x32\x19.p4.v1.FieldMatch.TernaryH\x00\x12$\n\x03lpm\x18\x04 \x01(\x0b\x32\x15.p4.v1.FieldMatch.LPMH\x00\x12(\n\x05range\x18\x06 \x01(\x0b\x32\x17.p4.v1.FieldMatch.RangeH\x00\x12.\n\x08optional\x18\x07 \x01(\x0b\x32\x1a.p4.v1.FieldMatch.OptionalH\x00\x12%\n\x05other\x18\x64 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\x16\n\x05\x45xact\x12\r\n\x05value\x18\x01 \x01(\x0c\x1a&\n\x07Ternary\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x0c\n\x04mask\x18\x02 \x01(\x0c\x1a(\n\x03LPM\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x12\n\nprefix_len\x18\x02 \x01(\x05\x1a\"\n\x05Range\x12\x0b\n\x03low\x18\x01 \x01(\x0c\x12\x0c\n\x04high\x18\x02 \x01(\x0c\x1a\x19\n\x08Optional\x12\r\n\x05value\x18\x01 \x01(\x0c\x42\x12\n\x10\x66ield_match_type\"\xc1\x01\n\x0bTableAction\x12\x1f\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\r.p4.v1.ActionH\x00\x12\"\n\x18\x61\x63tion_profile_member_id\x18\x02 \x01(\rH\x00\x12!\n\x17\x61\x63tion_profile_group_id\x18\x03 \x01(\rH\x00\x12\x42\n\x19\x61\x63tion_profile_action_set\x18\x04 \x01(\x0b\x32\x1d.p4.v1.ActionProfileActionSetH\x00\x42\x06\n\x04type\"j\n\x06\x41\x63tion\x12\x11\n\taction_id\x18\x01 \x01(\r\x12#\n\x06params\x18\x04 \x03(\x0b\x32\x13.p4.v1.Action.Param\x1a(\n\x05Param\x12\x10\n\x08param_id\x18\x02 \x01(\r\x12\r\n\x05value\x18\x03 \x01(\x0c\"T\n\x16\x41\x63tionProfileActionSet\x12:\n\x16\x61\x63tion_profile_actions\x18\x01 \x03(\x0b\x32\x1a.p4.v1.ActionProfileAction\"}\n\x13\x41\x63tionProfileAction\x12\x1d\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\r.p4.v1.Action\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x13\n\x05watch\x18\x03 \x01(\x05\x42\x02\x18\x01H\x00\x12\x14\n\nwatch_port\x18\x04 \x01(\x0cH\x00\x42\x0c\n\nwatch_kind\"b\n\x13\x41\x63tionProfileMember\x12\x19\n\x11\x61\x63tion_profile_id\x18\x01 \x01(\r\x12\x11\n\tmember_id\x18\x02 \x01(\r\x12\x1d\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\r.p4.v1.Action\"\xec\x01\n\x12\x41\x63tionProfileGroup\x12\x19\n\x11\x61\x63tion_profile_id\x18\x01 \x01(\r\x12\x10\n\x08group_id\x18\x02 \x01(\r\x12\x31\n\x07members\x18\x03 \x03(\x0b\x32 .p4.v1.ActionProfileGroup.Member\x12\x10\n\x08max_size\x18\x04 \x01(\x05\x1a\x64\n\x06Member\x12\x11\n\tmember_id\x18\x01 \x01(\r\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x13\n\x05watch\x18\x03 \x01(\x05\x42\x02\x18\x01H\x00\x12\x14\n\nwatch_port\x18\x04 \x01(\x0cH\x00\x42\x0c\n\nwatch_kind\"\x16\n\x05Index\x12\r\n\x05index\x18\x01 \x01(\x03\"\x8e\x01\n\nMeterEntry\x12\x10\n\x08meter_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12\"\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\x12.p4.v1.MeterConfig\x12-\n\x0c\x63ounter_data\x18\x04 \x01(\x0b\x32\x17.p4.v1.MeterCounterData\"\x8d\x01\n\x10\x44irectMeterEntry\x12&\n\x0btable_entry\x18\x01 \x01(\x0b\x32\x11.p4.v1.TableEntry\x12\"\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x12.p4.v1.MeterConfig\x12-\n\x0c\x63ounter_data\x18\x03 \x01(\x0b\x32\x17.p4.v1.MeterCounterData\"G\n\x0bMeterConfig\x12\x0b\n\x03\x63ir\x18\x01 \x01(\x03\x12\x0e\n\x06\x63\x62urst\x18\x02 \x01(\x03\x12\x0b\n\x03pir\x18\x03 \x01(\x03\x12\x0e\n\x06pburst\x18\x04 \x01(\x03\"a\n\x0c\x43ounterEntry\x12\x12\n\ncounter_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12 \n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x12.p4.v1.CounterData\"^\n\x12\x44irectCounterEntry\x12&\n\x0btable_entry\x18\x01 \x01(\x0b\x32\x11.p4.v1.TableEntry\x12 \n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x12.p4.v1.CounterData\"7\n\x0b\x43ounterData\x12\x12\n\nbyte_count\x18\x01 \x01(\x03\x12\x14\n\x0cpacket_count\x18\x02 \x01(\x03\"z\n\x10MeterCounterData\x12!\n\x05green\x18\x01 \x01(\x0b\x32\x12.p4.v1.CounterData\x12\"\n\x06yellow\x18\x02 \x01(\x0b\x32\x12.p4.v1.CounterData\x12\x1f\n\x03red\x18\x03 \x01(\x0b\x32\x12.p4.v1.CounterData\"\x9c\x01\n\x1cPacketReplicationEngineEntry\x12;\n\x15multicast_group_entry\x18\x01 \x01(\x0b\x32\x1a.p4.v1.MulticastGroupEntryH\x00\x12\x37\n\x13\x63lone_session_entry\x18\x02 \x01(\x0b\x32\x18.p4.v1.CloneSessionEntryH\x00\x42\x06\n\x04type\"S\n\x07Replica\x12\x19\n\x0b\x65gress_port\x18\x01 \x01(\rB\x02\x18\x01H\x00\x12\x0e\n\x04port\x18\x03 \x01(\x0cH\x00\x12\x10\n\x08instance\x18\x02 \x01(\rB\x0b\n\tport_kind\"e\n\x13MulticastGroupEntry\x12\x1a\n\x12multicast_group_id\x18\x01 \x01(\r\x12 \n\x08replicas\x18\x02 \x03(\x0b\x32\x0e.p4.v1.Replica\x12\x10\n\x08metadata\x18\x03 \x01(\x0c\"\x80\x01\n\x11\x43loneSessionEntry\x12\x12\n\nsession_id\x18\x01 \x01(\r\x12 \n\x08replicas\x18\x02 \x03(\x0b\x32\x0e.p4.v1.Replica\x12\x18\n\x10\x63lass_of_service\x18\x03 \x01(\r\x12\x1b\n\x13packet_length_bytes\x18\x04 \x01(\x05\"2\n\x0eValueSetMember\x12 \n\x05match\x18\x01 \x03(\x0b\x32\x11.p4.v1.FieldMatch\"M\n\rValueSetEntry\x12\x14\n\x0cvalue_set_id\x18\x01 \x01(\r\x12&\n\x07members\x18\x02 \x03(\x0b\x32\x15.p4.v1.ValueSetMember\"^\n\rRegisterEntry\x12\x13\n\x0bregister_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12\x1b\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\r.p4.v1.P4Data\"\x9c\x01\n\x0b\x44igestEntry\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12)\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x19.p4.v1.DigestEntry.Config\x1aO\n\x06\x43onfig\x12\x16\n\x0emax_timeout_ns\x18\x01 \x01(\x03\x12\x15\n\rmax_list_size\x18\x02 \x01(\x05\x12\x16\n\x0e\x61\x63k_timeout_ns\x18\x03 \x01(\x03\"\xce\x01\n\x14StreamMessageRequest\x12\x35\n\x0b\x61rbitration\x18\x01 \x01(\x0b\x32\x1e.p4.v1.MasterArbitrationUpdateH\x00\x12\"\n\x06packet\x18\x02 \x01(\x0b\x32\x10.p4.v1.PacketOutH\x00\x12*\n\ndigest_ack\x18\x03 \x01(\x0b\x32\x14.p4.v1.DigestListAckH\x00\x12%\n\x05other\x18\x04 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x08\n\x06update\"E\n\tPacketOut\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\'\n\x08metadata\x18\x02 \x03(\x0b\x32\x15.p4.v1.PacketMetadata\"3\n\rDigestListAck\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12\x0f\n\x07list_id\x18\x02 \x01(\x04\"\xb1\x02\n\x15StreamMessageResponse\x12\x35\n\x0b\x61rbitration\x18\x01 \x01(\x0b\x32\x1e.p4.v1.MasterArbitrationUpdateH\x00\x12!\n\x06packet\x18\x02 \x01(\x0b\x32\x0f.p4.v1.PacketInH\x00\x12#\n\x06\x64igest\x18\x03 \x01(\x0b\x32\x11.p4.v1.DigestListH\x00\x12\x43\n\x19idle_timeout_notification\x18\x04 \x01(\x0b\x32\x1e.p4.v1.IdleTimeoutNotificationH\x00\x12%\n\x05other\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12#\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x12.p4.v1.StreamErrorH\x00\x42\x08\n\x06update\"D\n\x08PacketIn\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\'\n\x08metadata\x18\x02 \x03(\x0b\x32\x15.p4.v1.PacketMetadata\"`\n\nDigestList\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12\x0f\n\x07list_id\x18\x02 \x01(\x04\x12\x1b\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\r.p4.v1.P4Data\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\"4\n\x0ePacketMetadata\x12\x13\n\x0bmetadata_id\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x90\x01\n\x17MasterArbitrationUpdate\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x19\n\x04role\x18\x02 \x01(\x0b\x32\x0b.p4.v1.Role\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12\"\n\x06status\x18\x04 \x01(\x0b\x32\x12.google.rpc.Status\"J\n\x04Role\x12\x0e\n\x02id\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12$\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\"T\n\x17IdleTimeoutNotification\x12&\n\x0btable_entry\x18\x01 \x03(\x0b\x32\x11.p4.v1.TableEntry\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xeb\x01\n\x0bStreamError\x12\x16\n\x0e\x63\x61nonical_code\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\r\n\x05space\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\x05\x12+\n\npacket_out\x18\x05 \x01(\x0b\x32\x15.p4.v1.PacketOutErrorH\x00\x12\x34\n\x0f\x64igest_list_ack\x18\x06 \x01(\x0b\x32\x19.p4.v1.DigestListAckErrorH\x00\x12(\n\x05other\x18\x07 \x01(\x0b\x32\x17.p4.v1.StreamOtherErrorH\x00\x42\t\n\x07\x64\x65tails\"6\n\x0ePacketOutError\x12$\n\npacket_out\x18\x01 \x01(\x0b\x32\x10.p4.v1.PacketOut\"C\n\x12\x44igestListAckError\x12-\n\x0f\x64igest_list_ack\x18\x01 \x01(\x0b\x32\x14.p4.v1.DigestListAck\"7\n\x10StreamOtherError\x12#\n\x05other\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\"$\n\x07Uint128\x12\x0c\n\x04high\x18\x01 \x01(\x04\x12\x0b\n\x03low\x18\x02 \x01(\x04\"\xeb\x02\n\"SetForwardingPipelineConfigRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x13\n\x07role_id\x18\x02 \x01(\x04\x42\x02\x18\x01\x12\x0c\n\x04role\x18\x06 \x01(\t\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12@\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32\x30.p4.v1.SetForwardingPipelineConfigRequest.Action\x12/\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\x1f.p4.v1.ForwardingPipelineConfig\"w\n\x06\x41\x63tion\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06VERIFY\x10\x01\x12\x13\n\x0fVERIFY_AND_SAVE\x10\x02\x12\x15\n\x11VERIFY_AND_COMMIT\x10\x03\x12\n\n\x06\x43OMMIT\x10\x04\x12\x18\n\x14RECONCILE_AND_COMMIT\x10\x05\"%\n#SetForwardingPipelineConfigResponse\"\xac\x01\n\x18\x46orwardingPipelineConfig\x12$\n\x06p4info\x18\x01 \x01(\x0b\x32\x14.p4.config.v1.P4Info\x12\x18\n\x10p4_device_config\x18\x02 \x01(\x0c\x12\x36\n\x06\x63ookie\x18\x03 \x01(\x0b\x32&.p4.v1.ForwardingPipelineConfig.Cookie\x1a\x18\n\x06\x43ookie\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x04\"\xe5\x01\n\"GetForwardingPipelineConfigRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12M\n\rresponse_type\x18\x02 \x01(\x0e\x32\x36.p4.v1.GetForwardingPipelineConfigRequest.ResponseType\"]\n\x0cResponseType\x12\x07\n\x03\x41LL\x10\x00\x12\x0f\n\x0b\x43OOKIE_ONLY\x10\x01\x12\x15\n\x11P4INFO_AND_COOKIE\x10\x02\x12\x1c\n\x18\x44\x45VICE_CONFIG_AND_COOKIE\x10\x03\"V\n#GetForwardingPipelineConfigResponse\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.p4.v1.ForwardingPipelineConfig\"t\n\x05\x45rror\x12\x16\n\x0e\x63\x61nonical_code\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\r\n\x05space\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\x05\x12%\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32\x14.google.protobuf.Any\"\x15\n\x13\x43\x61pabilitiesRequest\"5\n\x14\x43\x61pabilitiesResponse\x12\x1d\n\x15p4runtime_api_version\x18\x01 \x01(\t*\x8a\x01\n\x07SdnPort\x12\x14\n\x10SDN_PORT_UNKNOWN\x10\x00\x12\x10\n\x0cSDN_PORT_MIN\x10\x01\x12\x19\n\x0cSDN_PORT_MAX\x10\xff\xfd\xff\xff\xff\xff\xff\xff\xff\x01\x12!\n\x14SDN_PORT_RECIRCULATE\x10\xfa\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x19\n\x0cSDN_PORT_CPU\x10\xfd\xff\xff\xff\xff\xff\xff\xff\xff\x01\x32\x83\x04\n\tP4Runtime\x12\x34\n\x05Write\x12\x13.p4.v1.WriteRequest\x1a\x14.p4.v1.WriteResponse\"\x00\x12\x33\n\x04Read\x12\x12.p4.v1.ReadRequest\x1a\x13.p4.v1.ReadResponse\"\x00\x30\x01\x12v\n\x1bSetForwardingPipelineConfig\x12).p4.v1.SetForwardingPipelineConfigRequest\x1a*.p4.v1.SetForwardingPipelineConfigResponse\"\x00\x12v\n\x1bGetForwardingPipelineConfig\x12).p4.v1.GetForwardingPipelineConfigRequest\x1a*.p4.v1.GetForwardingPipelineConfigResponse\"\x00\x12P\n\rStreamChannel\x12\x1b.p4.v1.StreamMessageRequest\x1a\x1c.p4.v1.StreamMessageResponse\"\x00(\x01\x30\x01\x12I\n\x0c\x43\x61pabilities\x12\x1a.p4.v1.CapabilitiesRequest\x1a\x1b.p4.v1.CapabilitiesResponse\"\x00\x42)Z$github.com/p4lang/p4runtime/go/p4/v1\xf8\x01\x01\x62\x06proto3' + serialized_pb=b'\n\x15p4/v1/p4runtime.proto\x12\x05p4.v1\x1a\x19google/protobuf/any.proto\x1a\x17google/rpc/status.proto\x1a\x19p4/config/v1/p4info.proto\x1a\x12p4/v1/p4data.proto\"\x8c\x02\n\x0cWriteRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x13\n\x07role_id\x18\x02 \x01(\x04\x42\x02\x18\x01\x12\x0c\n\x04role\x18\x06 \x01(\t\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12\x1e\n\x07updates\x18\x04 \x03(\x0b\x32\r.p4.v1.Update\x12\x30\n\tatomicity\x18\x05 \x01(\x0e\x32\x1d.p4.v1.WriteRequest.Atomicity\"O\n\tAtomicity\x12\x15\n\x11\x43ONTINUE_ON_ERROR\x10\x00\x12\x15\n\x11ROLLBACK_ON_ERROR\x10\x01\x12\x14\n\x10\x44\x41TAPLANE_ATOMIC\x10\x02\"\x0f\n\rWriteResponse\"O\n\x0bReadRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x0c\n\x04role\x18\x03 \x01(\t\x12\x1f\n\x08\x65ntities\x18\x02 \x03(\x0b\x32\r.p4.v1.Entity\"/\n\x0cReadResponse\x12\x1f\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\r.p4.v1.Entity\"\x86\x01\n\x06Update\x12 \n\x04type\x18\x01 \x01(\x0e\x32\x12.p4.v1.Update.Type\x12\x1d\n\x06\x65ntity\x18\x02 \x01(\x0b\x32\r.p4.v1.Entity\";\n\x04Type\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06INSERT\x10\x01\x12\n\n\x06MODIFY\x10\x02\x12\n\n\x06\x44\x45LETE\x10\x03\"\xc0\x05\n\x06\x45ntity\x12*\n\x0c\x65xtern_entry\x18\x01 \x01(\x0b\x32\x12.p4.v1.ExternEntryH\x00\x12(\n\x0btable_entry\x18\x02 \x01(\x0b\x32\x11.p4.v1.TableEntryH\x00\x12;\n\x15\x61\x63tion_profile_member\x18\x03 \x01(\x0b\x32\x1a.p4.v1.ActionProfileMemberH\x00\x12\x39\n\x14\x61\x63tion_profile_group\x18\x04 \x01(\x0b\x32\x19.p4.v1.ActionProfileGroupH\x00\x12(\n\x0bmeter_entry\x18\x05 \x01(\x0b\x32\x11.p4.v1.MeterEntryH\x00\x12\x35\n\x12\x64irect_meter_entry\x18\x06 \x01(\x0b\x32\x17.p4.v1.DirectMeterEntryH\x00\x12,\n\rcounter_entry\x18\x07 \x01(\x0b\x32\x13.p4.v1.CounterEntryH\x00\x12\x39\n\x14\x64irect_counter_entry\x18\x08 \x01(\x0b\x32\x19.p4.v1.DirectCounterEntryH\x00\x12N\n\x1fpacket_replication_engine_entry\x18\t \x01(\x0b\x32#.p4.v1.PacketReplicationEngineEntryH\x00\x12/\n\x0fvalue_set_entry\x18\n \x01(\x0b\x32\x14.p4.v1.ValueSetEntryH\x00\x12.\n\x0eregister_entry\x18\x0b \x01(\x0b\x32\x14.p4.v1.RegisterEntryH\x00\x12*\n\x0c\x64igest_entry\x18\x0c \x01(\x0b\x32\x12.p4.v1.DigestEntryH\x00\x12\x37\n\x13generic_table_entry\x18\r \x01(\x0b\x32\x18.p4.v1.GenericTableEntryH\x00\x42\x08\n\x06\x65ntity\"]\n\x0b\x45xternEntry\x12\x16\n\x0e\x65xtern_type_id\x18\x01 \x01(\r\x12\x11\n\textern_id\x18\x02 \x01(\r\x12#\n\x05\x65ntry\x18\x03 \x01(\x0b\x32\x14.google.protobuf.Any\"\x84\x04\n\nTableEntry\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12 \n\x05match\x18\x02 \x03(\x0b\x32\x11.p4.v1.FieldMatch\x12\"\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\x12.p4.v1.TableAction\x12\x10\n\x08priority\x18\x04 \x01(\x05\x12\x1f\n\x13\x63ontroller_metadata\x18\x05 \x01(\x04\x42\x02\x18\x01\x12(\n\x0cmeter_config\x18\x06 \x01(\x0b\x32\x12.p4.v1.MeterConfig\x12(\n\x0c\x63ounter_data\x18\x07 \x01(\x0b\x32\x12.p4.v1.CounterData\x12\x33\n\x12meter_counter_data\x18\x0c \x01(\x0b\x32\x17.p4.v1.MeterCounterData\x12\x19\n\x11is_default_action\x18\x08 \x01(\x08\x12\x17\n\x0fidle_timeout_ns\x18\t \x01(\x03\x12:\n\x13time_since_last_hit\x18\n \x01(\x0b\x32\x1d.p4.v1.TableEntry.IdleTimeout\x12\x10\n\x08metadata\x18\x0b \x01(\x0c\x12\x10\n\x08is_const\x18\r \x01(\x08\x12+\n\tresources\x18\x0e \x03(\x0b\x32\x18.p4.v1.GenericTableEntry\x1a!\n\x0bIdleTimeout\x12\x12\n\nelapsed_ns\x18\x01 \x01(\x03\"\xda\x03\n\nFieldMatch\x12\x10\n\x08\x66ield_id\x18\x01 \x01(\r\x12(\n\x05\x65xact\x18\x02 \x01(\x0b\x32\x17.p4.v1.FieldMatch.ExactH\x00\x12,\n\x07ternary\x18\x03 \x01(\x0b\x32\x19.p4.v1.FieldMatch.TernaryH\x00\x12$\n\x03lpm\x18\x04 \x01(\x0b\x32\x15.p4.v1.FieldMatch.LPMH\x00\x12(\n\x05range\x18\x06 \x01(\x0b\x32\x17.p4.v1.FieldMatch.RangeH\x00\x12.\n\x08optional\x18\x07 \x01(\x0b\x32\x1a.p4.v1.FieldMatch.OptionalH\x00\x12%\n\x05other\x18\x64 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\x16\n\x05\x45xact\x12\r\n\x05value\x18\x01 \x01(\x0c\x1a&\n\x07Ternary\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x0c\n\x04mask\x18\x02 \x01(\x0c\x1a(\n\x03LPM\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x12\n\nprefix_len\x18\x02 \x01(\x05\x1a\"\n\x05Range\x12\x0b\n\x03low\x18\x01 \x01(\x0c\x12\x0c\n\x04high\x18\x02 \x01(\x0c\x1a\x19\n\x08Optional\x12\r\n\x05value\x18\x01 \x01(\x0c\x42\x12\n\x10\x66ield_match_type\"\xc1\x01\n\x0bTableAction\x12\x1f\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\r.p4.v1.ActionH\x00\x12\"\n\x18\x61\x63tion_profile_member_id\x18\x02 \x01(\rH\x00\x12!\n\x17\x61\x63tion_profile_group_id\x18\x03 \x01(\rH\x00\x12\x42\n\x19\x61\x63tion_profile_action_set\x18\x04 \x01(\x0b\x32\x1d.p4.v1.ActionProfileActionSetH\x00\x42\x06\n\x04type\"j\n\x06\x41\x63tion\x12\x11\n\taction_id\x18\x01 \x01(\r\x12#\n\x06params\x18\x04 \x03(\x0b\x32\x13.p4.v1.Action.Param\x1a(\n\x05Param\x12\x10\n\x08param_id\x18\x02 \x01(\r\x12\r\n\x05value\x18\x03 \x01(\x0c\"T\n\x16\x41\x63tionProfileActionSet\x12:\n\x16\x61\x63tion_profile_actions\x18\x01 \x03(\x0b\x32\x1a.p4.v1.ActionProfileAction\"}\n\x13\x41\x63tionProfileAction\x12\x1d\n\x06\x61\x63tion\x18\x01 \x01(\x0b\x32\r.p4.v1.Action\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x13\n\x05watch\x18\x03 \x01(\x05\x42\x02\x18\x01H\x00\x12\x14\n\nwatch_port\x18\x04 \x01(\x0cH\x00\x42\x0c\n\nwatch_kind\"b\n\x13\x41\x63tionProfileMember\x12\x19\n\x11\x61\x63tion_profile_id\x18\x01 \x01(\r\x12\x11\n\tmember_id\x18\x02 \x01(\r\x12\x1d\n\x06\x61\x63tion\x18\x03 \x01(\x0b\x32\r.p4.v1.Action\"\xec\x01\n\x12\x41\x63tionProfileGroup\x12\x19\n\x11\x61\x63tion_profile_id\x18\x01 \x01(\r\x12\x10\n\x08group_id\x18\x02 \x01(\r\x12\x31\n\x07members\x18\x03 \x03(\x0b\x32 .p4.v1.ActionProfileGroup.Member\x12\x10\n\x08max_size\x18\x04 \x01(\x05\x1a\x64\n\x06Member\x12\x11\n\tmember_id\x18\x01 \x01(\r\x12\x0e\n\x06weight\x18\x02 \x01(\x05\x12\x13\n\x05watch\x18\x03 \x01(\x05\x42\x02\x18\x01H\x00\x12\x14\n\nwatch_port\x18\x04 \x01(\x0cH\x00\x42\x0c\n\nwatch_kind\"\x16\n\x05Index\x12\r\n\x05index\x18\x01 \x01(\x03\"\x8e\x01\n\nMeterEntry\x12\x10\n\x08meter_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12\"\n\x06\x63onfig\x18\x03 \x01(\x0b\x32\x12.p4.v1.MeterConfig\x12-\n\x0c\x63ounter_data\x18\x04 \x01(\x0b\x32\x17.p4.v1.MeterCounterData\"\x8d\x01\n\x10\x44irectMeterEntry\x12&\n\x0btable_entry\x18\x01 \x01(\x0b\x32\x11.p4.v1.TableEntry\x12\"\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x12.p4.v1.MeterConfig\x12-\n\x0c\x63ounter_data\x18\x03 \x01(\x0b\x32\x17.p4.v1.MeterCounterData\"G\n\x0bMeterConfig\x12\x0b\n\x03\x63ir\x18\x01 \x01(\x03\x12\x0e\n\x06\x63\x62urst\x18\x02 \x01(\x03\x12\x0b\n\x03pir\x18\x03 \x01(\x03\x12\x0e\n\x06pburst\x18\x04 \x01(\x03\"a\n\x0c\x43ounterEntry\x12\x12\n\ncounter_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12 \n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x12.p4.v1.CounterData\"^\n\x12\x44irectCounterEntry\x12&\n\x0btable_entry\x18\x01 \x01(\x0b\x32\x11.p4.v1.TableEntry\x12 \n\x04\x64\x61ta\x18\x02 \x01(\x0b\x32\x12.p4.v1.CounterData\"7\n\x0b\x43ounterData\x12\x12\n\nbyte_count\x18\x01 \x01(\x03\x12\x14\n\x0cpacket_count\x18\x02 \x01(\x03\"z\n\x10MeterCounterData\x12!\n\x05green\x18\x01 \x01(\x0b\x32\x12.p4.v1.CounterData\x12\"\n\x06yellow\x18\x02 \x01(\x0b\x32\x12.p4.v1.CounterData\x12\x1f\n\x03red\x18\x03 \x01(\x0b\x32\x12.p4.v1.CounterData\"\x9c\x01\n\x1cPacketReplicationEngineEntry\x12;\n\x15multicast_group_entry\x18\x01 \x01(\x0b\x32\x1a.p4.v1.MulticastGroupEntryH\x00\x12\x37\n\x13\x63lone_session_entry\x18\x02 \x01(\x0b\x32\x18.p4.v1.CloneSessionEntryH\x00\x42\x06\n\x04type\"S\n\x07Replica\x12\x19\n\x0b\x65gress_port\x18\x01 \x01(\rB\x02\x18\x01H\x00\x12\x0e\n\x04port\x18\x03 \x01(\x0cH\x00\x12\x10\n\x08instance\x18\x02 \x01(\rB\x0b\n\tport_kind\"e\n\x13MulticastGroupEntry\x12\x1a\n\x12multicast_group_id\x18\x01 \x01(\r\x12 \n\x08replicas\x18\x02 \x03(\x0b\x32\x0e.p4.v1.Replica\x12\x10\n\x08metadata\x18\x03 \x01(\x0c\"\x80\x01\n\x11\x43loneSessionEntry\x12\x12\n\nsession_id\x18\x01 \x01(\r\x12 \n\x08replicas\x18\x02 \x03(\x0b\x32\x0e.p4.v1.Replica\x12\x18\n\x10\x63lass_of_service\x18\x03 \x01(\r\x12\x1b\n\x13packet_length_bytes\x18\x04 \x01(\x05\"2\n\x0eValueSetMember\x12 \n\x05match\x18\x01 \x03(\x0b\x32\x11.p4.v1.FieldMatch\"M\n\rValueSetEntry\x12\x14\n\x0cvalue_set_id\x18\x01 \x01(\r\x12&\n\x07members\x18\x02 \x03(\x0b\x32\x15.p4.v1.ValueSetMember\"^\n\rRegisterEntry\x12\x13\n\x0bregister_id\x18\x01 \x01(\r\x12\x1b\n\x05index\x18\x02 \x01(\x0b\x32\x0c.p4.v1.Index\x12\x1b\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\r.p4.v1.P4Data\"\x9c\x01\n\x0b\x44igestEntry\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12)\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x19.p4.v1.DigestEntry.Config\x1aO\n\x06\x43onfig\x12\x16\n\x0emax_timeout_ns\x18\x01 \x01(\x03\x12\x15\n\rmax_list_size\x18\x02 \x01(\x05\x12\x16\n\x0e\x61\x63k_timeout_ns\x18\x03 \x01(\x03\"\xce\x01\n\x14StreamMessageRequest\x12\x35\n\x0b\x61rbitration\x18\x01 \x01(\x0b\x32\x1e.p4.v1.MasterArbitrationUpdateH\x00\x12\"\n\x06packet\x18\x02 \x01(\x0b\x32\x10.p4.v1.PacketOutH\x00\x12*\n\ndigest_ack\x18\x03 \x01(\x0b\x32\x14.p4.v1.DigestListAckH\x00\x12%\n\x05other\x18\x04 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x42\x08\n\x06update\"E\n\tPacketOut\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\'\n\x08metadata\x18\x02 \x03(\x0b\x32\x15.p4.v1.PacketMetadata\"3\n\rDigestListAck\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12\x0f\n\x07list_id\x18\x02 \x01(\x04\"\xb1\x02\n\x15StreamMessageResponse\x12\x35\n\x0b\x61rbitration\x18\x01 \x01(\x0b\x32\x1e.p4.v1.MasterArbitrationUpdateH\x00\x12!\n\x06packet\x18\x02 \x01(\x0b\x32\x0f.p4.v1.PacketInH\x00\x12#\n\x06\x64igest\x18\x03 \x01(\x0b\x32\x11.p4.v1.DigestListH\x00\x12\x43\n\x19idle_timeout_notification\x18\x04 \x01(\x0b\x32\x1e.p4.v1.IdleTimeoutNotificationH\x00\x12%\n\x05other\x18\x05 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x12#\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x12.p4.v1.StreamErrorH\x00\x42\x08\n\x06update\"D\n\x08PacketIn\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\'\n\x08metadata\x18\x02 \x03(\x0b\x32\x15.p4.v1.PacketMetadata\"`\n\nDigestList\x12\x11\n\tdigest_id\x18\x01 \x01(\r\x12\x0f\n\x07list_id\x18\x02 \x01(\x04\x12\x1b\n\x04\x64\x61ta\x18\x03 \x03(\x0b\x32\r.p4.v1.P4Data\x12\x11\n\ttimestamp\x18\x04 \x01(\x03\"4\n\x0ePacketMetadata\x12\x13\n\x0bmetadata_id\x18\x01 \x01(\r\x12\r\n\x05value\x18\x02 \x01(\x0c\"\x90\x01\n\x17MasterArbitrationUpdate\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x19\n\x04role\x18\x02 \x01(\x0b\x32\x0b.p4.v1.Role\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12\"\n\x06status\x18\x04 \x01(\x0b\x32\x12.google.rpc.Status\"J\n\x04Role\x12\x0e\n\x02id\x18\x01 \x01(\x04\x42\x02\x18\x01\x12\x0c\n\x04name\x18\x03 \x01(\t\x12$\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x14.google.protobuf.Any\"T\n\x17IdleTimeoutNotification\x12&\n\x0btable_entry\x18\x01 \x03(\x0b\x32\x11.p4.v1.TableEntry\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xeb\x01\n\x0bStreamError\x12\x16\n\x0e\x63\x61nonical_code\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\r\n\x05space\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\x05\x12+\n\npacket_out\x18\x05 \x01(\x0b\x32\x15.p4.v1.PacketOutErrorH\x00\x12\x34\n\x0f\x64igest_list_ack\x18\x06 \x01(\x0b\x32\x19.p4.v1.DigestListAckErrorH\x00\x12(\n\x05other\x18\x07 \x01(\x0b\x32\x17.p4.v1.StreamOtherErrorH\x00\x42\t\n\x07\x64\x65tails\"6\n\x0ePacketOutError\x12$\n\npacket_out\x18\x01 \x01(\x0b\x32\x10.p4.v1.PacketOut\"C\n\x12\x44igestListAckError\x12-\n\x0f\x64igest_list_ack\x18\x01 \x01(\x0b\x32\x14.p4.v1.DigestListAck\"7\n\x10StreamOtherError\x12#\n\x05other\x18\x01 \x01(\x0b\x32\x14.google.protobuf.Any\"$\n\x07Uint128\x12\x0c\n\x04high\x18\x01 \x01(\x04\x12\x0b\n\x03low\x18\x02 \x01(\x04\"\xeb\x02\n\"SetForwardingPipelineConfigRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12\x13\n\x07role_id\x18\x02 \x01(\x04\x42\x02\x18\x01\x12\x0c\n\x04role\x18\x06 \x01(\t\x12#\n\x0b\x65lection_id\x18\x03 \x01(\x0b\x32\x0e.p4.v1.Uint128\x12@\n\x06\x61\x63tion\x18\x04 \x01(\x0e\x32\x30.p4.v1.SetForwardingPipelineConfigRequest.Action\x12/\n\x06\x63onfig\x18\x05 \x01(\x0b\x32\x1f.p4.v1.ForwardingPipelineConfig\"w\n\x06\x41\x63tion\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06VERIFY\x10\x01\x12\x13\n\x0fVERIFY_AND_SAVE\x10\x02\x12\x15\n\x11VERIFY_AND_COMMIT\x10\x03\x12\n\n\x06\x43OMMIT\x10\x04\x12\x18\n\x14RECONCILE_AND_COMMIT\x10\x05\"%\n#SetForwardingPipelineConfigResponse\"\xac\x01\n\x18\x46orwardingPipelineConfig\x12$\n\x06p4info\x18\x01 \x01(\x0b\x32\x14.p4.config.v1.P4Info\x12\x18\n\x10p4_device_config\x18\x02 \x01(\x0c\x12\x36\n\x06\x63ookie\x18\x03 \x01(\x0b\x32&.p4.v1.ForwardingPipelineConfig.Cookie\x1a\x18\n\x06\x43ookie\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\x04\"\xe5\x01\n\"GetForwardingPipelineConfigRequest\x12\x11\n\tdevice_id\x18\x01 \x01(\x04\x12M\n\rresponse_type\x18\x02 \x01(\x0e\x32\x36.p4.v1.GetForwardingPipelineConfigRequest.ResponseType\"]\n\x0cResponseType\x12\x07\n\x03\x41LL\x10\x00\x12\x0f\n\x0b\x43OOKIE_ONLY\x10\x01\x12\x15\n\x11P4INFO_AND_COOKIE\x10\x02\x12\x1c\n\x18\x44\x45VICE_CONFIG_AND_COOKIE\x10\x03\"V\n#GetForwardingPipelineConfigResponse\x12/\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x1f.p4.v1.ForwardingPipelineConfig\"t\n\x05\x45rror\x12\x16\n\x0e\x63\x61nonical_code\x18\x01 \x01(\x05\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\r\n\x05space\x18\x03 \x01(\t\x12\x0c\n\x04\x63ode\x18\x04 \x01(\x05\x12%\n\x07\x64\x65tails\x18\x05 \x01(\x0b\x32\x14.google.protobuf.Any\"\x15\n\x13\x43\x61pabilitiesRequest\"5\n\x14\x43\x61pabilitiesResponse\x12\x1d\n\x15p4runtime_api_version\x18\x01 \x01(\t\"\xac\x04\n\x11GenericFieldMatch\x12\x10\n\x08\x66ield_id\x18\x01 \x01(\r\x12/\n\x05\x65xact\x18\x02 \x01(\x0b\x32\x1e.p4.v1.GenericFieldMatch.ExactH\x00\x12\x33\n\x07ternary\x18\x03 \x01(\x0b\x32 .p4.v1.GenericFieldMatch.TernaryH\x00\x12+\n\x03lpm\x18\x04 \x01(\x0b\x32\x1c.p4.v1.GenericFieldMatch.LPMH\x00\x12/\n\x05range\x18\x06 \x01(\x0b\x32\x1e.p4.v1.GenericFieldMatch.RangeH\x00\x12\x35\n\x08optional\x18\x07 \x01(\x0b\x32!.p4.v1.GenericFieldMatch.OptionalH\x00\x12%\n\x05other\x18\x64 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a*\n\x05\x45xact\x12!\n\x05value\x18\x01 \x01(\x0b\x32\x12.p4.v1.GenericData\x1a&\n\x07Ternary\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x0c\n\x04mask\x18\x02 \x01(\x0c\x1a(\n\x03LPM\x12\r\n\x05value\x18\x01 \x01(\x0c\x12\x12\n\nprefix_len\x18\x02 \x01(\x05\x1a\"\n\x05Range\x12\x0b\n\x03low\x18\x01 \x01(\x0c\x12\x0c\n\x04high\x18\x02 \x01(\x0c\x1a-\n\x08Optional\x12!\n\x05value\x18\x01 \x01(\x0b\x32\x12.p4.v1.GenericDataB\x12\n\x10\x66ield_match_type\"\xbd\x01\n\x11GenericTableEntry\x12\x10\n\x08table_id\x18\x01 \x01(\r\x12\'\n\x05match\x18\x02 \x03(\x0b\x32\x18.p4.v1.GenericFieldMatch\x12/\n\x10table_data_union\x18\x03 \x01(\x0b\x32\x15.p4.v1.TableDataUnion\x12\x10\n\x08priority\x18\x04 \x01(\x05\x12\x18\n\x10is_default_entry\x18\x05 \x01(\x08\x12\x10\n\x08metadata\x18\x06 \x01(\x0c\"\x8d\x01\n\x0eTableDataUnion\x12\x10\n\x08union_id\x18\x01 \x01(\r\x12+\n\x06params\x18\x04 \x03(\x0b\x32\x1b.p4.v1.TableDataUnion.Param\x1a<\n\x05Param\x12\x10\n\x08param_id\x18\x02 \x01(\r\x12!\n\x05value\x18\x03 \x01(\x0b\x32\x12.p4.v1.GenericData*\x8a\x01\n\x07SdnPort\x12\x14\n\x10SDN_PORT_UNKNOWN\x10\x00\x12\x10\n\x0cSDN_PORT_MIN\x10\x01\x12\x19\n\x0cSDN_PORT_MAX\x10\xff\xfd\xff\xff\xff\xff\xff\xff\xff\x01\x12!\n\x14SDN_PORT_RECIRCULATE\x10\xfa\xff\xff\xff\xff\xff\xff\xff\xff\x01\x12\x19\n\x0cSDN_PORT_CPU\x10\xfd\xff\xff\xff\xff\xff\xff\xff\xff\x01\x32\x83\x04\n\tP4Runtime\x12\x34\n\x05Write\x12\x13.p4.v1.WriteRequest\x1a\x14.p4.v1.WriteResponse\"\x00\x12\x33\n\x04Read\x12\x12.p4.v1.ReadRequest\x1a\x13.p4.v1.ReadResponse\"\x00\x30\x01\x12v\n\x1bSetForwardingPipelineConfig\x12).p4.v1.SetForwardingPipelineConfigRequest\x1a*.p4.v1.SetForwardingPipelineConfigResponse\"\x00\x12v\n\x1bGetForwardingPipelineConfig\x12).p4.v1.GetForwardingPipelineConfigRequest\x1a*.p4.v1.GetForwardingPipelineConfigResponse\"\x00\x12P\n\rStreamChannel\x12\x1b.p4.v1.StreamMessageRequest\x1a\x1c.p4.v1.StreamMessageResponse\"\x00(\x01\x30\x01\x12I\n\x0c\x43\x61pabilities\x12\x1a.p4.v1.CapabilitiesRequest\x1a\x1b.p4.v1.CapabilitiesResponse\"\x00\x42)Z$github.com/p4lang/p4runtime/go/p4/v1\xf8\x01\x01\x62\x06proto3' , dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_rpc_dot_status__pb2.DESCRIPTOR,p4_dot_config_dot_v1_dot_p4info__pb2.DESCRIPTOR,p4_dot_v1_dot_p4data__pb2.DESCRIPTOR,]) @@ -63,8 +63,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=7591, - serialized_end=7729, + serialized_start=8588, + serialized_end=8726, ) _sym_db.RegisterEnumDescriptor(_SDNPORT) @@ -181,8 +181,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=6739, - serialized_end=6858, + serialized_start=6841, + serialized_end=6960, ) _sym_db.RegisterEnumDescriptor(_SETFORWARDINGPIPELINECONFIGREQUEST_ACTION) @@ -216,8 +216,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=7211, - serialized_end=7304, + serialized_start=7313, + serialized_end=7406, ) _sym_db.RegisterEnumDescriptor(_GETFORWARDINGPIPELINECONFIGREQUEST_RESPONSETYPE) @@ -525,6 +525,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='generic_table_entry', full_name='p4.v1.Entity.generic_table_entry', index=12, + number=13, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -543,7 +550,7 @@ fields=[]), ], serialized_start=687, - serialized_end=1334, + serialized_end=1391, ) @@ -588,8 +595,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1336, - serialized_end=1429, + serialized_start=1393, + serialized_end=1486, ) @@ -620,8 +627,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1870, - serialized_end=1903, + serialized_start=1972, + serialized_end=2005, ) _TABLEENTRY = _descriptor.Descriptor( @@ -723,6 +730,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='resources', full_name='p4.v1.TableEntry.resources', index=13, + number=14, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), ], extensions=[ ], @@ -735,8 +749,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1432, - serialized_end=1903, + serialized_start=1489, + serialized_end=2005, ) @@ -767,8 +781,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2193, - serialized_end=2215, + serialized_start=2295, + serialized_end=2317, ) _FIELDMATCH_TERNARY = _descriptor.Descriptor( @@ -805,8 +819,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2217, - serialized_end=2255, + serialized_start=2319, + serialized_end=2357, ) _FIELDMATCH_LPM = _descriptor.Descriptor( @@ -843,8 +857,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2257, - serialized_end=2297, + serialized_start=2359, + serialized_end=2399, ) _FIELDMATCH_RANGE = _descriptor.Descriptor( @@ -881,8 +895,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2299, - serialized_end=2333, + serialized_start=2401, + serialized_end=2435, ) _FIELDMATCH_OPTIONAL = _descriptor.Descriptor( @@ -912,8 +926,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2335, - serialized_end=2360, + serialized_start=2437, + serialized_end=2462, ) _FIELDMATCH = _descriptor.Descriptor( @@ -990,8 +1004,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=1906, - serialized_end=2380, + serialized_start=2008, + serialized_end=2482, ) @@ -1048,8 +1062,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2383, - serialized_end=2576, + serialized_start=2485, + serialized_end=2678, ) @@ -1087,8 +1101,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2644, - serialized_end=2684, + serialized_start=2746, + serialized_end=2786, ) _ACTION = _descriptor.Descriptor( @@ -1125,8 +1139,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2578, - serialized_end=2684, + serialized_start=2680, + serialized_end=2786, ) @@ -1157,8 +1171,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2686, - serialized_end=2770, + serialized_start=2788, + serialized_end=2872, ) @@ -1215,8 +1229,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=2772, - serialized_end=2897, + serialized_start=2874, + serialized_end=2999, ) @@ -1261,8 +1275,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2899, - serialized_end=2997, + serialized_start=3001, + serialized_end=3099, ) @@ -1319,8 +1333,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=3136, - serialized_end=3236, + serialized_start=3238, + serialized_end=3338, ) _ACTIONPROFILEGROUP = _descriptor.Descriptor( @@ -1371,8 +1385,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3000, - serialized_end=3236, + serialized_start=3102, + serialized_end=3338, ) @@ -1403,8 +1417,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3238, - serialized_end=3260, + serialized_start=3340, + serialized_end=3362, ) @@ -1456,8 +1470,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3263, - serialized_end=3405, + serialized_start=3365, + serialized_end=3507, ) @@ -1502,8 +1516,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3408, - serialized_end=3549, + serialized_start=3510, + serialized_end=3651, ) @@ -1555,8 +1569,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3551, - serialized_end=3622, + serialized_start=3653, + serialized_end=3724, ) @@ -1601,8 +1615,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3624, - serialized_end=3721, + serialized_start=3726, + serialized_end=3823, ) @@ -1640,8 +1654,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3723, - serialized_end=3817, + serialized_start=3825, + serialized_end=3919, ) @@ -1679,8 +1693,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3819, - serialized_end=3874, + serialized_start=3921, + serialized_end=3976, ) @@ -1725,8 +1739,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=3876, - serialized_end=3998, + serialized_start=3978, + serialized_end=4100, ) @@ -1769,8 +1783,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=4001, - serialized_end=4157, + serialized_start=4103, + serialized_end=4259, ) @@ -1820,8 +1834,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=4159, - serialized_end=4242, + serialized_start=4261, + serialized_end=4344, ) @@ -1866,8 +1880,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4244, - serialized_end=4345, + serialized_start=4346, + serialized_end=4447, ) @@ -1919,8 +1933,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4348, - serialized_end=4476, + serialized_start=4450, + serialized_end=4578, ) @@ -1951,8 +1965,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4478, - serialized_end=4528, + serialized_start=4580, + serialized_end=4630, ) @@ -1990,8 +2004,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4530, - serialized_end=4607, + serialized_start=4632, + serialized_end=4709, ) @@ -2036,8 +2050,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4609, - serialized_end=4703, + serialized_start=4711, + serialized_end=4805, ) @@ -2082,8 +2096,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4783, - serialized_end=4862, + serialized_start=4885, + serialized_end=4964, ) _DIGESTENTRY = _descriptor.Descriptor( @@ -2120,8 +2134,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=4706, - serialized_end=4862, + serialized_start=4808, + serialized_end=4964, ) @@ -2178,8 +2192,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=4865, - serialized_end=5071, + serialized_start=4967, + serialized_end=5173, ) @@ -2217,8 +2231,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5073, - serialized_end=5142, + serialized_start=5175, + serialized_end=5244, ) @@ -2256,8 +2270,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5144, - serialized_end=5195, + serialized_start=5246, + serialized_end=5297, ) @@ -2328,8 +2342,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=5198, - serialized_end=5503, + serialized_start=5300, + serialized_end=5605, ) @@ -2367,8 +2381,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5505, - serialized_end=5573, + serialized_start=5607, + serialized_end=5675, ) @@ -2420,8 +2434,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5575, - serialized_end=5671, + serialized_start=5677, + serialized_end=5773, ) @@ -2459,8 +2473,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5673, - serialized_end=5725, + serialized_start=5775, + serialized_end=5827, ) @@ -2512,8 +2526,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5728, - serialized_end=5872, + serialized_start=5830, + serialized_end=5974, ) @@ -2558,8 +2572,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5874, - serialized_end=5948, + serialized_start=5976, + serialized_end=6050, ) @@ -2597,8 +2611,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=5950, - serialized_end=6034, + serialized_start=6052, + serialized_end=6136, ) @@ -2676,8 +2690,8 @@ create_key=_descriptor._internal_create_key, fields=[]), ], - serialized_start=6037, - serialized_end=6272, + serialized_start=6139, + serialized_end=6374, ) @@ -2708,8 +2722,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6274, - serialized_end=6328, + serialized_start=6376, + serialized_end=6430, ) @@ -2740,8 +2754,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6330, - serialized_end=6397, + serialized_start=6432, + serialized_end=6499, ) @@ -2772,8 +2786,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6399, - serialized_end=6454, + serialized_start=6501, + serialized_end=6556, ) @@ -2811,8 +2825,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6456, - serialized_end=6492, + serialized_start=6558, + serialized_end=6594, ) @@ -2879,8 +2893,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6495, - serialized_end=6858, + serialized_start=6597, + serialized_end=6960, ) @@ -2904,8 +2918,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6860, - serialized_end=6897, + serialized_start=6962, + serialized_end=6999, ) @@ -2936,8 +2950,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7048, - serialized_end=7072, + serialized_start=7150, + serialized_end=7174, ) _FORWARDINGPIPELINECONFIG = _descriptor.Descriptor( @@ -2981,8 +2995,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=6900, - serialized_end=7072, + serialized_start=7002, + serialized_end=7174, ) @@ -3021,8 +3035,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7075, - serialized_end=7304, + serialized_start=7177, + serialized_end=7406, ) @@ -3053,8 +3067,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7306, - serialized_end=7392, + serialized_start=7408, + serialized_end=7494, ) @@ -3113,8 +3127,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7394, - serialized_end=7510, + serialized_start=7496, + serialized_end=7612, ) @@ -3138,8 +3152,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7512, - serialized_end=7533, + serialized_start=7614, + serialized_end=7635, ) @@ -3170,8 +3184,407 @@ extension_ranges=[], oneofs=[ ], - serialized_start=7535, - serialized_end=7588, + serialized_start=7637, + serialized_end=7690, +) + + +_GENERICFIELDMATCH_EXACT = _descriptor.Descriptor( + name='Exact', + full_name='p4.v1.GenericFieldMatch.Exact', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='p4.v1.GenericFieldMatch.Exact.value', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8022, + serialized_end=8064, +) + +_GENERICFIELDMATCH_TERNARY = _descriptor.Descriptor( + name='Ternary', + full_name='p4.v1.GenericFieldMatch.Ternary', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='p4.v1.GenericFieldMatch.Ternary.value', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='mask', full_name='p4.v1.GenericFieldMatch.Ternary.mask', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2319, + serialized_end=2357, +) + +_GENERICFIELDMATCH_LPM = _descriptor.Descriptor( + name='LPM', + full_name='p4.v1.GenericFieldMatch.LPM', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='p4.v1.GenericFieldMatch.LPM.value', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='prefix_len', full_name='p4.v1.GenericFieldMatch.LPM.prefix_len', index=1, + number=2, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2359, + serialized_end=2399, +) + +_GENERICFIELDMATCH_RANGE = _descriptor.Descriptor( + name='Range', + full_name='p4.v1.GenericFieldMatch.Range', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='low', full_name='p4.v1.GenericFieldMatch.Range.low', index=0, + number=1, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='high', full_name='p4.v1.GenericFieldMatch.Range.high', index=1, + number=2, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=2401, + serialized_end=2435, +) + +_GENERICFIELDMATCH_OPTIONAL = _descriptor.Descriptor( + name='Optional', + full_name='p4.v1.GenericFieldMatch.Optional', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='value', full_name='p4.v1.GenericFieldMatch.Optional.value', index=0, + number=1, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8184, + serialized_end=8229, +) + +_GENERICFIELDMATCH = _descriptor.Descriptor( + name='GenericFieldMatch', + full_name='p4.v1.GenericFieldMatch', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='field_id', full_name='p4.v1.GenericFieldMatch.field_id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='exact', full_name='p4.v1.GenericFieldMatch.exact', index=1, + number=2, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='ternary', full_name='p4.v1.GenericFieldMatch.ternary', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='lpm', full_name='p4.v1.GenericFieldMatch.lpm', index=3, + number=4, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='range', full_name='p4.v1.GenericFieldMatch.range', index=4, + number=6, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='optional', full_name='p4.v1.GenericFieldMatch.optional', index=5, + number=7, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='other', full_name='p4.v1.GenericFieldMatch.other', index=6, + number=100, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_GENERICFIELDMATCH_EXACT, _GENERICFIELDMATCH_TERNARY, _GENERICFIELDMATCH_LPM, _GENERICFIELDMATCH_RANGE, _GENERICFIELDMATCH_OPTIONAL, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + _descriptor.OneofDescriptor( + name='field_match_type', full_name='p4.v1.GenericFieldMatch.field_match_type', + index=0, containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[]), + ], + serialized_start=7693, + serialized_end=8249, +) + + +_GENERICTABLEENTRY = _descriptor.Descriptor( + name='GenericTableEntry', + full_name='p4.v1.GenericTableEntry', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='table_id', full_name='p4.v1.GenericTableEntry.table_id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='match', full_name='p4.v1.GenericTableEntry.match', index=1, + number=2, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='table_data_union', full_name='p4.v1.GenericTableEntry.table_data_union', index=2, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='priority', full_name='p4.v1.GenericTableEntry.priority', index=3, + number=4, type=5, cpp_type=1, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='is_default_entry', full_name='p4.v1.GenericTableEntry.is_default_entry', index=4, + number=5, type=8, cpp_type=7, label=1, + has_default_value=False, default_value=False, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='metadata', full_name='p4.v1.GenericTableEntry.metadata', index=5, + number=6, type=12, cpp_type=9, label=1, + has_default_value=False, default_value=b"", + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8252, + serialized_end=8441, +) + + +_TABLEDATAUNION_PARAM = _descriptor.Descriptor( + name='Param', + full_name='p4.v1.TableDataUnion.Param', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='param_id', full_name='p4.v1.TableDataUnion.Param.param_id', index=0, + number=2, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='value', full_name='p4.v1.TableDataUnion.Param.value', index=1, + number=3, type=11, cpp_type=10, label=1, + has_default_value=False, default_value=None, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8525, + serialized_end=8585, +) + +_TABLEDATAUNION = _descriptor.Descriptor( + name='TableDataUnion', + full_name='p4.v1.TableDataUnion', + filename=None, + file=DESCRIPTOR, + containing_type=None, + create_key=_descriptor._internal_create_key, + fields=[ + _descriptor.FieldDescriptor( + name='union_id', full_name='p4.v1.TableDataUnion.union_id', index=0, + number=1, type=13, cpp_type=3, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + _descriptor.FieldDescriptor( + name='params', full_name='p4.v1.TableDataUnion.params', index=1, + number=4, type=11, cpp_type=10, label=3, + has_default_value=False, default_value=[], + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), + ], + extensions=[ + ], + nested_types=[_TABLEDATAUNION_PARAM, ], + enum_types=[ + ], + serialized_options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[ + ], + serialized_start=8444, + serialized_end=8585, ) _WRITEREQUEST.fields_by_name['election_id'].message_type = _UINT128 @@ -3195,6 +3608,7 @@ _ENTITY.fields_by_name['value_set_entry'].message_type = _VALUESETENTRY _ENTITY.fields_by_name['register_entry'].message_type = _REGISTERENTRY _ENTITY.fields_by_name['digest_entry'].message_type = _DIGESTENTRY +_ENTITY.fields_by_name['generic_table_entry'].message_type = _GENERICTABLEENTRY _ENTITY.oneofs_by_name['entity'].fields.append( _ENTITY.fields_by_name['extern_entry']) _ENTITY.fields_by_name['extern_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity'] @@ -3231,6 +3645,9 @@ _ENTITY.oneofs_by_name['entity'].fields.append( _ENTITY.fields_by_name['digest_entry']) _ENTITY.fields_by_name['digest_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity'] +_ENTITY.oneofs_by_name['entity'].fields.append( + _ENTITY.fields_by_name['generic_table_entry']) +_ENTITY.fields_by_name['generic_table_entry'].containing_oneof = _ENTITY.oneofs_by_name['entity'] _EXTERNENTRY.fields_by_name['entry'].message_type = google_dot_protobuf_dot_any__pb2._ANY _TABLEENTRY_IDLETIMEOUT.containing_type = _TABLEENTRY _TABLEENTRY.fields_by_name['match'].message_type = _FIELDMATCH @@ -3239,6 +3656,7 @@ _TABLEENTRY.fields_by_name['counter_data'].message_type = _COUNTERDATA _TABLEENTRY.fields_by_name['meter_counter_data'].message_type = _METERCOUNTERDATA _TABLEENTRY.fields_by_name['time_since_last_hit'].message_type = _TABLEENTRY_IDLETIMEOUT +_TABLEENTRY.fields_by_name['resources'].message_type = _GENERICTABLEENTRY _FIELDMATCH_EXACT.containing_type = _FIELDMATCH _FIELDMATCH_TERNARY.containing_type = _FIELDMATCH _FIELDMATCH_LPM.containing_type = _FIELDMATCH @@ -3410,6 +3828,42 @@ _GETFORWARDINGPIPELINECONFIGREQUEST_RESPONSETYPE.containing_type = _GETFORWARDINGPIPELINECONFIGREQUEST _GETFORWARDINGPIPELINECONFIGRESPONSE.fields_by_name['config'].message_type = _FORWARDINGPIPELINECONFIG _ERROR.fields_by_name['details'].message_type = google_dot_protobuf_dot_any__pb2._ANY +_GENERICFIELDMATCH_EXACT.fields_by_name['value'].message_type = p4_dot_v1_dot_p4data__pb2._GENERICDATA +_GENERICFIELDMATCH_EXACT.containing_type = _GENERICFIELDMATCH +_GENERICFIELDMATCH_TERNARY.containing_type = _GENERICFIELDMATCH +_GENERICFIELDMATCH_LPM.containing_type = _GENERICFIELDMATCH +_GENERICFIELDMATCH_RANGE.containing_type = _GENERICFIELDMATCH +_GENERICFIELDMATCH_OPTIONAL.fields_by_name['value'].message_type = p4_dot_v1_dot_p4data__pb2._GENERICDATA +_GENERICFIELDMATCH_OPTIONAL.containing_type = _GENERICFIELDMATCH +_GENERICFIELDMATCH.fields_by_name['exact'].message_type = _GENERICFIELDMATCH_EXACT +_GENERICFIELDMATCH.fields_by_name['ternary'].message_type = _GENERICFIELDMATCH_TERNARY +_GENERICFIELDMATCH.fields_by_name['lpm'].message_type = _GENERICFIELDMATCH_LPM +_GENERICFIELDMATCH.fields_by_name['range'].message_type = _GENERICFIELDMATCH_RANGE +_GENERICFIELDMATCH.fields_by_name['optional'].message_type = _GENERICFIELDMATCH_OPTIONAL +_GENERICFIELDMATCH.fields_by_name['other'].message_type = google_dot_protobuf_dot_any__pb2._ANY +_GENERICFIELDMATCH.oneofs_by_name['field_match_type'].fields.append( + _GENERICFIELDMATCH.fields_by_name['exact']) +_GENERICFIELDMATCH.fields_by_name['exact'].containing_oneof = _GENERICFIELDMATCH.oneofs_by_name['field_match_type'] +_GENERICFIELDMATCH.oneofs_by_name['field_match_type'].fields.append( + _GENERICFIELDMATCH.fields_by_name['ternary']) +_GENERICFIELDMATCH.fields_by_name['ternary'].containing_oneof = _GENERICFIELDMATCH.oneofs_by_name['field_match_type'] +_GENERICFIELDMATCH.oneofs_by_name['field_match_type'].fields.append( + _GENERICFIELDMATCH.fields_by_name['lpm']) +_GENERICFIELDMATCH.fields_by_name['lpm'].containing_oneof = _GENERICFIELDMATCH.oneofs_by_name['field_match_type'] +_GENERICFIELDMATCH.oneofs_by_name['field_match_type'].fields.append( + _GENERICFIELDMATCH.fields_by_name['range']) +_GENERICFIELDMATCH.fields_by_name['range'].containing_oneof = _GENERICFIELDMATCH.oneofs_by_name['field_match_type'] +_GENERICFIELDMATCH.oneofs_by_name['field_match_type'].fields.append( + _GENERICFIELDMATCH.fields_by_name['optional']) +_GENERICFIELDMATCH.fields_by_name['optional'].containing_oneof = _GENERICFIELDMATCH.oneofs_by_name['field_match_type'] +_GENERICFIELDMATCH.oneofs_by_name['field_match_type'].fields.append( + _GENERICFIELDMATCH.fields_by_name['other']) +_GENERICFIELDMATCH.fields_by_name['other'].containing_oneof = _GENERICFIELDMATCH.oneofs_by_name['field_match_type'] +_GENERICTABLEENTRY.fields_by_name['match'].message_type = _GENERICFIELDMATCH +_GENERICTABLEENTRY.fields_by_name['table_data_union'].message_type = _TABLEDATAUNION +_TABLEDATAUNION_PARAM.fields_by_name['value'].message_type = p4_dot_v1_dot_p4data__pb2._GENERICDATA +_TABLEDATAUNION_PARAM.containing_type = _TABLEDATAUNION +_TABLEDATAUNION.fields_by_name['params'].message_type = _TABLEDATAUNION_PARAM DESCRIPTOR.message_types_by_name['WriteRequest'] = _WRITEREQUEST DESCRIPTOR.message_types_by_name['WriteResponse'] = _WRITERESPONSE DESCRIPTOR.message_types_by_name['ReadRequest'] = _READREQUEST @@ -3464,6 +3918,9 @@ DESCRIPTOR.message_types_by_name['Error'] = _ERROR DESCRIPTOR.message_types_by_name['CapabilitiesRequest'] = _CAPABILITIESREQUEST DESCRIPTOR.message_types_by_name['CapabilitiesResponse'] = _CAPABILITIESRESPONSE +DESCRIPTOR.message_types_by_name['GenericFieldMatch'] = _GENERICFIELDMATCH +DESCRIPTOR.message_types_by_name['GenericTableEntry'] = _GENERICTABLEENTRY +DESCRIPTOR.message_types_by_name['TableDataUnion'] = _TABLEDATAUNION DESCRIPTOR.enum_types_by_name['SdnPort'] = _SDNPORT _sym_db.RegisterFileDescriptor(DESCRIPTOR) @@ -3925,6 +4382,75 @@ }) _sym_db.RegisterMessage(CapabilitiesResponse) +GenericFieldMatch = _reflection.GeneratedProtocolMessageType('GenericFieldMatch', (_message.Message,), { + + 'Exact' : _reflection.GeneratedProtocolMessageType('Exact', (_message.Message,), { + 'DESCRIPTOR' : _GENERICFIELDMATCH_EXACT, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.GenericFieldMatch.Exact) + }) + , + + 'Ternary' : _reflection.GeneratedProtocolMessageType('Ternary', (_message.Message,), { + 'DESCRIPTOR' : _GENERICFIELDMATCH_TERNARY, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.GenericFieldMatch.Ternary) + }) + , + + 'LPM' : _reflection.GeneratedProtocolMessageType('LPM', (_message.Message,), { + 'DESCRIPTOR' : _GENERICFIELDMATCH_LPM, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.GenericFieldMatch.LPM) + }) + , + + 'Range' : _reflection.GeneratedProtocolMessageType('Range', (_message.Message,), { + 'DESCRIPTOR' : _GENERICFIELDMATCH_RANGE, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.GenericFieldMatch.Range) + }) + , + + 'Optional' : _reflection.GeneratedProtocolMessageType('Optional', (_message.Message,), { + 'DESCRIPTOR' : _GENERICFIELDMATCH_OPTIONAL, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.GenericFieldMatch.Optional) + }) + , + 'DESCRIPTOR' : _GENERICFIELDMATCH, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.GenericFieldMatch) + }) +_sym_db.RegisterMessage(GenericFieldMatch) +_sym_db.RegisterMessage(GenericFieldMatch.Exact) +_sym_db.RegisterMessage(GenericFieldMatch.Ternary) +_sym_db.RegisterMessage(GenericFieldMatch.LPM) +_sym_db.RegisterMessage(GenericFieldMatch.Range) +_sym_db.RegisterMessage(GenericFieldMatch.Optional) + +GenericTableEntry = _reflection.GeneratedProtocolMessageType('GenericTableEntry', (_message.Message,), { + 'DESCRIPTOR' : _GENERICTABLEENTRY, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.GenericTableEntry) + }) +_sym_db.RegisterMessage(GenericTableEntry) + +TableDataUnion = _reflection.GeneratedProtocolMessageType('TableDataUnion', (_message.Message,), { + + 'Param' : _reflection.GeneratedProtocolMessageType('Param', (_message.Message,), { + 'DESCRIPTOR' : _TABLEDATAUNION_PARAM, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.TableDataUnion.Param) + }) + , + 'DESCRIPTOR' : _TABLEDATAUNION, + '__module__' : 'p4.v1.p4runtime_pb2' + # @@protoc_insertion_point(class_scope:p4.v1.TableDataUnion) + }) +_sym_db.RegisterMessage(TableDataUnion) +_sym_db.RegisterMessage(TableDataUnion.Param) + DESCRIPTOR._options = None _WRITEREQUEST.fields_by_name['role_id']._options = None @@ -3942,8 +4468,8 @@ index=0, serialized_options=None, create_key=_descriptor._internal_create_key, - serialized_start=7732, - serialized_end=8247, + serialized_start=8729, + serialized_end=9244, methods=[ _descriptor.MethodDescriptor( name='Write',