Loading...
Searching...
No Matches
netopt.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2015 Freie Universität Berlin
3 * 2015 Kaspar Schleiser <kaspar@schleiser.de>
4 *
5 * This file is subject to the terms and conditions of the GNU Lesser
6 * General Public License v2.1. See the file LICENSE in the top level
7 * directory for more details.
8 */
9
25#ifndef NET_NETOPT_H
26#define NET_NETOPT_H
27
28#include <stdint.h>
29#include <stdbool.h>
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
45typedef enum {
70
97
102
121
255
268
278
292
301
311
320
331
340
349
359
368
375
380
397
405
415
420
427
445
456
467
476
481
486
495
500
505
512
519
526
531
536
541
546
551
558
565
574
581
588
596
601
606
611
616
621
626
633
640
647
653
659
664
669
675
680
685
690
695
702
707
712
717
722
727
732
737
742
747
752
759
764
765 /* add more options if needed */
766
771
776
781
789
800
809
819
829
839
855
860
865
873
880} netopt_t;
881
889
894typedef enum {
911 /* add other states if needed */
913
923
927typedef uint16_t netopt_channel_t;
928
932typedef int16_t netopt_rssi_t;
933
937#define NETOPT_SCAN_REQ_ALL_CH ((netopt_channel_t)(-1))
938
946
953#define NETOPT_SCAN_RESULT_INITIALIZER(ch, str) \
954 (netopt_scan_result_t) { \
955 .channel = ch, \
956 .strength = str, \
957 }
958
964struct l2scan_list;
965
969typedef void (*netopt_on_scan_result_t) (void *netif, const struct l2scan_list *res);
970
978
985#define NETOPT_SCAN_REQUEST_INITIALIZER(ch, cb) \
986 (netopt_scan_request_t) { \
987 .channel = ch, \
988 .scan_cb = (netopt_on_scan_result_t)cb, \
989 }
990
997
1003#define NETOPT_CONNECT_RESULT_INITIALIZER(ch) \
1004 (netopt_connect_result_t) { \
1005 .channel = ch, \
1006 }
1007
1014
1020#define NETOPT_DISCONNECT_RESULT_INITIALIZER(ch) \
1021 (netopt_disconnect_result_t) { \
1022 .channel = ch, \
1023 }
1024
1028typedef void (*netopt_on_connect_result_t) (void *netif, const struct netopt_connect_result *res);
1029
1033typedef void (*netopt_on_disconnect_result_t) (void *netif, const struct netopt_disconnect_result *res);
1034
1043
1051#define NETOPT_CONNECT_REQUEST_INITIALIZER(ch, ccb, dcb) \
1052 (netopt_connect_request_t) { \
1053 .disconn_cb = (netopt_on_disconnect_result_t)dcb, \
1054 .conn_cb = (netopt_on_connect_result_t)ccb, \
1055 .channel = ch, \
1056 }
1057
1064
1070#define NETOPT_DISCONNECT_REQUEST_INITIALIZER(dcb) \
1071 (netopt_disconnect_request_t) { \
1072 .disconn_cb = (netopt_on_disconnect_result_t)dcb, \
1073 }
1074
1082const char *netopt2str(netopt_t opt);
1083
1084#ifdef __cplusplus
1085}
1086#endif
1087
1088#endif /* NET_NETOPT_H */
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:885
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:45
int16_t netopt_rssi_t
Netopt RSSI type.
Definition netopt.h:932
netopt_rf_testmode_t
Option parameter to be used with NETOPT_RF_TESTMODE.
Definition netopt.h:917
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:1028
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:894
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:927
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:1033
void(* netopt_on_scan_result_t)(void *netif, const struct l2scan_list *res)
Basic callback type on network scan NETOPT_CONNECT.
Definition netopt.h:969
@ NETOPT_DISABLE
disable a given option
Definition netopt.h:886
@ NETOPT_ENABLE
enable a given option
Definition netopt.h:887
@ NETOPT_LORAWAN_ADR
(netopt_enable_t) LoRaWAN adaptive datarate
Definition netopt.h:663
@ 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:850
@ NETOPT_CHANNEL_HOP_PERIOD
(uint8_t) channel hopping period
Definition netopt.h:504
@ NETOPT_RETRANS
(uint8_t) maximum number of retransmissions
Definition netopt.h:233
@ NETOPT_GTS_ALLOC
(ieee802154_dsme_alloc_t) Allocate DSME GTS slot
Definition netopt.h:864
@ NETOPT_CSMA_RETRIES
(uint8_t) maximum number of CSMA retries
Definition netopt.h:330
@ NETOPT_L2FILTER
(l2filter_t) add an address to a link layer filter list
Definition netopt.h:455
@ NETOPT_MR_OFDM_MCS
(uint8_t) MR-OFDM PHY Modulation and Coding Scheme (Values: 0-6)
Definition netopt.h:721
@ NETOPT_BATMON
(uint16_t) Set the battery monitor voltage (in mV).
Definition netopt.h:838
@ NETOPT_OQPSK_RATE
(uint8_t) legacy O-QPSK proprietary mode Allows to select higher data rates than standard 250 kbit/s ...
Definition netopt.h:701
@ NETOPT_LORAWAN_APPSKEY
(uint8_t*) LoRaWAN application session key (16 bytes length)
Definition netopt.h:625
@ 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:164
@ NETOPT_IEEE802154_PHY
(uint8_t) 802.15.4 PHY mode
Definition netopt.h:694
@ NETOPT_ADDRESS
(byte array, see below) link layer address in network byte order
Definition netopt.h:69
@ NETOPT_DEVICE_TYPE
(uint16_t) device type
Definition netopt.h:374
@ NETOPT_MR_FSK_SRATE
(uint8_t) MR-FSK PHY Symbol Rate (kHz)
Definition netopt.h:736
@ NETOPT_ACTIVE
(netopt_enable_t) network interface status.
Definition netopt.h:310
@ NETOPT_CHECKSUM
(netopt_enable_t) enable hardware checksumming
Definition netopt.h:587
@ NETOPT_CHANNEL_PAGE
(uint16_t) channel page as defined by IEEE 802.15.4
Definition netopt.h:379
@ NETOPT_MAX_PDU_SIZE
(uint16_t) maximum protocol data unit
Definition netopt.h:184
@ NETOPT_OTAA
(netopt_enable_t) Enable or disable OTAA activation (LoRaWAN)
Definition netopt.h:770
@ NETOPT_6LO
(netopt_enable_t) 6Lo support
Definition netopt.h:557
@ NETOPT_NUM_GATEWAYS
(uint8_t) Get the number of gateways of the last Link Check request.
Definition netopt.h:780
@ NETOPT_CHANNEL_HOP
(netopt_enable_t) channel hopping
Definition netopt.h:499
@ NETOPT_RAWMODE
(netopt_enable_t) when enabled, bypass protocol processing of incoming frames
Definition netopt.h:245
@ NETOPT_PROTO
(gnrc_nettype_t) the protocol for the layer
Definition netopt.h:237
@ NETOPT_LORAWAN_SNWKSINTKEY
(uint8_t*) LoRaWAN serving network session integrity key (16 bytes length)
Definition netopt.h:639
@ NETOPT_LORAWAN_PUBLIC_NETWORK
(netopt_enable_t) LoRaWAN public network
Definition netopt.h:668
@ NETOPT_LINK_CHECK
(netopt_enable_t) Perform a Link Check request (LoRaWAN)
Definition netopt.h:788
@ NETOPT_AUTOCCA
(netopt_enable_t) perform channel clear assessment before transmitting
Definition netopt.h:291
@ NETOPT_ADDRESS_LONG
(byte array, see below) long link layer address in network byte order
Definition netopt.h:81
@ NETOPT_ADDR_LEN
(uint16_t) get the default address length a network device expects
Definition netopt.h:85
@ NETOPT_RSSI
(int16_t) Received Signal Strength Indicator (RSSI)
Definition netopt.h:799
@ NETOPT_CSMA_MAXBE
(uint8_t) maximum backoff exponent for the CSMA-CA algorithm
Definition netopt.h:339
@ NETOPT_IPV6_GROUP_LEAVE
(ipv6_addr_t) Leave an IPv6 multicast group on an interface
Definition netopt.h:168
@ NETOPT_DEMOD_MARGIN
(uint8_t) Get the demodulation margin of the last Link Check request.
Definition netopt.h:775
@ NETOPT_INTEGRITY_CHECK
(netopt_enable_t) frame integrity check (e.g CRC)
Definition netopt.h:485
@ NETOPT_LORAWAN_RX2_FREQ
(uint32_t) LoRaWAN frequency used for second RX window
Definition netopt.h:679
@ NETOPT_MR_OQPSK_RATE
(uint8_t) MR-O-QPSK Rate Mode
Definition netopt.h:711
@ NETOPT_SCAN
(netopt_scan_request_t) Instruct the interface to do a network scan
Definition netopt.h:808
@ NETOPT_MR_OFDM_OPTION
(uint8_t) MR-OFDM PHY Option (Values: 1-4)
Definition netopt.h:716
@ NETOPT_NID
(uint16_t) network ID
Definition netopt.h:96
@ NETOPT_CSMA
(netopt_enable_t) CSMA/CA support
Definition netopt.h:319
@ NETOPT_MR_FSK_MODULATION_INDEX
(uint8_t) MR-FSK PHY Modulation Index (x 64)
Definition netopt.h:726
@ NETOPT_IQ_INVERT
(netopt_enable_t) IQ inverted
Definition netopt.h:550
@ NETOPT_L2FILTER_RM
(l2filter_t) remove an address from a link layer filter list
Definition netopt.h:466
@ NETOPT_LORAWAN_MIN_RX_SYMBOL
(uint8_t) LoRaWAN maximum system overall timing error (symbols)
Definition netopt.h:689
@ NETOPT_IS_WIRED
(netopt_enable_t) read-only check for a wired interface.
Definition netopt.h:367
@ NETOPT_RF_TESTMODE
(netopt_rf_testmode_t) Test mode for the radio, e.g.
Definition netopt.h:444
@ NETOPT_CODING_RATE
(uint8_t) radio coding rate
Definition netopt.h:540
@ NETOPT_MR_FSK_FEC
(uint8_t) MR-FSK PHY Forward Error Correction
Definition netopt.h:741
@ NETOPT_PROMISCUOUSMODE
(netopt_enable_t) promiscuous mode
Definition netopt.h:211
@ NETOPT_LORAWAN_APPEUI
(uint8_t*) LoRaWAN application EUI (8 bytes length)
Definition netopt.h:600
@ NETOPT_LAST_ED_LEVEL
(int8_t) Energy level during the last performed CCA or RX frame
Definition netopt.h:475
@ NETOPT_LINK
(netopt_enable_t) network interface link status.
Definition netopt.h:300
@ NETOPT_IPV6_IID
(eui64_t) get the IPv6 interface identifier of a network interface
Definition netopt.h:120
@ NETOPT_TX_START_IRQ
(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_TX_STARTED events
Definition netopt.h:267
@ NETOPT_LORAWAN_JOINEUI
(uint8_t*) LoRaWAN join EUI (8 bytes length)
Definition netopt.h:605
@ NETOPT_BANDWIDTH
(uint8_t) radio modulation bandwidth
Definition netopt.h:530
@ NETOPT_IPV6_FORWARDING
(netopt_enable_t) IPv6 forwarding state
Definition netopt.h:172
@ NETOPT_STATS
(netstats_t) get statistics about sent and received packets and data of the device or protocol
Definition netopt.h:414
@ NETOPT_PDU_SIZE
(uint16_t) protocol data unit size
Definition netopt.h:200
@ NETOPT_TX_RETRIES_NEEDED
(uint8_t) retry amount from missing ACKs of the last transmission
Definition netopt.h:573
@ NETOPT_CSMA_MINBE
(uint8_t) minimum backoff exponent for the CSMA-CA algorithm
Definition netopt.h:348
@ NETOPT_CCA_MODE
(uint8_t) CCA mode for the radio transceiver
Definition netopt.h:404
@ NETOPT_TX_POWER
(int16_t) transmit power for radio devices in dBm
Definition netopt.h:180
@ NETOPT_STATE
(netopt_state_t) state of network device
Definition netopt.h:241
@ NETOPT_SRC_LEN
(uint16_t) address length to use for the link layer source address
Definition netopt.h:89
@ 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:136
@ NETOPT_CCA_THRESHOLD
(int8_t) CCA threshold for the radio transceiver
Definition netopt.h:396
@ NETOPT_ENCRYPTION
(netopt_enable_t) link layer encryption.
Definition netopt.h:419
@ NETOPT_MAC_NO_SLEEP
(netopt_enable_t) block transceiver sleep
Definition netopt.h:358
@ NETOPT_ACK_REQ
(netopt_enable_t) acknowledgement request on outgoing frames
Definition netopt.h:229
@ NETOPT_LORAWAN_NWKKEY
(uint8_t*) LoRaWAN network key (16 bytes length)
Definition netopt.h:615
@ NETOPT_ENCRYPTION_KEY
(byte array) set encryption key
Definition netopt.h:426
@ NETOPT_RX_SYMBOL_TIMEOUT
(uint16_t) Get or set the number of PHY symbols before assuming there's no data
Definition netopt.h:763
@ NETOPT_CONNECT
(netopt_connect_request_t) Instructs the interface to connect to a network
Definition netopt.h:818
@ NETOPT_SINGLE_RECEIVE
(netopt_enable_t) single frame reception
Definition netopt.h:511
@ NETOPT_PRELOADING
(netopt_enable_t) frame preloading
Definition netopt.h:207
@ NETOPT_AUTOACK
(netopt_enable_t) automatic link layer ACKs
Definition netopt.h:215
@ NETOPT_LORAWAN_DEVICE_CLASS
(uint8_t) LoRaWAN device class (A, B, C)
Definition netopt.h:652
@ NETOPT_PAN_COORD
(netopt_enable_t) Set/Get PAN coordinator role
Definition netopt.h:859
@ NETOPT_NUMOF
maximum number of options defined here.
Definition netopt.h:879
@ NETOPT_ACK_PENDING
(netopt_enable_t) frame pending bit of ACKs
Definition netopt.h:222
@ NETOPT_RX_TIMEOUT
(uint32_t) reception timeout of a frame
Definition netopt.h:518
@ NETOPT_FIXED_HEADER
(netopt_enable_t) fixed header mode
Definition netopt.h:545
@ NETOPT_MR_OQPSK_CHIPS
(uint8_t) MR-O-QPSK Chip Rate (kchip/s)
Definition netopt.h:706
@ NETOPT_PHY_BUSY
(netopt_enable_t) enable busy mode
Definition netopt.h:595
@ NETOPT_LORAWAN_MAX_RX_ERROR
(uint32_t) LoRaWAN maximum system overall timing error (ms)
Definition netopt.h:684
@ NETOPT_GTS_TX
(netopt_enable_t) Transmit frames using GTS transmission
Definition netopt.h:872
@ NETOPT_TX_END_IRQ
(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_TX_COMPLETE events
Definition netopt.h:277
@ NETOPT_SPREADING_FACTOR
(uint8_t) radio spreading factor
Definition netopt.h:535
@ NETOPT_L2_GROUP_LEAVE
(array of byte arrays) Leave an link layer multicast group
Definition netopt.h:854
@ NETOPT_CHANNEL
(uint16_t) channel number
Definition netopt.h:49
@ NETOPT_LORAWAN_RX2_DR
(loramac_dr_idx_t) LoRaWAN datarate for second RX window
Definition netopt.h:674
@ NETOPT_6LO_IPHC
(netopt_enable_t) header compression
Definition netopt.h:564
@ NETOPT_MR_FSK_MODULATION_ORDER
(uint8_t) MR-FSK Modulation Order
Definition netopt.h:731
@ NETOPT_PREAMBLE_LENGTH
(uint16_t) preamble length
Definition netopt.h:480
@ NETOPT_IS_CHANNEL_CLR
(netopt_enable_t) check whether the network medium is clear
Definition netopt.h:56
@ NETOPT_TX_TIMEOUT
(uint32_t) transmission timeout of a frame
Definition netopt.h:525
@ NETOPT_RX_START_IRQ
(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_RX_STARTED events
Definition netopt.h:254
@ NETOPT_IPV6_ADDR_REMOVE
(ipv6_addr_t) Removes an IPv6 address from an interface
Definition netopt.h:140
@ NETOPT_DISCONNECT
(netopt_disconnect_request_t) Instructs the interface to disconnect from a network
Definition netopt.h:828
@ NETOPT_SYNCWORD
(uint8_t*) phy layer syncword
Definition netopt.h:751
@ NETOPT_LORAWAN_APPKEY
(uint8_t*) LoRaWAN application key (16 bytes length)
Definition netopt.h:610
@ NETOPT_IPV6_SND_RTR_ADV
(netopt_enable_t) sending of IPv6 router advertisements
Definition netopt.h:176
@ NETOPT_CHANNEL_SPACING
(uint8_t) PHY Channel Spacing (kHz)
Definition netopt.h:746
@ NETOPT_CHANNEL_FREQUENCY
(uint32_t) channel center frequency
Definition netopt.h:494
@ NETOPT_IPV6_ADDR_FLAGS
(array of uint8_t) get the flags to the addresses returned by NETOPT_IPV6_ADDR as array
Definition netopt.h:149
@ NETOPT_RANDOM
(uint32_t) Get a random value from the device
Definition netopt.h:758
@ NETOPT_LORAWAN_DR
(uint8_t) LoRaWAN datarate
Definition netopt.h:658
@ NETOPT_LORAWAN_NWKSENCKEY
(uint8_t*) LoRaWAN network session encryption key buffer (16 bytes length)
Definition netopt.h:646
@ NETOPT_BLE_CTX
(netdev_ble_ctx_t) set BLE radio context (channel, CRC, AA)
Definition netopt.h:580
@ NETOPT_HOP_LIMIT
(uint8_t) hop limit
Definition netopt.h:101
@ NETOPT_LORAWAN_FNWKSINTKEY
(uint8_t*) LoRaWAN forwarding network session integrity key (16 bytes length)
Definition netopt.h:632
@ NETOPT_LORAWAN_NWKSKEY
(uint8_t*) LoRaWAN network session key (16 bytes length)
Definition netopt.h:620
@ NETOPT_RF_TESTMODE_CTX_PRBS9
PRBS9 continuous tx mode.
Definition netopt.h:921
@ NETOPT_RF_TESTMODE_IDLE
idle mode, radio off
Definition netopt.h:918
@ NETOPT_RF_TESTMODE_CTX_CW
carrier wave continuous tx mode
Definition netopt.h:920
@ NETOPT_RF_TESTMODE_CRX
continuous rx mode
Definition netopt.h:919
@ NETOPT_STATE_IDLE
idle mode, the device listens to receive packets
Definition netopt.h:897
@ NETOPT_STATE_OFF
powered off
Definition netopt.h:895
@ NETOPT_STATE_RX
receive mode, the device currently receives a packet
Definition netopt.h:899
@ NETOPT_STATE_STANDBY
standby mode.
Definition netopt.h:909
@ NETOPT_STATE_TX
transmit mode, set: triggers transmission of a preloaded packet (see NETOPT_PRELOADING*).
Definition netopt.h:901
@ NETOPT_STATE_RESET
triggers a hardware reset.
Definition netopt.h:907
@ NETOPT_STATE_SLEEP
sleep mode
Definition netopt.h:896
Type of a Link Layer scan list.
Definition l2scan_list.h:37
Basic network connect request.
Definition netopt.h:1038
netopt_on_connect_result_t conn_cb
On connect callback.
Definition netopt.h:1040
netopt_on_disconnect_result_t disconn_cb
On disconnect callback.
Definition netopt.h:1039
netopt_channel_t channel
Channel of the network to connect to.
Definition netopt.h:1041
Basic network connect result.
Definition netopt.h:994
netopt_channel_t channel
Connected channel.
Definition netopt.h:995
Basic network disconnect request.
Definition netopt.h:1061
netopt_on_disconnect_result_t disconn_cb
On disconnect callback.
Definition netopt.h:1062
Basic disconnect result.
Definition netopt.h:1011
netopt_channel_t channel
Channel of the disconnected AP.
Definition netopt.h:1012
Basic network scan request.
Definition netopt.h:974
netopt_on_scan_result_t scan_cb
Scan result callback.
Definition netopt.h:975
netopt_channel_t channel
Channel to scan.
Definition netopt.h:976
Basic network scan result.
Definition netopt.h:942
netopt_channel_t channel
Scanned channel.
Definition netopt.h:943
netopt_rssi_t strength
Received signal strength.
Definition netopt.h:944