// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.34.2-devel // protoc v3.12.4 // source: message.proto package message import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type APMode int32 const ( APMode_FIT_AP APMode = 1 APMode_FAT_AP APMode = 2 // soho APMode_CPE_BASE APMode = 3 // CPE 基站 APMode_CPE_STA APMode = 4 // CPE 接收端 ) // Enum value maps for APMode. var ( APMode_name = map[int32]string{ 1: "FIT_AP", 2: "FAT_AP", 3: "CPE_BASE", 4: "CPE_STA", } APMode_value = map[string]int32{ "FIT_AP": 1, "FAT_AP": 2, "CPE_BASE": 3, "CPE_STA": 4, } ) func (x APMode) Enum() *APMode { p := new(APMode) *p = x return p } func (x APMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (APMode) Descriptor() protoreflect.EnumDescriptor { return file_message_proto_enumTypes[0].Descriptor() } func (APMode) Type() protoreflect.EnumType { return &file_message_proto_enumTypes[0] } func (x APMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *APMode) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = APMode(num) return nil } // Deprecated: Use APMode.Descriptor instead. func (APMode) EnumDescriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{0} } type RadioBand int32 const ( RadioBand_RB_2G RadioBand = 1 RadioBand_RB_5G RadioBand = 2 ) // Enum value maps for RadioBand. var ( RadioBand_name = map[int32]string{ 1: "RB_2G", 2: "RB_5G", } RadioBand_value = map[string]int32{ "RB_2G": 1, "RB_5G": 2, } ) func (x RadioBand) Enum() *RadioBand { p := new(RadioBand) *p = x return p } func (x RadioBand) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RadioBand) Descriptor() protoreflect.EnumDescriptor { return file_message_proto_enumTypes[1].Descriptor() } func (RadioBand) Type() protoreflect.EnumType { return &file_message_proto_enumTypes[1] } func (x RadioBand) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *RadioBand) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = RadioBand(num) return nil } // Deprecated: Use RadioBand.Descriptor instead. func (RadioBand) EnumDescriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{1} } type RadioHTMode int32 const ( RadioHTMode_RHT_20 RadioHTMode = 1 RadioHTMode_RHT_40 RadioHTMode = 2 RadioHTMode_RHT_40Minus RadioHTMode = 3 RadioHTMode_RHT_40Plus RadioHTMode = 4 RadioHTMode_RHT_80 RadioHTMode = 5 RadioHTMode_RHT_160 RadioHTMode = 6 RadioHTMode_RHT_160Plus RadioHTMode = 7 ) // Enum value maps for RadioHTMode. var ( RadioHTMode_name = map[int32]string{ 1: "RHT_20", 2: "RHT_40", 3: "RHT_40Minus", 4: "RHT_40Plus", 5: "RHT_80", 6: "RHT_160", 7: "RHT_160Plus", } RadioHTMode_value = map[string]int32{ "RHT_20": 1, "RHT_40": 2, "RHT_40Minus": 3, "RHT_40Plus": 4, "RHT_80": 5, "RHT_160": 6, "RHT_160Plus": 7, } ) func (x RadioHTMode) Enum() *RadioHTMode { p := new(RadioHTMode) *p = x return p } func (x RadioHTMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (RadioHTMode) Descriptor() protoreflect.EnumDescriptor { return file_message_proto_enumTypes[2].Descriptor() } func (RadioHTMode) Type() protoreflect.EnumType { return &file_message_proto_enumTypes[2] } func (x RadioHTMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *RadioHTMode) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = RadioHTMode(num) return nil } // Deprecated: Use RadioHTMode.Descriptor instead. func (RadioHTMode) EnumDescriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{2} } type CMDType int32 const ( CMDType_REBOOT CMDType = 1 CMDType_UPGRADE CMDType = 2 CMDType_SETACADDR CMDType = 4 // 解绑AP 和AC, AP 和AC 的绑定关系由配置下发时确定 CMDType_UNBIND CMDType = 5 // 下线用户支持 CMDType_KICK_USER CMDType = 6 // 配置设备名称 CMDType_SETHOSTNAME CMDType = 7 // 没有绑定的时候要求AP 断开和AC 的连接,重启查询AC 的流程 CMDType_KICK_AP CMDType = 8 // 启动扫描 CMDType_START_SCAN CMDType = 9 // 下发认证 CMDType_AUTH CMDType = 10 // 下线用户 CMDType_LOGOUT CMDType = 11 // 下线用户 CMDType_REBOOTAP CMDType = 12 CMDType_SHELL CMDType = 100 ) // Enum value maps for CMDType. var ( CMDType_name = map[int32]string{ 1: "REBOOT", 2: "UPGRADE", 4: "SETACADDR", 5: "UNBIND", 6: "KICK_USER", 7: "SETHOSTNAME", 8: "KICK_AP", 9: "START_SCAN", 10: "AUTH", 11: "LOGOUT", 12: "REBOOTAP", 100: "SHELL", } CMDType_value = map[string]int32{ "REBOOT": 1, "UPGRADE": 2, "SETACADDR": 4, "UNBIND": 5, "KICK_USER": 6, "SETHOSTNAME": 7, "KICK_AP": 8, "START_SCAN": 9, "AUTH": 10, "LOGOUT": 11, "REBOOTAP": 12, "SHELL": 100, } ) func (x CMDType) Enum() *CMDType { p := new(CMDType) *p = x return p } func (x CMDType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CMDType) Descriptor() protoreflect.EnumDescriptor { return file_message_proto_enumTypes[3].Descriptor() } func (CMDType) Type() protoreflect.EnumType { return &file_message_proto_enumTypes[3] } func (x CMDType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Do not use. func (x *CMDType) UnmarshalJSON(b []byte) error { num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) if err != nil { return err } *x = CMDType(num) return nil } // Deprecated: Use CMDType.Descriptor instead. func (CMDType) EnumDescriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{3} } type WanConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ipproto *string `protobuf:"bytes,1,req,name=ipproto" json:"ipproto,omitempty"` Ip *string `protobuf:"bytes,2,opt,name=ip" json:"ip,omitempty"` Netmask *string `protobuf:"bytes,3,opt,name=netmask" json:"netmask,omitempty"` Metric *int32 `protobuf:"varint,4,opt,name=metric" json:"metric,omitempty"` Gateway *string `protobuf:"bytes,5,opt,name=gateway" json:"gateway,omitempty"` Dns1 *string `protobuf:"bytes,6,opt,name=dns1" json:"dns1,omitempty"` Dns2 *string `protobuf:"bytes,7,opt,name=dns2" json:"dns2,omitempty"` } func (x *WanConfig) Reset() { *x = WanConfig{} mi := &file_message_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *WanConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*WanConfig) ProtoMessage() {} func (x *WanConfig) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WanConfig.ProtoReflect.Descriptor instead. func (*WanConfig) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{0} } func (x *WanConfig) GetIpproto() string { if x != nil && x.Ipproto != nil { return *x.Ipproto } return "" } func (x *WanConfig) GetIp() string { if x != nil && x.Ip != nil { return *x.Ip } return "" } func (x *WanConfig) GetNetmask() string { if x != nil && x.Netmask != nil { return *x.Netmask } return "" } func (x *WanConfig) GetMetric() int32 { if x != nil && x.Metric != nil { return *x.Metric } return 0 } func (x *WanConfig) GetGateway() string { if x != nil && x.Gateway != nil { return *x.Gateway } return "" } func (x *WanConfig) GetDns1() string { if x != nil && x.Dns1 != nil { return *x.Dns1 } return "" } func (x *WanConfig) GetDns2() string { if x != nil && x.Dns2 != nil { return *x.Dns2 } return "" } type WlanConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Band *RadioBand `protobuf:"varint,1,req,name=band,enum=RadioBand" json:"band,omitempty"` Ssid *string `protobuf:"bytes,2,req,name=ssid" json:"ssid,omitempty"` GbkEnable *int32 `protobuf:"varint,3,req,name=gbk_enable,json=gbkEnable,def=0" json:"gbk_enable,omitempty"` Encryption *string `protobuf:"bytes,4,req,name=encryption" json:"encryption,omitempty"` Key *string `protobuf:"bytes,5,opt,name=key" json:"key,omitempty"` Disabled *int32 `protobuf:"varint,6,req,name=disabled,def=0" json:"disabled,omitempty"` Vlan *int32 `protobuf:"varint,10,req,name=vlan,def=0" json:"vlan,omitempty"` Maxsta *int32 `protobuf:"varint,11,req,name=maxsta,def=0" json:"maxsta,omitempty"` Rejrssi *int32 `protobuf:"varint,12,req,name=rejrssi,def=-85" json:"rejrssi,omitempty"` Wmm *int32 `protobuf:"varint,13,req,name=wmm,def=1" json:"wmm,omitempty"` Isolate *int32 `protobuf:"varint,14,req,name=isolate,def=0" json:"isolate,omitempty"` Hide *int32 `protobuf:"varint,15,req,name=hide,def=0" json:"hide,omitempty"` Ieee80211R *int32 `protobuf:"varint,22,req,name=ieee80211r,def=0" json:"ieee80211r,omitempty"` AuthType *int32 `protobuf:"varint,25,opt,name=auth_type,json=authType" json:"auth_type,omitempty"` // 认证类型,将认证方式和ssid 关联 } // Default values for WlanConfig fields. const ( Default_WlanConfig_GbkEnable = int32(0) Default_WlanConfig_Disabled = int32(0) Default_WlanConfig_Vlan = int32(0) Default_WlanConfig_Maxsta = int32(0) Default_WlanConfig_Rejrssi = int32(-85) Default_WlanConfig_Wmm = int32(1) Default_WlanConfig_Isolate = int32(0) Default_WlanConfig_Hide = int32(0) Default_WlanConfig_Ieee80211R = int32(0) ) func (x *WlanConfig) Reset() { *x = WlanConfig{} mi := &file_message_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *WlanConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*WlanConfig) ProtoMessage() {} func (x *WlanConfig) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WlanConfig.ProtoReflect.Descriptor instead. func (*WlanConfig) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{1} } func (x *WlanConfig) GetBand() RadioBand { if x != nil && x.Band != nil { return *x.Band } return RadioBand_RB_2G } func (x *WlanConfig) GetSsid() string { if x != nil && x.Ssid != nil { return *x.Ssid } return "" } func (x *WlanConfig) GetGbkEnable() int32 { if x != nil && x.GbkEnable != nil { return *x.GbkEnable } return Default_WlanConfig_GbkEnable } func (x *WlanConfig) GetEncryption() string { if x != nil && x.Encryption != nil { return *x.Encryption } return "" } func (x *WlanConfig) GetKey() string { if x != nil && x.Key != nil { return *x.Key } return "" } func (x *WlanConfig) GetDisabled() int32 { if x != nil && x.Disabled != nil { return *x.Disabled } return Default_WlanConfig_Disabled } func (x *WlanConfig) GetVlan() int32 { if x != nil && x.Vlan != nil { return *x.Vlan } return Default_WlanConfig_Vlan } func (x *WlanConfig) GetMaxsta() int32 { if x != nil && x.Maxsta != nil { return *x.Maxsta } return Default_WlanConfig_Maxsta } func (x *WlanConfig) GetRejrssi() int32 { if x != nil && x.Rejrssi != nil { return *x.Rejrssi } return Default_WlanConfig_Rejrssi } func (x *WlanConfig) GetWmm() int32 { if x != nil && x.Wmm != nil { return *x.Wmm } return Default_WlanConfig_Wmm } func (x *WlanConfig) GetIsolate() int32 { if x != nil && x.Isolate != nil { return *x.Isolate } return Default_WlanConfig_Isolate } func (x *WlanConfig) GetHide() int32 { if x != nil && x.Hide != nil { return *x.Hide } return Default_WlanConfig_Hide } func (x *WlanConfig) GetIeee80211R() int32 { if x != nil && x.Ieee80211R != nil { return *x.Ieee80211R } return Default_WlanConfig_Ieee80211R } func (x *WlanConfig) GetAuthType() int32 { if x != nil && x.AuthType != nil { return *x.AuthType } return 0 } type PingWatchdog struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Enable *int32 `protobuf:"varint,1,req,name=enable" json:"enable,omitempty"` Target *string `protobuf:"bytes,2,opt,name=target" json:"target,omitempty"` PingInterval *int32 `protobuf:"varint,3,opt,name=ping_interval,json=pingInterval" json:"ping_interval,omitempty"` PingFailures *int32 `protobuf:"varint,4,opt,name=ping_failures,json=pingFailures" json:"ping_failures,omitempty"` PingTimeout *int32 `protobuf:"varint,5,opt,name=ping_timeout,json=pingTimeout" json:"ping_timeout,omitempty"` PingWatchdogAction *int32 `protobuf:"varint,6,opt,name=ping_watchdog_action,json=pingWatchdogAction,def=3" json:"ping_watchdog_action,omitempty"` } // Default values for PingWatchdog fields. const ( Default_PingWatchdog_PingWatchdogAction = int32(3) ) func (x *PingWatchdog) Reset() { *x = PingWatchdog{} mi := &file_message_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *PingWatchdog) String() string { return protoimpl.X.MessageStringOf(x) } func (*PingWatchdog) ProtoMessage() {} func (x *PingWatchdog) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PingWatchdog.ProtoReflect.Descriptor instead. func (*PingWatchdog) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{2} } func (x *PingWatchdog) GetEnable() int32 { if x != nil && x.Enable != nil { return *x.Enable } return 0 } func (x *PingWatchdog) GetTarget() string { if x != nil && x.Target != nil { return *x.Target } return "" } func (x *PingWatchdog) GetPingInterval() int32 { if x != nil && x.PingInterval != nil { return *x.PingInterval } return 0 } func (x *PingWatchdog) GetPingFailures() int32 { if x != nil && x.PingFailures != nil { return *x.PingFailures } return 0 } func (x *PingWatchdog) GetPingTimeout() int32 { if x != nil && x.PingTimeout != nil { return *x.PingTimeout } return 0 } func (x *PingWatchdog) GetPingWatchdogAction() int32 { if x != nil && x.PingWatchdogAction != nil { return *x.PingWatchdogAction } return Default_PingWatchdog_PingWatchdogAction } type CMD struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type *CMDType `protobuf:"varint,1,req,name=type,enum=CMDType" json:"type,omitempty"` Args *string `protobuf:"bytes,2,opt,name=args" json:"args,omitempty"` } func (x *CMD) Reset() { *x = CMD{} mi := &file_message_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *CMD) String() string { return protoimpl.X.MessageStringOf(x) } func (*CMD) ProtoMessage() {} func (x *CMD) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CMD.ProtoReflect.Descriptor instead. func (*CMD) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{3} } func (x *CMD) GetType() CMDType { if x != nil && x.Type != nil { return *x.Type } return CMDType_REBOOT } func (x *CMD) GetArgs() string { if x != nil && x.Args != nil { return *x.Args } return "" } type Echo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Sn *string `protobuf:"bytes,1,req,name=sn" json:"sn,omitempty"` ProductName *string `protobuf:"bytes,2,req,name=product_name,json=productName" json:"product_name,omitempty"` // 标识设备的唯一MAC Mac *string `protobuf:"bytes,3,opt,name=mac" json:"mac,omitempty"` Board *string `protobuf:"bytes,4,opt,name=board" json:"board,omitempty"` Hostname *string `protobuf:"bytes,5,opt,name=hostname" json:"hostname,omitempty"` // 运行时间 Uptime *string `protobuf:"bytes,6,opt,name=uptime" json:"uptime,omitempty"` UptimeSec *uint64 `protobuf:"varint,61,opt,name=uptime_sec,json=uptimeSec" json:"uptime_sec,omitempty"` Version *string `protobuf:"bytes,7,opt,name=version" json:"version,omitempty"` Apmode *APMode `protobuf:"varint,8,req,name=apmode,enum=APMode,def=1" json:"apmode,omitempty"` // 是否是第一次连接(要求下发配置) Newconnect *int32 `protobuf:"varint,9,req,name=newconnect,def=0" json:"newconnect,omitempty"` // 关键配置的MD5 值 ApnetworkMd5 *string `protobuf:"bytes,10,opt,name=apnetwork_md5,json=apnetworkMd5" json:"apnetwork_md5,omitempty"` Country *string `protobuf:"bytes,11,opt,name=country" json:"country,omitempty"` // CPU 占用率 Cpu *string `protobuf:"bytes,12,opt,name=cpu" json:"cpu,omitempty"` // 是否云端管理的 IsOnCloud *int32 `protobuf:"varint,13,opt,name=is_on_cloud,json=isOnCloud,def=0" json:"is_on_cloud,omitempty"` Username *string `protobuf:"bytes,14,opt,name=username" json:"username,omitempty"` // 通过设备的上下行总流量统计 Uploadspeed *uint64 `protobuf:"varint,21,opt,name=uploadspeed" json:"uploadspeed,omitempty"` Downloadspeed *uint64 `protobuf:"varint,22,opt,name=downloadspeed" json:"downloadspeed,omitempty"` Uploadbytes *uint64 `protobuf:"varint,23,opt,name=uploadbytes" json:"uploadbytes,omitempty"` Downloadbytes *uint64 `protobuf:"varint,24,opt,name=downloadbytes" json:"downloadbytes,omitempty"` Acaddr *string `protobuf:"bytes,25,req,name=acaddr" json:"acaddr,omitempty"` Mif *ManageInterface `protobuf:"bytes,50,req,name=mif" json:"mif,omitempty"` // 接口信息 Radioinfo []*RadioInfo `protobuf:"bytes,51,rep,name=radioinfo" json:"radioinfo,omitempty"` // 射频信息 Lanconfig *WanConfig `protobuf:"bytes,52,opt,name=lanconfig" json:"lanconfig,omitempty"` // lan 口配置 Pingwatchdog *PingWatchdog `protobuf:"bytes,53,opt,name=pingwatchdog" json:"pingwatchdog,omitempty"` // Ping 看门狗 Ssids []*WlanConfig `protobuf:"bytes,54,rep,name=ssids" json:"ssids,omitempty"` // ssid 配置 IptvSupport *int32 `protobuf:"varint,70,opt,name=iptvSupport" json:"iptvSupport,omitempty"` IptvEnable *int32 `protobuf:"varint,71,opt,name=iptvEnable" json:"iptvEnable,omitempty"` // 增加一个CPE 专用的信息上报,信道列表 CpeChannelsJson *string `protobuf:"bytes,100,opt,name=cpeChannelsJson" json:"cpeChannelsJson,omitempty"` } // Default values for Echo fields. const ( Default_Echo_Apmode = APMode_FIT_AP Default_Echo_Newconnect = int32(0) Default_Echo_IsOnCloud = int32(0) ) func (x *Echo) Reset() { *x = Echo{} mi := &file_message_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Echo) String() string { return protoimpl.X.MessageStringOf(x) } func (*Echo) ProtoMessage() {} func (x *Echo) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Echo.ProtoReflect.Descriptor instead. func (*Echo) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{4} } func (x *Echo) GetSn() string { if x != nil && x.Sn != nil { return *x.Sn } return "" } func (x *Echo) GetProductName() string { if x != nil && x.ProductName != nil { return *x.ProductName } return "" } func (x *Echo) GetMac() string { if x != nil && x.Mac != nil { return *x.Mac } return "" } func (x *Echo) GetBoard() string { if x != nil && x.Board != nil { return *x.Board } return "" } func (x *Echo) GetHostname() string { if x != nil && x.Hostname != nil { return *x.Hostname } return "" } func (x *Echo) GetUptime() string { if x != nil && x.Uptime != nil { return *x.Uptime } return "" } func (x *Echo) GetUptimeSec() uint64 { if x != nil && x.UptimeSec != nil { return *x.UptimeSec } return 0 } func (x *Echo) GetVersion() string { if x != nil && x.Version != nil { return *x.Version } return "" } func (x *Echo) GetApmode() APMode { if x != nil && x.Apmode != nil { return *x.Apmode } return Default_Echo_Apmode } func (x *Echo) GetNewconnect() int32 { if x != nil && x.Newconnect != nil { return *x.Newconnect } return Default_Echo_Newconnect } func (x *Echo) GetApnetworkMd5() string { if x != nil && x.ApnetworkMd5 != nil { return *x.ApnetworkMd5 } return "" } func (x *Echo) GetCountry() string { if x != nil && x.Country != nil { return *x.Country } return "" } func (x *Echo) GetCpu() string { if x != nil && x.Cpu != nil { return *x.Cpu } return "" } func (x *Echo) GetIsOnCloud() int32 { if x != nil && x.IsOnCloud != nil { return *x.IsOnCloud } return Default_Echo_IsOnCloud } func (x *Echo) GetUsername() string { if x != nil && x.Username != nil { return *x.Username } return "" } func (x *Echo) GetUploadspeed() uint64 { if x != nil && x.Uploadspeed != nil { return *x.Uploadspeed } return 0 } func (x *Echo) GetDownloadspeed() uint64 { if x != nil && x.Downloadspeed != nil { return *x.Downloadspeed } return 0 } func (x *Echo) GetUploadbytes() uint64 { if x != nil && x.Uploadbytes != nil { return *x.Uploadbytes } return 0 } func (x *Echo) GetDownloadbytes() uint64 { if x != nil && x.Downloadbytes != nil { return *x.Downloadbytes } return 0 } func (x *Echo) GetAcaddr() string { if x != nil && x.Acaddr != nil { return *x.Acaddr } return "" } func (x *Echo) GetMif() *ManageInterface { if x != nil { return x.Mif } return nil } func (x *Echo) GetRadioinfo() []*RadioInfo { if x != nil { return x.Radioinfo } return nil } func (x *Echo) GetLanconfig() *WanConfig { if x != nil { return x.Lanconfig } return nil } func (x *Echo) GetPingwatchdog() *PingWatchdog { if x != nil { return x.Pingwatchdog } return nil } func (x *Echo) GetSsids() []*WlanConfig { if x != nil { return x.Ssids } return nil } func (x *Echo) GetIptvSupport() int32 { if x != nil && x.IptvSupport != nil { return *x.IptvSupport } return 0 } func (x *Echo) GetIptvEnable() int32 { if x != nil && x.IptvEnable != nil { return *x.IptvEnable } return 0 } func (x *Echo) GetCpeChannelsJson() string { if x != nil && x.CpeChannelsJson != nil { return *x.CpeChannelsJson } return "" } type StaInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Mac *string `protobuf:"bytes,2,req,name=mac" json:"mac,omitempty"` Ip *string `protobuf:"bytes,3,opt,name=ip" json:"ip,omitempty"` Signal *int32 `protobuf:"varint,4,req,name=signal" json:"signal,omitempty"` Noise *int32 `protobuf:"varint,5,req,name=noise" json:"noise,omitempty"` Snr *int32 `protobuf:"varint,6,req,name=snr" json:"snr,omitempty"` Txrate *string `protobuf:"bytes,7,req,name=txrate" json:"txrate,omitempty"` Rxrate *string `protobuf:"bytes,8,req,name=rxrate" json:"rxrate,omitempty"` } func (x *StaInfo) Reset() { *x = StaInfo{} mi := &file_message_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *StaInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*StaInfo) ProtoMessage() {} func (x *StaInfo) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StaInfo.ProtoReflect.Descriptor instead. func (*StaInfo) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{5} } func (x *StaInfo) GetMac() string { if x != nil && x.Mac != nil { return *x.Mac } return "" } func (x *StaInfo) GetIp() string { if x != nil && x.Ip != nil { return *x.Ip } return "" } func (x *StaInfo) GetSignal() int32 { if x != nil && x.Signal != nil { return *x.Signal } return 0 } func (x *StaInfo) GetNoise() int32 { if x != nil && x.Noise != nil { return *x.Noise } return 0 } func (x *StaInfo) GetSnr() int32 { if x != nil && x.Snr != nil { return *x.Snr } return 0 } func (x *StaInfo) GetTxrate() string { if x != nil && x.Txrate != nil { return *x.Txrate } return "" } func (x *StaInfo) GetRxrate() string { if x != nil && x.Rxrate != nil { return *x.Rxrate } return "" } type WlanInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ssid *string `protobuf:"bytes,1,opt,name=ssid" json:"ssid,omitempty"` Stas []*StaInfo `protobuf:"bytes,2,rep,name=stas" json:"stas,omitempty"` } func (x *WlanInfo) Reset() { *x = WlanInfo{} mi := &file_message_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *WlanInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*WlanInfo) ProtoMessage() {} func (x *WlanInfo) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WlanInfo.ProtoReflect.Descriptor instead. func (*WlanInfo) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{6} } func (x *WlanInfo) GetSsid() string { if x != nil && x.Ssid != nil { return *x.Ssid } return "" } func (x *WlanInfo) GetStas() []*StaInfo { if x != nil { return x.Stas } return nil } type RadioInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Band *RadioBand `protobuf:"varint,1,req,name=band,enum=RadioBand" json:"band,omitempty"` Wlaninfo []*WlanInfo `protobuf:"bytes,2,rep,name=wlaninfo" json:"wlaninfo,omitempty"` // 基础三属性 Htmode *RadioHTMode `protobuf:"varint,3,req,name=htmode,enum=RadioHTMode,def=1" json:"htmode,omitempty"` Txpower *uint32 `protobuf:"varint,4,req,name=txpower,def=0" json:"txpower,omitempty"` Channel *uint32 `protobuf:"varint,5,req,name=channel,def=0" json:"channel,omitempty"` // 其他属性 Signal *int32 `protobuf:"varint,20,opt,name=signal" json:"signal,omitempty"` Noise *int32 `protobuf:"varint,21,opt,name=noise" json:"noise,omitempty"` Bitrate *string `protobuf:"bytes,22,opt,name=bitrate" json:"bitrate,omitempty"` // 增加字段 Maxsta *int32 `protobuf:"varint,23,opt,name=maxsta,def=0" json:"maxsta,omitempty"` Rejrssi *int32 `protobuf:"varint,24,opt,name=rejrssi,def=-85" json:"rejrssi,omitempty"` Country *string `protobuf:"bytes,25,opt,name=country" json:"country,omitempty"` EnableFils *int32 `protobuf:"varint,26,opt,name=enable_fils,json=enableFils,def=1" json:"enable_fils,omitempty"` Mac *string `protobuf:"bytes,27,opt,name=mac" json:"mac,omitempty"` } // Default values for RadioInfo fields. const ( Default_RadioInfo_Htmode = RadioHTMode_RHT_20 Default_RadioInfo_Txpower = uint32(0) Default_RadioInfo_Channel = uint32(0) Default_RadioInfo_Maxsta = int32(0) Default_RadioInfo_Rejrssi = int32(-85) Default_RadioInfo_EnableFils = int32(1) ) func (x *RadioInfo) Reset() { *x = RadioInfo{} mi := &file_message_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *RadioInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*RadioInfo) ProtoMessage() {} func (x *RadioInfo) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RadioInfo.ProtoReflect.Descriptor instead. func (*RadioInfo) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{7} } func (x *RadioInfo) GetBand() RadioBand { if x != nil && x.Band != nil { return *x.Band } return RadioBand_RB_2G } func (x *RadioInfo) GetWlaninfo() []*WlanInfo { if x != nil { return x.Wlaninfo } return nil } func (x *RadioInfo) GetHtmode() RadioHTMode { if x != nil && x.Htmode != nil { return *x.Htmode } return Default_RadioInfo_Htmode } func (x *RadioInfo) GetTxpower() uint32 { if x != nil && x.Txpower != nil { return *x.Txpower } return Default_RadioInfo_Txpower } func (x *RadioInfo) GetChannel() uint32 { if x != nil && x.Channel != nil { return *x.Channel } return Default_RadioInfo_Channel } func (x *RadioInfo) GetSignal() int32 { if x != nil && x.Signal != nil { return *x.Signal } return 0 } func (x *RadioInfo) GetNoise() int32 { if x != nil && x.Noise != nil { return *x.Noise } return 0 } func (x *RadioInfo) GetBitrate() string { if x != nil && x.Bitrate != nil { return *x.Bitrate } return "" } func (x *RadioInfo) GetMaxsta() int32 { if x != nil && x.Maxsta != nil { return *x.Maxsta } return Default_RadioInfo_Maxsta } func (x *RadioInfo) GetRejrssi() int32 { if x != nil && x.Rejrssi != nil { return *x.Rejrssi } return Default_RadioInfo_Rejrssi } func (x *RadioInfo) GetCountry() string { if x != nil && x.Country != nil { return *x.Country } return "" } func (x *RadioInfo) GetEnableFils() int32 { if x != nil && x.EnableFils != nil { return *x.EnableFils } return Default_RadioInfo_EnableFils } func (x *RadioInfo) GetMac() string { if x != nil && x.Mac != nil { return *x.Mac } return "" } type ManageInterface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ifname *string `protobuf:"bytes,1,req,name=ifname" json:"ifname,omitempty"` Ip *string `protobuf:"bytes,2,opt,name=ip" json:"ip,omitempty"` Mac *string `protobuf:"bytes,3,opt,name=mac" json:"mac,omitempty"` Netmask *string `protobuf:"bytes,4,opt,name=netmask" json:"netmask,omitempty"` Gateway *string `protobuf:"bytes,5,opt,name=gateway" json:"gateway,omitempty"` Dns1 *string `protobuf:"bytes,6,opt,name=dns1" json:"dns1,omitempty"` Dns2 *string `protobuf:"bytes,7,opt,name=dns2" json:"dns2,omitempty"` Ipproto *string `protobuf:"bytes,8,opt,name=ipproto" json:"ipproto,omitempty"` // dhcp static pppoe } func (x *ManageInterface) Reset() { *x = ManageInterface{} mi := &file_message_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *ManageInterface) String() string { return protoimpl.X.MessageStringOf(x) } func (*ManageInterface) ProtoMessage() {} func (x *ManageInterface) ProtoReflect() protoreflect.Message { mi := &file_message_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ManageInterface.ProtoReflect.Descriptor instead. func (*ManageInterface) Descriptor() ([]byte, []int) { return file_message_proto_rawDescGZIP(), []int{8} } func (x *ManageInterface) GetIfname() string { if x != nil && x.Ifname != nil { return *x.Ifname } return "" } func (x *ManageInterface) GetIp() string { if x != nil && x.Ip != nil { return *x.Ip } return "" } func (x *ManageInterface) GetMac() string { if x != nil && x.Mac != nil { return *x.Mac } return "" } func (x *ManageInterface) GetNetmask() string { if x != nil && x.Netmask != nil { return *x.Netmask } return "" } func (x *ManageInterface) GetGateway() string { if x != nil && x.Gateway != nil { return *x.Gateway } return "" } func (x *ManageInterface) GetDns1() string { if x != nil && x.Dns1 != nil { return *x.Dns1 } return "" } func (x *ManageInterface) GetDns2() string { if x != nil && x.Dns2 != nil { return *x.Dns2 } return "" } func (x *ManageInterface) GetIpproto() string { if x != nil && x.Ipproto != nil { return *x.Ipproto } return "" } var File_message_proto protoreflect.FileDescriptor var file_message_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa9, 0x01, 0x0a, 0x09, 0x57, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x70, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x07, 0x69, 0x70, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6e, 0x73, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x6e, 0x73, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6e, 0x73, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x6e, 0x73, 0x32, 0x22, 0x8d, 0x03, 0x0a, 0x0a, 0x57, 0x6c, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x04, 0x62, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x42, 0x61, 0x6e, 0x64, 0x52, 0x04, 0x62, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x04, 0x73, 0x73, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0a, 0x67, 0x62, 0x6b, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x09, 0x67, 0x62, 0x6b, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x15, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x0a, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x12, 0x19, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x73, 0x74, 0x61, 0x18, 0x0b, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x73, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x6a, 0x72, 0x73, 0x73, 0x69, 0x18, 0x0c, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x03, 0x2d, 0x38, 0x35, 0x52, 0x07, 0x72, 0x65, 0x6a, 0x72, 0x73, 0x73, 0x69, 0x12, 0x13, 0x0a, 0x03, 0x77, 0x6d, 0x6d, 0x18, 0x0d, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x03, 0x77, 0x6d, 0x6d, 0x12, 0x1b, 0x0a, 0x07, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x04, 0x68, 0x69, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x04, 0x68, 0x69, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0a, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x31, 0x72, 0x18, 0x16, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x0a, 0x69, 0x65, 0x65, 0x65, 0x38, 0x30, 0x32, 0x31, 0x31, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0xe0, 0x01, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x05, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x33, 0x0a, 0x14, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x33, 0x52, 0x12, 0x70, 0x69, 0x6e, 0x67, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x0a, 0x03, 0x43, 0x4d, 0x44, 0x12, 0x1c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x08, 0x2e, 0x43, 0x4d, 0x44, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x8c, 0x07, 0x0a, 0x04, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x73, 0x6e, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x02, 0x73, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x06, 0x61, 0x70, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x07, 0x2e, 0x41, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x06, 0x46, 0x49, 0x54, 0x5f, 0x41, 0x50, 0x52, 0x06, 0x61, 0x70, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x18, 0x09, 0x20, 0x02, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x70, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6d, 0x64, 0x35, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x70, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4d, 0x64, 0x35, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x70, 0x75, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x6f, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x09, 0x69, 0x73, 0x4f, 0x6e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x61, 0x64, 0x64, 0x72, 0x18, 0x19, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x61, 0x64, 0x64, 0x72, 0x12, 0x22, 0x0a, 0x03, 0x6d, 0x69, 0x66, 0x18, 0x32, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x03, 0x6d, 0x69, 0x66, 0x12, 0x28, 0x0a, 0x09, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x57, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x12, 0x21, 0x0a, 0x05, 0x73, 0x73, 0x69, 0x64, 0x73, 0x18, 0x36, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x57, 0x6c, 0x61, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x73, 0x73, 0x69, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x70, 0x74, 0x76, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x46, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x74, 0x76, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x70, 0x74, 0x76, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x47, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x69, 0x70, 0x74, 0x76, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x70, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x70, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0x9b, 0x01, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x02, 0x20, 0x02, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x02, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x18, 0x05, 0x20, 0x02, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x72, 0x18, 0x06, 0x20, 0x02, 0x28, 0x05, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x78, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x72, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x78, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x72, 0x78, 0x72, 0x61, 0x74, 0x65, 0x22, 0x3c, 0x0a, 0x08, 0x57, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x73, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x73, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x53, 0x74, 0x61, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x73, 0x74, 0x61, 0x73, 0x22, 0x8c, 0x03, 0x0a, 0x09, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x04, 0x62, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x42, 0x61, 0x6e, 0x64, 0x52, 0x04, 0x62, 0x61, 0x6e, 0x64, 0x12, 0x25, 0x0a, 0x08, 0x77, 0x6c, 0x61, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x57, 0x6c, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x77, 0x6c, 0x61, 0x6e, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x06, 0x68, 0x74, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x02, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x48, 0x54, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x06, 0x52, 0x48, 0x54, 0x5f, 0x32, 0x30, 0x52, 0x06, 0x68, 0x74, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x07, 0x74, 0x78, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x04, 0x20, 0x02, 0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x74, 0x78, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x02, 0x28, 0x0d, 0x3a, 0x01, 0x30, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x69, 0x74, 0x72, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x73, 0x74, 0x61, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x30, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x73, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x72, 0x65, 0x6a, 0x72, 0x73, 0x73, 0x69, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x03, 0x2d, 0x38, 0x35, 0x52, 0x07, 0x72, 0x65, 0x6a, 0x72, 0x73, 0x73, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x22, 0x0a, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x3a, 0x01, 0x31, 0x52, 0x0a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x22, 0xc1, 0x01, 0x0a, 0x0f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x61, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x61, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x73, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6e, 0x73, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x6e, 0x73, 0x31, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6e, 0x73, 0x32, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x6e, 0x73, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x70, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x70, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2a, 0x3b, 0x0a, 0x06, 0x41, 0x50, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x49, 0x54, 0x5f, 0x41, 0x50, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x54, 0x5f, 0x41, 0x50, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x10, 0x04, 0x2a, 0x21, 0x0a, 0x09, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x42, 0x5f, 0x32, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x42, 0x5f, 0x35, 0x47, 0x10, 0x02, 0x2a, 0x70, 0x0a, 0x0b, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x48, 0x54, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x48, 0x54, 0x5f, 0x32, 0x30, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x48, 0x54, 0x5f, 0x34, 0x30, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x48, 0x54, 0x5f, 0x34, 0x30, 0x4d, 0x69, 0x6e, 0x75, 0x73, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x48, 0x54, 0x5f, 0x34, 0x30, 0x50, 0x6c, 0x75, 0x73, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x48, 0x54, 0x5f, 0x38, 0x30, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x48, 0x54, 0x5f, 0x31, 0x36, 0x30, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x48, 0x54, 0x5f, 0x31, 0x36, 0x30, 0x50, 0x6c, 0x75, 0x73, 0x10, 0x07, 0x2a, 0xa9, 0x01, 0x0a, 0x07, 0x43, 0x4d, 0x44, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x54, 0x41, 0x43, 0x41, 0x44, 0x44, 0x52, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x4e, 0x42, 0x49, 0x4e, 0x44, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x49, 0x43, 0x4b, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x45, 0x54, 0x48, 0x4f, 0x53, 0x54, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x4b, 0x49, 0x43, 0x4b, 0x5f, 0x41, 0x50, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x48, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x47, 0x4f, 0x55, 0x54, 0x10, 0x0b, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x41, 0x50, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x48, 0x45, 0x4c, 0x4c, 0x10, 0x64, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, } var ( file_message_proto_rawDescOnce sync.Once file_message_proto_rawDescData = file_message_proto_rawDesc ) func file_message_proto_rawDescGZIP() []byte { file_message_proto_rawDescOnce.Do(func() { file_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_message_proto_rawDescData) }) return file_message_proto_rawDescData } var file_message_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_message_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_message_proto_goTypes = []any{ (APMode)(0), // 0: APMode (RadioBand)(0), // 1: RadioBand (RadioHTMode)(0), // 2: RadioHTMode (CMDType)(0), // 3: CMDType (*WanConfig)(nil), // 4: WanConfig (*WlanConfig)(nil), // 5: WlanConfig (*PingWatchdog)(nil), // 6: PingWatchdog (*CMD)(nil), // 7: CMD (*Echo)(nil), // 8: Echo (*StaInfo)(nil), // 9: StaInfo (*WlanInfo)(nil), // 10: WlanInfo (*RadioInfo)(nil), // 11: RadioInfo (*ManageInterface)(nil), // 12: ManageInterface } var file_message_proto_depIdxs = []int32{ 1, // 0: WlanConfig.band:type_name -> RadioBand 3, // 1: CMD.type:type_name -> CMDType 0, // 2: Echo.apmode:type_name -> APMode 12, // 3: Echo.mif:type_name -> ManageInterface 11, // 4: Echo.radioinfo:type_name -> RadioInfo 4, // 5: Echo.lanconfig:type_name -> WanConfig 6, // 6: Echo.pingwatchdog:type_name -> PingWatchdog 5, // 7: Echo.ssids:type_name -> WlanConfig 9, // 8: WlanInfo.stas:type_name -> StaInfo 1, // 9: RadioInfo.band:type_name -> RadioBand 10, // 10: RadioInfo.wlaninfo:type_name -> WlanInfo 2, // 11: RadioInfo.htmode:type_name -> RadioHTMode 12, // [12:12] is the sub-list for method output_type 12, // [12:12] is the sub-list for method input_type 12, // [12:12] is the sub-list for extension type_name 12, // [12:12] is the sub-list for extension extendee 0, // [0:12] is the sub-list for field type_name } func init() { file_message_proto_init() } func file_message_proto_init() { if File_message_proto != nil { return } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_message_proto_rawDesc, NumEnums: 4, NumMessages: 9, NumExtensions: 0, NumServices: 0, }, GoTypes: file_message_proto_goTypes, DependencyIndexes: file_message_proto_depIdxs, EnumInfos: file_message_proto_enumTypes, MessageInfos: file_message_proto_msgTypes, }.Build() File_message_proto = out.File file_message_proto_rawDesc = nil file_message_proto_goTypes = nil file_message_proto_depIdxs = nil }