autotest: Migrates network_WiFiRoaming/003SSIDMultiSwitchBack to new method.

Replaces a portion of network_WiFiRoaming/00SSIDMultiSwitchBack test
with script and control file in network_WiFi_SSIDMultiSwitchBack
directory.  The 'low signal' tests will be submitted in a different CL.

New code conforms to test infrastructure changes provided to address
crbug.com/224443.

This roaming test configures 2 radios (different frequencies and BSSIDs) on
the same SSID, connects to one, and cuts its power to simulate an
out-of-range event. It then verifies that the DUT discovers this and
connects to the other radio.  Wrote the test to use the
BeagleBone-connected RF attenuators (currently requires a specific
setup: chromeos3-grover-host1) to change the AP's transmit power rather
than the previous 'iw' command that didn't work, anyway.

This CL required various plumbing efforts in the test infrastructure:
  - mulit_interface.  Augmented RvRTestContextManager.configure to take, and
    pass-through, multi_interface (did is_ibss while I was there) to allow
    configuration of an AP to use 2 radios.  Modified LinuxRouter to respond
    to its multi_interface parameter.
  - ap_num.  Added ap_num to WifiTestContextManager.wait_for_connection and
    .assert_ping_from_dut so that I could ping the second radio on an AP.
  - port and MAX_ATTENUATION.  Added port-specific attenuation calls to
    Attenuator and made set_variable_attenuation public so that I could set
    max attenuation (which is relative to the fixed_loss of the attenuator --
    added MAX_ATTENUATION, as well).

BUG=chromium:263887
TEST=autotest (this one).

Change-Id: I00d3b445a22b0a94579f3b033b8f6039764d8c2a
Reviewed-on: https://chromium-review.googlesource.com/168457
Reviewed-by: Wade Guthrie <wdg@chromium.org>
Commit-Queue: Wade Guthrie <wdg@chromium.org>
Tested-by: Wade Guthrie <wdg@chromium.org>
6 files changed