esp-idf/components/esp_netif/include/esp_netif_br_glue.h

59 lines
1.5 KiB
C
Raw Normal View History

/*
* 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