Skip to content
This repository has been archived by the owner on Sep 7, 2020. It is now read-only.

test_flows for ap-metrics-response as part of the refactoring #1442

Conversation

RanRegev
Copy link
Collaborator

added first few lines:
confing request and checking for ACK
the test fails at the moment

vitalybu and others added 2 commits June 16, 2020 11:20
Signed-off-by: Vitaly Bukhovsky <[email protected]>
According to the test plan and source code
create the UML diagram which describes
data flow and methods for Backhaul STA steering.

Signed-off-by: Vladyslav Tupikin <[email protected]>
abelog added 6 commits June 16, 2020 16:58
Add "prplWRT" device "rax40-1" to boardfarm config.

In order to this config to work, you have to:
1. Create docker bridge network with name "prplMesh-net-rax40-1".
`docker network create --driver=bridge prplMesh-net-rax40-1`
2. Include interface connected to the board in docker network.
`ip link set $RAX40_IFACE master $DOCKER_BRIDGE`
3. Config relies on RAX40 consoles to be at "/dev/ttyUSB0". You may have
to adjust this path to fit your system.

Those steps are required, as regular user is not permitted to attach
interfaces to the bridge.

Signed-off-by: Anton Bilohai <[email protected]>
Add prplWRT class which represents device running prplWRT with prplMesh
installed. This class has required methods to init the board and execute
InitialApConfig test on board.

Signed-off-by: Anton Bilohai <[email protected]>
prplWRT entities are not debugged, as there was no way to test them at
the moment of commit.

`_device_wait_for_log` method: count in start_line given to it, format
return as it's expected by callers.
`ALEntityPrplWrt` constructor: get main bridge name from config. Parse
output of console in Python to be less dependent on board.
`RadioHostapd` constructor: remove usage of `ip -o` as `-o` option is
bugged on RAX40 and mutes output of `ip` command.

Signed-off-by: Anton Bilohai <[email protected]>
Currently, test is trying to match r".* Controller configuration \(WSC
M2 Encrypted Settings\)") which is greedy and captures all chars before
key message. Chars captured by `.*` are not important for us.

Get rid of `.*` in the beginning of regex. Reorder expected logs to
match them in right order.

Signed-off-by: Anton Bilohai <[email protected]>
Currently, boardfarm tests are using UART (serial) connection as main
channel to interact with the board. Sadly, but UART on RAX40 board
frequently suffers from tty overruns. Hence, tests are frequently failed
due to corrupted input line.

Moving to ssh as primary channel resolves issue above. It's faster, so
chance of meeting input overruns is significantly low. But, via ssh we
are unable to see logs from the Intel WiFi driver. Logs from the driver are
used to detect when device has prplMesh in operational state. As those
logs are not longer shown, we have to come up with other way to check
when prplMesh is operational.

Add fallback mechanism: if IP address of DUTs wan is not set - retrieve
IP subnet from docker network of set up and choose .245 address. This
configuration happens over UART.
Move from UART to SSH as primary communication channel.
Add prplmesh_status_check method to tests, to check if prplMesh on
device is operational.

Signed-off-by: Anton Bilohai <[email protected]>
Teardown section of InitialAPConfig test introduced by port of this test
to prplWRT devices is incompatible with dockerized devices. It uses
`device.send` method which is not available for docker devices.
Also, prplmesh_status_check method isn't working for docker devices due
to missing link between AlEntityDocker and PrplMeshDocker device.

Following EAFP strategy, surround sent of Ctrl+C in try-catch block.
Add link between AlEntityDocker and PrplMeshDocker as it done for
prplWRT device and restore prplmesh_status_check method functionality.

Signed-off-by: Anton Bilohai <[email protected]>
@ghost ghost added this to the M3 - Workable product milestone Jun 17, 2020
mariomaz and others added 6 commits June 17, 2020 13:08
Modify transport to include which interface the message was received on.

Interface index will later be stored in topology database whenever a
Topology Discovery message is received.

Signed-off-by: Mario Maz <[email protected]>
When processing Topology Discovery message we must store the IEEE
1905.1 AL MAC address of the transmitting device together with the MAC
address of the interface on which the message is transmitted and the
interface on which such message is received. Currently we are storing
AL MAC address only.

This additional information is required to build Topology Response and
Link Metric Response messages properly.

Signed-off-by: Mario Maz <[email protected]>
SStaStats values were not initialized, which could have lead to
unexpected results if they are read before being assigned to.

Signed-off-by: Raphaël Mélotte <[email protected]>
The previous parsing of SNR and ShortTermRSSIAverage was failing,
leading to a segmentation fault of beerocks_fronthaul.

Parse them as strings instead. Since they contain space-separated
values, split them later.

Fixes #1438

MAP-4.3.2_ETH_FH24G:netgear-rax40

Signed-off-by: Raphaël Mélotte <[email protected]>
Latest changes introduced dependecies to new tools
that are not currently installed in the devcontainer.
Install the missing tools as part of the creation of the devcontainer.

Signed-off-by: Vitaly Bukhovsky <[email protected]>
Change beerocks_monitor attach tasks to beerocks_fronthaul

