This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC3235S: Broadcasting Beacons with Custom Vendor Specific IE

Part Number: CC3235S


How can I program the CC3235S to broadcast Wi-Fi beacons with a specific "Vendor Specific Information Element" (Element ID 221 in a 802.11 Wi-Fi beacon frame) on Wi-Fi channel 6?

I need to specify the Length, OUI, and data payload that is stored in the Vendor Specific Information Element.

To be extra clear, my goal is not to make a connection with any other devices or transmit to a specific receiver; my goal is solely to broadcast these Wi-Fi beacons that contain a data payload in the Vendor Specific Information Element without a specific end point. The idea is that other Wi-Fi devices nearby can scan for this beacon and be able to read the data payload just from the beacon itself.

  • Check the SL_WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT, see details below (from simplelink driver -> wlan.h):

        - SL_WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT:
         \code
            SlWlanSetInfoElement_t    infoele;
            infoele.Index     = Index;                  // Index of the info element. range: 0 - SL_WLAN_MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED
            infoele.Role      = Role;                   // SL_WLAN_INFO_ELEMENT_AP_ROLE (0) or SL_WLAN_INFO_ELEMENT_P2P_GO_ROLE (1)
            infoele.IE.Id     =  Id;                    // Info element ID. if SL_WLAN_INFO_ELEMENT_DEFAULT_ID (0) is set, ID will be set to 221.
            // Organization unique ID. If all 3 bytes are zero - it will be replaced with 08,00,28.
            infoele.IE.Oui[0] =  Oui0;                  // Organization unique ID first Byte
            infoele.IE.Oui[1] =  Oui1;                  // Organization unique ID second Byte
            infoele.IE.Oui[2] =  Oui2;                  // Organization unique ID third Byte
            infoele.IE.Length = Len;                    // Length of the info element. must be smaller than 253 bytes
            memset(infoele.IE.Data, 0, SL_WLAN_INFO_ELEMENT_MAX_SIZE);
            if ( Len <= SL_WLAN_INFO_ELEMENT_MAX_SIZE )
            {
                memcpy(infoele.IE.Data, IE, Len);           // Info element. length of the info element is [0-252]
                sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID,SL_WLAN_GENERAL_PARAM_OPT_INFO_ELEMENT,sizeof(SlWlanSetInfoElement_t),(_u8* ) &infoele);
            }
        \endcode
        <br>

    If you enable an AP role, this can be used to set Info Element in the AP's beacons
    The Application can set up to SL_WLAN_MAX_PRIVATE_INFO_ELEMENTS_SUPPROTED info elements. 
    To delete an info element use the relevant index and length = 0
    No more than SL_WLAN_INFO_ELEMENT_MAX_TOTAL_LENGTH_AP bytes can be stored for all info elements.

    Note that this will a standard AP that stations can connect to but they don't need to if the purpose is only to hear the beacons.