Module device

Source
Expand description

Definitions for devices at the IP layer.

Structs§

AddressId
A strongly-held reference to an IP address assigned to a device.
AddressIdIter
An iterator over address StrongIds. Created from IpDeviceAddresses.
CommonAddressProperties
Address properties common to IPv4 and IPv6.
DadAddressStateRef
A reference to the DAD address state.
DadStateRef
Holds references to state associated with duplicate address detection.
DadTimerId
A timer ID for duplicate address detection.
DefaultHopLimit
A container for the default hop limit kept by [IpDeviceState].
DeviceIpAnyApi
The device IP API interacting with all IP versions.
DeviceIpApi
Provides an API for dealing with devices at the IP layer, aka interfaces.
DualStackIpDeviceState
IPv4 and IPv6 state combined.
IidSecret
A secret for generating OpaqueIids.
IpDeviceAddresses
A device’s IP addresses for IP version I.
IpDeviceConfiguration
Configurations common to all IP devices.
IpDeviceConfigurationAndFlags
The device configurations and flags.
IpDeviceConfigurationUpdate
An update to IP device configuration.
IpDeviceFlags
The flags for an IP device.
IpDeviceMulticastGroups
The state kept for each device to handle multicast group membership.
IpDeviceTimerId
An IP device timer.
Ipv4AddrConfig
The configuration for an IPv4 address.
Ipv4AddressEntry
Data associated with an IPv4 address on an interface.
Ipv4AddressState
The state associated with an IPv4 device address.
Ipv4DeviceConfiguration
Configuration common to all IPv4 devices.
Ipv4DeviceConfigurationUpdate
An update to IPv4 device configuration.
Ipv4DeviceTimerId
A timer ID for IPv4 devices.
Ipv6AddrManualConfig
The configuration for a manually-assigned IPv6 address.
Ipv6AddrSlaacConfig
The common configuration for a SLAAC-assigned IPv6 address.
Ipv6AddressEntry
Data associated with an IPv6 address on an interface.
Ipv6AddressFlags
Flags associated with an IPv6 device address.
Ipv6AddressState
The state associated with an IPv6 device address.
Ipv6DeviceConfiguration
Configuration common to all IPv6 devices.
Ipv6DeviceConfigurationUpdate
An update to IPv6 device configuration.
Ipv6DiscoveredRoute
A discovered route.
Ipv6NetworkLearnedParameters
IPv6 device parameters that can be learned from router advertisements.
Ipv6RouteDiscoveryState
Route discovery state on a device.
OpaqueIid
An opaque interface identifier (IID).
PrimaryAddressId
The primary reference to the state associated with an IP address assigned to an IP device.
RsState
A device’s router solicitation state.
RsTimerId
A router solicitation timer.
SlaacAddressEntry
The state associated with a SLAAC address.
SlaacAddressEntryMut
A mutable view into state associated with a SLAAC address’s mutable state.
SlaacConfigAndState
Supports SlaacContext::with_slaac_addrs_mut_and_configs.
SlaacConfiguration
The configuration for SLAAC.
SlaacConfigurationUpdate
An update structure for SlaacConfiguration.
SlaacCounters
Counters for SLAAC.
SlaacState
Global Slaac state on a device.
SlaacTimerId
A timer ID for SLAAC.
TemporarySlaacConfig
Configuration for a temporary IPv6 address assigned via SLAAC.
WeakAddressId
A weakly-held reference to an IP address assigned to a device.

Enums§

AddIpAddrSubnetError
Errors that can be returned by the [DeviceIpApiAny::add_ip_addr_subnet] function.
AddrSubnetAndManualConfigEither
An AddrSubnet together with configuration specified for it when adding it to the stack.
AddressRemovedReason
The reason an address was removed.
DadEvent
Events generated by duplicate address detection.
DelIpAddr
Possible representations of an IP address that is valid for deletion.
IidGenerationConfiguration
The method to use for generating the Interface Identifier portion of stable SLAAC addresses.
InnerSlaacTimerId
Internal SLAAC timer ID key for SlaacState’s LocalTimerHeap.
IpAddressState
IP address assignment states.
IpDeviceEvent
Events emitted from IP devices.
Ipv6AddrConfig
The configuration for an IPv6 address.
Ipv6DadState
The various states DAD may be in for an address.
Ipv6DeviceTimerId
A timer ID for IPv6 devices.
Lifetime
A lifetime that may be forever/infinite.
OpaqueIidNonce
Describes the value being used as the nonce for OpaqueIid.
PreferredLifetime
An address’ preferred lifetime information.
SetIpAddressPropertiesError
Error type for setting properties on IP addresses.
SlaacConfig
Configuration for an IPv6 address assigned via SLAAC that varies based on whether the address is stable or temporary.
StableSlaacAddressConfiguration
Configuration values for SLAAC stable addressing.
TemporarySlaacAddressConfiguration
Configuration values for SLAAC temporary addressing.
UpdateIpConfigurationError
Errors observed from updating a device’s IP configuration.

