Zephyr Project API  3.2.0
A Scalable Open Source RTOS
ieee802154.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2016 Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
12#ifndef ZEPHYR_INCLUDE_NET_IEEE802154_H_
13#define ZEPHYR_INCLUDE_NET_IEEE802154_H_
14
15#include <limits.h>
16#include <zephyr/net/net_l2.h>
17#include <zephyr/net/net_mgmt.h>
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
31/* See IEEE 802.15.4-2006, sections 5.5.3.2, 6.4.1 and 7.2.1.9 */
32#define IEEE802154_MAX_PHY_PACKET_SIZE 127
33#define IEEE802154_FCS_LENGTH 2
34#define IEEE802154_MTU (IEEE802154_MAX_PHY_PACKET_SIZE - IEEE802154_FCS_LENGTH)
35/* TODO: Support flexible MTU for IEEE 802.15.4-2015 */
36
37#define IEEE802154_SHORT_ADDR_LENGTH 2
38#define IEEE802154_EXT_ADDR_LENGTH 8
39#define IEEE802154_MAX_ADDR_LENGTH IEEE802154_EXT_ADDR_LENGTH
40
41#define IEEE802154_NO_CHANNEL USHRT_MAX
42
43/* See IEEE 802.15.4-2006, section 7.2.1.4 */
44#define IEEE802154_BROADCAST_ADDRESS 0xFFFF
45#define IEEE802154_BROADCAST_PAN_ID 0xFFFF
46
55 uint8_t _unused : 3;
56};
57
58/* This not meant to be used by any code but 802.15.4 L2 stack */
63 struct k_sem ack_lock;
66#ifdef CONFIG_NET_L2_IEEE802154_MGMT
67 struct ieee802154_req_params *scan_ctx;
68 union {
69 struct k_sem res_lock;
70 struct k_sem req_lock;
71 };
72 union {
75 } coord;
76 uint8_t coord_addr_len;
77#endif
78#ifdef CONFIG_NET_L2_IEEE802154_SECURITY
79 struct ieee802154_security_ctx sec_ctx;
80#endif
87 uint8_t _unused : 5;
88};
89
90#define IEEE802154_L2_CTX_TYPE struct ieee802154_context
91
92#ifdef __cplusplus
93}
94#endif
95
100#endif /* ZEPHYR_INCLUDE_NET_IEEE802154_H_ */
Crypto Cipher structure definitions.
#define IEEE802154_MAX_ADDR_LENGTH
Definition: ieee802154.h:39
net_l2_flags
Definition: net_l2.h:33
Public API for network L2 interface.
Network Management API public header.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
__INT16_TYPE__ int16_t
Definition: stdint.h:73
Definition: cipher.h:110
Definition: ieee802154.h:59
uint8_t ack_seq
Definition: ieee802154.h:83
uint8_t associated
Definition: ieee802154.h:86
uint8_t ack_received
Definition: ieee802154.h:84
uint8_t ext_addr[8]
Definition: ieee802154.h:65
uint8_t ack_requested
Definition: ieee802154.h:85
uint8_t sequence
Definition: ieee802154.h:82
struct k_sem ack_lock
Definition: ieee802154.h:63
uint16_t short_addr
Definition: ieee802154.h:64
int16_t tx_power
Definition: ieee802154.h:81
enum net_l2_flags flags
Definition: ieee802154.h:60
uint16_t channel
Definition: ieee802154.h:62
uint16_t pan_id
Definition: ieee802154.h:61
Scanning parameters.
Definition: ieee802154_mgmt.h:186
Definition: ieee802154.h:47
uint8_t key_len
Definition: ieee802154.h:52
uint8_t key[16]
Definition: ieee802154.h:51
uint8_t level
Definition: ieee802154.h:53
struct cipher_ctx dec
Definition: ieee802154.h:50
struct cipher_ctx enc
Definition: ieee802154.h:49
uint32_t frame_counter
Definition: ieee802154.h:48
uint8_t key_mode
Definition: ieee802154.h:54