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
455
465
474
479
484
493
498
503
510
517
524
529
534
539
544
549
556
563
572
579
586
594
599
604
609
614
619
624
631
638
645
651
657
662
667
673
678
683
688
693
700
705
710
715
720
725
730
735
740
745
750
757
762
763 /* add more options if needed */
764
769
774
779
787
798
807
817
827
837
853
858
863
871
878} netopt_t;
879
887
892typedef enum {
909 /* add other states if needed */
911
921
925typedef uint16_t netopt_channel_t;
926
930typedef int16_t netopt_rssi_t;
931
935#define NETOPT_SCAN_REQ_ALL_CH ((netopt_channel_t)(-1))
936
944
951#define NETOPT_SCAN_RESULT_INITIALIZER(ch, str) \
952 (netopt_scan_result_t) { \
953 .channel = ch, \
954 .strength = str, \
955 }
956
962struct l2scan_list;
963
967typedef void (*netopt_on_scan_result_t) (void *netif, const struct l2scan_list *res);
968
976
983#define NETOPT_SCAN_REQUEST_INITIALIZER(ch, cb) \
984 (netopt_scan_request_t) { \
985 .channel = ch, \
986 .scan_cb = (netopt_on_scan_result_t)cb, \
987 }
988
995
1001#define NETOPT_CONNECT_RESULT_INITIALIZER(ch) \
1002 (netopt_connect_result_t) { \
1003 .channel = ch, \
1004 }
1005
1012
1018#define NETOPT_DISCONNECT_RESULT_INITIALIZER(ch) \
1019 (netopt_disconnect_result_t) { \
1020 .channel = ch, \
1021 }
1022
1026typedef void (*netopt_on_connect_result_t) (void *netif, const struct netopt_connect_result *res);
1027
1031typedef void (*netopt_on_disconnect_result_t) (void *netif, const struct netopt_disconnect_result *res);
1032
1041
1049#define NETOPT_CONNECT_REQUEST_INITIALIZER(ch, ccb, dcb) \
1050 (netopt_connect_request_t) { \
1051 .disconn_cb = (netopt_on_disconnect_result_t)dcb, \
1052 .conn_cb = (netopt_on_connect_result_t)ccb, \
1053 .channel = ch, \
1054 }
1055
1062
1068#define NETOPT_DISCONNECT_REQUEST_INITIALIZER(dcb) \
1069 (netopt_disconnect_request_t) { \
1070 .disconn_cb = (netopt_on_disconnect_result_t)dcb, \
1071 }
1072
1080const char *netopt2str(netopt_t opt);
1081
1082#ifdef __cplusplus
1083}
1084#endif
1085
1086#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:883
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:930
netopt_rf_testmode_t
Option parameter to be used with NETOPT_RF_TESTMODE.
Definition netopt.h:915
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:1026
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:892
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:925
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:1031
void(* netopt_on_scan_result_t)(void *netif, const struct l2scan_list *res)
Basic callback type on network scan NETOPT_CONNECT.
Definition netopt.h:967
@ NETOPT_DISABLE
disable a given option
Definition netopt.h:884
@ NETOPT_ENABLE
enable a given option
Definition netopt.h:885
@ NETOPT_LORAWAN_ADR
(netopt_enable_t) LoRaWAN adaptive datarate
Definition netopt.h:661
@ 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:848
@ NETOPT_CHANNEL_HOP_PERIOD
(uint8_t) channel hopping period
Definition netopt.h:502
@ 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:862
@ 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:454
@ NETOPT_MR_OFDM_MCS
(uint8_t) MR-OFDM PHY Modulation and Coding Scheme (Values: 0-6)
Definition netopt.h:719
@ NETOPT_BATMON
(uint16_t) Set the battery monitor voltage (in mV).
Definition netopt.h:836
@ NETOPT_OQPSK_RATE
(uint8_t) legacy O-QPSK proprietary mode Allows to select higher data rates than standard 250 kbit/s ...
Definition netopt.h:699
@ NETOPT_LORAWAN_APPSKEY
(uint8_t*) LoRaWAN application session key (16 bytes length)
Definition netopt.h:623
@ 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:692
@ 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:734
@ NETOPT_ACTIVE
(netopt_enable_t) network interface status.
Definition netopt.h:310
@ NETOPT_CHECKSUM
(netopt_enable_t) enable hardware checksumming
Definition netopt.h:585
@ 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:768
@ NETOPT_6LO
(netopt_enable_t) 6Lo support
Definition netopt.h:555
@ NETOPT_NUM_GATEWAYS
(uint8_t) Get the number of gateways of the last Link Check request.
Definition netopt.h:778
@ NETOPT_CHANNEL_HOP
(netopt_enable_t) channel hopping
Definition netopt.h:497
@ 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:637
@ NETOPT_LORAWAN_PUBLIC_NETWORK
(netopt_enable_t) LoRaWAN public network
Definition netopt.h:666
@ NETOPT_LINK_CHECK
(netopt_enable_t) Perform a Link Check request (LoRaWAN)
Definition netopt.h:786
@ 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:797
@ 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:773
@ NETOPT_INTEGRITY_CHECK
(netopt_enable_t) frame integrity check (e.g CRC)
Definition netopt.h:483
@ NETOPT_LORAWAN_RX2_FREQ
(uint32_t) LoRaWAN frequency used for second RX window
Definition netopt.h:677
@ NETOPT_MR_OQPSK_RATE
(uint8_t) MR-O-QPSK Rate Mode
Definition netopt.h:709
@ NETOPT_SCAN
(netopt_scan_request_t) Instruct the interface to do a network scan
Definition netopt.h:806
@ NETOPT_MR_OFDM_OPTION
(uint8_t) MR-OFDM PHY Option (Values: 1-4)
Definition netopt.h:714
@ 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:724
@ NETOPT_IQ_INVERT
(netopt_enable_t) IQ inverted
Definition netopt.h:548
@ NETOPT_L2FILTER_RM
(l2filter_t) remove an address from a link layer filter list
Definition netopt.h:464
@ NETOPT_LORAWAN_MIN_RX_SYMBOL
(uint8_t) LoRaWAN maximum system overall timing error (symbols)
Definition netopt.h:687
@ 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:538
@ NETOPT_MR_FSK_FEC
(uint8_t) MR-FSK PHY Forward Error Correction
Definition netopt.h:739
@ 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:598
@ NETOPT_LAST_ED_LEVEL
(int8_t) Energy level during the last performed CCA or RX frame
Definition netopt.h:473
@ 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:603
@ NETOPT_BANDWIDTH
(uint8_t) radio modulation bandwidth
Definition netopt.h:528
@ 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:571
@ 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:613
@ 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:761
@ NETOPT_CONNECT
(netopt_connect_request_t) Instructs the interface to connect to a network
Definition netopt.h:816
@ NETOPT_SINGLE_RECEIVE
(netopt_enable_t) single frame reception
Definition netopt.h:509
@ 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:650
@ NETOPT_PAN_COORD
(netopt_enable_t) Set/Get PAN coordinator role
Definition netopt.h:857
@ NETOPT_NUMOF
maximum number of options defined here.
Definition netopt.h:877
@ 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:516
@ NETOPT_FIXED_HEADER
(netopt_enable_t) fixed header mode
Definition netopt.h:543
@ NETOPT_MR_OQPSK_CHIPS
(uint8_t) MR-O-QPSK Chip Rate (kchip/s)
Definition netopt.h:704
@ NETOPT_PHY_BUSY
(netopt_enable_t) enable busy mode
Definition netopt.h:593
@ NETOPT_LORAWAN_MAX_RX_ERROR
(uint32_t) LoRaWAN maximum system overall timing error (ms)
Definition netopt.h:682
@ NETOPT_GTS_TX
(netopt_enable_t) Transmit frames using GTS transmission
Definition netopt.h:870
@ 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:533
@ NETOPT_L2_GROUP_LEAVE
(array of byte arrays) Leave an link layer multicast group
Definition netopt.h:852
@ 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:672
@ NETOPT_6LO_IPHC
(netopt_enable_t) header compression
Definition netopt.h:562
@ NETOPT_MR_FSK_MODULATION_ORDER
(uint8_t) MR-FSK Modulation Order
Definition netopt.h:729
@ NETOPT_PREAMBLE_LENGTH
(uint16_t) preamble length
Definition netopt.h:478
@ 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:523
@ 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:826
@ NETOPT_SYNCWORD
(uint8_t*) phy layer syncword
Definition netopt.h:749
@ NETOPT_LORAWAN_APPKEY
(uint8_t*) LoRaWAN application key (16 bytes length)
Definition netopt.h:608
@ 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:744
@ NETOPT_CHANNEL_FREQUENCY
(uint32_t) channel center frequency
Definition netopt.h:492
@ 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:756
@ NETOPT_LORAWAN_DR
(uint8_t) LoRaWAN datarate
Definition netopt.h:656
@ NETOPT_LORAWAN_NWKSENCKEY
(uint8_t*) LoRaWAN network session encryption key buffer (16 bytes length)
Definition netopt.h:644
@ NETOPT_BLE_CTX
(netdev_ble_ctx_t) set BLE radio context (channel, CRC, AA)
Definition netopt.h:578
@ 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:630
@ NETOPT_LORAWAN_NWKSKEY
(uint8_t*) LoRaWAN network session key (16 bytes length)
Definition netopt.h:618
@ NETOPT_RF_TESTMODE_CTX_PRBS9
PRBS9 continuous tx mode.
Definition netopt.h:919
@ NETOPT_RF_TESTMODE_IDLE
idle mode, radio off
Definition netopt.h:916
@ NETOPT_RF_TESTMODE_CTX_CW
carrier wave continuous tx mode
Definition netopt.h:918
@ NETOPT_RF_TESTMODE_CRX
continuous rx mode
Definition netopt.h:917
@ NETOPT_STATE_IDLE
idle mode, the device listens to receive packets
Definition netopt.h:895
@ NETOPT_STATE_OFF
powered off
Definition netopt.h:893
@ NETOPT_STATE_RX
receive mode, the device currently receives a packet
Definition netopt.h:897
@ NETOPT_STATE_STANDBY
standby mode.
Definition netopt.h:907
@ NETOPT_STATE_TX
transmit mode, set: triggers transmission of a preloaded packet (see NETOPT_PRELOADING*).
Definition netopt.h:899
@ NETOPT_STATE_RESET
triggers a hardware reset.
Definition netopt.h:905
@ NETOPT_STATE_SLEEP
sleep mode
Definition netopt.h:894
Type of a Link Layer scan list.
Definition l2scan_list.h:37
Basic network connect request.
Definition netopt.h:1036
netopt_on_connect_result_t conn_cb
On connect callback.
Definition netopt.h:1038
netopt_on_disconnect_result_t disconn_cb
On disconnect callback.
Definition netopt.h:1037
netopt_channel_t channel
Channel of the network to connect to.
Definition netopt.h:1039
Basic network connect result.
Definition netopt.h:992
netopt_channel_t channel
Connected channel.
Definition netopt.h:993
Basic network disconnect request.
Definition netopt.h:1059
netopt_on_disconnect_result_t disconn_cb
On disconnect callback.
Definition netopt.h:1060
Basic disconnect result.
Definition netopt.h:1009
netopt_channel_t channel
Channel of the disconnected AP.
Definition netopt.h:1010
Basic network scan request.
Definition netopt.h:972
netopt_on_scan_result_t scan_cb
Scan result callback.
Definition netopt.h:973
netopt_channel_t channel
Channel to scan.
Definition netopt.h:974
Basic network scan result.
Definition netopt.h:940
netopt_channel_t channel
Scanned channel.
Definition netopt.h:941
netopt_rssi_t strength
Received signal strength.
Definition netopt.h:942