-
Notifications
You must be signed in to change notification settings - Fork 7k
/
esp_netif_net_stack.h
86 lines (72 loc) · 2.28 KB
/
esp_netif_net_stack.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_netif.h"
#include "lwip/netif.h"
#include "esp_netif_ppp.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef err_t (*init_fn_t)(struct netif*);
typedef void (*input_fn_t)(void *netif, void *buffer, size_t len, void *eb);
struct esp_netif_netstack_lwip_vanilla_config {
init_fn_t init_fn;
input_fn_t input_fn;
};
struct esp_netif_netstack_lwip_ppp_config {
input_fn_t input_fn;
esp_netif_ppp_config_t ppp_events;
};
// LWIP netif specific network stack configuration
struct esp_netif_netstack_config {
union {
struct esp_netif_netstack_lwip_vanilla_config lwip;
struct esp_netif_netstack_lwip_ppp_config lwip_ppp;
};
};
/**
* @brief LWIP's network stack init function for Ethernet
* @param netif LWIP's network interface handle
* @return ERR_OK on success
*/
err_t ethernetif_init(struct netif *netif);
/**
* @brief LWIP's network stack input packet function for Ethernet
* @param h LWIP's network interface handle
* @param buffer Input buffer pointer
* @param len Input buffer size
* @param l2_buff External buffer pointer (to be passed to custom input-buffer free)
*/
void ethernetif_input(void *h, void *buffer, size_t len, void *l2_buff);
/**
* @brief LWIP's network stack init function for WiFi (AP)
* @param netif LWIP's network interface handle
* @return ERR_OK on success
*/
err_t wlanif_init_ap(struct netif *netif);
/**
* @brief LWIP's network stack init function for WiFi (Station)
* @param netif LWIP's network interface handle
* @return ERR_OK on success
*/
err_t wlanif_init_sta(struct netif *netif);
/**
* @brief LWIP's network stack init function for WiFi Aware interface (NAN)
* @param netif LWIP's network interface handle
* @return ERR_OK on success
*/
err_t wlanif_init_nan(struct netif *netif);
/**
* @brief LWIP's network stack input packet function for WiFi (both STA/AP)
* @param h LWIP's network interface handle
* @param buffer Input buffer pointer
* @param len Input buffer size
* @param l2_buff External buffer pointer (to be passed to custom input-buffer free)
*/
void wlanif_input(void *h, void *buffer, size_t len, void* l2_buff);
#ifdef __cplusplus
}
#endif