Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

One thing that we still need to figure out is how to appropriately reference an LTE modem in NetworkConfig/WirelessConfig, i.e. how to go from some human readable (and persistent) “modem ID” to the corresponding CDC device path and the interface name. Until then nim will publish hard-coded wwan0 and cdc-wdm0 values. Maybe user could select the modem by IMEI number? Also, the probing IP (by which wwan service determines if the connection is working) will be hard-coded to google DNS IP but eventually it will be made configurable (i.e. making all these configurable is out-of-scope for this proposal).

Next a new /run/wwan/<network-uuid>/status.json with modem state data will be published for each LTE network by wwan service for zedagent to read. Status file will contain modification timestamp MD5 checksum of the last applied revision of config.json. With this, EVE will know when there are no more pending configuration changes, so that it is ready to publish radio state up to the application.

No Format
{
	"protocol": "qmi" | "mbim",
	"operating-mode": "online" | "radio-off" | etc.
	"imei": “310170845466094”,
	"modem-model": "QUECTEL Mobile Broadband Module",
	"modem-revision": "EC21ECGAR06A04M1G",
	"config-error": "",
	"probe-error": "Failed to ping 8.8.8.8 (2 packets transmitted, 0 received, 100% packet loss, time 1029ms)",
	// modificationMD5 Unix timestampchecksum of config.json (without trailing white-space) applied at the time of publishing this info
	"config-mtimechecksum": 1629446126"d7548db5594b064f2c9ec0599e84523e"
}

Application Behavior

Application acting as a Local Profile Server for the airplane-mode is expected to behave as follows:

...

nim will subscribe for zedagent status updates. If AirplaneMode.Enabled has changed, nim will trigger the operations of switching all radios ON/OFF. This actually means to publish the new configuration into wwan (and later also wlan) service and (asynchronously) wait for updated state data (acknowledging the latest config using a timestampchecksum). Once wwan service responds, nim will publish the new state back into zedagent using DeviceNetworkStatus, which will be also extended with the same AirplaneMode structure (.RequestedAt copied from ZedAgentStatus; .Enabled and .InProgress updated by nim). Inside, the per-port NetworkPortStatus will contain WirelessStatus. zedagent will make another POST call to /api/v1/radio only after it has received DeviceNetworkStatus with AirplaneMode of the same timestamp and with InProgress being false.

...