kopia lustrzana https://github.com/espressif/esp-idf
system api: Check if Base MAC is a unicast MAC before setting
Closes https://github.com/espressif/esp-idf/issues/4263 Closes IDFGH-2096pull/4345/head
rodzic
a45e998534
commit
912bd03a5c
|
@ -51,7 +51,11 @@ esp_err_t esp_base_mac_addr_set(uint8_t *mac)
|
||||||
{
|
{
|
||||||
if (mac == NULL) {
|
if (mac == NULL) {
|
||||||
ESP_LOGE(TAG, "Base MAC address is NULL");
|
ESP_LOGE(TAG, "Base MAC address is NULL");
|
||||||
abort();
|
return ESP_ERR_INVALID_ARG;
|
||||||
|
}
|
||||||
|
if (mac[0] & 0x01) {
|
||||||
|
ESP_LOGE(TAG, "Base MAC must be a unicast MAC");
|
||||||
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(base_mac_addr, mac, 6);
|
memcpy(base_mac_addr, mac, 6);
|
||||||
|
|
|
@ -54,7 +54,11 @@ esp_err_t esp_base_mac_addr_set(uint8_t *mac)
|
||||||
{
|
{
|
||||||
if (mac == NULL) {
|
if (mac == NULL) {
|
||||||
ESP_LOGE(TAG, "Base MAC address is NULL");
|
ESP_LOGE(TAG, "Base MAC address is NULL");
|
||||||
abort();
|
return ESP_ERR_INVALID_ARG;
|
||||||
|
}
|
||||||
|
if (mac[0] & 0x01) {
|
||||||
|
ESP_LOGE(TAG, "Base MAC must be a unicast MAC");
|
||||||
|
return ESP_ERR_INVALID_ARG;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(base_mac_addr, mac, 6);
|
memcpy(base_mac_addr, mac, 6);
|
||||||
|
|
|
@ -161,9 +161,15 @@ void esp_fill_random(void *buf, size_t len);
|
||||||
* address with the MAC address which is stored in BLK3 of EFUSE or external storage before initializing
|
* address with the MAC address which is stored in BLK3 of EFUSE or external storage before initializing
|
||||||
* WiFi/BT/Ethernet.
|
* WiFi/BT/Ethernet.
|
||||||
*
|
*
|
||||||
|
* @note Base MAC must be a unicast MAC (least significant bit of first byte must be zero).
|
||||||
|
*
|
||||||
|
* @note If not using a valid OUI, set the "locally administered" bit
|
||||||
|
* (bit value 0x02 in the first byte) to avoid collisions.
|
||||||
|
*
|
||||||
* @param mac base MAC address, length: 6 bytes.
|
* @param mac base MAC address, length: 6 bytes.
|
||||||
*
|
*
|
||||||
* @return ESP_OK on success
|
* @return ESP_OK on success
|
||||||
|
* ESP_ERR_INVALID_ARG If mac is NULL or is not a unicast MAC
|
||||||
*/
|
*/
|
||||||
esp_err_t esp_base_mac_addr_set(uint8_t *mac);
|
esp_err_t esp_base_mac_addr_set(uint8_t *mac);
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue