vintage_net v0.5.1 VintageNet.Technology behaviour View Source
Technologies define how network interface types work
VintageNet comes with several built-in technologies, but more can be
added or existing ones modified by implementing the Technology
behaviour.
Link to this section Summary
Callbacks
Check that the system has all of the required programs for this technology
Handle an ioctl that has been requested on the network interface
Normalize a configuration
Convert a technology-specific configuration to one for VintageNet
Link to this section Callbacks
Check that the system has all of the required programs for this technology
This is intended to help identify missing programs without configuring a network.
ioctl(arg1, command, args)
View Sourceioctl(VintageNet.ifname(), command :: atom(), args :: list()) :: :ok | {:ok, any()} | {:error, any()}
Handle an ioctl that has been requested on the network interface
The function runs isolated in its own process and only one ioctl is guaranteed
to be running at a time. VintageNet
will handle crashes and hangs and unceremoniously
kill the ioctl if the user changes their mind and reconfigures the network interface.
Ioctl support is optional. Examples of ioctl
s include:
:scan
- scan for WiFi networks:statistics
- return a map of network statistics
Normalize a configuration
Technologies can use this to update provided configurations so that same configurations that could be specified in multiple ways have a single representation.
to_raw_config(arg1, config, opts)
View Sourceto_raw_config(VintageNet.ifname(), config :: map(), opts :: keyword()) :: {:ok, VintageNet.Interface.RawConfig.t()} | {:error, any()}
Convert a technology-specific configuration to one for VintageNet