shill: wimax: Load WiMAX services from profiles, support Manager::GetService.
This change basically allows shill to create, register, load, save and configure
multiple WiMAX serices for each WiMAX network (identified by the network
id). The overall set of changes:
- Introduce the concept of a WiMaxNetworkId. This corresponds to Network's
Identifier property but may group several different identifiers if necessary
(e.g., through a WiMAX network database).
- Each WiMAX service is uniquely identified by its storage ID which is based on
the WiMaxNetworkId and the friendly service name. For example,
"wimax_mynetwork_01234567".
- When a WiMax device is registered with the manager or when a new profile is
pushed, the WiMax device loads and registers all WiMax services from the
profile (WiMax::Load). It start only the services that are associated with
live WiMaxNetworkIds. For example, if the only live network is "01234567" and
the device loads "wimax_mynetwork_01234567" and "wimax_yournetwork_76543210",
only "wimax_mynetwork_01234567" will be started. A started service will
usually have a positive signal strength, while a stopped service will always
have a zero signal strength.
- When a new WiMAX network becomes available (identified by its WiMaxNetworkId),
a new default WiMAX service may get created that's associated with that
WiMaxNetworkId and network name as supplied by the network. Also, all services
that are associated with that WiMaxNetworkId are started. For example, if
network "76543210" with a network-supplied name of "defaultname" becomes live,
shill creates, registers and starts "wimax_defaultname_76543210" and start the
already created and registered "wimax_yournetwork_76543210".
- When a WiMAX network disappears, the associated services are stopped. The
services are deregistered when the WiMAX device is stopped.
- RPC methods Manager::GetService and Manager::ConfigureService now support
configuring of WiMAX services. The required arguments include the
WiMaxNetworkId and the service name.
BUG=chrome-os-partner:9907
TEST=unit tests
Change-Id: Ieedbb62b5ca82e36d862ed86e817d584ae5c7d08
Reviewed-on: https://gerrit.chromium.org/gerrit/23211
Tested-by: Darin Petkov <petkov@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
Reviewed-by: Darin Petkov <petkov@chromium.org>
14 files changed