1 /*
2  * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #pragma once
7 
8 #include "esp_netif.h"
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 /**
15  * @brief Handle of bridge netif glue - an intermediate layer between ESP-NETIF and bridge ports ESP-NETIFs
16  * to access ports io drivers properties
17  *
18  */
19 typedef struct esp_netif_br_glue_t* esp_netif_br_glue_handle_t;
20 
21 /**
22  * @brief Create a netif glue for bridge
23  * @note bridge netif glue is used to attach ports netifs to the bridge (e.g. to get io driver statuses)
24  *
25  * @return - glue object on success
26  *         - NULL on fail
27  */
28 esp_netif_br_glue_handle_t esp_netif_br_glue_new(void);
29 
30 /**
31  * @brief Add a port to the bridge netif glue
32  *
33  * @param netif_br_glue bridge netif glue
34  * @param esp_netif_port port netif
35  * @return - ESP_OK on success
36  */
37 esp_err_t esp_netif_br_glue_add_port(esp_netif_br_glue_handle_t netif_br_glue, esp_netif_t *esp_netif_port);
38 
39 /**
40  * @brief Delete netif glue of bridge
41  *
42  * @param netif_br_glue bridge netif glue
43  * @return - ESP_OK: delete netif glue successfully
44  */
45 esp_err_t esp_netif_br_glue_del(esp_netif_br_glue_handle_t netif_br_glue);
46 
47 #ifdef __cplusplus
48 }
49 #endif
50