1 Device hierarchy 2 ================ 3 4 Service org.chromium.flimflam 5 Interface org.chromium.flimflam.Device 6 Object path [variable prefix]/{device0,device1,...} 7 8 Methods dict GetProperties() 9 10 Returns properties for the device object. See 11 the properties section for available properties. 12 13 void SetProperty(string name, variant value) 14 15 Changes the value of the specified property. Only 16 properties that are listed as read-write are 17 changeable. On success a PropertyChanged signal 18 will be emitted. 19 20 Possible Errors: [service].Error.InvalidArguments 21 [service].Error.InvalidProperty 22 23 void ClearProperty(string name) 24 25 Reset the specified parameter to its "factory" 26 value and remove any previously set value from 27 the profile. Only properties that are listed as 28 read-write are changeable. 29 30 void Enable() 31 32 Enable the device. 33 34 Possible Errors: [service].Error.PermissionDenied 35 36 void Disable() 37 38 Disable the device. 39 40 void ProposeScan() --DEPRECATED-- 41 42 Start a scan operation if possible. 43 44 For WiFi devices this triggers a search for 45 available WiFi networks. When results are 46 available, the Device.Networks property is 47 updated and a PropertyChanged signal is issued. 48 49 For cellular devices, this triggers a search for 50 available cellular networks, which may take up to a 51 minute to complete. When the results are available, 52 the property Cellular.FoundNetworks (see below) is 53 set with the results. 54 55 Possible Errors: [service].Error.InvalidArguments 56 57 object path AddIPConfig(string method) --DEPRECATED-- 58 59 This function only remains so it does not trigger 60 an error in the caller, and returns the path "/", 61 and never returns an error. In flimflam it used to 62 provide the ability to create IPConfig objects 63 to the device to provide IPv4 or IPv6 setup state. 64 65 void RequirePin(string pin, boolean require) 66 67 (Cellular only) Enable or disable PIN protection for 68 a cellular modem's SIM card. If 'require' is true, 69 then a PIN will need to be supplied (by calling 70 EnterPin) before the modem is usable. If 'require' 71 is false, a PIN will not be required. 72 73 Possible Errors: [service].Error.InvalidArguments 74 [service].Error.NotSupported 75 [service].Error.PinError 76 77 In the case of PinError, the error message gives 78 more detail: [interface].PinRequired 79 [interface].PinBlocked 80 [interface].IncorrectPin 81 82 void EnterPin(string pin) 83 84 (Cellular only) Provide a PIN to unlock a SIM card. 85 86 Possible Errors: [service].Error.InvalidArguments 87 [service].Error.NotSupported 88 [service].Error.PinError 89 90 In the case of PinError, the error message gives 91 more detail: [interface].PinRequired 92 [interface].PinBlocked 93 [interface].IncorrectPin 94 95 void UnblockPin(string puk, string pin) 96 97 (Cellular only) Provide a PUK code to unblock a PIN. 98 When an incorrect PIN has been entered too many times 99 (three is generally the number of tries allowed), the 100 PIN becomes "blocked", and the SIM card can only be 101 unlocked by providing a PUK code provided by the 102 carrier. At the same time, a new PIN must be specified. 103 104 Possible Errors: [service].Error.InvalidArguments 105 [service].Error.NotSupported 106 [service].Error.PinError 107 108 In the case of PinError, the error message gives 109 more detail: [interface].PinRequired 110 [interface].PinBlocked 111 [interface].IncorrectPin 112 113 void ChangePin(string old_pin, string new_pin) 114 115 (Cellular only) Change the PIN used to unlock a SIM 116 card. The existing PIN must be provided along with 117 the new PIN. 118 119 Possible Errors: [service].Error.InvalidArguments 120 [service].Error.NotSupported 121 [service].Error.PinError 122 123 In the case of PinError, the error message gives 124 more detail: [interface].PinRequired 125 [interface].PinBlocked 126 [interface].IncorrectPin 127 128 void Register(string network_id) 129 130 (Cellular only) Initiate registration on the network 131 specified by network_id, which is in the form MCCMNC. 132 If the network ID is the empty string, then switch 133 back to automatic registration mode before initiating 134 registration. 135 136 If registration succeeds, the network_id is remembered, 137 and is saved in the profile, so that the same network 138 will be tried again if the modem is disabled and then 139 re-enabled, or if the system is restarted or resumed. 140 141 If registration fails, the network_id is not 142 remembered, and is not saved in the profile. If it was 143 already in the profile, it is deleted. In addtion, one 144 more attempt is made to register, after switching back 145 to automatic registration mode. 146 147 void SetCarrier(string carrier) 148 149 (Cellular only) Set the modem carrier firmware. For 150 example, switch between CDMA (Verizon Wireless/Sprint) 151 and Generic UMTS. The Cellular.SupportedCarriers 152 property lists all supported carriers. 153 154 Possible Errors: [service].Error.Failure 155 [service].Error.NotSupported 156 157 void Reset() 158 159 Reset the device. The implementation is device- 160 dependent. In some cases, the device and its associated 161 service(s) may be destroyed after the physical device 162 is reset. In such case, a new device is expected to be 163 created after the physical device reappears on the 164 system. Currently, device reset is only supported by 165 cellular devices managed by ModemManager. 166 167 Possible Errors: [service].Error.Failure 168 [service].Error.NotSupported 169 170 void ResetByteCounters() 171 172 Reset the device's persisted counters of transmitted 173 174 string PerformTDLSOperation(string operation, 175 string peer) [readwrite] 176 177 (WiFi only) Perform a TDLS operation on a peer 178 station. The |peer| argument should be a mac 179 address specified in traditional colon-separated 180 hexidecimal notation, e.g., "aa:bb:cc:dd:ee:ff", 181 or an IPv4 address on the same subnet of this 182 device, e.g., "192.168.1.1". The |operation| 183 parameter should be one of the following: 184 185 "Discover" : Perform TDLS discovery with |peer|. 186 "Setup" : Setup TDLS peering with |peer|. 187 "Status" : Return TDLS status for |peer|. 188 "Teardown" : Tear down TDLS peering with |peer|. 189 190 The method returns without an error if the operation 191 is initiated successfully with the supplicant, but 192 before it is clear whether the operation actually 193 succeeded. 194 195 All methods except "Status" return an empty string. 196 For "Status", the returned string can be one of: 197 198 "Connected" : The TDLS link is active. 199 "Disabled" : TDLS is disabled on this device. 200 "Disconnected" : The TDLS link has been 201 disconnected. 202 "Nonexistent" : No information is known 203 about this TDLS peer. 204 "Unknown" : The TDLS link is in an unknown 205 state. 206 207 Possible Errors: 208 [service].Error.InProgress 209 An IP-to-MAC address lookup is being 210 performed. The caller should retry 211 this operation. 212 [service].Error.InvalidArguments 213 The |operation| is unknown or the 214 |peer| address is misformatted or 215 does not belong to the local subnet. 216 [service].Error.OperationFailed 217 The TDLS or ARP operation failed. 218 219 Signals PropertyChanged(string name, variant value) 220 221 This signal indicates a changed value of the given 222 property. 223 224 Properties string Address [readonly] 225 226 The low-level (physical) address of the device. 227 228 string BgscanMethod [readwrite] 229 230 (WiFi only) A string identifying the background scan 231 algorithm. 232 Possible values: 233 "simple" [default] 234 "learn" 235 236 A change to this property takes affect on the next 237 association. 238 239 uint16 BgscanShortInterval [readwrite] 240 241 (WiFi only) Time in seconds between background scans 242 when actively searching for better APs (e.g., when 243 roaming). 244 245 A change to this property takes affect on the next 246 association. 247 248 int32 BgscanSignalThreshold [readwrite] 249 250 (WiFi only) Receive signal strength threshold (in dBm), 251 for the currently connected network, below which 252 roaming is triggered. 253 254 A change to this property takes affect on the next 255 association. 256 257 boolean Cellular.AllowRoaming [readwrite] 258 259 (Celluar only) Whether cellular data connections 260 are allowed when the device is roaming (i.e, 261 not registered on the home network). When this 262 property is false, data connections are not 263 allowed while roaming (regardless of the AutoConnect 264 setting of associated services). 265 266 If a connection was established while on the home 267 network, and the device begins roaming, the data 268 connection is terminated. 269 270 If the property is true, and a data connection was 271 established while roaming, and then the property is 272 set to false, the connection is terminated. 273 274 If the Cellular.ProviderRequiresRoaming property 275 is true, that setting will override this property's 276 setting. 277 278 By default Cellular.AllowRoaming is false. 279 280 string Cellular.Carrier [readonly] 281 282 (Cellular only) The name of the carrier for 283 which the device is configured. 284 285 dict Cellular.HomeProvider [readonly] [GSM only] 286 287 (Cellular only) Description of the operator that 288 issued the SIM card currently installed in the modem. 289 The dictionary may contain the following string-valued 290 properties: 291 292 "name" The operator name 293 "country" The two-letter country code. 294 "network_id" The MCC (Mobile Country Code) 295 and MNC (Mobile Network Code) of the 296 operator on whose network the device is 297 registered. The value of the property is 298 the simple concatenation of the MCC and 299 the MNC, with no separator. The first 300 three digits are always the MCC, and 301 the following two or three digits are the 302 MNC. 303 304 string Cellular.MEID [readonly] 305 306 (Cellular only) For CDMA modems, the Mobile 307 Equipment Identifer of the modem. 308 309 string Cellular.IMEI [readonly] 310 311 (Cellular only) The International Mobile Equipment 312 Identity of the modem. 313 314 string Cellular.ICCID [readonly] 315 316 (Cellular only) For GSM / LTE modems, the Integrated 317 Circuit Card Identifer of the SIM card installed in 318 the device. Blank otherwise. 319 320 string Cellular.IMSI [readonly] 321 322 (Cellular only) For GSM modems, the International 323 Mobile Subscriber Identity of the SIM card 324 installed in the device. 325 326 string Cellular.ESN [readonly] 327 328 (Cellular only) The Electronic Serial Number of 329 the modem. 330 331 string Cellular.MDN [readonly] 332 333 (Cellular only) The Mobile Directory Number 334 (i.e., phone number) of the device. 335 336 string Cellular.MIN [readonly] 337 338 (Cellular only) The Mobile Identification Number 339 of the device. The MIN is often the same as 340 the MDN, but may change if a user changes to a 341 different service provider. 342 343 string Cellular.ModelID [readonly] 344 345 (Cellular only) The hardware model of the modem. The 346 contents of this property are unspecified, and are 347 useful primarily as a diagnostic aid. 348 349 string Cellular.Manufacturer [readonly] 350 351 (Cellular only) The manufacturer of the modem. The 352 contents of this property are unspecified, 353 and are useful primarily as a diagnostic aid. 354 355 string Cellular.FirmwareRevision [readonly] 356 357 (Cellular only) The revision of firmware that is 358 loaded in the modem. The contents of this property 359 are unspecified, and are useful primarily as a 360 diagnostic aid. 361 362 string Cellular.HardwareRevision [readonly] 363 364 (Cellular only) The hardware revision of 365 the modem. The contents of this property are 366 unspecified, and are useful primarily as a 367 diagnostic aid. 368 369 int16 Cellular.PRLVersion [readonly] 370 371 (Cellular only) The revision of the Preferred 372 Roaming List that is loaded in the modem. 373 Cellular.PRLVersion is primarily useful as a 374 diagnostic aid. 375 376 boolean Cellular.ProviderRequiresRoaming [readonly] 377 378 (Celluar only) Indicates that the cellular 379 provider (determined based on IMSI and SPN) 380 requires roaming. This is important to 381 certain MVNOs which have no home network and 382 wish to provide network services without 383 regard to the Cellular.AllowRoaming setting. 384 385 dict Cellular.SIMLockStatus [readonly] 386 387 (Cellular only) For GSM modems, a dictionary 388 containing two properties describing the state 389 of the SIM card lock. The two properties are: 390 391 string LockType 392 393 If this string is empty, the SIM card is not 394 PIN-locked. Otherwise, it specifies the type 395 of lock in effect: "sim-pin" or "sim-puk". 396 397 uint32 RetriesLeft 398 399 If LockType is empty or is "sim-pin", then 400 this property gives the number of attempts 401 remaining to supply a correct PIN before the 402 PIN becomes blocked, at which point a PUK 403 provided by the carrier would be necessary 404 to unlock the SIM (and the LockType changes to 405 "sim-puk"). 406 407 If LockType is "sim-puk", then this property 408 gives the number of attempts remaining to supply 409 a correct PUK before the SIM card becomes 410 permanently locked, at which point the SIM 411 card must be replaced. This state is indicated 412 when LockType is "sim-puk" and RetriesLeft is 413 zero. 414 415 boolean LockEnabled 416 417 Indicates whether SIM locking is enabled, 418 i.e., whether, when the device is powered 419 on, a PIN or PUK will need to be entered to 420 unlock the SIM. This differs from the 421 LockType property, which indicates whether 422 the device is currently waiting for a PIN 423 to be entered. The SIM can currently be 424 unlocked (LockType is ""), but at the same 425 time locking can be enabled (LockEnabled is 426 True). 427 428 boolean Cellular.SIMPresent [readonly] 429 430 (Cellular only) For GSM or LTE modems, indicates 431 whether a SIM card is present or not. 432 433 array{string} Cellular.SupportedCarriers [readonly] 434 435 (Cellular only) A list of supported carriers. Each 436 carrier can be used as an argument to the SetCarrier 437 method. 438 439 array{dict} Cellular.FoundNetworks [readonly] [GSM only] 440 441 (Cellular only) The result of the most recent 442 scan operation. The property is an array 443 of dictionaries, with each (string, string) entry 444 from the following properties: 445 446 "status" The availability of the network. Values 447 are "unknown", "available", "current", 448 and "forbidden". 449 "network_id" The network id in the form MCC/MNC 450 (without the '/') 451 "short_name" Short-format name of the network operator 452 "long_name" Long-format name of the network operator 453 "technology" Access technology used by the network, e.g. 454 "GSM", "UMTS", "EDGE", "HSPA", etc. 455 456 array{dict} Cellular.APNList [readonly] [GSM only] 457 458 (Cellular only) The list of APNs associated with 459 the home provider (ref. Cellular.HomeProvider property) 460 The property is an array of dictionaries, with each 461 (string, string) entry from the following properties: 462 463 "apn" The APN, to be used when making 464 connections. 465 "username" The username to be passed along with the 466 APN when making connections. This property 467 is present only if a username is required. 468 "password" The password to be passed along with the 469 APN when making connections. This property 470 is present only if a password is required. 471 "name" Optional description of the APN, not localized. 472 "localized_name" 473 Optional description of the APN, localized. 474 "language" 475 If the "localized_name" property is present, this 476 gives the two-letter language code for the locale 477 of the localized name. If "localized_name" exists, 478 then this property will always exist as well. 479 480 bool EapAuthenticatorDetected [readonly] 481 482 (Ethernet only) Indicates whether an EAP (802.1X) 483 authenticator has been detected on this link. 484 This may mean that EAP credentials are necessary 485 to gain full access to this network. 486 487 bool EapAuthenticationCompleted [readonly] 488 489 (Ethernet only) Indicates whether an EAP (802.1X) 490 authentication is currently valid on this interface. 491 492 bool Ethernet.LinkUp [readonly] 493 494 (Ethernet only) Indicates whether the underlying 495 device has detected the presence of a physical link. 496 497 bool Ethernet.PPPoE 498 499 (Ethernet only) Configures an Ethernet device to be 500 the carrier for a PPPoE connection. Changing this 501 property can tear down the Ethernet/PPPoE service 502 associated with the Ethernet device. 503 504 string Interface [readonly] 505 506 The device interface (for example "eth0" etc.) 507 508 This value is for pure informational purposes. It 509 is not guaranteed that it is always present. 510 511 object SelectedService [readonly] 512 513 Object path of the currently selected service path. 514 The selected service of a device is the service for 515 which it is currently receiving link events. WiFi 516 is slightly different in that it sets the link event 517 immediately after requesting a connection so that 518 failures to connect are correctly attributed. 519 520 The device guarantees that if it is connected, the 521 connected service will appear in SelectedService. 522 However, SelectedService could be just "/", indicating 523 no selected service. The SelectedService is also 524 not guaranteed to be online (e.g. it could be in the 525 process of being connected, or an error state). 526 527 array{object} IPConfigs [readonly] 528 529 List of IPConfig objects paths. Every object path 530 represents a Layer 3 configuration record for 531 the device. In shill, for a connected device, 532 the IPv4 configuration is represented in the 533 first object path in this array. This object is also 534 referenced in the the "IPConfig" property of the 535 connected Service. If the kernel has assigned a 536 globally scoped IPv6 address to this interface, it 537 is reported as an additional object path in this 538 array. 539 540 Whenever either the IPv4 or IPv6 state changes 541 in a way that modifies the contents of either of 542 these IPConfigs, a PropertyChanged signal will be 543 emitted for the Device's IPConfig property. 544 545 int32 LinkMonitorResponseTime [readonly] 546 547 Latest running average of the link monitor response 548 for this device in milliseconds, if the link monitor 549 is active. 550 551 dict LinkStatistics [readonly] 552 553 (WiFi only) A dictionary providing current link 554 statitistics. This can include the following 555 properties, depending on whether the system is 556 connected and the capabilities of the specific 557 WiFi device. 558 559 int8 AverageReceiveSignalDbm 560 561 Reports the running average of signal 562 strength to the connected AP. 563 564 uint32 InactiveTimeMilliseconds 565 566 Reports the time in milliseconds since 567 the last activity by the station. 568 569 int8 LastReceiveSignalDbm 570 571 Reports the signal strength of the last 572 received packet. 573 574 uint32 PacketReceiveSuccesses 575 576 Reports the number of successfully received 577 packets. 578 579 uint32 PacketTransmitFailures 580 581 Reports the number of failed packet 582 transmission attempts. 583 584 uint32 PacketTrasmitSuccesses 585 586 Reports the number of successful packet 587 transmission attempts. 588 589 string TransmitBitrate 590 591 Reports the transmit bitrate of the last 592 successful outbound packet in a textual format 593 which includes additional 802.11n transmit 594 parameters. 595 596 uint32 TransmitRetries 597 598 Reports the number of times the system has had 599 to retry an outgoing packet. 600 601 602 string Name [readonly] 603 604 The device name (for example "Wireless" etc.) 605 606 This name can be used for directly displaying it in 607 the application. It has pure informational purpose 608 and there is not guarantee that it is present. 609 610 boolean Powered [readonly] 611 612 Indicates whether the device is on or off. 613 614 This value does not influence the value of the 615 Policy property. 616 617 The value of this property can be changed by other 618 parts of the system (including the kernel). An 619 example would be modifications via the "ifconfig" 620 command line utility. 621 622 uint64 ReceiveByteCount [readonly] 623 624 The number of bytes received on this interface. 625 This value is persisted and accumulated across 626 connection manager restarts. Shill retrieves 627 these counters from all interfaces every 60 seconds 628 so this value returned might be slightly old. 629 630 uint16 RoamThreshold [readwrite] 631 632 (Defined in WiFi) 633 634 The roam threshold is the AP signal-to-noise value (in 635 dB) below which wpa_supplicant will attempt to roam to 636 a new AP. This property applies to all WiFi services 637 except those that have their per-service RoamThreshold 638 set. Changes to this property will take effect immediately 639 if the current service does not have its RoamThreshold 640 property set. Otherwise, it will take effect the next time 641 we connect to a WiFi service that does not have its 642 RoamThreshold property set. 643 644 uint16 ScanInterval [readwrite] 645 646 (Defined in WiFi and Cellular) 647 648 The scan interval is the time in seconds between 649 automated scan attempts. Setting this value to 650 0 will disable the periodic scanning. 651 652 The default value is 180 and so every 3 minutes 653 a scan procedure will be triggered. 654 655 This property is not available with all types 656 of devices. Some may not support background 657 scanning at all. 658 659 boolean Scanning [readonly] 660 661 (Defined in Cellular, WiFi and WiMAX) 662 663 Indicates that a device is currently performing a 664 network scan. 665 666 uint64 TransmitByteCount [readonly] 667 668 The number of bytes transmitted on this interface. 669 This value is persisted and accumulated across 670 connection manager restarts. Shill retrieves 671 these counters from all interfaces every 60 seconds 672 so this value returned might be slightly old. 673 674 string Type [readonly] 675 676 The device type (for example "ethernet", "wifi" etc.) 677 678 string WakeOnWiFiFeaturesEnabled [readwrite] 679 680 (Defined in WiFi) 681 682 The wake on WiFi features that are currently enabled. 683 The value of this property is "packet" if only wake on 684 packet is enabled, "ssid" if only wake on ssid is enabled, 685 "packet_and_ssid" if both wake on packet and wake on ssid 686 are enabled, and "none" if all wake on WiFi features are 687 disabled. 688 689 Possible errors: [service].Error.NotSupported (wake on WiFi not supported) 690 [service].Error.InvalidArguments (invalid wake on WiFi feature) 691 692 uint32 WakeToScanPeriodSeconds [readwrite] 693 694 (Defined in WiFi) 695 696 The length of time (in seconds) between each instance where the system 697 is woken from suspend to scan for networks in dark resume. Changes to this 698 property will take effect at the next system suspend. 699 700 uint32 NetDetectScanPeriodSeconds [readwrite] 701 702 (Defined in WiFi) 703 704 The length of time (in seconds) between each instance where the wireless 705 NIC performs Net Detect scans while the system is suspended. Changes to 706 this property will take effect at the next system suspend. 707 708 boolean ForceWakeToScanTimer [readwrite] 709 710 (Defined in WiFi) 711 712 If true, forces shill to start an RTC timer that wakes the system 713 periodically to scan for networks if the system is going into suspend 714 while disconnected. This will likely be used for testing only. Otherwise, 715 if this property is false, shill will only start this timer if it has more 716 SSIDs to whitelist than the NIC supports for net detect. Changes to this 717 property will take effect at the next system suspend. 718 719 void AddWakeOnPacketConnection(string endpoint) 720 721 (WiFi only) Program a wake-on-packet rule into the NIC to wake 722 the system from suspend upon receiving packets from the source IP 723 address in the string argument. The format of the argument is: 724 725 <source_ip> 726 727 where <source_ip> is the source IP address of the TCP 728 connection. IPV4 and IPV6 addresses are specified with 729 the standard conventions for IPV4 and IPV6 addresses. 730 The following are a few non-exhaustive examples: 731 732 IPV4: 1.2.3.4, 192.142.3.10 733 IPV6: a::bc:f:5:6d:7:8, abd::20 734 735 The request is valid until removed. However, on shill 736 restart, any wake-on-packet rules are cleared. 737 738 Possible errors: [service].Error.InvalidArguments (argument parsing error) 739 [service].Error.NotFound (there is no such connection) 740 [service].Error.NotSupported (wake-on-packet not supported) 741 742 void RemoveWakeOnPacketConnection(string endpoint) 743 744 (WiFi only) Removes a wake-on-packet rule previously programmed into the 745 NIC to wake the system from suspend upon receiving packets from the 746 source IP address in the string argument. The argument format is the 747 same as that of AddWakeOnPacketConnection. 748 749 Possible errors: [service].Error.InvalidArgument (argument parsing error) 750 [service].Error.NotFound (no such request is active) 751 [service].Error.NotSupported (wake-on-packet not supported) 752 753 void RemoveAllWakeOnPacketConnections() 754 755 (WiFi only) Removes all wake-on-packet rules programmed into the NIC. 756 This is useful to ensure the NIC is in a known state. 757 758 Possible errors: 759 [service].Error.NotSupported (wake-on-packet not supported) 760