/* * SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include "esp_netif.h" #ifdef __cplusplus extern "C" { #endif /** * @brief Handle of bridge netif glue - an intermediate layer between ESP-NETIF and bridge ports ESP-NETIFs * to access ports io drivers properties * */ typedef struct esp_netif_br_glue_t* esp_netif_br_glue_handle_t; /** * @brief Create a netif glue for bridge * @note bridge netif glue is used to attach ports netifs to the bridge (e.g. to get io driver statuses) * * @return - glue object on success * - NULL on fail */ esp_netif_br_glue_handle_t esp_netif_br_glue_new(void); /** * @brief Add Ethernet port to the bridge netif glue * * @param netif_br_glue bridge netif glue * @param esp_netif_port Ethernet port netif * @return - ESP_OK on success */ esp_err_t esp_netif_br_glue_add_port(esp_netif_br_glue_handle_t netif_br_glue, esp_netif_t *esp_netif_port); /** * @brief Add WiFi port to the bridge netif glue * * @param netif_br_glue bridge netif glue * @param esp_netif_port WiFi port netif * @return - ESP_OK on success */ esp_err_t esp_netif_br_glue_add_wifi_port(esp_netif_br_glue_handle_t netif_br_glue, esp_netif_t *esp_netif_port); /** * @brief Delete netif glue of bridge * * @param netif_br_glue bridge netif glue * @return - ESP_OK: delete netif glue successfully */ esp_err_t esp_netif_br_glue_del(esp_netif_br_glue_handle_t netif_br_glue); #ifdef __cplusplus } #endif