PROTOCOLS
State
Defined in fuchsia.net.interfaces/interfaces.fidl
Network interface state inspection and observation.
GetWatcher
Initialize a watcher for interface state.
The server enqueues interface addition, deletion and property changes as they occur, which can then be retrieved via the pipelined protocol.
- request
options
specifies the behavior of the Watcher. - request
watcher
grants access to a Watcher. Closed if the queue cannot be allocated or if the queue is full when the server attempts to enqueue an event.
Request
Name | Type |
---|---|
options |
WatcherOptions
|
watcher |
request<Watcher>
|
Watcher
Defined in fuchsia.net.interfaces/interfaces.fidl
Observer protocol for changes to network interfaces (addition, deletion, and interface property changes).
Watch
Hanging get for an interface addition/deletion change.
Clients should only have one call of this method at a time; a second call to this method while a call is already pending will cause the server end of the protocol to be closed.
If there are N interfaces present at the time the server end of the protocol is initialized, then the first N invocations of this method will return Event.existing followed by a single Event.idle indicating that all existing interfaces have been sent. Subsequent calls will immediately return if there is a change to be reported, or block until a change occurs.
The server may choose to coalesce property change events, e.g. when multiple independent property changes occur. As a result, clients cannot assume that the order in which they observe the interface changes is the order in which the changes occurred.
- response
event
the interface change event. Properties of an added or existing interface will have all fields present. Property change events will always have the interface ID field present (the ID never changes); while other fields will only be present with the new value if the property has changed.
Request
<EMPTY>
Response
Name | Type |
---|---|
event |
Event
|
STRUCTS
Empty
Defined in fuchsia.net.interfaces/interfaces.fidl
<EMPTY>
TABLES
Address
Defined in fuchsia.net.interfaces/interfaces.fidl
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
addr |
fuchsia.net/Subnet
|
The address and prefix length. |
2 |
valid_until |
zx/time
|
The time after which the address will no longer be valid. Its value must be greater than 0. A value of As a |
Properties
Defined in fuchsia.net.interfaces/interfaces.fidl
Properties of a network interface.
Ordinal | Field | Type | Description |
---|---|---|---|
1 |
id |
fuchsia.net/interface_id
|
An opaque identifier for the interface. Its value will not be reused even if the device is removed and subsequently re-added. Immutable. |
2 |
addresses |
vector<Address>
|
The addresses currently assigned to the interface. |
3 |
online |
bool
|
The device is enabled and its physical state is online. |
4 |
device_class |
DeviceClass
|
The device class of the interface. Immutable. |
5 |
has_default_ipv4_route |
bool
|
Whether there is a default IPv4 route through this interface. |
6 |
has_default_ipv6_route |
bool
|
Whether there is a default IPv6 route through this interface. |
7 |
name |
name
|
The name of the interface. Immutable. |
WatcherOptions
Defined in fuchsia.net.interfaces/interfaces.fidl
Ordinal | Field | Type | Description |
---|
UNIONS
DeviceClass strict
Defined in fuchsia.net.interfaces/interfaces.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
loopback |
Empty
|
The interface is loopback. |
2 |
device |
fuchsia.hardware.network/DeviceClass
|
The interface's network device class. |
Event strict
Defined in fuchsia.net.interfaces/interfaces.fidl
Ordinal | Variant | Type | Description |
---|---|---|---|
1 |
existing |
Properties
|
Properties of an interface that existed when watching started. All fields are set. |
2 |
added |
Properties
|
Properties of an interface that was added while watching. All fields are set. |
3 |
removed |
fuchsia.net/interface_id
|
ID of an interface that was removed while watching. |
4 |
changed |
Properties
|
Properties of an interface that changed while watching. Only Properties.id and changed fields are set. |
5 |
idle |
Empty
|
Sentinel value indicating no more existing events will be sent. |
CONSTANTS
Name | Value | Type | Description |
---|---|---|---|
INTERFACE_NAME_LENGTH |
15
|
uint8 |
The maximum length of an interface name. |
TYPE ALIASES
Name | Value | Description |
---|---|---|
name |
string [INTERFACE_NAME_LENGTH ] |
An interface name as a sequence of bytes. |