Loading...
Searching...
No Matches
netopt.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2015 Freie Universität Berlin
3 * SPDX-FileCopyrightText: 2015 Kaspar Schleiser <kaspar@schleiser.de>
4 * SPDX-License-Identifier: LGPL-2.1-only
5 */
6
7#pragma once
8
23
24#include <stdint.h>
25#include <stdbool.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
41typedef enum {
66
93
98
117
251
264
274
288
297
307
316
327
336
345
355
364
371
376
393
401
411
416
423
441
452
463
472
477
482
491
496
501
508
515
522
527
532
537
542
547
554
561
568
577
584
591
599
604
609
614
619
624
629
636
643
650
656
662
667
672
678
683
688
693
698
705
710
715
720
725
730
735
740
745
750
755
762
767
768 /* add more options if needed */
769
774
779
784
792
803
812
822
832
842
858
863
868
876
883} netopt_t;
884
892
916
926
930typedef uint16_t netopt_channel_t;
931
935typedef int16_t netopt_rssi_t;
936
940#define NETOPT_SCAN_REQ_ALL_CH ((netopt_channel_t)(-1))
941
949
956#define NETOPT_SCAN_RESULT_INITIALIZER(ch, str) \
957 (netopt_scan_result_t) { \
958 .channel = ch, \
959 .strength = str, \
960 }
961
967struct l2scan_list;
968
972typedef void (*netopt_on_scan_result_t) (void *netif, const struct l2scan_list *res);
973
981
988#define NETOPT_SCAN_REQUEST_INITIALIZER(ch, cb) \
989 (netopt_scan_request_t) { \
990 .channel = ch, \
991 .scan_cb = (netopt_on_scan_result_t)cb, \
992 }
993
1000
1006#define NETOPT_CONNECT_RESULT_INITIALIZER(ch) \
1007 (netopt_connect_result_t) { \
1008 .channel = ch, \
1009 }
1010
1017
1023#define NETOPT_DISCONNECT_RESULT_INITIALIZER(ch) \
1024 (netopt_disconnect_result_t) { \
1025 .channel = ch, \
1026 }
1027
1031typedef void (*netopt_on_connect_result_t) (void *netif, const struct netopt_connect_result *res);
1032
1036typedef void (*netopt_on_disconnect_result_t) (void *netif, const struct netopt_disconnect_result *res);
1037
1046
1054#define NETOPT_CONNECT_REQUEST_INITIALIZER(ch, ccb, dcb) \
1055 (netopt_connect_request_t) { \
1056 .disconn_cb = (netopt_on_disconnect_result_t)dcb, \
1057 .conn_cb = (netopt_on_connect_result_t)ccb, \
1058 .channel = ch, \
1059 }
1060
1067
1073#define NETOPT_DISCONNECT_REQUEST_INITIALIZER(dcb) \
1074 (netopt_disconnect_request_t) { \
1075 .disconn_cb = (netopt_on_disconnect_result_t)dcb, \
1076 }
1077
1085const char *netopt2str(netopt_t opt);
1086
1087#ifdef __cplusplus
1088}
1089#endif
1090
struct netopt_scan_request netopt_scan_request_t
Basic network scan request.
netopt_enable_t
Binary parameter for enabling and disabling options.
Definition netopt.h:888
struct netopt_disconnect_result netopt_disconnect_result_t
Basic disconnect result.
netopt_t
Global list of configuration options available throughout the network stack, e.g.
Definition netopt.h:41
int16_t netopt_rssi_t
Netopt RSSI type.
Definition netopt.h:935
netopt_rf_testmode_t
Option parameter to be used with NETOPT_RF_TESTMODE.
Definition netopt.h:920
void(* netopt_on_connect_result_t)(void *netif, const struct netopt_connect_result *res)
Basic callback type on network connection NETOPT_CONNECT.
Definition netopt.h:1031
const char * netopt2str(netopt_t opt)
Get a string ptr corresponding to opt, for debugging.
netopt_state_t
Option parameter to be used with NETOPT_STATE to set or get the state of a network device or protocol...
Definition netopt.h:897
struct netopt_connect_request netopt_connect_request_t
Basic network connect request.
struct netopt_connect_result netopt_connect_result_t
Basic network connect result.
uint16_t netopt_channel_t
Netopt RF channel type.
Definition netopt.h:930
struct netopt_disconnect_request netopt_disconnect_request_t
Basic network disconnect request.
struct netopt_scan_result netopt_scan_result_t
Basic network scan result.
void(* netopt_on_disconnect_result_t)(void *netif, const struct netopt_disconnect_result *res)
Basic callback type on network disconnection NETOPT_CONNECT.
Definition netopt.h:1036
void(* netopt_on_scan_result_t)(void *netif, const struct l2scan_list *res)
Basic callback type on network scan NETOPT_CONNECT.
Definition netopt.h:972
@ NETOPT_DISABLE
disable a given option
Definition netopt.h:889
@ NETOPT_ENABLE
enable a given option
Definition netopt.h:890
@ NETOPT_LORAWAN_ADR
(netopt_enable_t) LoRaWAN adaptive datarate
Definition netopt.h:666
@ NETOPT_L2_GROUP
(array of byte array) get link layer multicast groups as array of byte arrays (length of each byte ar...
Definition netopt.h:853
@ NETOPT_CHANNEL_HOP_PERIOD
(uint8_t) channel hopping period
Definition netopt.h:500
@ NETOPT_RETRANS
(uint8_t) maximum number of retransmissions
Definition netopt.h:229
@ NETOPT_GTS_ALLOC
(ieee802154_dsme_alloc_t) Allocate DSME GTS slot
Definition netopt.h:867
@ NETOPT_CSMA_RETRIES
(uint8_t) maximum number of CSMA retries
Definition netopt.h:326
@ NETOPT_L2FILTER
(l2filter_t) add an address to a link layer filter list
Definition netopt.h:451
@ NETOPT_MR_OFDM_MCS
(uint8_t) MR-OFDM PHY Modulation and Coding Scheme (Values: 0-6)
Definition netopt.h:724
@ NETOPT_BATMON
(uint16_t) Set the battery monitor voltage (in mV).
Definition netopt.h:841
@ NETOPT_OQPSK_RATE
(uint8_t) legacy O-QPSK proprietary mode Allows to select higher data rates than standard 250 kbit/s ...
Definition netopt.h:704
@ NETOPT_LORAWAN_APPSKEY
(uint8_t*) LoRaWAN application session key (16 bytes length)
Definition netopt.h:628
@ NETOPT_IPV6_GROUP
(ipv6_addr_t) get IPv6 multicast groups of an interface as array of ipv6_addr_t or join an IPv6 multi...
Definition netopt.h:160
@ NETOPT_IEEE802154_PHY
(uint8_t) 802.15.4 PHY mode
Definition netopt.h:697
@ NETOPT_ADDRESS
(byte array, see below) link layer address in network byte order
Definition netopt.h:65
@ NETOPT_DEVICE_TYPE
(uint16_t) device type
Definition netopt.h:370
@ NETOPT_MR_FSK_SRATE
(uint8_t) MR-FSK PHY Symbol Rate (kHz)
Definition netopt.h:739
@ NETOPT_ACTIVE
(netopt_enable_t) network interface status.
Definition netopt.h:306
@ NETOPT_CHECKSUM
(netopt_enable_t) enable hardware checksumming
Definition netopt.h:590
@ NETOPT_CHANNEL_PAGE
(uint16_t) channel page as defined by IEEE 802.15.4
Definition netopt.h:375
@ NETOPT_MAX_PDU_SIZE
(uint16_t) maximum protocol data unit
Definition netopt.h:180
@ NETOPT_OTAA
(netopt_enable_t) Enable or disable OTAA activation (LoRaWAN)
Definition netopt.h:773
@ NETOPT_6LO_ABR
(netopt_enable_t) authoritative border router
Definition netopt.h:567
@ NETOPT_6LO
(netopt_enable_t) 6Lo support
Definition netopt.h:553
@ NETOPT_NUM_GATEWAYS
(uint8_t) Get the number of gateways of the last Link Check request.
Definition netopt.h:783
@ NETOPT_CHANNEL_HOP
(netopt_enable_t) channel hopping
Definition netopt.h:495
@ NETOPT_RAWMODE
(netopt_enable_t) when enabled, bypass protocol processing of incoming frames
Definition netopt.h:241
@ NETOPT_PROTO
(gnrc_nettype_t) the protocol for the layer
Definition netopt.h:233
@ NETOPT_LORAWAN_SNWKSINTKEY
(uint8_t*) LoRaWAN serving network session integrity key (16 bytes length)
Definition netopt.h:642
@ NETOPT_LORAWAN_PUBLIC_NETWORK
(netopt_enable_t) LoRaWAN public network
Definition netopt.h:671
@ NETOPT_LINK_CHECK
(netopt_enable_t) Perform a Link Check request (LoRaWAN)
Definition netopt.h:791
@ NETOPT_AUTOCCA
(netopt_enable_t) perform channel clear assessment before transmitting
Definition netopt.h:287
@ NETOPT_ADDRESS_LONG
(byte array, see below) long link layer address in network byte order
Definition netopt.h:77
@ NETOPT_ADDR_LEN
(uint16_t) get the default address length a network device expects
Definition netopt.h:81
@ NETOPT_RSSI
(int16_t) Received Signal Strength Indicator (RSSI)
Definition netopt.h:802
@ NETOPT_CSMA_MAXBE
(uint8_t) maximum backoff exponent for the CSMA-CA algorithm
Definition netopt.h:335
@ NETOPT_IPV6_GROUP_LEAVE
(ipv6_addr_t) Leave an IPv6 multicast group on an interface
Definition netopt.h:164
@ NETOPT_DEMOD_MARGIN
(uint8_t) Get the demodulation margin of the last Link Check request.
Definition netopt.h:778
@ NETOPT_INTEGRITY_CHECK
(netopt_enable_t) frame integrity check (e.g CRC)
Definition netopt.h:481
@ NETOPT_LORAWAN_RX2_FREQ
(uint32_t) LoRaWAN frequency used for second RX window
Definition netopt.h:682
@ NETOPT_MR_OQPSK_RATE
(uint8_t) MR-O-QPSK Rate Mode
Definition netopt.h:714
@ NETOPT_SCAN
(netopt_scan_request_t) Instruct the interface to do a network scan
Definition netopt.h:811
@ NETOPT_MR_OFDM_OPTION
(uint8_t) MR-OFDM PHY Option (Values: 1-4)
Definition netopt.h:719
@ NETOPT_NID
(uint16_t) network ID
Definition netopt.h:92
@ NETOPT_CSMA
(netopt_enable_t) CSMA/CA support
Definition netopt.h:315
@ NETOPT_MR_FSK_MODULATION_INDEX
(uint8_t) MR-FSK PHY Modulation Index (x 64)
Definition netopt.h:729
@ NETOPT_IQ_INVERT
(netopt_enable_t) IQ inverted
Definition netopt.h:546
@ NETOPT_L2FILTER_RM
(l2filter_t) remove an address from a link layer filter list
Definition netopt.h:462
@ NETOPT_LORAWAN_MIN_RX_SYMBOL
(uint8_t) LoRaWAN maximum system overall timing error (symbols)
Definition netopt.h:692
@ NETOPT_IS_WIRED
(netopt_enable_t) read-only check for a wired interface.
Definition netopt.h:363
@ NETOPT_RF_TESTMODE
(netopt_rf_testmode_t) Test mode for the radio, e.g.
Definition netopt.h:440
@ NETOPT_CODING_RATE
(uint8_t) radio coding rate
Definition netopt.h:536
@ NETOPT_MR_FSK_FEC
(uint8_t) MR-FSK PHY Forward Error Correction
Definition netopt.h:744
@ NETOPT_PROMISCUOUSMODE
(netopt_enable_t) promiscuous mode
Definition netopt.h:207
@ NETOPT_LORAWAN_APPEUI
(uint8_t*) LoRaWAN application EUI (8 bytes length)
Definition netopt.h:603
@ NETOPT_LAST_ED_LEVEL
(int8_t) Energy level during the last performed CCA or RX frame
Definition netopt.h:471
@ NETOPT_LINK
(netopt_enable_t) network interface link status.
Definition netopt.h:296
@ NETOPT_IPV6_IID
(eui64_t) get the IPv6 interface identifier of a network interface
Definition netopt.h:116
@ NETOPT_TX_START_IRQ
(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_TX_STARTED events
Definition netopt.h:263
@ NETOPT_LORAWAN_JOINEUI
(uint8_t*) LoRaWAN join EUI (8 bytes length)
Definition netopt.h:608
@ NETOPT_BANDWIDTH
(uint8_t) radio modulation bandwidth
Definition netopt.h:526
@ NETOPT_IPV6_FORWARDING
(netopt_enable_t) IPv6 forwarding state
Definition netopt.h:168
@ NETOPT_STATS
(netstats_t) get statistics about sent and received packets and data of the device or protocol
Definition netopt.h:410
@ NETOPT_PDU_SIZE
(uint16_t) protocol data unit size
Definition netopt.h:196
@ NETOPT_TX_RETRIES_NEEDED
(uint8_t) retry amount from missing ACKs of the last transmission
Definition netopt.h:576
@ NETOPT_CSMA_MINBE
(uint8_t) minimum backoff exponent for the CSMA-CA algorithm
Definition netopt.h:344
@ NETOPT_CCA_MODE
(uint8_t) CCA mode for the radio transceiver
Definition netopt.h:400
@ NETOPT_TX_POWER
(int16_t) transmit power for radio devices in dBm
Definition netopt.h:176
@ NETOPT_STATE
(netopt_state_t) state of network device
Definition netopt.h:237
@ NETOPT_SRC_LEN
(uint16_t) address length to use for the link layer source address
Definition netopt.h:85
@ NETOPT_IPV6_ADDR
(ipv6_addr_t[]) get IPv6 addresses of an interface as array of ipv6_addr_t or add an IPv6 address as ...
Definition netopt.h:132
@ NETOPT_CCA_THRESHOLD
(int8_t) CCA threshold for the radio transceiver
Definition netopt.h:392
@ NETOPT_ENCRYPTION
(netopt_enable_t) link layer encryption.
Definition netopt.h:415
@ NETOPT_MAC_NO_SLEEP
(netopt_enable_t) block transceiver sleep
Definition netopt.h:354
@ NETOPT_ACK_REQ
(netopt_enable_t) acknowledgement request on outgoing frames
Definition netopt.h:225
@ NETOPT_LORAWAN_NWKKEY
(uint8_t*) LoRaWAN network key (16 bytes length)
Definition netopt.h:618
@ NETOPT_ENCRYPTION_KEY
(byte array) set encryption key
Definition netopt.h:422
@ NETOPT_RX_SYMBOL_TIMEOUT
(uint16_t) Get or set the number of PHY symbols before assuming there's no data
Definition netopt.h:766
@ NETOPT_CONNECT
(netopt_connect_request_t) Instructs the interface to connect to a network
Definition netopt.h:821
@ NETOPT_SINGLE_RECEIVE
(netopt_enable_t) single frame reception
Definition netopt.h:507
@ NETOPT_PRELOADING
(netopt_enable_t) frame preloading
Definition netopt.h:203
@ NETOPT_AUTOACK
(netopt_enable_t) automatic link layer ACKs
Definition netopt.h:211
@ NETOPT_LORAWAN_DEVICE_CLASS
(uint8_t) LoRaWAN device class (A, B, C)
Definition netopt.h:655
@ NETOPT_PAN_COORD
(netopt_enable_t) Set/Get PAN coordinator role
Definition netopt.h:862
@ NETOPT_NUMOF
maximum number of options defined here.
Definition netopt.h:882
@ NETOPT_ACK_PENDING
(netopt_enable_t) frame pending bit of ACKs
Definition netopt.h:218
@ NETOPT_RX_TIMEOUT
(uint32_t) reception timeout of a frame
Definition netopt.h:514
@ NETOPT_FIXED_HEADER
(netopt_enable_t) fixed header mode
Definition netopt.h:541
@ NETOPT_MR_OQPSK_CHIPS
(uint8_t) MR-O-QPSK Chip Rate (kchip/s)
Definition netopt.h:709
@ NETOPT_PHY_BUSY
(netopt_enable_t) enable busy mode
Definition netopt.h:598
@ NETOPT_LORAWAN_MAX_RX_ERROR
(uint32_t) LoRaWAN maximum system overall timing error (ms)
Definition netopt.h:687
@ NETOPT_GTS_TX
(netopt_enable_t) Transmit frames using GTS transmission
Definition netopt.h:875
@ NETOPT_TX_END_IRQ
(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_TX_COMPLETE events
Definition netopt.h:273
@ NETOPT_SPREADING_FACTOR
(uint8_t) radio spreading factor
Definition netopt.h:531
@ NETOPT_L2_GROUP_LEAVE
(array of byte arrays) Leave an link layer multicast group
Definition netopt.h:857
@ NETOPT_CHANNEL
(uint16_t) channel number
Definition netopt.h:45
@ NETOPT_LORAWAN_RX2_DR
(loramac_dr_idx_t) LoRaWAN datarate for second RX window
Definition netopt.h:677
@ NETOPT_6LO_IPHC
(netopt_enable_t) header compression
Definition netopt.h:560
@ NETOPT_MR_FSK_MODULATION_ORDER
(uint8_t) MR-FSK Modulation Order
Definition netopt.h:734
@ NETOPT_PREAMBLE_LENGTH
(uint16_t) preamble length
Definition netopt.h:476
@ NETOPT_IS_CHANNEL_CLR
(netopt_enable_t) check whether the network medium is clear
Definition netopt.h:52
@ NETOPT_TX_TIMEOUT
(uint32_t) transmission timeout of a frame
Definition netopt.h:521
@ NETOPT_RX_START_IRQ
(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_RX_STARTED events
Definition netopt.h:250
@ NETOPT_IPV6_ADDR_REMOVE
(ipv6_addr_t) Removes an IPv6 address from an interface
Definition netopt.h:136
@ NETOPT_DISCONNECT
(netopt_disconnect_request_t) Instructs the interface to disconnect from a network
Definition netopt.h:831
@ NETOPT_SYNCWORD
(uint8_t*) phy layer syncword
Definition netopt.h:754
@ NETOPT_LORAWAN_APPKEY
(uint8_t*) LoRaWAN application key (16 bytes length)
Definition netopt.h:613
@ NETOPT_IPV6_SND_RTR_ADV
(netopt_enable_t) sending of IPv6 router advertisements
Definition netopt.h:172
@ NETOPT_CHANNEL_SPACING
(uint8_t) PHY Channel Spacing (kHz)
Definition netopt.h:749
@ NETOPT_CHANNEL_FREQUENCY
(uint32_t) channel center frequency
Definition netopt.h:490
@ NETOPT_IPV6_ADDR_FLAGS
(array of uint8_t) get the flags to the addresses returned by NETOPT_IPV6_ADDR as array
Definition netopt.h:145
@ NETOPT_RANDOM
(uint32_t) Get a random value from the device
Definition netopt.h:761
@ NETOPT_LORAWAN_DR
(uint8_t) LoRaWAN datarate
Definition netopt.h:661
@ NETOPT_LORAWAN_NWKSENCKEY
(uint8_t*) LoRaWAN network session encryption key buffer (16 bytes length)
Definition netopt.h:649
@ NETOPT_BLE_CTX
(netdev_ble_ctx_t) set BLE radio context (channel, CRC, AA)
Definition netopt.h:583
@ NETOPT_HOP_LIMIT
(uint8_t) hop limit
Definition netopt.h:97
@ NETOPT_LORAWAN_FNWKSINTKEY
(uint8_t*) LoRaWAN forwarding network session integrity key (16 bytes length)
Definition netopt.h:635
@ NETOPT_LORAWAN_NWKSKEY
(uint8_t*) LoRaWAN network session key (16 bytes length)
Definition netopt.h:623
@ NETOPT_RF_TESTMODE_CTX_PRBS9
PRBS9 continuous tx mode.
Definition netopt.h:924
@ NETOPT_RF_TESTMODE_IDLE
idle mode, radio off
Definition netopt.h:921
@ NETOPT_RF_TESTMODE_CTX_CW
carrier wave continuous tx mode
Definition netopt.h:923
@ NETOPT_RF_TESTMODE_CRX
continuous rx mode
Definition netopt.h:922
@ NETOPT_STATE_IDLE
idle mode, the device listens to receive packets
Definition netopt.h:900
@ NETOPT_STATE_OFF
powered off
Definition netopt.h:898
@ NETOPT_STATE_RX
receive mode, the device currently receives a packet
Definition netopt.h:902
@ NETOPT_STATE_STANDBY
standby mode.
Definition netopt.h:912
@ NETOPT_STATE_TX
transmit mode, set: triggers transmission of a preloaded packet (see NETOPT_PRELOADING*).
Definition netopt.h:904
@ NETOPT_STATE_RESET
triggers a hardware reset.
Definition netopt.h:910
@ NETOPT_STATE_SLEEP
sleep mode
Definition netopt.h:899
Type of a Link Layer scan list.
Definition l2scan_list.h:33
Basic network connect request.
Definition netopt.h:1041
netopt_on_connect_result_t conn_cb
On connect callback.
Definition netopt.h:1043
netopt_on_disconnect_result_t disconn_cb
On disconnect callback.
Definition netopt.h:1042
netopt_channel_t channel
Channel of the network to connect to.
Definition netopt.h:1044
Basic network connect result.
Definition netopt.h:997
netopt_channel_t channel
Connected channel.
Definition netopt.h:998
Basic network disconnect request.
Definition netopt.h:1064
netopt_on_disconnect_result_t disconn_cb
On disconnect callback.
Definition netopt.h:1065
Basic disconnect result.
Definition netopt.h:1014
netopt_channel_t channel
Channel of the disconnected AP.
Definition netopt.h:1015
Basic network scan request.
Definition netopt.h:977
netopt_on_scan_result_t scan_cb
Scan result callback.
Definition netopt.h:978
netopt_channel_t channel
Channel to scan.
Definition netopt.h:979
Basic network scan result.
Definition netopt.h:945
netopt_channel_t channel
Scanned channel.
Definition netopt.h:946
netopt_rssi_t strength
Received signal strength.
Definition netopt.h:947