pub enum ControlRequest {
AddAddress {
address: Subnet,
parameters: AddressParameters,
address_state_provider: ServerEnd<AddressStateProviderMarker>,
control_handle: ControlControlHandle,
},
RemoveAddress {
address: Subnet,
responder: ControlRemoveAddressResponder,
},
GetId {
responder: ControlGetIdResponder,
},
SetConfiguration {
config: Configuration,
responder: ControlSetConfigurationResponder,
},
GetConfiguration {
responder: ControlGetConfigurationResponder,
},
Enable {
responder: ControlEnableResponder,
},
Disable {
responder: ControlDisableResponder,
},
Detach {
control_handle: ControlControlHandle,
},
GetAuthorizationForInterface {
responder: ControlGetAuthorizationForInterfaceResponder,
},
Remove {
responder: ControlRemoveResponder,
},
}Expand description
Provides control over an interface.
This protocol encodes the underlying interface’s lifetime in both directions; the interface exists iff both ends of the protocol are open. That is:
- Closing the client end causes the interface to be removed.
- Observing a closure of the server end indicates the interface no longer exists.
Variants§
AddAddress
Assigns an address to the interface.
Errors are communicated via
[fuchsia.net.interfaces.admin/AddressStateProvider.OnAddressRemoved].
- request
addressthe address to assign to the interface. - request
parametersadditional address-specific options. - request
address_state_providerprovides address assignment state and enables updating address properties.
Fields
address: Subnetparameters: AddressParametersaddress_state_provider: ServerEnd<AddressStateProviderMarker>control_handle: ControlControlHandleRemoveAddress
Removes an address from the interface.
- request
addressthe address to remove.
- response
did_removetrueiffaddresswas removed from the interface as a consequence of this call.
GetId
Gets the interface identifier.
- response
idthe interface identifier.
Fields
responder: ControlGetIdResponderSetConfiguration
Sets the configuration for the interface.
Only set fields that are supported in the provided Configuration
will be set; unset fields will be left unmodified. The server will
return a Configuration which holds the previous configuration for
fields that the interface supports and set, even if the call did not
update the configuration’s value.
- request
configthe configuration fields to update on the interface.
- response
previous_configa snapshot of the interface’s previous configuration. Only supported fields present inconfigwill be set.
GetConfiguration
Gets a snapshot of the interface’s configuration.
The server will populate the returned Configuration with the
configuration for features/protocols that the interface supports. That
is, fields for unsupported configurations will be unset in the returned
Configuration.
- response
configa snapshot of the interface’s configuration.
Fields
responder: ControlGetConfigurationResponderEnable
Enables the interface.
- response
did_enabletrueiff the interface moved from disabled to enabled as a consequence of this call.
Fields
responder: ControlEnableResponderDisable
Disables the interface.
- response
did_disabletrueiff the interface moved from enabled to disabled as a consequence of this call.
Fields
responder: ControlDisableResponderDetach
Detaches the client end from the interface’s lifetime.
After calling Detach, closing this client end no longer causes the
interface to be removed.
Fields
control_handle: ControlControlHandleGetAuthorizationForInterface
Get an authentication credential for this interface.
The credential contains a [zx::handle::EVENT], whose entangled
partner is held by the server. This credential can be converted into a
[fuchsia.net.resources/ProofOfInterfaceAuthorization] and then passed
into fuchsia.net.* API calls to prove ownership of this interface. The
EVENT is stable throughout the lifetime of the interface. Clients may
duplicate this EVENT to make multiple API calls, or transfer the
EVENT to other clients.
- response
credentialthe authorization credential for this interface.
Fields
Remove
Initiates interface removal.
This method returns success once interface removal has started. When the
interface is removed, a USER removed reason is issued in
[OnInterfaceRemoved] and the server end is closed.
Fields
responder: ControlRemoveResponderImplementations§
Source§impl ControlRequest
impl ControlRequest
pub fn into_add_address( self, ) -> Option<(Subnet, AddressParameters, ServerEnd<AddressStateProviderMarker>, ControlControlHandle)>
pub fn into_remove_address( self, ) -> Option<(Subnet, ControlRemoveAddressResponder)>
pub fn into_get_id(self) -> Option<ControlGetIdResponder>
pub fn into_set_configuration( self, ) -> Option<(Configuration, ControlSetConfigurationResponder)>
pub fn into_get_configuration(self) -> Option<ControlGetConfigurationResponder>
pub fn into_enable(self) -> Option<ControlEnableResponder>
pub fn into_disable(self) -> Option<ControlDisableResponder>
pub fn into_detach(self) -> Option<ControlControlHandle>
pub fn into_remove(self) -> Option<ControlRemoveResponder>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL