iwd/TODO

209 lines
6.9 KiB
Plaintext
Raw Normal View History

Background
==========
- Priority scale: High, Medium and Low
- Complexity scale: C1, C2, C4 and C8. The complexity scale is exponential,
with complexity 1 being the lowest complexity. Complexity is a function
of both task 'complexity' and task 'scope'.
The general rule of thumb is that a complexity 1 task should take 1-2 weeks
for a person very familiar with the codebase. Higher complexity tasks
require more time and have higher uncertainty.
Higher complexity tasks should be refined into several lower complexity tasks
once the task is better understood.
mac80211_hwsim
==============
- Add support for returning HWSIM_ATTR_RADIO_ID from HWSIM_CMD_CREATE_RADIO
The HWSIM_CMD_CREATE_RADIO command should return HWSIM_CMD_CREATE_RADIO
on success so that the radio id for the created wiphy can be mapped by
test tools or when having to destroy that radio again.
Priority: High
Complexity: C1
- Add support for client tracking of HWSIM_CMD_CREATE_RADIO
When using HWSIM_CMD_CREATE_RADIO command the newly created radio is
not bound to the owner of the netlink socket. This means that the radio
stays around even after the client quits. For testing tools it would
be beneficial if the newly created radio could be bound to the lifetime
of the netlink socket.
Create a new HWSIM_ATTR_DESTROY_RADIO_ON_CLOSE (netlink flag attribute)
that can be given to HWSIM_CMD_CREATE_RADIO to indicate this behavior.
Priority: High
Complexity: C1
- Rename HWSIM_CMD_CREATE_RADIO into HWSIM_CMD_NEW_RADIO
Using the name HWSIM_CMD_NEW_RADIO is more fitting on how other pieces
of the wireless system work.
Rename the HWSIM_CMD_CREATE_RADIO entry in the enum and provde a define
for source level comaptiblity.
Priority: Medium
Complexity: C1
- Rename HWSIM_CMD_DESTROY_RADIO into HWSIM_CMD_DEL_RADIO
Using the name HWSIM_CMD_DEL_RADIO is more fitting on how other pieces
of the wireless system work.
Rename the HWSIM_CMD_DESTROY_RADIO entry in the enum and provde a define
for source level comaptiblity.
Priority: Medium
Complexity: C1
- Provide multicast events for HWSIM_CMD_NEW_RADIO and HWSIM_CMD_DEL_RADIO
When adding new radios via HWSIM_CMD_NEW_RADIO then listeners on the
multicast group "config" should be informed. Same as when an existing
radio gets removed via HWSIM_CMD_DEL_RADIO, send event to "config"
multicast group.
The multicast group "config" does not exist at the moment and needs
be introduced as well.
Priority: Medium
Complexity: C1
- Add support for HWSIM_CMD_GET_RADIO command
Currently it is not possible to list the existing radio created by
mac80211_hwsim. Use the command to dump a list of radios where each
radio at minimum containts the HWSIM_ATTR_RADIO_ID.
For the result HWSIM_CMD_NEW_RADIO (previously HWSIM_CMD_CREATE_RADIO)
should be used.
The dump version should not require any attributes and list all radios
while otherwise the HWSIM_ATTR_RADIO_ID is required to provide details
of a specific radio.
Priority: Medium
Complexity: C1
- Add support for HWSIM_CMD_SET_RADIO command
To allow modifying an existing radio, add the HWSIM_CMD_SET_RADIO. The
first possible feature should be to emulate the hardware RFKILL switch.
It might be required to add a HWSIM_ATTR_RADIO_HW_RFKILL attribute flag
to the HWSIM_CMD_NEW_RADIO to enable virtual radios with a hardware
level RFKILL switch.
Priority: Medium
Complexity: C1
- Allow configuration of MAC address or list of MAC addresses
The radios are auto-generating a fake MAC address. It would be useful
to allow specifying a MAC address to be used. In certain cases it might
be also useful to provide a list of MAC addresses so that for example
with secondary interfaces these can be used.
Priority: Low
Complexity: C2
- Move mac80211_hwsim.h header file to UAPI includes
The mac80211_hwsim.h is the public API description of this netlink
interface and thus it should be provided via UAPI includes.
For this work work the mac80211_hwsim.h header needs to be modified
so that it also compiles from userspace. At the moment it throws
errors. And it needs to become part of the UAPI headers of the
Linux kernel.
In addition it should provide HWSIM_GENL_NAME that provides the
generic netlink "MAC82011_HWSIM" family string.
Priority: Low
Complexity: C1
- Provide kernel option to allow defining the number of initial radios
By default the mac80211_hwsim modules creates 2 radios by default unless
it is overwritten with the radios=x module parameter.
To allow loading the mac80211_hwsim by default and even with accidental
loading of the module, it would be good to provide a kernel configuration
option that allows changing the default value here.
For our testing we want to load mac80211_hwsim without any radios. Maybe
this should be the default for the new kernel option.
If the default of initial radios can be changed to zero, then it is also
possible to add MODULE_ALIAS_GENL_FAMILY to support auto-loading of
the mac80211_hwsim kernel module.
Priority: Low
Complexity: C1
- New configuration options for radios
At the moment the radios created are all equal and feature rich. However
for testing we want to create radios with different emulated hardware
capabilities. Provide new attributes or flags that allow enabling or
disabling certain mac80211 features.
For example AP mode, P2P mode, number of interface combinations, TDLS
support, number of Scan SSIDs, supported ciphers and so on.
Priority: Low
Complexity: C2
cfg80211 / nl80211
==================
- Fix missing NL80211_CMD_NEW_WIPHY and NL80211_CMD_DEL_WIPHY events
When new wiphy devices are added or removed ensure that the appropiate
events are send to the "config" multicast group.
Priority: High
Complexity: C1
- Fix missing NL80211_CMD_NEW_INTERFACE and NL80211_CMD_DEL_INTERFACE events
When new network interfaces added or removed ensure that the appropiate
events are send to the "config" multicast group.
Priority: High
Complexity: C1
- Bind NL80211_CMD_START_SCHED_SCAN to netlink socket
When issuing the NL80211_CMD_START_SCHED_SCAN it should be bound to the
executing netlink client socket. If the application closes that netlink
socket the scheduled scan operation should be canceled.
Priority: Medium
Complexity: C2
- Add missing support for NL80211_CMD_GET_INTERFACE filtering
The NL80211_CMD_GET_INTERFACE command description indicates that you
can filter results based NL80211_ATTR_WIPHY. This feature has never
been implemented.
Either remove that feature from the description since it does not exist
or actually implemented the filtering on wiphy. Johannes indicated that
fixing the description might be the better approach. If the feature is
easy to add, then it should be added. However if filtering on wiphy is
a rather complicated task, then better just update the description to
match the reality.
Priority: Low
Complexity: C2