Show Contents

# Concurrent modes

Concurrent mode shares the wireless interface between multiple functionalities—for example station, access point, and WiFi direct—using different virtual interfaces for each.

CAUTION! Maximum performance is achieved on the physical wlan0 when the wireless interface is not shared between multiple functionalities. Digi recommends you always use the physical wlan0 interface and only configure virtual interfaces when using concurrent modes.

CAUTION! Digi programs one MAC address for the wireless interface during manufacturing of the SoM. This is the MAC address used for the wlan0 interface. The wireless chip supports up to three other virtual MAC addresses that you need to program before use (otherwise they have default values). See Wireless virtual MAC addresses for instructions.

## Multi client station

You can configure the ConnectCore 6UL as two simultaneous client stations in infrastructure mode: one wireless interface connected to an access point and another wireless interface connected to a different access point. To do this, you must disable the default wlan1 SoftAP configuration.
First, stop the hostapd instance running on the wlan1 interface by bringing the interface down:

    ~# ifdown wlan1

NetworkManager cannot manage access points, so DEY configures it not to manage wlan1 by default. Since in this case you want NetworkManager to manage wlan1 to work as another client station, you must remove this restriction.

Remove wlan1 from the list of unmanaged-devices in the configuration file /etc/NetworkManager/NetworkManager.conf. After the change, the file will look like this:

    [main]
    plugins=ifupdown,keyfile
    no-auto-default=type:ethernet

    [ifupdown]
    managed=false

    [keyfile]
    unmanaged-devices=interface-name:p2p*;

Add a new configuration file like nm.wlan1 for the second wireless interface. To create the file, use the following command and add the necessary information.

    ~# vi /etc/NetworkManager/system-connections/nm.wlan1

    nm.wlan1

    [connection]
    id=wlan1
    type=wifi
    interface-name=wlan1

    [wifi]
    ssid=<AP_name>

    [wifi-security]
    key-mgmt=wpa-psk

    [ipv4]
    method=auto

    [ipv6]
    method=ignore

Now bring the interface up and load the new configuration file so that NetworkManager can start using the new interface. If you reboot, NetworkManager automatically loads the new configuration file.

    ~# nmcli dev load /etc/NetworkManager/system-connections/nm.wlan1
    ~# nmcli con up wlan1

This causes the second wireless interface to connect the AP specified in its configuration file.

## Multi access point

You can configure the ConnectCore 6UL as two simultaneous access points working on the same band. To do this, you must disable the default STA behavior of wlan0. Bring the interface down with:

    ~# nmcli con down wlan0

Since NetworkManager cannot manage access points, you must configure it not to manage wlan0, which will now work as another access point.

Add wlan0 to the list of unmanaged-devices in the configuration file /etc/NetworkManager/NetworkManager.conf. After the change, the file will look like this:

    [main]
    plugins=ifupdown,keyfile
    no-auto-default=type:ethernet

    [ifupdown]
    managed=false

    [keyfile]
    unmanaged-devices=interface-name:p2p*;interface-name:wlan1;interface-name:wlan0

Now configure the /etc/network/interfaces file as follows:

- Configure wlan0 to work as access point, with a static IP.

- Assign a second post-up script to launch the hostapd instance (note that the /etc/init.d/hostapd script already uses a different configuration file per interface)
- Assign one pre-down script to stop the hostapd instance.

- Keep wlan1 in SoftAP mode (default configuration), with a static IP on a different sub-network.

    /etc/network/interfaces

    auto wlan0
    iface wlan0 inet static
    address 192.168.43.30
    netmask 255.255.255.0
    post-up /bin/virtwlans.sh
    post-up /etc/init.d/hostapd start
    pre-down /etc/init.d/hostapd stop

    auto wlan1
    iface wlan1 inet static
    address 192.168.46.30
    netmask 255.255.255.0
    post-up /etc/init.d/hostapd start
    pre-down /etc/init.d/hostapd stop

Create a file /etc/hostapd_wlan0.conf with your desired SoftAP configuration for wlan0. For example:

    ctrl_interface=/var/run/hostapd
    ctrl_interface_group=0
    interface=wlan0
    driver=nl80211

    # WPA2-AES encryption
    ssid=My_AP_wlan0
    auth_algs=1
    wpa=2
    wpa_key_mgmt=WPA-PSK
    wpa_pairwise=CCMP
    wpa_passphrase=MyPassword

    # IEEE 802.11ac
    hw_mode=a
    channel=36
    ieee80211ac=1
    ieee80211n=1

Bring up the wlan0 interface:

    ~# ifup wlan0

## Wi-Fi direct concurrent modes

The ConnectCore 6UL supports simultaneous group owner and group client configuration.

Add the following configuration change to the /etc/wpa_supplicant_p2p.conf file on both devices:

    p2p_no_group_iface=0
    p2p_group_idle=0

This configures the supplicant to use a different interface, p2p0, for P2P group operations. It also maintains an established group, even if there are no other members.

You need all virtual MACs for the P2P setup, so remove the wlan0 and wlan1 interfaces with:

    ~# nmcli con down wlan0
    ~# ifdown wlan1
    ~# iw dev wlan1 del

Add the wlan0 interface to the list of unmanaged devices that is defined in the NetworkManager configuration at /etc/NetworkManager/NetworkManager.conf

    unmanaged-devices=interface-name:p2p*;interface-name:wlan1;interface-name:wlan0

