nRF WiFi
Toggle main menu visibility
Loading...
Searching...
No Matches
fmac_util.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2024 Nordic Semiconductor ASA
3
*
4
* SPDX-License-Identifier: BSD-3-Clause
5
*/
6
11
#ifndef __FMAC_UTIL_H__
12
#define __FMAC_UTIL_H__
13
14
#include "
fmac_structs_common.h
"
15
16
#include "
fmac_structs_common.h
"
17
#ifdef NRF70_SYSTEM_MODE
18
#include "
system/fmac_structs.h
"
19
#endif
/* NRF70_SYSTEM_MODE */
20
#include "
common/pack_def.h
"
21
22
23
#define NRF_WIFI_FMAC_ETH_ADDR_LEN 6
24
#define NRF_WIFI_FMAC_ETH_HDR_LEN 14
25
26
#define NRF_WIFI_FMAC_FTYPE_DATA 0x0008
27
#define NRF_WIFI_FMAC_STYPE_DATA 0x0000
28
#define NRF_WIFI_FMAC_STYPE_QOS_DATA 0x0080
29
30
#define NRF_WIFI_FMAC_FCTL_FTYPE 0x000c
31
#define NRF_WIFI_FMAC_FCTL_PROTECTED 0x4000
32
#define NRF_WIFI_FMAC_FCTL_TODS 0x0100
33
#define NRF_WIFI_FMAC_FCTL_FROMDS 0x0200
34
35
#define NRF_WIFI_FMAC_CIPHER_SUITE_WEP40 0x000FAC01
36
#define NRF_WIFI_FMAC_CIPHER_SUITE_WEP104 0x000FAC05
37
#define NRF_WIFI_FMAC_CIPHER_SUITE_TKIP 0x000FAC02
38
#define NRF_WIFI_FMAC_CIPHER_SUITE_CCMP 0x000FAC04
39
#define NRF_WIFI_FMAC_CIPHER_SUITE_CCMP_256 0x000FAC0A
40
#define NRF_WIFI_FMAC_CIPHER_SUITE_OPEN 0x0
41
#define NRF_WIFI_FMAC_CIPHER_SUITE_SMS4 0x00147201
42
43
#define NRF_WIFI_FMAC_CCMP_HDR_LEN 8
44
#define NRF_WIFI_FMAC_CCMP_256_HDR_LEN 8
45
#define NRF_WIFI_FMAC_SMS4_HDR_LEN 18
46
47
#define NRF_WIFI_FMAC_WEP_IV_LEN 4
48
#define NRF_WIFI_FMAC_TKIP_IV_LEN 8
49
50
#define NRF_WIFI_FCTL_TODS 0x0100
51
#define NRF_WIFI_FCTL_FROMDS 0x0200
52
#define NRF_WIFI_FMAC_ETH_P_8021Q 0x8100
/* 802.1Q VLAN Extended Header */
53
#define NRF_WIFI_FMAC_ETH_P_8021AD 0x88A8
/* 802.1ad Service VLAN */
54
#define NRF_WIFI_FMAC_ETH_P_MPLS_UC 0x8847
/* MPLS Unicast traffic */
55
#define NRF_WIFI_FMAC_ETH_P_MPLS_MC 0x8848
/* MPLS Multicast traffic */
56
#define NRF_WIFI_FMAC_ETH_P_IP 0x0800
/* Internet Protocol packet */
57
#define NRF_WIFI_FMAC_ETH_P_IPV6 0x86DD
/* IPv6 over bluebook */
58
#define NRF_WIFI_FMAC_ETH_P_80221 0x8917
/* IEEE 802.21 Media Independent Handover Protocol */
59
#define NRF_WIFI_FMAC_ETH_P_AARP 0x80F3
/* Appletalk AARP */
60
#define NRF_WIFI_FMAC_ETH_P_IPX 0x8137
/* IPX over DIX */
61
#define NRF_WIFI_FMAC_ETH_P_802_3_MIN 0x0600
/* If the value in the ethernet type is less than
62
* this value then the frame is Ethernet II.
63
* Else it is 802.3
64
*/
65
#define NRF_WIFI_FMAC_VLAN_PRIO_SHIFT 0x0D
/* 13 bit */
66
#define NRF_WIFI_FMAC_VLAN_PRIO_MASK 0xE000
67
#define NRF_WIFI_FMAC_MPLS_LS_TC_MASK 0x00000E00
68
#define NRF_WIFI_FMAC_MPLS_LS_TC_SHIFT 0x09
69
#define NRF_WIFI_FMAC_IPV6_TOS_MASK 0x0FF0
70
#define NRF_WIFI_FMAC_IPV6_TOS_SHIFT 0x04
/* 4bit */
71
#define NRF_WIFI_FMAC_ETH_TYPE_MASK 0xFFFF
72
73
struct
nrf_wifi_fmac_ieee80211_hdr
{
74
unsigned
short
fc
;
75
unsigned
short
dur_id
;
76
unsigned
char
addr_1
[
NRF_WIFI_FMAC_ETH_ADDR_LEN
];
77
unsigned
char
addr_2
[
NRF_WIFI_FMAC_ETH_ADDR_LEN
];
78
unsigned
char
addr_3
[
NRF_WIFI_FMAC_ETH_ADDR_LEN
];
79
unsigned
short
seq_ctrl
;
80
unsigned
char
addr_4
[
NRF_WIFI_FMAC_ETH_ADDR_LEN
];
81
}
__NRF_WIFI_PKD
;
82
83
84
struct
nrf_wifi_fmac_eth_hdr
{
85
unsigned
char
dst
[
NRF_WIFI_FMAC_ETH_ADDR_LEN
];
/* destination eth addr */
86
unsigned
char
src
[
NRF_WIFI_FMAC_ETH_ADDR_LEN
];
/* source ether addr */
87
unsigned
short
proto
;
/* packet type ID field */
88
}
__NRF_WIFI_PKD
;
89
90
91
struct
nrf_wifi_fmac_amsdu_hdr
{
92
unsigned
char
dst
[
NRF_WIFI_FMAC_ETH_ADDR_LEN
];
/* destination eth addr */
93
unsigned
char
src
[
NRF_WIFI_FMAC_ETH_ADDR_LEN
];
/* source ether addr */
94
unsigned
short
length
;
/* length*/
95
}
__NRF_WIFI_PKD
;
96
97
bool
nrf_wifi_util_is_multicast_addr
(
const
unsigned
char
*
addr
);
98
99
bool
nrf_wifi_util_is_unicast_addr
(
const
unsigned
char
*
addr
);
100
101
bool
nrf_wifi_util_ether_addr_equal
(
const
unsigned
char
*
addr_1
,
102
const
unsigned
char
*
addr_2
);
103
104
unsigned
short
nrf_wifi_util_rx_get_eth_type
(
void
*nwb);
105
unsigned
short
nrf_wifi_util_tx_get_eth_type
(
void
*nwb);
106
107
bool
nrf_wifi_util_is_arr_zero
(
unsigned
char
*arr,
108
unsigned
int
arr_sz);
109
110
void
*
wifi_fmac_priv
(
struct
nrf_wifi_fmac_priv
*def);
111
void
*
wifi_dev_priv
(
struct
nrf_wifi_fmac_dev_ctx
*def);
112
113
#ifdef NRF70_SYSTEM_MODE
114
unsigned
char
*nrf_wifi_util_get_ra(
struct
nrf_wifi_fmac_vif_ctx
*vif,
void
*nwb);
115
#endif
/* NRF70_SYSTEM_MODE */
116
117
#endif
/* __FMAC_UTIL_H__ */
fmac_structs_common.h
addr_1
unsigned char addr_1[6]
Definition
fmac_util.h:2
nrf_wifi_util_ether_addr_equal
bool nrf_wifi_util_ether_addr_equal(const unsigned char *addr_1, const unsigned char *addr_2)
nrf_wifi_util_is_unicast_addr
bool nrf_wifi_util_is_unicast_addr(const unsigned char *addr)
nrf_wifi_util_is_multicast_addr
bool nrf_wifi_util_is_multicast_addr(const unsigned char *addr)
addr_2
unsigned char addr_2[6]
Definition
fmac_util.h:3
NRF_WIFI_FMAC_ETH_ADDR_LEN
#define NRF_WIFI_FMAC_ETH_ADDR_LEN
Header containing utility declarations for the FMAC IF Layer of the Wi-Fi driver.
Definition
fmac_util.h:23
wifi_dev_priv
void * wifi_dev_priv(struct nrf_wifi_fmac_dev_ctx *def)
length
unsigned short length
Definition
fmac_util.h:2
nrf_wifi_util_tx_get_eth_type
unsigned short nrf_wifi_util_tx_get_eth_type(void *nwb)
nrf_wifi_util_is_arr_zero
bool nrf_wifi_util_is_arr_zero(unsigned char *arr, unsigned int arr_sz)
nrf_wifi_util_rx_get_eth_type
unsigned short nrf_wifi_util_rx_get_eth_type(void *nwb)
wifi_fmac_priv
void * wifi_fmac_priv(struct nrf_wifi_fmac_priv *def)
__NRF_WIFI_PKD
#define __NRF_WIFI_PKD
Definition
pack_def.h:27
pack_def.h
addr
unsigned int addr
Definition
rpu_if.h:1
nrf_wifi_fmac_amsdu_hdr::src
unsigned char src[6]
Definition
fmac_util.h:90
nrf_wifi_fmac_amsdu_hdr::dst
unsigned char dst[6]
Definition
fmac_util.h:89
nrf_wifi_fmac_amsdu_hdr
Definition
fmac_util.h:88
nrf_wifi_fmac_dev_ctx
Structure to hold common fmac dev context parameter data.
Definition
fmac_structs_common.h:153
nrf_wifi_fmac_eth_hdr::src
unsigned char src[6]
Definition
fmac_util.h:83
nrf_wifi_fmac_eth_hdr::dst
unsigned char dst[6]
Definition
fmac_util.h:82
nrf_wifi_fmac_eth_hdr::proto
unsigned short proto
Definition
fmac_util.h:84
nrf_wifi_fmac_eth_hdr
Definition
fmac_util.h:81
nrf_wifi_fmac_ieee80211_hdr::addr_1
unsigned char addr_1[6]
Definition
fmac_util.h:73
nrf_wifi_fmac_ieee80211_hdr::seq_ctrl
unsigned short seq_ctrl
Definition
fmac_util.h:76
nrf_wifi_fmac_ieee80211_hdr::addr_4
unsigned char addr_4[6]
Definition
fmac_util.h:77
nrf_wifi_fmac_ieee80211_hdr::fc
unsigned short fc
Definition
fmac_util.h:71
nrf_wifi_fmac_ieee80211_hdr::addr_2
unsigned char addr_2[6]
Definition
fmac_util.h:74
nrf_wifi_fmac_ieee80211_hdr::dur_id
unsigned short dur_id
Definition
fmac_util.h:72
nrf_wifi_fmac_ieee80211_hdr::addr_3
unsigned char addr_3[6]
Definition
fmac_util.h:75
nrf_wifi_fmac_ieee80211_hdr
Definition
fmac_util.h:70
nrf_wifi_fmac_priv
Structure to hold common fmac priv parameter data.
Definition
fmac_structs_common.h:140
nrf_wifi_fmac_vif_ctx
Structure to hold per VIF context information for the UMAC IF layer.
Definition
fmac_structs.h:514
fmac_structs.h
fw_if
umac_if
inc
common
fmac_util.h
Generated on
for nRF WiFi by
1.17.0