From 6687dcb24659c627cad5cdd831372cfc5246c14d Mon Sep 17 00:00:00 2001 From: Elias Wilken Date: Mon, 19 Jul 2021 02:52:19 +0200 Subject: [PATCH] update to `2bc83694-2dec-48c8-9061-88b86cdd5d89.uterm.release` - add new requests & responses: `RestartControl`, `Fuse`, `DishGetObstructionMap`, `TransceiverGetTelemetry`, - add `temp` field to `WifiNetworkInterface` - add `api_version` field to `Response` - add `unstow` field to `DishStowRequest` - add `initial_satellite_id`, `initial_gateway_id` & `on_backup_beam` fields to `DishGetContextResponse` - add `apply_setup_complete`, `mac_wan` , `apply_mac_wan` , `mac_lan` , `apply_mac_lan` , `mac_lan_2ghz` , `apply_mac_lan_2ghz` , `mac_lan_5ghz` , `apply_mac_lan_5ghz` & `device_id` fields to `WifiConfig` - add `seconds_since_last_15s_outage`, `seconds_since_last_60s_outage` & `seconds_since_last_300s_outage` fields to `PingMetrics` --- Cargo.toml | 2 +- codegen/static/device.protoset | Bin 22183 -> 25355 bytes examples/try_out_all_requests.rs | 110 +++++++--------------- proto/spacex/api/device/common.proto | 1 + proto/spacex/api/device/device.proto | 21 +++++ proto/spacex/api/device/dish.proto | 14 +++ proto/spacex/api/device/transceiver.proto | 36 +++++++ proto/spacex/api/device/wifi.proto | 3 + proto/spacex/api/device/wifi_config.proto | 11 ++- 9 files changed, 120 insertions(+), 78 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 891449e..32cefcc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "starlink" -version = "0.2.0" +version = "0.3.0" authors = ["Elias Wilken "] edition = "2018" description = "Rust client implementation to the gRPC endpoint exposed by the SpaceX Starlink user terminal" diff --git a/codegen/static/device.protoset b/codegen/static/device.protoset index bc391fd2960546f93910c0022169d106d1ec9f67..d9e48ba62df2fde7962911a413f10de87ae91d66 100644 GIT binary patch delta 3183 zcma);TWlOf7KZ7Wi9J)E@gzOIlpWs~Y!gCAYzLEF7IL$fkX1}V&p2FGsMOO_9=Fod z-R_GoNNC7%c|k-%{e-mpkX8`pExzf30ZZVMR-(7y z+sxj?m1I~%zmXbas6#h(Pgf1%svb2A-J?XW;xu1Hj zd&D0T0?@;#-7-l<)z0`fsZh0!5#LMJGLM3>#kY@wF?_7;SxI^={3QEKq9Ko>cD8Hc zh;z^?{go1SjgNZqPZ z{5i`=PANp{sYsjw4RW4qta|C5HjlqxbVA9-G&9OY6u(0T3uIa14xPahPLJb(~{)#g>xqz3+q zfjK4PEKdoGd^^f(zT;5SBO25uE3~Tu%0>1mFhiN$jk;W_S!UHGK4i%#6W6djLd`1v zS}b3P^jRjCK>WQ~mG44@r3!IeS0^@A&yc!WBh?E2M!4jcDhf!aK$%f%)0N<0dv}AE zVnWH=mVF9NH|Gc%)`YfJ+I)zxJNU0(;O%K+Vpb{KV4Ti?n*FfOO$nbO?I`%uACof`Gl<39>~ zhtQfG`cS6UfSUG5U32kIf=kz!Wkz$^;{2JoEA5VBRf|_E$fOO_;;#nRWkt+?8%&EEoGwE01y93lR6H6=R16*M%BGWT z8!PZRJopo7R^2wJN8>+>%*9ez?!8xP$la)wbso zNf9ilW>qv!Sw+-zLT}?q7I({#_@I@EiDYktHHUQPo%Ei ziu!`XeO=+UzOT}WH(JAM!+Iil81)C|M?3aTLjC%l3N0*yZ$jyb26IU_HF`pIz41vG zngjq@xD@u?Gq&ne*xCn($mb{;fMp7!`^VOtI=EBs#)SY0Pv8EpRN~V=hTVJKmlEf? z!Yg;ZyREZ~@(x^}R0n=Lmg&LY5ynmM(2<@AMVP0AHTsi3c#F~=@sS`;qST!4QhcK| zc&gY_cmST)U@is!-2dl+GYD7V21D2ow$|=2FyU?dK|Z*2uqSx;zSg~4UTF&-?m6oRKa+QzoHpFsTXrU=c1JR2B? zdV|st99%k*3NKE6CMEuXgO?6GG&G2y7j&2kjtiGDxFbosQVIgoX<-RJIiRIFXSYo7 z*+V`1HzruzgSN=OREr#L)(pC%0(|1-xt4`abwx$cQgiG;oId*aPA z{nz^qX=LI5$n-><>3z+4Y+B%EsSb08UQTu8P+L<8728pky@r38>TTKGjXF0bjbHzZ O7b!BsOlO75#0_Fm_LM>?mvvV-F1Okv%vn(~!0Ro~EvjI2F1(RDno3mp+BLM+blYUDY zlVwd9ldww+vo}E50R*KL3J8-s0~wPoLNl|0LSh87az|nTvqDL00ka@Wm;|%ePZ0(K P9SR$hFGLozG*;IP;?Guo diff --git a/examples/try_out_all_requests.rs b/examples/try_out_all_requests.rs index 6d5510f..5e6d21e 100644 --- a/examples/try_out_all_requests.rs +++ b/examples/try_out_all_requests.rs @@ -4,9 +4,11 @@ use starlink::proto::space_x::api::device::{ AuthenticateRequest, DishEmcRequest, DishGetContextRequest, + DishGetObstructionMapRequest, DishStowRequest, EnableFlowRequest, FactoryResetRequest, + FuseRequest, GetDeviceInfoRequest, GetHeapDumpRequest, GetHistoryRequest, @@ -19,11 +21,13 @@ use starlink::proto::space_x::api::device::{ PingHostRequest, RebootRequest, Request, + RestartControlRequest, SetSkuRequest, SetTrustedKeysRequest, SignedData, SpeedTestRequest, TransceiverGetStatusRequest, + TransceiverGetTelemetryRequest, TransceiverIfLoopbackTestRequest, UpdateRequest, WifiGetClientsRequest, @@ -36,10 +40,12 @@ use starlink::proto::space_x::api::device::{ // AuthenticateRequest - // DishEmcRequest - -// DishGetContextRequest - working +// DishGetContextRequest - previously working, now permission denied +// DishGetObstructionMapRequest - working // DishStowRequest - // EnableFlowRequest - // FactoryResetRequest - +// FuseRequest - unimplemented // GetDeviceInfoRequest - working // GetHeapDumpRequest - unimplemented // GetHistoryRequest - working @@ -51,12 +57,13 @@ use starlink::proto::space_x::api::device::{ // GetStatusRequest - working // PingHostRequest - unimplemented // RebootRequest - working -// Request - +// RestartControlRequest - unimplemented // SetSkuRequest - // SetTrustedKeysRequest - // SignedData - // SpeedTestRequest - unimplemented // TransceiverGetStatusRequest - unimplemented +// TransceiverGetTelemetryRequest - unimplemented // TransceiverIfLoopbackTestRequest - // UpdateRequest - unimplemented // WifiGetClientsRequest - unimplemented @@ -74,47 +81,21 @@ async fn main() -> Result<(), Box> { // id: None, // epoch_id: None, // target_id: None, - // request: Some(request::Request::GetDeviceInfo(GetDeviceInfoRequest {})), + // request: Some(request::Request::DishGetObstructionMap(DishGetObstructionMapRequest {})), // }); - // let response = client.handle(request).await?; - // dbg!(response); - // GetDeviceInfoResponse { - // device_info: Some( - // DeviceInfo { - // id: Some( - // "", - // ), - // hardware_version: Some( - // "rev1_pre_production", - // ), - // software_version: Some( - // "1f86ec34-34ea-4e7a-9758-3842e72422fb.release", - // ), - // country_code: Some( - // "DE", - // ), - // utc_offset_s: Some( - // 1, - // ), - // }, - // ), - // } - // let request = tonic::Request::new(Request { // id: None, // epoch_id: None, // target_id: None, - // request: Some(request::Request::DishGetContext(DishGetContextRequest {})), + // request: Some(request::Request::GetDeviceInfo(GetDeviceInfoRequest {})), // }); - // let response = client.handle(request).await?; - // dbg!(response); - // DishGetContextResponse { + // GetDeviceInfoResponse { // device_info: Some( // DeviceInfo { // id: Some( @@ -134,40 +115,16 @@ async fn main() -> Result<(), Box> { // ), // }, // ), - // device_state: Some( - // DeviceState { - // uptime_s: Some( - // 25298, - // ), - // }, - // ), - // obstruction_fraction: Some( - // 0.001093006, - // ), - // obstruction_valid_s: Some( - // 20723.25, - // ), - // cell_id: Some( - // 314900, - // ), - // pop_rack_id: Some( - // 18, - // ), - // seconds_to_slot_end: Some( - // 12.513584, - // ), // } - // let request = tonic::Request::new(Request { - // id: None, - // epoch_id: None, - // target_id: None, - // request: Some(request::Request::GetStatus(GetStatusRequest {})), - // }); - - // let response = client.handle(request).await?; - - // dbg!(response); + let request = tonic::Request::new(Request { + id: None, + epoch_id: None, + target_id: None, + request: Some(request::Request::GetStatus(GetStatusRequest {})), + }); + let response = client.handle(request).await?; + dbg!(response); // DishGetStatusResponse { // device_info: Some( @@ -179,7 +136,7 @@ async fn main() -> Result<(), Box> { // "rev1_pre_production", // ), // software_version: Some( - // "1f86ec34-34ea-4e7a-9758-3842e72422fb.release", + // "2bc83694-2dec-48c8-9061-88b86cdd5d89.uterm.release", // ), // country_code: Some( // "DE", @@ -192,7 +149,7 @@ async fn main() -> Result<(), Box> { // device_state: Some( // DeviceState { // uptime_s: Some( - // 26115, + // 765906, // ), // }, // ), @@ -210,30 +167,30 @@ async fn main() -> Result<(), Box> { // }, // ), // snr: Some( - // 6.0, + // 9.0, // ), // seconds_to_first_nonempty_slot: None, // pop_ping_drop_rate: None, // downlink_throughput_bps: Some( - // 8584784.0, + // 176773.14, // ), // uplink_throughput_bps: Some( - // 311510.97, + // 102408.125, // ), // pop_ping_latency_ms: Some( - // 38.857143, + // 37.52381, // ), // obstruction_stats: Some( // DishObstructionStats { // currently_obstructed: None, // fraction_obstructed: Some( - // 0.0010516815, + // 0.00081779656, // ), // last_24h_obstructed_s: Some( - // 72.0, + // 15.0, // ), // valid_s: Some( - // 21260.67, + // 765202.0, // ), // wedge_fraction_obstructed: [ // 1.0, @@ -244,14 +201,13 @@ async fn main() -> Result<(), Box> { // 0.0, // 0.0, // 0.0, - // 0.0, + // 0.006051556, // 0.0, // 0.0, // 0.0, // ], // wedge_abs_fraction_obstructed: [ - // 0.0010516815, - // 0.0, + // 0.000026709631, // 0.0, // 0.0, // 0.0, @@ -259,13 +215,15 @@ async fn main() -> Result<(), Box> { // 0.0, // 0.0, // 0.0, + // 0.00033165555, // 0.0, // 0.0, // 0.0, // ], // }, // ), - // } + // stow_requested: None, + // }, Ok(()) } diff --git a/proto/spacex/api/device/common.proto b/proto/spacex/api/device/common.proto index 1f3c614..532ec8b 100644 --- a/proto/spacex/api/device/common.proto +++ b/proto/spacex/api/device/common.proto @@ -91,6 +91,7 @@ message WifiNetworkInterface { optional .SpaceX.API.Device.WifiNetworkInterface.ThermalStatus thermal_status = 1 [json_name="thermalStatus"]; message ThermalStatus { optional uint32 level = 1 [json_name="level"]; + optional uint32 temp = 2 [json_name="temp"]; } } diff --git a/proto/spacex/api/device/device.proto b/proto/spacex/api/device/device.proto index cbb9d2b..9d36c53 100644 --- a/proto/spacex/api/device/device.proto +++ b/proto/spacex/api/device/device.proto @@ -48,11 +48,15 @@ message Request { .SpaceX.API.Device.UpdateRequest update = 1014 [json_name="update"]; .SpaceX.API.Device.GetLocationRequest get_location = 1017 [json_name="getLocation"]; .SpaceX.API.Device.GetHeapDumpRequest get_heap_dump = 1019 [json_name="getHeapDump"]; + .SpaceX.API.Device.RestartControlRequest restart_control = 1020 [json_name="restartControl"]; + .SpaceX.API.Device.FuseRequest fuse = 1021 [json_name="fuse"]; .SpaceX.API.Device.DishStowRequest dish_stow = 2002 [json_name="dishStow"]; .SpaceX.API.Device.DishGetContextRequest dish_get_context = 2003 [json_name="dishGetContext"]; + .SpaceX.API.Device.DishGetObstructionMapRequest dish_get_obstruction_map = 2008 [json_name="dishGetObstructionMap"]; .SpaceX.API.Device.DishEmcRequest dish_emc = 2007 [json_name="dishEmc"]; .SpaceX.API.Device.TransceiverIFLoopbackTestRequest transceiver_if_loopback_test = 4001 [json_name="transceiverIfLoopbackTest"]; .SpaceX.API.Device.TransceiverGetStatusRequest transceiver_get_status = 4003 [json_name="transceiverGetStatus"]; + .SpaceX.API.Device.TransceiverGetTelemetryRequest transceiver_get_telemetry = 4004 [json_name="transceiverGetTelemetry"]; .SpaceX.API.Device.WifiGetClientsRequest wifi_get_clients = 3002 [json_name="wifiGetClients"]; .SpaceX.API.Device.WifiGetDiagnosticsRequest wifi_get_diagnostics = 3008 [json_name="wifiGetDiagnostics"]; .SpaceX.API.Device.WifiGetPingMetricsRequest wifi_get_ping_metrics = 3007 [json_name="wifiGetPingMetrics"]; @@ -65,6 +69,7 @@ message Request { message Response { optional uint64 id = 1 [json_name="id"]; optional .SpaceX.API.Status.Status status = 2 [json_name="status"]; + optional uint64 api_version = 3 [json_name="apiVersion"]; oneof response { .SpaceX.API.Device.GetNextIdResponse get_next_id = 1006 [json_name="getNextId"]; .SpaceX.API.Device.EnableFlowResponse enable_flow = 1018 [json_name="enableFlow"]; @@ -81,14 +86,18 @@ message Response { .SpaceX.API.Device.UpdateResponse update = 1014 [json_name="update"]; .SpaceX.API.Device.GetLocationResponse get_location = 1017 [json_name="getLocation"]; .SpaceX.API.Device.GetHeapDumpResponse get_heap_dump = 1019 [json_name="getHeapDump"]; + .SpaceX.API.Device.RestartControlResponse restart_control = 1020 [json_name="restartControl"]; + .SpaceX.API.Device.FuseResponse fuse = 1021 [json_name="fuse"]; .SpaceX.API.Device.DishAuthenticateResponse dish_authenticate = 2005 [json_name="dishAuthenticate"]; .SpaceX.API.Device.DishGetContextResponse dish_get_context = 2003 [json_name="dishGetContext"]; .SpaceX.API.Device.DishGetHistoryResponse dish_get_history = 2006 [json_name="dishGetHistory"]; .SpaceX.API.Device.DishGetStatusResponse dish_get_status = 2004 [json_name="dishGetStatus"]; + .SpaceX.API.Device.DishGetObstructionMapResponse dish_get_obstruction_map = 2008 [json_name="dishGetObstructionMap"]; .SpaceX.API.Device.DishStowResponse dish_stow = 2002 [json_name="dishStow"]; .SpaceX.API.Device.DishEmcResponse dish_emc = 2007 [json_name="dishEmc"]; .SpaceX.API.Device.TransceiverIFLoopbackTestResponse transceiver_if_loopback_test = 4001 [json_name="transceiverIfLoopbackTest"]; .SpaceX.API.Device.TransceiverGetStatusResponse transceiver_get_status = 4003 [json_name="transceiverGetStatus"]; + .SpaceX.API.Device.TransceiverGetTelemetryResponse transceiver_get_telemetry = 4004 [json_name="transceiverGetTelemetry"]; .SpaceX.API.Device.WifiAuthenticateResponse wifi_authenticate = 3005 [json_name="wifiAuthenticate"]; .SpaceX.API.Device.WifiGetClientsResponse wifi_get_clients = 3002 [json_name="wifiGetClients"]; .SpaceX.API.Device.WifiGetDiagnosticsResponse wifi_get_diagnostics = 3008 [json_name="wifiGetDiagnostics"]; @@ -122,6 +131,12 @@ message FactoryResetRequest { message FactoryResetResponse { } +message FuseRequest { +} + +message FuseResponse { +} + message GetHistoryRequest { } @@ -210,6 +225,12 @@ message UpdateRequest { message UpdateResponse { } +message RestartControlRequest { +} + +message RestartControlResponse { +} + message GetNetworkInterfacesRequest { } diff --git a/proto/spacex/api/device/dish.proto b/proto/spacex/api/device/dish.proto index 6509d23..4dc03be 100644 --- a/proto/spacex/api/device/dish.proto +++ b/proto/spacex/api/device/dish.proto @@ -7,6 +7,7 @@ option go_package = "spacex.com/api/device"; import "spacex/api/device/common.proto"; message DishStowRequest { + optional bool unstow = 1 [json_name="unstow"]; } message DishStowResponse { @@ -22,6 +23,9 @@ message DishGetContextResponse { optional float obstruction_valid_s = 3 [json_name="obstructionValidS"]; optional uint32 cell_id = 4 [json_name="cellId"]; optional uint32 pop_rack_id = 5 [json_name="popRackId"]; + optional uint32 initial_satellite_id = 8 [json_name="initialSatelliteId"]; + optional uint32 initial_gateway_id = 9 [json_name="initialGatewayId"]; + optional bool on_backup_beam = 10 [json_name="onBackupBeam"]; optional float seconds_to_slot_end = 6 [json_name="secondsToSlotEnd"]; } @@ -48,6 +52,16 @@ message DishGetStatusResponse { optional float uplink_throughput_bps = 1008 [json_name="uplinkThroughputBps"]; optional float pop_ping_latency_ms = 1009 [json_name="popPingLatencyMs"]; optional .SpaceX.API.Device.DishObstructionStats obstruction_stats = 1004 [json_name="obstructionStats"]; + optional bool stow_requested = 1010 [json_name="stowRequested"]; +} + +message DishGetObstructionMapRequest { +} + +message DishGetObstructionMapResponse { + optional uint32 num_rows = 1 [json_name="numRows"]; + optional uint32 num_cols = 2 [json_name="numCols"]; + repeated float snr = 3 [json_name="snr"]; } message DishAlerts { diff --git a/proto/spacex/api/device/transceiver.proto b/proto/spacex/api/device/transceiver.proto index cc407df..d88f373 100644 --- a/proto/spacex/api/device/transceiver.proto +++ b/proto/spacex/api/device/transceiver.proto @@ -39,6 +39,42 @@ message TransceiverFaults { optional bool dc_voltage_fault = 3 [json_name="dcVoltageFault"]; } +message TransceiverGetTelemetryRequest { +} + +message TransceiverGetTelemetryResponse { + optional uint32 antenna_pointing_mode = 1001 [json_name="antennaPointingMode"]; + optional float antenna_pitch = 1002 [json_name="antennaPitch"]; + optional float antenna_roll = 1003 [json_name="antennaRoll"]; + optional float antenna_rx_theta = 1004 [json_name="antennaRxTheta"]; + optional float antenna_true_heading = 1005 [json_name="antennaTrueHeading"]; + optional uint32 rx_channel = 1006 [json_name="rxChannel"]; + optional uint32 current_cell_id = 1007 [json_name="currentCellId"]; + optional float seconds_until_slot_end = 1008 [json_name="secondsUntilSlotEnd"]; + optional float wb_rssi_peak_mag_db = 1009 [json_name="wbRssiPeakMagDb"]; + optional float pop_ping_drop_rate = 1010 [json_name="popPingDropRate"]; + optional float snr_db = 1011 [json_name="snrDb"]; + optional float l1_snr_avg_db = 1012 [json_name="l1SnrAvgDb"]; + optional float l1_snr_min_db = 1013 [json_name="l1SnrMinDb"]; + optional float l1_snr_max_db = 1014 [json_name="l1SnrMaxDb"]; + optional uint32 lmac_satellite_id = 1015 [json_name="lmacSatelliteId"]; + optional uint32 target_satellite_id = 1016 [json_name="targetSatelliteId"]; + optional uint32 grant_mcs = 1017 [json_name="grantMcs"]; + optional float grant_symbols_avg = 1018 [json_name="grantSymbolsAvg"]; + optional uint32 ded_grant = 1019 [json_name="dedGrant"]; + optional uint32 mobility_proactive_slot_change = 1020 [json_name="mobilityProactiveSlotChange"]; + optional uint32 mobility_reactive_slot_change = 1021 [json_name="mobilityReactiveSlotChange"]; + optional uint32 rfp_total_syn_failed = 1022 [json_name="rfpTotalSynFailed"]; + optional uint32 num_out_of_seq = 1023 [json_name="numOutOfSeq"]; + optional uint32 num_ulmap_drop = 1024 [json_name="numUlmapDrop"]; + optional float current_seconds_of_schedule = 1025 [json_name="currentSecondsOfSchedule"]; + optional uint32 send_label_switch_to_ground_failed_calls = 1026 [json_name="sendLabelSwitchToGroundFailedCalls"]; + optional double ema_velocity_x = 1027 [json_name="emaVelocityX"]; + optional double ema_velocity_y = 1028 [json_name="emaVelocityY"]; + optional double ema_velocity_z = 1029 [json_name="emaVelocityZ"]; + optional float ce_rssi_db = 1030 [json_name="ceRssiDb"]; +} + enum TransceiverModulatorState { MODSTATE_UNKNOWN = 0; MODSTATE_ENABLED = 1; diff --git a/proto/spacex/api/device/wifi.proto b/proto/spacex/api/device/wifi.proto index bf2f7a3..3d4fb19 100644 --- a/proto/spacex/api/device/wifi.proto +++ b/proto/spacex/api/device/wifi.proto @@ -117,6 +117,9 @@ message PingMetrics { optional float seconds_since_last_1s_outage = 11 [json_name="secondsSinceLast1sOutage"]; optional float seconds_since_last_2s_outage = 15 [json_name="secondsSinceLast2sOutage"]; optional float seconds_since_last_5s_outage = 12 [json_name="secondsSinceLast5sOutage"]; + optional float seconds_since_last_15s_outage = 18 [json_name="secondsSinceLast15sOutage"]; + optional float seconds_since_last_60s_outage = 19 [json_name="secondsSinceLast60sOutage"]; + optional float seconds_since_last_300s_outage = 20 [json_name="secondsSinceLast300sOutage"]; optional float happy_hours_1s_1d = 13 [json_name="happyHours1s1d"]; optional float happy_hours_2s_1d = 16 [json_name="happyHours2s1d"]; optional float happy_hours_5s_1d = 14 [json_name="happyHours5s1d"]; diff --git a/proto/spacex/api/device/wifi_config.proto b/proto/spacex/api/device/wifi_config.proto index 342213d..f89d41e 100644 --- a/proto/spacex/api/device/wifi_config.proto +++ b/proto/spacex/api/device/wifi_config.proto @@ -15,12 +15,22 @@ message WifiConfig { optional string lan_ipv4 = 5 [json_name="lanIpv4"]; optional string lan_ipv4_subnet_mask = 6 [json_name="lanIpv4SubnetMask"]; optional bool setup_complete = 7 [json_name="setupComplete"]; + optional bool apply_setup_complete = 1010 [json_name="applySetupComplete"]; optional uint32 factory_reset_ticker = 8 [json_name="factoryResetTicker"]; optional uint32 version = 9 [json_name="version"]; optional .SpaceX.API.Device.WifiConfig.Security wifi_security = 10 [json_name="wifiSecurity"]; optional bool apply_wifi_security = 1004 [json_name="applyWifiSecurity"]; optional string network_name_5ghz = 11 [json_name="networkName5ghz"]; optional bool apply_network_name_5ghz = 1005 [json_name="applyNetworkName5ghz"]; + optional string mac_wan = 12 [json_name="macWan"]; + optional bool apply_mac_wan = 1006 [json_name="applyMacWan"]; + optional string mac_lan = 13 [json_name="macLan"]; + optional bool apply_mac_lan = 1007 [json_name="applyMacLan"]; + optional string mac_lan_2ghz = 14 [json_name="macLan2ghz"]; + optional bool apply_mac_lan_2ghz = 1008 [json_name="applyMacLan2ghz"]; + optional string mac_lan_5ghz = 15 [json_name="macLan5ghz"]; + optional bool apply_mac_lan_5ghz = 1009 [json_name="applyMacLan5ghz"]; + optional string device_id = 16 [json_name="deviceId"]; enum Security { UNKNOWN = 0; WPA2 = 1; @@ -28,4 +38,3 @@ message WifiConfig { WPA2WPA3 = 3; } } -