blob: b818b67f157b530cf9dc3d061be035cbaf44d4b7 [file] [log] [blame] [edit]
Manager hierarchy
=================
Service org.chromium.flimflam
Interface org.chromium.flimflam.Manager
Object path /
Methods dict GetProperties()
Return the global system properties specified
in the Properties section.
void SetProperty(string name, variant value)
Changes the value of the specified property. Only
properties that are listed as read-write are
changeable. On success a PropertyChanged signal
will be emitted.
Possible Errors: [service].Error.InvalidArguments
[service].Error.InvalidProperty
object CreateProfile(string name)
Create and add new profile with the specified
identifier name. The name should either be in the
form ``name'' or ``~user/name'' where where ``user''
is the login name of a user suitable for finding
their home directory. Both strings must contain
only alpha-numeric ASCII characters.
Profiles created without a user name are stored in
a system directory readable only by the connection
mananger. Profiles created with a user name are
stored in the user's home directory but readable
only by the connection manager.
If any existing profile is specified its contents
are reset to a default (minimal) contents. If the
profile is already registered with a CreateProfile
or PushProfile request then an error is returned.
Possible Errors: [service].Error.InvalidArguments
[service].Error.AlreadyExists
object PushProfile(string name)
Push the profile with the specified identifier
onto the profile stack. The profile must have
previously been created with CreateProfile.
The profile becomes the ``active profile'' that
is searched first when loading data and to which
updates are stored.
A profile may be pushed only once.
Possible Errors: [service].Error.InvalidArguments
[service].Error.AlreadyExists
object InsertUserProfile(string name, string user_hash)
Add the profile with the specified identifier
to the profile stack. The profile must have
previously been created with CreateProfile.
The |user_hash| provided is assigned to the
profile and is made visible as a property of
the profile.
A profile may be inserted or pushed only once.
Possible Errors: [service].Error.InvalidArguments
[service].Error.AlreadyExists
object PopProfile(string name)
Pop the top-most profile on the profile stack.
Any profile beneath this profile becomes the
``active profile''. Any services using configuration
from the popped profile are disconnected and the
credentials invalidated (the next time
credentials are needed they are loaded from the
(new) active profile).
The name must match the identifier of the active
profile. This is a safeguard against accidentally
removing the wrong profile.
Note it is valid to pop all profiles from the
stack; in this state the connection manager does
not write any state to persistent storage.
Possible Errors: [service].Error.InvalidArguments
[service].Error.NotFound
[service].Error.WrongState
object PopAnyProfile()
Like PopProfile but do not check the profile on
the top of the stack; pop anything.
Possible Errors: [service].Error.InvalidArguments
object PopAllUserProfiles()
Remove all user profiles from the stack of managed
profiles leaving only default profiles if any exist.
void RemoveProfile(string name)
Remove the profile with specified identifier.
The profile may not be resident on the stack.
The default profile may not be removed.
Possible Errors: [service].Error.InvalidArguments
[service].Error.AlreadyExists
void RequestScan(string type)
Request a scan for each device of the specified
technology. If type is the string "" then a scan
request is made for each technology.
For WiFi devices this triggers a search for
available WiFi networks. When results are
available, the Device.Networks property is
updated and a PropertyChanged signal is issued.
For cellular devices, this triggers a search for
available cellular networks, which may take up to a
minute or two to complete. When the results are
available, the Cellular.FoundNetworks property of
each cellular device is set with the results.
Possible Errors: [service].Error.InvalidArguments
void EnableTechnology(string type)
Enable all technologies of the specified type.
Possible Errors: [service].Error.InvalidArguments
[service].Error.InProgress
[service].Error.AlreadyEnabled
[service].Error.PermissionDenied
void DisableTechnology(string type)
Disable all technologies of the specified type.
Possible Errors: [service].Error.InvalidArguments
[service].Error.InProgress
[service].Error.AlreadyDisabled
object ConfigureService(dict properties)
Update the configuration of a service in memory
and in the profile. If no matching service exists
in memory it is temporarily created to carry out
this work and may be removed later. The object
path of the created service is returned.
If a GUID property is specified in properties
it is used to find the service; otherwise Type,
SecurityClass, and type-specific properties such as
WiFi.SSID are used to find any existing service.
If no service is located in memory a new one is
created with the supplied properties.
All provided parameters are applied to the in
memory service regardless of errors. But if an
error occurs while setting a property and the
service object was created as a result of this
call it is removed. In the event of multiple
errors the first error code is returned by
this call.
See the Service Properties section for a list of
properties and constraints on property values.
See also GetService.
Possible Errors: [service].Error.InvalidArguments
[service].Error.TechnologyNotAvailable
object ConfigureServiceForProfile(object profile,
dict properties)
Create or update the configuration of a WiFi
service within a specific profile. This is
similar to "ConfigureService" above, except
that this might not change the state of the
current service. A matching service is found
by first looking for a service with matching
"GUID" property if specified, then by using
the "Mode", "SSID", and "SecurityClass" properties
from |properties|.
If a matching service is found but its current
profile supersedes the specified profile, a new
profile entry is written with the specified
properties. This method can be used for
configuring a service in the default profile
while a separate configuration exists in the
user profile. In this scenario, no configured
properties in the user profile entry will be
copied to the default profile, and the user
profile remains unchanged. Moreover, the
matching service will still refer to the user
profile.
A second example usage for this method is creating
a copy of the current service from the default
profile into the user profile. If a matching
service exists but its current profile antecedes
the specified profile, the configuration of the
current service is first copied to the new profile
without removing the entry in the default profile.
The service is then assigned to the new profile
and the specified properties are then applied to
the service and saved to the new profile, leaving
the original profile intact. This differs from the
behavior of setting the "Profile" property on the
service via the SetProperty or ConfigureService
methods, which remove the configuration from the
old profile.
In situations where a matching service is not found,
the service isn't associated with a profile, or the
specified profile is already associated with the
matched service, the behavior of this method mimics
that of ConfigureService.
Currently this method is only supported for WiFi
services. The specified profile must already
be loaded and on the Manager's profile stack.
If the "Profile" parameter is set in the properties
dictionary, it must match the profile parameter.
This method returns the object path of the created
or modified service, in cases where a matching
service will refer to the specified profile.
Otherwise it returns the special path "/" to signify
that although the operation succeeded, there is
no matching service that refers to this profile.
Possible Errors: [service].Error.IllegalOperation
[service].Error.InternalError
[service].Error.InvalidArguments
[service].Error.NotFound
[service].Error.TechnologyNotAvailable
void FindMatchingService(dict properties)
Find a service that matches all the properties
and returns the object identifier associated
with it. If no service exists in memory that
matches these arguments, an error is returned.
See also GetService and ConfgiureService.
Possible Errors: [service].Error.NotFound
object GetService(dict properties)
Return the object path of a service after
applying any requested configuration changes.
If no service exists it is created.
If a GUID property is specified in properties
it is used to find the service; otherwise Type,
Security, and type-specific properties such as
WiFi.SSID are used to find any existing service.
If no service is located in memory a new one is
created with the supplied properties.
All provided parameters are applied to the service
regardless of errors. But if an error occurs
while setting a property and the service was
created as a result of this call it is removed.
In the event of multiple errors the first error
code is returned by this call.
See the Service Properties section for a list of
properties and constraints on property values.
See also ConfigureService.
Possible Errors: [service].Error.InvalidArguments
[service].Error.PermissionDenied
[service].Error.InternalError
[service].Error.InvalidNetworkName
[service].Error.InvalidPassphrase
[service].Error.TechnologyNotAvailable
void SetDebugTags(string taglist)
Set the debug tags that are enabled for logging to
syslog. "taglist" is a list of valid tag names
separated by "+". Shill silently ignores
invalid flags.
string GetDebugTags()
Get the list of enabled debug tags. The list is
represented as a string of tag names separated
by "+".
string ListDebugTags()
Get the list of all debug tags that can be enabled.
The list is represented as a string of tag names
separated by "+".
string GetServiceOrder()
Return a ','-separated string listing known technologies
in priority ordering.
For example, the default ordering would be returned as:
"ethernet,wifi,cellular"
void SetServiceOrder(string mask)
Set the technology priority based on a provided
','-separated list of technologies, sorted from highest
priority to lowest.
The list may contain the following services:
{ ethernet, wifi, cellular }
Technologies not included are assigned the lowest
priority.
Technology priority changes occur immediately.
Possible Errors: [service].Error.InvalidArguments
void RecheckPortal()
Deprecated: Use Service.RequestPortalDetection instead.
Retest the portal state of all connected services
if a check is not currently in progress.
dict GetNetworksForGeolocation()
Deprecated: Use Manager.GetCellularNetworksForGeolocation()
and Manager.GetWiFiNetworksForGeolocation() instead.
Returns a dictionary (array of dictionary entries)
containing information about visible cellular and WiFi
networks which may be then used for Geolocation.
Each key is a string representing a network type (cellular
or WiFi), and the value itself is an array of dictionaries
mapping string key-value pairs. Each of these
(sub) dictionaries contains information about one single
network for Geolocation.
If there are several network devices of a particular
type, this method will return all of the information
from all of the devices.
For more details, see:
https://developers.google.com/maps/documentation/business/geolocation/
dict GetCellularNetworksForGeolocation()
Returns a dictionary (array of dictionary entries)
containing information about visible cellular networks which
may be then used for Geolocation.
The key is a string representing cellular network type, and
the value itself is an array of dictionaries mapping string
key-value pairs. Each of these (sub) dictionaries contains
information about one single cellular network for
Geolocation.
If there are several cellular devices, this method will
return all of the information from all of the cellular
devices.
For more details, see:
https://developers.google.com/maps/documentation/business/geolocation/
dict GetWiFiNetworksForGeolocation()
Returns a dictionary (array of dictionary entries)
containing information about visible WiFi networks which may
be then used for Geolocation.
The key is a string representing WiFi network type, and the
value itself is an array of dictionaries mapping string
key-value pairs. Each of these (sub) dictionaries contains
information about one single WiFi network for Geolocation.
If there are several WiFi devices, this method will return
all of the information from all of the WiFi devices.
For more details, see:
https://developers.google.com/maps/documentation/business/geolocation/
boolean SetNetworkThrottlingStatus(bool enabled,
uint32 upload_rate_kbits,
uint32 download_rate_kbits)
Enables or disables network throttling to limit bandwidth
consumed by the device. Applies to all interfaces. Both
rates are specified in kbits/s. If throttling already
exists, this will override current throttling settings.
void ScanAndConnectToBestServices()
Forces a WiFi scan if a WiFi device is available as a
way of ensuring that networks recently configured can be
found. Then connects to the highest priority service
available for each technology as determined by sorting
all services independent of their current connectivity
state. Shill does not normally disrupt an active
connection for a given technology, even when a higher
priority network becomes available for that technology.
Calling this method will trigger a switch to higher
priority services for each available technology.
Note: The scan applies only to a WiFi device, however
connecting to the highest priority service will happen
for all technologies.
void CreateConnectivityReport()
For each connected service, perform a single
connectivity trial and report the results to the log.
This connectivity test does not affect Service state.
void ClaimInterface(string claimer_name, string interface_name)
Claim the ownership of a device |interface_name|. The
specified device will be added to the block list. Any
current connection on that device will be terminated,
and shill will stop managing that device. |claimer_name|
is deprecated and thus can be any value.
void ReleaseInterface(string claimer_name, string interface_name)
Release the ownership of a device |interface_name| back
to shill. The specified device will be removed from the
block list and managed by shill. |claimer_name| is
deprecated and thus can be any value.
void SetDNSProxyAddresses(array{string} addresses)
Assigns the IPv4 and IPv6 addresses of the dns-proxy
service. When set, shill will use these addresses as
the system name servers rather than those specified by
the relevant service.
If the array is empty, DNS proxy address(es) will be
cleared and the name servers from the current default
network will be used. This is the same behavior as
ClearDNSProxyAddresses.
This IPv4 address is enforced to be within a predetermined
system local subnet.
void ClearDNSProxyAddresses()
Clear any DNS proxy address stored in shill. When this
is called, shill will use the name servers from the
current default network for /etc/resolv.conf instead of
the proxy address(es).
void DNSProxyDOHProviders(array{string, string} providers)
Assigns the DNS-over-HTTPS service providers for use by
the dns-proxy service. URLs of the secure
DNS service endpoints are used as keys. If applicable,
each value is a comma-separated list of the IP addresses
(both v4 and v6 are supported) of the standard DNS name
servers that map to the secure DNS service provider.
void AddPasspointCredentials(object profile, dict properties)
Adds a set of Passpoint credentials to |profile|. The credentials
will be used to match and connect to compatible Wi-Fi networks.
Credentials cannot be added to the default Profile.
Possible Errors: [service].Error.InvalidArguments
[service].Error.NotFound
[service].Error.OperationFailed
void RemovePasspointCredentials(object profile,
dict properties)
Remove Passpoint credentials that matches the all
property of |properties|. This removes all services
associated with the removed credentials.
Possible Errors: [service].Error.InvalidArguments
[service].Error.NotFound
[service].Error.OperationFailed
void SetTetheringEnabled(boolean enabled)
DEPRECATED - Use EnableTethering and DisableTethering instead.
Enables or disables tethering with the corresponding properties in
Manager.TetheringConfig. Only supports cellular and ethernet as the
upstream technologies. Only supports WiFi as the downstream technology.
Returns a string indicating the result. This could be any one of,
"success", "failure", "not_allowed", "invalid_properties", "abort",
"upstream_not_available", "downstream_wifi_failure", "wrong_state"
"network_setup_failure", "upstream_failure", "busy",
"concurrency_not_supported".
void EnableTethering(WiFiInterfacePriority priority)
Enables tethering with the corresponding properties in
Manager.TetheringConfig. Only supports cellular and ethernet as the
upstream technologies. Only supports WiFi as the downstream technology.
Returns a string indicating the result. This could be any one of,
"success", "failure", "not_allowed", "invalid_properties", "abort",
"upstream_not_available", "downstream_wifi_failure", "wrong_state"
"network_setup_failure", "upstream_failure", "busy".
"priority" arg designates the priority of the underlying SoftAP
interface. It is currently stubbed and non-functional.
void DisableTethering()
Disables tethering with the corresponding properties in
Manager.TetheringConfig. Only supports cellular and ethernet as the
upstream technologies. Only supports WiFi as the downstream technology.
Returns a string indicating the result. This could be any one of,
"success", "failure", "not_allowed", "invalid_properties", "abort",
"upstream_not_available", "downstream_wifi_failure", "wrong_state"
"network_setup_failure", "upstream_failure", "busy".
string CheckTetheringReadiness()
Checks whether the upstream technology is ready to tether. It checks,
1. If any upstream is connected.
2. For cellular upstream, performs an entitlement check with the
carrier, and check to see if there is a known tethering APN
that can be used.
Returns a status string indicating the readiness. Possible status:
"ready", "not_allowed", "upstream_network_not_available".
void SetLOHSEnabled(boolean enabled)
Enables or disables local only hotspot with the corresponding properties in
Manager.LOHSConfig. Returns a string through an asynchronous callback
indicating the result. This currently only returns "NotImplemented".
void SetCapportEnabled(boolean enabled)
Enables or disables the CAPPORT functionality for all network instances.
After it's disabled, the network validation will skip CAPPORT query.
When it becomes enabled, the networks that have been detected the
CAPPORT server will schedule the validation automatically.
dict CreateP2PGroup(dict properties)
Creates a P2P group with the specified config with this device as
the group owner. Possible arguments are "ssid" (string),
"passphrase" (string), "frequency" (int32), and "priority"
(WiFiInterfacePriority). "priority" is mandatory. All other
arguments are optional and all omitted args will be chosen by the
platform.
Returns a dictionary with the following entries:
"result_code" (string): A string indicating the result of the
operation. This could be any one of "success", "not_allowed",
"not_supported", "concurrency_not_supported", "timeout",
"frequency_not_supported", "bad_ssid", "invalid_arguments",
"operation_in_progress", "operation_failed".
"shill_id" (uint32): Only included when result_code == "success".
Unique ID for the newly formed P2P group.
Some functionality is stubbed.
dict ConnectToP2PGroup(dict properties)
Starts a P2P connection with a P2P group with the specified
config. Possible arguments are "ssid" (string), "passphrase"
(string), "frequency" (int32), and "priority" (WiFiInterfacePriority).
"ssid", "passphrase", and "priority" are mandatory. If "frequency" is
omitted then the platform will scan all available channels.
Returns a dictionary with the following entries:
"result_code" (string): A string indicating the result of the
operation. This could be any one of "success", "not_allowed",
"not_supported", "concurrency_not_supported", "timeout",
"auth_failure", "frequency_not_supported", "group_not_found",
"already_connected", "invalid_arguments", "operation_in_progress",
"operation_failed".
"shill_id" (uint32): Only included when result_code == "success".
Unique ID for the newly created P2P client.
Some functionality is stubbed.
dict DestroyP2PGroup(uint32 shill_id)
Destroys the P2P group with the specified shill_id. Prior to
destruction of the group, all P2P clients connected to the group
will be disconnected.
Returns a dictionary with the following entries:
"result_code" (string): A string indicating the result of the
operation. This could be any one of "success", "not_allowed",
"not_supported", "timeout", "no_group", "operation_in_progress",
"operation_failed".
"shill_id" (uint32): Unique ID for the requested P2P client.
Some functionality is stubbed.
dict DisconnectFromP2PGroup(uint32 shill_id)
Disconnects the P2P client with the specified shill_id from it's
P2P group.
Returns a dictionary with the following entries:
"result_code" (string): A string indicating the result of the
operation. This could be any one of "success", "not_allowed",
"not_supported", "timeout", "not_connected", "operation_in_progress",
"operation_failed".
"shill_id" (uint32): Unique ID for the requested P2P client.
Some functionality is stubbed.
Signals PropertyChanged(string name, variant value)
This signal indicates a changed value of the given
property.
Properties object ActiveProfile [readonly]
Object path of the top-most Profile in the Profile stack.
string AlwaysOnVpnPackage [readwrite]
Package name of an Android VPN app to use as the "AlwaysOnVpn"
connection. When this property is not "", all user traffic will be
blackholed unless we are connected to an ARC VPN using the
corresponding Android app.
boolean ArpGateway [readwrite]
Specifies whether the DHCP client should be configured to perform
the extra step of performing an ARP of the gateway IP address. This
provides a level of assurance that the issued IP address is valid
and not blocked in some manner unknown by the DHCP server.
array{string} AvailableTechnologies [readonly]
The list of technologies for which at least one Device exists (see
the caveat in Devices). Order carries no meaning and is not
guaranteed to be consistent.
string CheckPortalList [readwrite]
The list of technologies for which "captive portal checking"--really
just connectivity quick checks--is enabled. This is a
comma-separated string; e.g. "wifi,cellular,vpn".
array{string} ClaimedDevices [readonly]
The list of the names of devices that have been claimed
by an external service for management by ClaimInterface method.
array{string} ConnectedTechnologies [readonly]
The list of technologies for which at least one Device is connected
(see the caveat in Devices). Order carries no meaning and is not
guaranteed to be consistent.
string ConnectionState [readonly]
The state of the highest ranked connected service. The value of
this property is "idle" if there are no connected services.
Otherwise this can be any of the connected service states, e.g,
"ready" or "online".
object DefaultService [readonly]
The object path of the connected Service with the highest
priority. If there is no connected Service, returns the "/" object
path.
string DefaultTechnology [readonly]
The technology of the DefaultService.
array{object} Devices [readonly]
List of physical Device object paths. No virtual Devices are
contained in this list. Order carries no meaning and is not guaranteed
to be consistent.
string DHCPProperty.Hostname [readwrite]
Optional setting to configure DHCP requests. Some DHCP servers may
register a DNS entry on behalf of this hostname; others may just
make available a table for administrators to tell what machines are
on their network.
The default for this name is empty, which means that the system will
not report a hostname. When this property is set it will be
persisted in the default profile.
bool DisableVHT [readwrite]
Disables 802.11ac Very High Throughput (VHT) connections, reverting
to 802.11n.
string DisconnectWiFiOnEthernet [readwrite]
Option to auto disconnect WiFi and inhibit WiFi autoconnect when an
Ethernet service is available. Setting value to "connected" configure
shill to disconnect WiFi when basic network provisioning is done on
Ethernet, while setting value to "online" only disconnect WiFi when
Internet reachability is verified on Ethernet. Setting value to "off"
turns off this feature. "off" by default.
array{string} EnabledTechnologies [readonly]
The list of technologies for which at least one Device is enabled
(see the caveat in Devices). Order carries no meaning and is not
guaranteed to be consistent.
boolean EnableDHCPQoS [readwrite]
If set, shill will instruct dhcpcd to apply proper DSCP value on all
egress DHCP packets. Currently this option only affects the DHCP packets
on the WiFi networks.
boolean EnableRFC8925 [readwrite]
Specify whether DHCPv4 client should follow RFC 8925 to request option
108, which will in result volunteer to drop IPv4 and prefer operating as
IPv6-only, if the network itself is also IPv6-only capable.
dict LOHSConfig [readwrite]
Dictionary that contains the following Local Only HotSpot (LOHS) related
properties. This intentionally mirrors the Manager.TetheringConfig and
reuses the same Manager.TetheringConfig property names.
string ssid
the hex-encoded tethering SSID name to be advertised
string band
the local only hotspot band preference. This should be either
“2.4GHz” or “5GHz”. If absent, the band will be picked by Shill.
string security
the tethering security to be used. This should be "wpa2"
string passphrase
the password to be used to authenticate to the local only hotspot
network
string NoAutoConnectTechnologies [readwrite]
The list of technologies for which auto-connect is disabled. This is
a comma-separated string, e.g. "cellular,wifi".
dict P2PCapabilities [readonly]
A property that indicates the hardware capabilities and state
information for P2P operation on the platform. Callers should
request this property before utilizing the P2P API.
boolean P2PSupported
Whether the platform supports P2P operations.
string GroupReadiness
Indicates whether the platform is currently able to support
a new P2P Group Owner interface. Options: "ready", "not_ready".
string ClientReadiness
Indicates whether the platform is currently able to support
a new P2P Client interface. Options: "ready", "not_ready".
array{int} SupportedChannels
This provides the list of supported channel frequencies in MHZ.
Note: On Android the GC can use indoor channels by GO cannot,
so sending the supported channels for GO role should be done
here.
array{int} PreferredChannels
This provides a list of channels that the platform would
prefer the P2P link to be created on. An empty list indicates
no preference. These are not ordered, so all “preferred”
channels should have equal priority.
array{dict} P2PClientInfos [readonly]
List of all P2P Client interfaces that are active on the platform.
The format for representation of a local P2P Client interface:
uint32_t shill_id
Unique ID to represent the P2P Client, provided by Shill.
This is only used to disambiguate the group against other
P2P Clients on the platform and has no relation to any other
identifiers such as P2P Group ID, BSSID, mac address,
interface index, etc.
string state
Current state of a local P2P Client interface. Possible values:
"idle"
No connectivity with the Group has been established.
"associating"
In the process of associating and establishing
L2 connectivity to the Group.
"configuring"
L2 connectivity established, in the process of
configuring L3 connectivity.
"connected"
Device has established L3 connectivity.
"disconnecting"
In the process of disconnecting from the Group.
string ssid
The SSID of the network to which the Client is connected,
or connecting.
string passphrase (type:string)
The passphrase of the network to which the Client is connected,
or connecting.
string group_bssid
The BSSID of the P2P Group Owner.
string ipv4_address [optional]
This represents the ipv4 address of the local client interface
in its textual representation.
string ipv6_address [optional]
This represents the ipv6 addresses of the local client interface
in its textual representation.
string mac_address
The MAC address of the local client interface with format
in its textual representation.
int frequency
This represents the selected channel on which the network
is hosted.
int32_t network_id
Unique ID to identify the network.
string interface
The client's interface name (for example "p2p-wlan0-0").
dict group_owner
Representation of the Group Owner to which the Client is
connecting, or connected. This dictionary has the following
entries:
string mac_address
The MAC address of the Group Owner interface
in its textual representation.
string ipv4_address
The IPv4 address of the Group Owner interface
in its textual representation.
array{string} ipv6_addresses
The IPv6 addresses of the Group Owner interface.
Unused in the MVP, but defined here for forward
compatibility.
string hostname [optional]
This represents the host name of the Group Owner
which may or may not be NULL.
string vendor_class [optional]
The vendor class value that the client may choose
to advertise. For example Chrome OS devices advertise
“chromeos”.
array{dict} P2PGroupInfos [readonly]
List of all local P2P Group Owner interfaces that are active
on the platform. The format for representation of a local
P2P Group Owner interface:
uint32_t shill_id
Unique ID to represent the Group, provided by Shill.
This is only used to disambiguate the group against other
P2P Groups on the platform and has no relation to any other
identifiers such as P2P Group ID, BSSID, mac address,
interface index, etc.
string state
Current state of a local P2P Group Owner interface.
Possible values:
"idle"
The interface is not ready to accept clients.
"starting"
The interface is in the process of forming the group.
"configuring"
The group is formed at link layer, in the process
of setting up network configuration.
"active"
The group is fully formed and ready to accept clients.
"stopping"
The group is in the process of being torn down
and destroyed.
string ssid
The SSID of the group hosted by the local interface.
string passphrase
The passphrase of the group hosted by the local interface.
string bssid
The BSSID of the P2P Group Owner.
string ipv4_address [optional]
This represents the ipv4 address of the local interface
in its textual representation.
array{string} ipv6_addresses
This represents the ipv6 addresses of the local interface
in its textual representation.
string mac_address
The MAC address of the local interface with format
in its textual representation.
int frequency
This represents the selected channel on which the group
is hosted.
int32_t network_id
Unique ID to identify the network in Patchpnel.
string interface
The group's interface name (for example "p2p-wlan0-0").
array{dict} clients
A list of clients of the P2P group. Each of these dictionaries
has the following entries:
string mac_address
The MAC address of the client interface
in its textual representation.
string ipv4_address
The IPv4 address of the client interface
in its textual representation.
string ipv6_address [optional]
The IPv6 addresses of the P2P Client. Unused in the MVP,
but defined here for forward compatibility.
string hostname [optional]
This represents the client host name.
string vendor_class [optional]
The vendor class value that the client may choose
to advertise. For example Chrome OS devices advertise
“chromeos”.
string PortalFallbackHttpUrls [readwrite]
Comma-separated string of URLs used for HTTP connectivity
verification after the first connectivity verification trial. The
order of these URLs has no meaning.
string PortalFallbackHttpsUrls [readwrite]
Comma-separated string of URLs used for HTTPS connectivity
verification after the first connectivity verification trial. The
order of these URLs has no meaning.
string PortalHttpUrl [readwrite]
The first URL to use when doing connectivity verification over HTTP.
If portal detection fails with this URL, an entry in
PortalFallbackHTTPUrls will be used.
string PortalHttpsUrl [readwrite]
The first URL to use when doing connectivity verification over
HTTPS. If portal detection fails with this URL, an entry in
PortalFallbackHTTPSUrls will be used.
string ProhibitedTechnologies [readwrite]
The list of technologies whose Devices should be disabled and
prohibited from being enabled. This is a comma-separated string,
e.g. "cellular,wifi". All Devices that are one of these technology
types will be immediately disabled persistently, and when a new
Device of this type appears, it will be disabled by default.
Attempts to enable such a Device using the EnableTechnology will
fail. Order carries no meaning and is not guaranteed to be
consistent.
array{object} Profiles [readonly]
List of Profile object paths in the Profile stack. Elements are
ordered from top of the stack to bottom.
array{object} Services [readonly]
List of Service object paths that are visible. The first Service is
always the primary connected Service on the system (if there is
one). Services in a more connected state always come before Services
in a less connected state. In order:
* "online"
* "ready"
* "no-connectivity", "redirect-found", or "portal-suspected"
* "association" or "configuration"
* "idle" or "disconnecting"
* "failure"
Between unconnected Services, connectable Services come before
unconnectable Services. Within the same state "bucket", Services are
ordered based on Technology type (see SetServiceOrder). Services in
the same state bucket and with the same Technology type are then
compared with the following (in order):
* "Priority"
* "Source"
* "ManagedCredentials"
* "AutoConnect"
* "Security" (currently only for WiFi)
* "Profile" ordering
* If the Service has ever connected
* "Strength"
Finally, if two Services have all of those in common, the Service
that was created first will be placed before the other Service.
This list represents the available services for the current selected
profile. If the profile gets changed then this list will be updated.
The same list is available via the profile object itself. It is just
provided here for convenience of applications only dealing with the
current active profile.
array{object} ServiceCompleteList [readonly]
Complete list of Service object paths, including those that are not
currently visible. For example, WiFi Services that are stored in a
loaded Profile but cannot currently be connected are presented in
this list.
The Services are listed in the same Service sorting order as the
"Services" property above. Change events for this property are not
emitted.
array{object} ServiceWatchList [readonly]
List of Service object paths that are in a 'non-idle' state. This
indicates the set of Services which are currently listed as
associating, configuring, or some other state other than idle,
failure, disconnecting, or unknown. This allows a caller to use
this property indication to track which Services should be monitored
for state changes.
The Services are listed in the same Service sorting order as the
"Services" property above, and a change event for this property is
emitted every time the Service list is reordered, even if this list
has not changed.
string SupportedVPNTypes [readonly]
The list of supported vpn types. This is a comma-separated string;
e.g. "l2tpipsec,openvpn,thirdpartyvpn,arcvpn". The possible value of
list items are "l2tpipsec", "openvpn", "thirdpartyvpn", "arcvpn", and
"wireguard".
boolean TetheringAllowed [readwrite]
Whether tethering feature is allowed. When false, SetTetheringEnabled
will return failure. The value is controlled by a feature flag in Chrome.
Should only be modified by Chrome feature flag or tests.
boolean ExperimentalTetheringFunctionality [readwrite]
Whether the tethering feature is allowed on untested carriers,
modems and modem FW versions. When false, tethering is only allowed
in tested carriers/modems/FWs; when true, the feature is allowed in
all of them, unless tethering is disallowed by the carrier.
dict TetheringCapabilities [readonly]
Dictionary containing the tethering hardware capabilities of the device.
array{string} downstream_technologies
array containing any/all of "wifi", "ethernet"
array{string} upstream_technologies
array containing any/all of "wifi", "cellular", "ethernet"
array{string} wifi_security_modes
array containing any/all of "wpa2", "wpa3" or "wpa2+wpa3"
dict TetheringConfig [readwrite]
Dictionary that contains the following Tethering related properties.
Changing this property while a tethering session is active will restart
the tethering session with new configs. If upstream_technology is not
changed and is cellular, the upstream network will remain unchanged
during the tethering restart process. If only auto_disable is changed,
inactivity timer will be armed/disarmed on the fly. The tethering
session will not be restarted.
boolean auto_disable
automatically disable tethering if no devices have been
associated for 10 minutes. Default to true.
boolean MAR
a random MAC address is used when a mobile AP is started
(WiFi downstream only). Default to true.
string ssid
the hex-encoded tethering SSID name to be advertised (WiFi
downstream only)
string band
the tethering band preference (WiFi downstream only)
this should be either “2.4GHz” or “5GHz”. If absent, the band will
be picked by the platform.
string security
the tethering security to be used (WiFi downstream only)
this should be one of "wpa2", "wpa3", "wpa2+wpa3"
string passphrase
the password to be used to authenticate to the tethering network
(WiFi downstream only)
string upstream_technology
Preferred upstream technology to use, one of "wifi", "cellular",
"ethernet". If absent, Shill will use cellular as the default
upstream technology.
string downstream_device_for_test
the assigned downstream device, only used for testing. This
property is never persisted.
uint32 downstream_phy_index_for_test
The phy index of the assigned downstream device, only used for
testing. This property is never persisted.
dict TetheringStatus [readonly]
Dictionary that contains the status of the active tethering connection,
string downstream_technology
one of "wifi", "ethernet".
string upstream_technology
one of "wifi", "cellular", "ethernet".
string state
state of the tethering instance. The state could be any one of
"idle", "starting", "active", "stopping" or "restarting".
string idle_reason
the reason why tethering is in idle state. Could be any one of
"initial_state", "client_stop", "user_exit", "inactive", "error"
"upstream_disconnect", "upstream_no_internet", "suspend",
"config_change", "downstream_link_disconnect", "start_timeout",
"downstream_network_disconnect", "upstream_not_available",
"concurrency".
array{dict} active_clients
string IPv4
IPv4 address of the associated client expressed in the
dotted-decimal format.
array{string} IPv6
IPv6 addresses of the associated client in allowed format
as specified in RFC 2373.
string MAC
EUI-64 or EUI-48 hardware address of the associated client.
string hostname
hostname of the associated client. This value is present
only if the client advertises it in its DHCP request.
array{string} UninitializedTechnologies [readonly]
The list of uninitialized technologies. An uninitialized technology
is a technology that has at least one Device that is not initialized
yet (i.e. the Device object is not created yet). The strings are
the same as the ones from the service types.
bool WakeOnLanEnabled [readwrite]
Specifies whether the Wake on LAN feature should be enabled on new
Ethernet links. Currently connected links are un-affected.
bool WiFi.GlobalFTEnabled [readwrite]
Specifies whether or not 802.11r Fast BSS Transition should be
used.
bool WiFi.ScanAllowRoam [readwrite]
Specifies whether or not a WiFi scan could trigger a
roam if a better AP is found on the same network.
string WiFi.RequestScanType [readwrite]
Specifies WiFi RequestScan scan type.
Possible values:
"active"
Active scan over all channels.
"passive"
Passive scan over all 6 GHz channels.
"default"
Rotates the scan type between active and passive scans.
array{string, string} DNSProxyDOHProviders [readonly]
The DNS-over-HTTPS service providers. URLs of the secure
DNS service endpoints are used as keys. If applicable,
each value is a comma-separated list of the IP addresses
(both v4 and v6 are supported) of the standard DNS name
servers that map to the secure DNS service provider.
boolean P2PAllowed [readwrite]
Whether P2P feature is allowed. When false, all P2P-related calls
will return failure. Should only be modified by Chrome feature flag
or tests.
Enums WiFiInterfacePriority
Represents the priority level of a Wi-Fi interface. When a new
interface is requested, existing interfaces of lower priority may be
destroyed to make room for the new interfaces.
"OPPORTUNISTIC"
Opportunistic requests with minimum priority; nice-to-have but
don’t directly impact the user.
"BACKGROUND"
Background requests; not triggered by direct user input.
"FOREGROUND_WITH_FALLBACK"
Foreground requests with potential fallback media.
"FOREGROUND_WITHOUT_FALLBACK"
Foreground requests without any fallback media.
"OS_REQUEST"
Requests from OS-native applications like network settings that
directly enable user use-cases.
"USER_ASSERTED"
User-initiated requests in which the user has been explicitly
informed that some Wi-Fi functionality may stop working, and
agreed to start the interface anyway. Treated with maximum
priority.