Constants§

MAX_RTR_SOLICITATION_DELAY
Amount of time to wait after sending MAX_RTR_SOLICITATIONS Router Solicitation messages before determining that there are no routers on the link for the purpose of IPv6 Stateless Address Autoconfiguration if no Router Advertisement messages have been received as defined in RFC 4861 section 10.
RTR_SOLICITATION_INTERVAL
Minimum duration between router solicitation messages as defined in RFC 4861 section 10.
SLAAC_MIN_REGEN_ADVANCE
The minimum REGEN_ADVANCE as specified in RFC 8981 Section 3.8.

Traits§

AssignedAddressState
The state associated with an IP address assigned to an IP device.
DadAddressContext
The execution context while performing DAD.
DadContext
The execution context for DAD.
DadHandler
An implementation for Duplicate Address Detection.
IpAddressIdSpec
A marker trait for a spec of address IDs.
IpAddressIdSpecContext
Ties an IpAddressIdSpec to a core context implementation.
IpDeviceAddressContext
The core context providing access to device IP address state.
IpDeviceBindingsContext
The bindings execution context for IP devices.
IpDeviceConfigurationContext
The execution context for IP devices.
IpDeviceConfigurationHandler
A trait abstracting configuration between IPv4 and IPv6.
IpDeviceIpExt
An extension trait adding IP device properties.
IpDeviceSendContext
The execution context for an IP device with a buffer.
IpDeviceStateBindingsTypes
Bindings types required for IP device state.
IpDeviceStateContext
Accessor for IP device state.
IpDeviceStateIpExt
An Ip extension trait adding IP device state properties.
Ipv6DeviceConfigurationContext
The core context for IPv6 device configuration.
Ipv6DeviceContext
The execution context for an IPv6 device.
Ipv6DeviceHandler
An implementation of an IPv6 device.
Ipv6DiscoveredRoutesContext
An implementation of the execution context available when accessing the IPv6 route discovery state.
Ipv6LinkLayerAddr
A link-layer address that can be used to generate IPv6 addresses.
Ipv6RouteDiscoveryBindingsContext
The bindings execution context for IPv6 route discovery.
Ipv6RouteDiscoveryContext
The execution context for IPv6 route discovery.
RsContext
The execution context for router solicitation.
RsHandler
An implementation of Router Solicitation.
SlaacAddresses
Abstracts iteration over a device’s SLAAC addresses.
SlaacBindingsContext
The bindings execution context for SLAAC.
SlaacContext
The execution context for SLAAC.
WithIpDeviceConfigurationMutInner
The context provided to the callback passed to IpDeviceConfigurationContext::with_ip_device_configuration_mut.
WithIpv6DeviceConfigurationMutInner
The context provided to the callback passed to Ipv6DeviceConfigurationContext::with_ipv6_device_configuration_mut.

Functions§

add_ip_addr_subnet_with_config
Adds addr_sub to device_id with configuration addr_config.
clear_ipv4_device_state
Removes IPv4 state for the device without emitting events.
clear_ipv6_device_state
Removes IPv6 state for the device without emitting events.
del_ip_addr_inner
Deletes an IP address from a device, returning the address and its configuration if it was removed.
get_ipv4_addr_subnet
Gets a single IPv4 address and subnet for a device.
get_ipv6_hop_limit
Gets the hop limit for new IPv6 packets that will be sent out from device.
is_ip_device_enabled
Returns whether device_id is enabled for IP version I.
is_ip_multicast_forwarding_enabled
Is IP packet multicast forwarding enabled?
is_ip_unicast_forwarding_enabled
Is IP packet unicast forwarding enabled?
join_ip_multicast
Adds device_id to a multicast group multicast_addr.
join_ip_multicast_with_config
Joins the multicast group multicast_addr on device_id.
leave_ip_multicast
Removes device_id from a multicast group multicast_addr.
leave_ip_multicast_with_config
Leaves the multicast group multicast_addr on device_id.
receive_igmp_packet
Handles receipt of an IGMP packet on device.