Restart the NetworkManager service:

    ~# /etc/init.d/NetworkManager restart

Bring up the p2p0 interface:

    ~# ifup p2p0

#### Concurrent GO and GC using PBC

    Peer (GO & GC) — PBC — Peer (GO & GC)

Steps | Peer CC6UL1 | Peer CC6UL2 | Notes
--- | --- | --- | ---
0 | wpa_cli -ip2p0 | wpa_cli -ip2p0 |
1 | p2p_group_add |  |
2 |  | p2p_find |
3 | Ctrl-c to exit |  |
4 | wpa_cli -i p2p-p2p0-0 wps_pbc |  |
5 |  | p2p_connect <CC6UL1_go_p2p-p2p0-0_mac_addr> pbc join | This uses the MAC of the first virtual interface
6 | wpa_cli -ip2p0 |  |
7 |  | p2p_group_add |
8 | p2p_find | Ctrl-c to exit |
9 |  | wpa_cli -i p2p-p2p0-1 wps_pbc | This is in the second virtual interface
10 | p2p_connect <CC6UL2_go_p2p-p2p0-1_mac_addr> pbc join |  | This uses the MAC of the second virtual interface
11 | Ctrl-c to exit | Ctrl-c to exit |
12 | ifconfig p2p-p2p0-0 <CC6UL1_ip_addr> | ifconfig p2p-p2p0-0 <CC6UL2_ip_addr> |
13 | ping <CC6UL2_ip_addr> | ping <CC6UL1_ip_addr> |
14 | ifconfig p2p-p2p0-1 <CC6UL1_ip1_addr> | ifconfig p2p-p2p0-1 <CC6UL2_ip1_addr> |
15 | ping <CC6UL2_ip1_addr> | ping <CC6UL1_ip1_addr> |

#### Concurrent GC

    Peer (GC1 & GC2) --- PBC -- Peer1 (GO)
                    |---PBC -- Peer2 (GO)

Steps | Peer CC6UL1 (GO) | Peer CC6UL2 (GO) | Peer CC6UL2 (GC1 & GC2)
--- | --- | --- | ---
1 | wpa_cli -ip2p0 | wpa_cli -ip2p0 | wpa_cli -ip2p0
2 | p2p_group_add |  |
3 |  |  | p2p_find
4 | Ctrl-c to exit |  |
5 | wpa_cli -i p2p-p2p0-0 wps_pbc |  |
6 |  |  | p2p_connect <CC6UL1_go_mac_addr> pbc join
7 |  | p2p_group_add |
8 |  | Ctrl-c to exit | p2p_find
9 |  |  |
10 |  | wpa_cli -i p2p-p2p0-0 wps_pbc |
11 |  |  | p2p_connect <cc6_go_mac_addr> pbc join
12 |  |  | Ctrl-c to exit
13 | ifconfig p2p-p2p0-0 <CC6UL1_ip_addr> | ifconfig p2p-p2p0-0 <CC6UL2_ip_addr> | ifconfig p2p-p2p0-0 <CC6UL2_ip1_addr>
14 |  |  | ifconfig p2p-p2p0-1 <CC6UL2_ip2_addr>
15 | ping <CC6UL2_ip1_addr> |  |
16 |  | ping <CC6UL2_ip2_addr> |
17 |  |  | ping <CC6UL1_ip_addr>
18 |  |  | ping <CC6UL1_ip_addr>

#### Concurrent Soft-AP (2.4GHz) and GO using PBC

The ConnectCore 6UL can be configured simultaneously as access point in band 2.4GHz and autonomous group owner in a peer-to-peer connection.

To use this concurrent mode, append the following lines to the file /lib/firmware/wlan/qcom_cfg.ini before the final END tag:

    /lib/firmware/wlan/qcom_cfg.ini

    # For SAP + P2P Auto GO
    gEnableCustomConcRule1=1 #(Force SSC for SAP + STA)
    gEnableStaConnectionIn5Ghz=0 #(STA connection not allowed on 5 Ghz)
    gMaxConcurrentActiveSessions=3 #(it should be set to 3 [sta+AP+P2Pgo])
    gWlanMccToSccSwitchMode=2 #(force full switch if AP is in same band)
    gEnableDFSChnlScan=0 #(it will disable scanning on DFS channel)
    gSapSccChanAvoidance=0 #(needs to be set to 0 to void channel avoidance)

CAUTION! Append the lines only for this specific case. You will lose other functionalities like station mode for 5GHz band.

Reboot the device so that the wireless driver is reloaded with the new configuration:

    ~# reboot

First configure the SoftAP and then the P2P connection.

- SoftAP

> Set up wlan1 as a static SoftAP as explained in Access point mode. You must use 802.11b/g/n band for this mode to work.

> Note You must use wlan1 interface as SoftAP. This concurrent mode (P2P+SoftAP) does not work with the SoftAP on wlan0.

- P2P (You need an auxiliary device to act as peer. In this example, it is another ConnectCore 6UL)

> 1. Delete wlan0 interface:

>     ~# iw dev wlan0 del

> 1. Bring up the p2p0 interface.

>     ~# ifup p2p0

> 1. Follow the steps from any table in Autonomous GO creation.

© 2018 Digi International Inc. All rights reserved.
Concurrent modes updated on 31 January 2018 04:15:29 PM