Signed-off-by: Vitaly Bukhovsky <[email protected]>
@@ -2201,6 +2208,7 @@ bool backhaul_manager::handle_1905_1_message(ieee1905_1::CmduMessageRx &cmdu_rx,
}
case ieee1905_1::eMessageType::MULTI_AP_POLICY_CONFIG_REQUEST_MESSAGE: {
return handle_multi_ap_policy_config_request(cmdu_rx, src_mac);
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you make a small PR with just this fix?

@RanRegev
Copy link
Collaborator Author

RanRegev commented Jun 18, 2020 via email

@RanRegev
Copy link
Collaborator Author

RanRegev commented Jun 18, 2020 via email

@RanRegev
Copy link
Collaborator Author

RanRegev commented Jun 18, 2020 via email

RanRegev and others added 4 commits June 18, 2020 12:19
fixed a strange code in handle_1905_1_message's switch case

Signed-off-by: Ran Regev <[email protected]>
This is a preparative commit for "common: prplmesh_utils.sh: use BML for
operational check"

Add execute BML function

Signed-off-by: itay elenzweig <[email protected]>
prplmesh_utils.sh status returns an operational status determined by
parsing the logs. In some platforms logs wrap around could return "fail"
status although system is operational state.

To resolve this issue, the status check should use the BML command
bml_get_device_operational_radios which returns the status of the
current device using the bridge's MAC address.

Use BML to check operational status

Signed-off-by: itay elenzweig <[email protected]>
Currently prplmesh_utills.sh stop sends SIGKILL to all processes.
Since SIGKILL cannot be handled monitor/agent/controller
processes are not shutdown properly.
As a result old wpa ctrl socket are not detached and files
are not deleted.

Change killall_program() to send SIGTERM instead on default.

Signed-off-by: Alex Kanter <[email protected]>
@RanRegev RanRegev force-pushed the refactor/ap_link_metrics_isolated_tests branch 2 times, most recently from bb289e6 to ea92e3c Compare June 21, 2020 09:44
arnout and others added 2 commits June 22, 2020 12:14
We have a requirement for mergify that no status checks should fail.
This is kind of redundant, because mergify will only do the merge if no
*required* status checks fail anyway.

Since we now have a non-required status check (UTAF) that often fails,
we really need to remove that redundant requirement.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <[email protected]>
Change the type of field tlv_mac_tlv from tlvAlMacAddressType to
tlvMacAddress.

Note that this change does not affect to autogenerated files nor to
source code.

Signed-off-by: Mario Maz <[email protected]>
mariomaz and others added 6 commits June 22, 2020 10:54
No TLV type ends with prefix 'Type' except this one. Rename it to look
like the rest of TLVs

Signed-off-by: Mario Maz <[email protected]>
Method linux_get_iface_index() is a wrapper for if_nametoindex but
return types differ.

Change return type of linux_get_iface_index from int to uint32_t and
also write a message to log in case of error.

This is a preparatory commit. This method is currently not used but it
will be in next commits.

Signed-off-by: Mario Maz <[email protected]>
Add new iface_name parameter to send_cmdu() functions to specify on
which interface the transport should send given CMDU.

This is a preparatory commit to later implement neighbor multicast of
Topology Discovery message.

Signed-off-by: Mario Maz <[email protected]>
Currently, we sent a single Topology Discovery message through the
bridge.

However, according to IEEE1905.1, the message should include a MAC
Address TLV which contains the address of the interface on which you
send the message. Thus, a different message should be sent on each
interface.

Therefore, the agent should send a separate Discovery message on each
interface.

Signed-off-by: Mario Maz <[email protected]>
For auto-generating TLV for Backhaul STA Steering
Request/Response needs to add yaml files to the tlv_conf.yaml.
It is turning on auto-generation code from those TLV.

Signed-off-by: Vladyslav Tupikin <[email protected]>
In the method parseNextTlv() missing cases for
Backhaul STA Steering Request/Response TLV's.

Add missing cases with correct values for
message types.

Signed-off-by: Vladyslav Tupikin <[email protected]>
@RanRegev RanRegev force-pushed the refactor/ap_link_metrics_isolated_tests branch from 7fabb41 to 59e3336 Compare June 22, 2020 13:26
Vladyslav Tupikin and others added 2 commits June 22, 2020 16:49
…SAGE

Create new class ExpectedApMetricsResponse for
easy handling of the logic of AP Metrics query and response.
The class saves the expected bssids responses and
collect them together before sending the combined
response to the controller

Signed-off-by: Vladyslav Tupikin <[email protected]>
Signed-off-by: Ran Regev <[email protected]>
added test for ap metrics query/response
tests that there is exactly one response from
each agent within the time of the interval

MAP-4.7.4_ETH_FH24G:netgear-rax40
MAP-4.7.4_ETH_FH5GL:netgear-rax40
MAP-4.7.4_ETH_FH5GH:netgear-rax40
MAP-4.7.5_ETH_FH24G:netgear-rax40
MAP-4.7.5_ETH_FH5GL:netgear-rax40
MAP-4.7.5_ETH_FH5GH:netgear-rax40
MAP-4.7.6_ETH_FH24G:netgear-rax40
MAP-4.7.6_ETH_FH5GL:netgear-rax40
MAP-4.7.6_ETH_FH5GH:netgear-rax40
@RanRegev RanRegev force-pushed the refactor/ap_link_metrics_isolated_tests branch from 59e3336 to 4207979 Compare June 22, 2020 14:22
@RanRegev RanRegev closed this Jun 22, 2020
@RanRegev
Copy link
Collaborator Author

This PR is too messy.
Creating a new PR with only two commits.
#1467

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants