Loading...
Searching...
No Matches
Netopt - Configuration options for network APIs

List of available configuration options for the Netdev - Network Device Driver API and the GNRC communication interface. More...

Detailed Description

List of available configuration options for the Netdev - Network Device Driver API and the GNRC communication interface.

Files

file  netopt.h
 Definition of global configuration options.
 

Data Structures

struct  netopt_scan_result
 Basic network scan result. More...
 
struct  netopt_scan_request
 Basic network scan request. More...
 
struct  netopt_connect_result
 Basic network connect result. More...
 
struct  netopt_disconnect_result
 Basic disconnect result. More...
 
struct  netopt_connect_request
 Basic network connect request. More...
 
struct  netopt_disconnect_request
 Basic network disconnect request. More...
 

Macros

#define NETOPT_SCAN_REQ_ALL_CH   ((netopt_channel_t)(-1))
 Request to scan all channels.
 
#define NETOPT_SCAN_RESULT_INITIALIZER(ch, str)
 Static initializer for a netopt_scan_result_t.
 
#define NETOPT_SCAN_REQUEST_INITIALIZER(ch, cb)
 Static initializer for a netopt_scan_request_t.
 
#define NETOPT_CONNECT_RESULT_INITIALIZER(ch)
 Static initializer for a netopt_connect_result_t.
 
#define NETOPT_DISCONNECT_RESULT_INITIALIZER(ch)
 Static initializer for a netopt_disconnect_result_t.
 
#define NETOPT_CONNECT_REQUEST_INITIALIZER(ch, ccb, dcb)
 Static initializer for a netopt_connect_request_t.
 
#define NETOPT_DISCONNECT_REQUEST_INITIALIZER(dcb)
 Static initializer for a netopt_disconnect_request_t.
 

Typedefs

typedef uint16_t netopt_channel_t
 Netopt RF channel type.
 
typedef int16_t netopt_rssi_t
 Netopt RSSI type.
 
typedef struct netopt_scan_result netopt_scan_result_t
 Basic network scan result.
 
typedef void(* netopt_on_scan_result_t) (void *netif, const struct l2scan_list *res)
 Basic callback type on network scan NETOPT_CONNECT.
 
typedef struct netopt_scan_request netopt_scan_request_t
 Basic network scan request.
 
typedef struct netopt_connect_result netopt_connect_result_t
 Basic network connect result.
 
typedef struct netopt_disconnect_result netopt_disconnect_result_t
 Basic disconnect result.
 
typedef void(* netopt_on_connect_result_t) (void *netif, const struct netopt_connect_result *res)
 Basic callback type on network connection NETOPT_CONNECT.
 
typedef void(* netopt_on_disconnect_result_t) (void *netif, const struct netopt_disconnect_result *res)
 Basic callback type on network disconnection NETOPT_CONNECT.
 
typedef struct netopt_connect_request netopt_connect_request_t
 Basic network connect request.
 
typedef struct netopt_disconnect_request netopt_disconnect_request_t
 Basic network disconnect request.
 

Enumerations

enum  netopt_t {
  NETOPT_CHANNEL , NETOPT_IS_CHANNEL_CLR , NETOPT_ADDRESS , NETOPT_ADDRESS_LONG ,
  NETOPT_ADDR_LEN , NETOPT_SRC_LEN , NETOPT_NID , NETOPT_HOP_LIMIT ,
  NETOPT_IPV6_IID , NETOPT_IPV6_ADDR , NETOPT_IPV6_ADDR_REMOVE , NETOPT_IPV6_ADDR_FLAGS ,
  NETOPT_IPV6_GROUP , NETOPT_IPV6_GROUP_LEAVE , NETOPT_IPV6_FORWARDING , NETOPT_IPV6_SND_RTR_ADV ,
  NETOPT_TX_POWER , NETOPT_MAX_PDU_SIZE , NETOPT_PDU_SIZE , NETOPT_PRELOADING ,
  NETOPT_PROMISCUOUSMODE , NETOPT_AUTOACK , NETOPT_ACK_PENDING , NETOPT_ACK_REQ ,
  NETOPT_RETRANS , NETOPT_PROTO , NETOPT_STATE , NETOPT_RAWMODE ,
  NETOPT_RX_START_IRQ , NETOPT_TX_START_IRQ , NETOPT_TX_END_IRQ , NETOPT_AUTOCCA ,
  NETOPT_LINK , NETOPT_ACTIVE , NETOPT_CSMA , NETOPT_CSMA_RETRIES ,
  NETOPT_CSMA_MAXBE , NETOPT_CSMA_MINBE , NETOPT_MAC_NO_SLEEP , NETOPT_IS_WIRED ,
  NETOPT_DEVICE_TYPE , NETOPT_CHANNEL_PAGE , NETOPT_CCA_THRESHOLD , NETOPT_CCA_MODE ,
  NETOPT_STATS , NETOPT_ENCRYPTION , NETOPT_ENCRYPTION_KEY , NETOPT_RF_TESTMODE ,
  NETOPT_L2FILTER , NETOPT_L2FILTER_RM , NETOPT_LAST_ED_LEVEL , NETOPT_PREAMBLE_LENGTH ,
  NETOPT_INTEGRITY_CHECK , NETOPT_CHANNEL_FREQUENCY , NETOPT_CHANNEL_HOP , NETOPT_CHANNEL_HOP_PERIOD ,
  NETOPT_SINGLE_RECEIVE , NETOPT_RX_TIMEOUT , NETOPT_TX_TIMEOUT , NETOPT_BANDWIDTH ,
  NETOPT_SPREADING_FACTOR , NETOPT_CODING_RATE , NETOPT_FIXED_HEADER , NETOPT_IQ_INVERT ,
  NETOPT_6LO , NETOPT_6LO_IPHC , NETOPT_TX_RETRIES_NEEDED , NETOPT_BLE_CTX ,
  NETOPT_CHECKSUM , NETOPT_PHY_BUSY , NETOPT_LORAWAN_APPEUI , NETOPT_LORAWAN_JOINEUI ,
  NETOPT_LORAWAN_APPKEY , NETOPT_LORAWAN_NWKKEY , NETOPT_LORAWAN_NWKSKEY , NETOPT_LORAWAN_APPSKEY ,
  NETOPT_LORAWAN_FNWKSINTKEY , NETOPT_LORAWAN_SNWKSINTKEY , NETOPT_LORAWAN_NWKSENCKEY , NETOPT_LORAWAN_DEVICE_CLASS ,
  NETOPT_LORAWAN_DR , NETOPT_LORAWAN_ADR , NETOPT_LORAWAN_PUBLIC_NETWORK , NETOPT_LORAWAN_RX2_DR ,
  NETOPT_LORAWAN_RX2_FREQ , NETOPT_LORAWAN_MAX_RX_ERROR , NETOPT_LORAWAN_MIN_RX_SYMBOL , NETOPT_IEEE802154_PHY ,
  NETOPT_OQPSK_RATE , NETOPT_MR_OQPSK_CHIPS , NETOPT_MR_OQPSK_RATE , NETOPT_MR_OFDM_OPTION ,
  NETOPT_MR_OFDM_MCS , NETOPT_MR_FSK_MODULATION_INDEX , NETOPT_MR_FSK_MODULATION_ORDER , NETOPT_MR_FSK_SRATE ,
  NETOPT_MR_FSK_FEC , NETOPT_CHANNEL_SPACING , NETOPT_SYNCWORD , NETOPT_RANDOM ,
  NETOPT_RX_SYMBOL_TIMEOUT , NETOPT_OTAA , NETOPT_DEMOD_MARGIN , NETOPT_NUM_GATEWAYS ,
  NETOPT_LINK_CHECK , NETOPT_RSSI , NETOPT_SCAN , NETOPT_CONNECT ,
  NETOPT_DISCONNECT , NETOPT_BATMON , NETOPT_L2_GROUP , NETOPT_L2_GROUP_LEAVE ,
  NETOPT_PAN_COORD , NETOPT_GTS_ALLOC , NETOPT_GTS_TX , NETOPT_NUMOF
}
 Global list of configuration options available throughout the network stack, e.g. More...
 
enum  netopt_enable_t { NETOPT_DISABLE = 0 , NETOPT_ENABLE = 1 }
 Binary parameter for enabling and disabling options. More...
 
enum  netopt_state_t {
  NETOPT_STATE_OFF = 0 , NETOPT_STATE_SLEEP , NETOPT_STATE_IDLE , NETOPT_STATE_RX ,
  NETOPT_STATE_TX , NETOPT_STATE_RESET , NETOPT_STATE_STANDBY
}
 Option parameter to be used with NETOPT_STATE to set or get the state of a network device or protocol implementation. More...
 
enum  netopt_rf_testmode_t { NETOPT_RF_TESTMODE_IDLE = 0 , NETOPT_RF_TESTMODE_CRX , NETOPT_RF_TESTMODE_CTX_CW , NETOPT_RF_TESTMODE_CTX_PRBS9 }
 Option parameter to be used with NETOPT_RF_TESTMODE. More...
 

Functions

const char * netopt2str (netopt_t opt)
 Get a string ptr corresponding to opt, for debugging.
 

Macro Definition Documentation

◆ NETOPT_CONNECT_REQUEST_INITIALIZER

#define NETOPT_CONNECT_REQUEST_INITIALIZER (   ch,
  ccb,
  dcb 
)
Value:
.disconn_cb = (netopt_on_disconnect_result_t)dcb, \
.conn_cb = (netopt_on_connect_result_t)ccb, \
.channel = ch, \
}
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
struct netopt_connect_request netopt_connect_request_t
Basic network connect request.
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

Static initializer for a netopt_connect_request_t.

Parameters
chChannel of the network to connect to
ccbOn connect callback
dcbOn disconnect callback

Definition at line 1049 of file netopt.h.

◆ NETOPT_CONNECT_RESULT_INITIALIZER

#define NETOPT_CONNECT_RESULT_INITIALIZER (   ch)
Value:
.channel = ch, \
}
struct netopt_connect_result netopt_connect_result_t
Basic network connect result.

Static initializer for a netopt_connect_result_t.

Parameters
chConnected channel

Definition at line 1001 of file netopt.h.

◆ NETOPT_DISCONNECT_REQUEST_INITIALIZER

#define NETOPT_DISCONNECT_REQUEST_INITIALIZER (   dcb)
Value:
.disconn_cb = (netopt_on_disconnect_result_t)dcb, \
}
struct netopt_disconnect_request netopt_disconnect_request_t
Basic network disconnect request.

Static initializer for a netopt_disconnect_request_t.

Parameters
dcbOn disconnect callback

Definition at line 1068 of file netopt.h.

◆ NETOPT_DISCONNECT_RESULT_INITIALIZER

#define NETOPT_DISCONNECT_RESULT_INITIALIZER (   ch)
Value:
.channel = ch, \
}
struct netopt_disconnect_result netopt_disconnect_result_t
Basic disconnect result.

Static initializer for a netopt_disconnect_result_t.

Parameters
chChannel of the disconnected AP

Definition at line 1018 of file netopt.h.

◆ NETOPT_SCAN_REQ_ALL_CH

#define NETOPT_SCAN_REQ_ALL_CH   ((netopt_channel_t)(-1))

Request to scan all channels.

Definition at line 935 of file netopt.h.

◆ NETOPT_SCAN_REQUEST_INITIALIZER

#define NETOPT_SCAN_REQUEST_INITIALIZER (   ch,
  cb 
)
Value:
.channel = ch, \
.scan_cb = (netopt_on_scan_result_t)cb, \
}
struct netopt_scan_request netopt_scan_request_t
Basic network scan request.
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

Static initializer for a netopt_scan_request_t.

Parameters
chChannel to be scanned
cbScan result callback

Definition at line 983 of file netopt.h.

◆ NETOPT_SCAN_RESULT_INITIALIZER

#define NETOPT_SCAN_RESULT_INITIALIZER (   ch,
  str 
)
Value:
.channel = ch, \
.strength = str, \
}
struct netopt_scan_result netopt_scan_result_t
Basic network scan result.

Static initializer for a netopt_scan_result_t.

Parameters
chScanned channel
strReceived signal strength

Definition at line 951 of file netopt.h.

Typedef Documentation

◆ netopt_channel_t

typedef uint16_t netopt_channel_t

Netopt RF channel type.

Definition at line 925 of file netopt.h.

◆ netopt_on_connect_result_t

typedef void(* netopt_on_connect_result_t) (void *netif, const struct netopt_connect_result *res)

Basic callback type on network connection NETOPT_CONNECT.

Definition at line 1026 of file netopt.h.

◆ netopt_on_disconnect_result_t

typedef void(* netopt_on_disconnect_result_t) (void *netif, const struct netopt_disconnect_result *res)

Basic callback type on network disconnection NETOPT_CONNECT.

Definition at line 1031 of file netopt.h.

◆ netopt_on_scan_result_t

typedef void(* netopt_on_scan_result_t) (void *netif, const struct l2scan_list *res)

Basic callback type on network scan NETOPT_CONNECT.

Definition at line 967 of file netopt.h.

◆ netopt_rssi_t

typedef int16_t netopt_rssi_t

Netopt RSSI type.

Definition at line 930 of file netopt.h.

Enumeration Type Documentation

◆ netopt_enable_t

Binary parameter for enabling and disabling options.

Enumerator
NETOPT_DISABLE 

disable a given option

NETOPT_ENABLE 

enable a given option

Definition at line 883 of file netopt.h.

◆ netopt_rf_testmode_t

Option parameter to be used with NETOPT_RF_TESTMODE.

Enumerator
NETOPT_RF_TESTMODE_IDLE 

idle mode, radio off

NETOPT_RF_TESTMODE_CRX 

continuous rx mode

NETOPT_RF_TESTMODE_CTX_CW 

carrier wave continuous tx mode

NETOPT_RF_TESTMODE_CTX_PRBS9 

PRBS9 continuous tx mode.

Definition at line 915 of file netopt.h.

◆ netopt_state_t

Option parameter to be used with NETOPT_STATE to set or get the state of a network device or protocol implementation.

Enumerator
NETOPT_STATE_OFF 

powered off

NETOPT_STATE_SLEEP 

sleep mode

NETOPT_STATE_IDLE 

idle mode, the device listens to receive packets

NETOPT_STATE_RX 

receive mode, the device currently receives a packet

NETOPT_STATE_TX 

transmit mode, set: triggers transmission of a preloaded packet (see NETOPT_PRELOADING*).

The resulting state of the network device is NETOPT_STATE_IDLE get: the network device is in the process of transmitting a packet

NETOPT_STATE_RESET 

triggers a hardware reset.

The resulting state of the network device is NETOPT_STATE_IDLE

NETOPT_STATE_STANDBY 

standby mode.

The devices is awake but not listening to packets.

Definition at line 892 of file netopt.h.

◆ netopt_t

enum netopt_t

Global list of configuration options available throughout the network stack, e.g.

by netdev and netapi

The data type specified in parentheses for each individual option is the data type to use for the argument when getting/setting the value of the option.

All arguments longer than 1 byte (e.g. uint16_t) are given in host byte order unless anything else is specified below.

Enumerator
NETOPT_CHANNEL 

(uint16_t) channel number

NETOPT_IS_CHANNEL_CLR 

(netopt_enable_t) check whether the network medium is clear

Getting this option can be used to trigger a manual clear channel assessment (CCA) on some wireless devices.

NETOPT_ADDRESS 

(byte array, see below) link layer address in network byte order

Device type Length Meaning
IEEE 802.15.4 2 device short address
Ethernet 6 device MAC address
nrfmin 2 device short address
CC110x 1 device address
NRF24L01+ 5 device address
LoRaWAN 4 device address
NETOPT_ADDRESS_LONG 

(byte array, see below) long link layer address in network byte order

Device type Length Meaning
IEEE 802.15.4 8 device long address (EUI-64), eui64_t
nrfmin 8 device long address (based on short address)
BLE 8 device long address (EUI-64), eui64_t
LoRaWAN 8 Device EUI
NETOPT_ADDR_LEN 

(uint16_t) get the default address length a network device expects

NETOPT_SRC_LEN 

(uint16_t) address length to use for the link layer source address

NETOPT_NID 

(uint16_t) network ID

Examples for this include the PAN ID in IEEE 802.15.4 and netid in LoRaWAN (uint32_t in this case)

NETOPT_HOP_LIMIT 

(uint8_t) hop limit

NETOPT_IPV6_IID 

(eui64_t) get the IPv6 interface identifier of a network interface

See also
RFC 4291, section 2.5.1
Note
Do not implement this in a network device driver. Other APIs utilizing netopt such as Network interface API or Network interfaces may still implement it.

The generation of the interface identifier is dependent on the link-layer. Please refer to the appropriate IPv6 over <link> specification for further implementation details (such as RFC 2464 or RFC 4944).

NETOPT_IPV6_ADDR 

(ipv6_addr_t[]) get IPv6 addresses of an interface as array of ipv6_addr_t or add an IPv6 address as ipv6_addr_t to an interface

When adding an IPv6 address to a GNRC interface using GNRC_NETAPI_MSG_TYPE_SET, the gnrc_netapi_opt_t::context field can be used to pass the prefix length (8 MSB) and some flags (8 LSB) according to net_gnrc_netif_ipv6_addrs_flags. The address is however always considered to be manually added. When getting the option you can pass an array of ipv6_addr_t of any length greater than 0 to the getter. The array will be filled up to to its maximum and the remaining addresses on the interface will be ignored

NETOPT_IPV6_ADDR_REMOVE 

(ipv6_addr_t) Removes an IPv6 address from an interface

NETOPT_IPV6_ADDR_FLAGS 

(array of uint8_t) get the flags to the addresses returned by NETOPT_IPV6_ADDR as array

The information contained in the array is very specific to the interface's API. For GNRC e.g. the values are according to net_gnrc_netif_ipv6_addrs_flags.

NETOPT_IPV6_GROUP 

(ipv6_addr_t) get IPv6 multicast groups of an interface as array of ipv6_addr_t or join an IPv6 multicast group as ipv6_addr_t on an interface

When adding an IPv6 address to a GNRC interface using GNRC_NETAPI_MSG_TYPE_SET, the gnrc_netapi_opt_t::context field can be used to pass the prefix length (8 MSB) and some flags (8 LSB) according to net_gnrc_netif_ipv6_addrs_flags. The address is however always considered to be manually added. When getting the option you can pass an array of ipv6_addr_t of any length greater than 0 to the getter. The array will be filled up to to its maximum and the remaining addresses on the interface will be ignored

NETOPT_IPV6_GROUP_LEAVE 

(ipv6_addr_t) Leave an IPv6 multicast group on an interface

NETOPT_IPV6_FORWARDING 

(netopt_enable_t) IPv6 forwarding state

NETOPT_IPV6_SND_RTR_ADV 

(netopt_enable_t) sending of IPv6 router advertisements

NETOPT_TX_POWER 

(int16_t) transmit power for radio devices in dBm

NETOPT_MAX_PDU_SIZE 

(uint16_t) maximum protocol data unit

NETOPT_PDU_SIZE 

(uint16_t) protocol data unit size

When set, fixes the number of bytes to be received. This is required for MAC layers with implicit header mode (no packet length information in PDDU) and predictable packet length (e.g LoRaWAN beacons). The device driver implementation should attempt to read exactly the expected number of bytes (possibly filling it up with garbage data if the payload is smaller).

When get, returns the number of expected bytes for the next reception.

In some MAC layers it will only be effective if used in conjunction with NETOPT_FIXED_HEADER

NETOPT_PRELOADING 

(netopt_enable_t) frame preloading

Preload frame data using gnrc_netdev_driver_t::send_data() or gnrc_netapi_send(), trigger sending by setting state to NETOPT_STATE_TX

NETOPT_PROMISCUOUSMODE 

(netopt_enable_t) promiscuous mode

NETOPT_AUTOACK 

(netopt_enable_t) automatic link layer ACKs

NETOPT_ACK_PENDING 

(netopt_enable_t) frame pending bit of ACKs

For IEEE 802.15.4, this bit is copied into the frame pending subfield of the ACK if it is the response to a data request MAC command frame.

NETOPT_ACK_REQ 

(netopt_enable_t) acknowledgement request on outgoing frames

For IEEE 802.15.4, this bit is copied into the ACK req subfield of the frame control field.

NETOPT_RETRANS 

(uint8_t) maximum number of retransmissions

NETOPT_PROTO 

(gnrc_nettype_t) the protocol for the layer

NETOPT_STATE 

(netopt_state_t) state of network device

NETOPT_RAWMODE 

(netopt_enable_t) when enabled, bypass protocol processing of incoming frames

NETOPT_RX_START_IRQ 

(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_RX_STARTED events

It is mostly triggered after the preamble is correctly received

Warning
This value is read-only and cannot be configured at run-time
NETOPT_TX_START_IRQ 

(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_TX_STARTED events

This interrupt is triggered when the transceiver starts to send out the frame.

Note
In case a transceiver does not support this interrupt, the event may be triggered by the driver
Warning
This value is read-only and cannot be configured at run-time
NETOPT_TX_END_IRQ 

(netopt_enable_t) Used to check if the driver generates NETDEV_EVENT_TX_COMPLETE events

This interrupt is triggered when the full frame has been transmitted.

Note
not all transceivers may support this interrupt
NETOPT_AUTOCCA 

(netopt_enable_t) perform channel clear assessment before transmitting

This may be a hardware feature of the given transceiver, or might be otherwise implemented in software. If the device supports CSMA this option will enable CSMA with a certain set of parameters to emulate the desired behaviour.

Note
Be sure not to set NETOPT_CSMA simultaneously.
Todo:
How to get feedback?
NETOPT_LINK 

(netopt_enable_t) network interface link status.

This option is used to set or check the link status (up or down).

Note
On error this option should return a negative number.
NETOPT_ACTIVE 

(netopt_enable_t) network interface status.

This option is used check state or to enable/disable the interface, regardless of link status.

Note
On error this option should return a negative number.
NETOPT_CSMA 

(netopt_enable_t) CSMA/CA support

If the device supports CSMA in hardware, this option enables it with default parameters. For further configuration refer to the other NETOPT_CSMA_* options.

NETOPT_CSMA_RETRIES 

(uint8_t) maximum number of CSMA retries

The maximum number of backoffs the CSMA-CA algorithm will attempt before declaring a channel access failure. Named macMaxCsmaBackoffs in IEEE Std 802.15.4-2015.

IEEE 802.15.4 default: 4

NETOPT_CSMA_MAXBE 

(uint8_t) maximum backoff exponent for the CSMA-CA algorithm

Named macMaxBE in IEEE Std 802.15.4-2015.

IEEE 802.15.4 default: 5

NETOPT_CSMA_MINBE 

(uint8_t) minimum backoff exponent for the CSMA-CA algorithm

Named macMinBE in IEEE Std 802.15.4-2015.

IEEE 802.15.4 default: 3

NETOPT_MAC_NO_SLEEP 

(netopt_enable_t) block transceiver sleep

Enabling this option tells the MAC layer to never put the radio to sleep. Useful in gateways and routers not running on batteries to improve responsiveness and allow battery powered nodes on the same network to sleep more often.

NETOPT_IS_WIRED 

(netopt_enable_t) read-only check for a wired interface.

This option will return -ENOTSUP for wireless interfaces.

Note
Setting this option will always return -ENOTSUP.
NETOPT_DEVICE_TYPE 

(uint16_t) device type

e.g. NETDEV_TYPE_ETHERNET, NETDEV_TYPE_IEEE802154, etc.

NETOPT_CHANNEL_PAGE 

(uint16_t) channel page as defined by IEEE 802.15.4

NETOPT_CCA_THRESHOLD 

(int8_t) CCA threshold for the radio transceiver

This is the value, in dBm, that the radio transceiver uses to decide whether the channel is clear or not (CCA). If the current signal strength (RSSI/ED) is stronger than this CCA threshold value, the transceiver usually considers that the radio medium is busy. Otherwise, i.e. if RSSI/ED value is less than the CCA threshold value, the radio medium is supposed to be free (the possibly received weak signal is considered to be background, meaningless noise).

Most transceivers allow to set this CCA threshold value. Some research work has proven that dynamically adapting it to network environment can improve QoS, especially in WSN.

NETOPT_CCA_MODE 

(uint8_t) CCA mode for the radio transceiver

Get/set the CCA mode corresponding to the respective PHY standard.

NETOPT_STATS 

(netstats_t) get statistics about sent and received packets and data of the device or protocol

A get operation expects a netstats_t and will copy the current statistics into it, atomically. A set operation resets the statistics (zeros it out) regardless of the parameter given.

NETOPT_ENCRYPTION 

(netopt_enable_t) link layer encryption.

NETOPT_ENCRYPTION_KEY 

(byte array) set encryption key

The required byte array size is dependent on encryption algorithm and device.

NETOPT_RF_TESTMODE 

(netopt_rf_testmode_t) Test mode for the radio, e.g.

for CE or FCC certification

Get/set the test mode as type netopt_rf_testmode_t or as uint8_t if the radio supports other vendor specific test modes.

Note
Setting this option should always return -ENOTSUP, unless it was explicitly allowed at build time, therefore it should be secured with an additional macro in the device driver.
Attention
For development and certification purposes only! These test modes can disturb normal radio communications and exceed the limits established by the regulatory authority.
NETOPT_L2FILTER 

(l2filter_t) add an address to a link layer filter list

Getting this option from a device will return a pointer of type l2filter_t to the first entry of a filter list. When setting this option a pointer to an link layer address as well as the length of the address are expected as parameters.

NETOPT_L2FILTER_RM 

(l2filter_t) remove an address from a link layer filter list

Getting this value always returns -ENOTSUP. When setting this option a pointer to an link layer address as well as the length of the address are expected as parameters. Setting this option will lead to the given address being removed from the filer list.

NETOPT_LAST_ED_LEVEL 

(int8_t) Energy level during the last performed CCA or RX frame

Get the last ED level available as an int8_t. The source of the measurement is unspecified and may come from the latest CCA measurement (CCA mode 1), or from the last received frame.

NETOPT_PREAMBLE_LENGTH 

(uint16_t) preamble length

NETOPT_INTEGRITY_CHECK 

(netopt_enable_t) frame integrity check (e.g CRC)

NETOPT_CHANNEL_FREQUENCY 

(uint32_t) channel center frequency

For example, with LoRa, this corresponds to the center frequency of each channel (867300000, etc) for a given frequency band (868, 915, etc).

NETOPT_CHANNEL_HOP 

(netopt_enable_t) channel hopping

NETOPT_CHANNEL_HOP_PERIOD 

(uint8_t) channel hopping period

NETOPT_SINGLE_RECEIVE 

(netopt_enable_t) single frame reception

If enabled, RX is turned off upon reception of a frame

NETOPT_RX_TIMEOUT 

(uint32_t) reception timeout of a frame

Todo:
in what time unit?
NETOPT_TX_TIMEOUT 

(uint32_t) transmission timeout of a frame

Todo:
in what time unit?
NETOPT_BANDWIDTH 

(uint8_t) radio modulation bandwidth

NETOPT_SPREADING_FACTOR 

(uint8_t) radio spreading factor

NETOPT_CODING_RATE 

(uint8_t) radio coding rate

NETOPT_FIXED_HEADER 

(netopt_enable_t) fixed header mode

NETOPT_IQ_INVERT 

(netopt_enable_t) IQ inverted

NETOPT_6LO 

(netopt_enable_t) 6Lo support

See also
RFC 4944
NETOPT_6LO_IPHC 

(netopt_enable_t) header compression

See also
RFC 6282
NETOPT_TX_RETRIES_NEEDED 

(uint8_t) retry amount from missing ACKs of the last transmission

This retrieves the number of retries needed for the last transmission. Only retransmissions due to missing ACK frames are considered, retries due to CCA failures are not counted.

NETOPT_BLE_CTX 

(netdev_ble_ctx_t) set BLE radio context (channel, CRC, AA)

Warning
As netdev BLE mode is still experimental, use with care!
NETOPT_CHECKSUM 

(netopt_enable_t) enable hardware checksumming

If enabled, enable hardware checksumming of incoming frames.

NETOPT_PHY_BUSY 

(netopt_enable_t) enable busy mode

When set, the PHY will enter busy mode, in which it will not accept incoming frames until unset.

NETOPT_LORAWAN_APPEUI 

(uint8_t*) LoRaWAN application EUI (8 bytes length)

NETOPT_LORAWAN_JOINEUI 

(uint8_t*) LoRaWAN join EUI (8 bytes length)

NETOPT_LORAWAN_APPKEY 

(uint8_t*) LoRaWAN application key (16 bytes length)

NETOPT_LORAWAN_NWKKEY 

(uint8_t*) LoRaWAN network key (16 bytes length)

NETOPT_LORAWAN_NWKSKEY 

(uint8_t*) LoRaWAN network session key (16 bytes length)

NETOPT_LORAWAN_APPSKEY 

(uint8_t*) LoRaWAN application session key (16 bytes length)

NETOPT_LORAWAN_FNWKSINTKEY 

(uint8_t*) LoRaWAN forwarding network session integrity key (16 bytes length)

This key is only valid when using LoRaWAN 1.1x.

NETOPT_LORAWAN_SNWKSINTKEY 

(uint8_t*) LoRaWAN serving network session integrity key (16 bytes length)

This key is only valid when using LoRaWAN 1.1x.

NETOPT_LORAWAN_NWKSENCKEY 

(uint8_t*) LoRaWAN network session encryption key buffer (16 bytes length)

This key is only valid when using LoRaWAN 1.1x.

NETOPT_LORAWAN_DEVICE_CLASS 

(uint8_t) LoRaWAN device class (A, B, C)

NETOPT_LORAWAN_DR 

(uint8_t) LoRaWAN datarate

NETOPT_LORAWAN_ADR 

(netopt_enable_t) LoRaWAN adaptive datarate

NETOPT_LORAWAN_PUBLIC_NETWORK 

(netopt_enable_t) LoRaWAN public network

NETOPT_LORAWAN_RX2_DR 

(loramac_dr_idx_t) LoRaWAN datarate for second RX window

NETOPT_LORAWAN_RX2_FREQ 

(uint32_t) LoRaWAN frequency used for second RX window

NETOPT_LORAWAN_MAX_RX_ERROR 

(uint32_t) LoRaWAN maximum system overall timing error (ms)

NETOPT_LORAWAN_MIN_RX_SYMBOL 

(uint8_t) LoRaWAN maximum system overall timing error (symbols)

NETOPT_IEEE802154_PHY 

(uint8_t) 802.15.4 PHY mode

NETOPT_OQPSK_RATE 

(uint8_t) legacy O-QPSK proprietary mode Allows to select higher data rates than standard 250 kbit/s Not compatible across vendors, only use with radios of the same type.

NETOPT_MR_OQPSK_CHIPS 

(uint8_t) MR-O-QPSK Chip Rate (kchip/s)

NETOPT_MR_OQPSK_RATE 

(uint8_t) MR-O-QPSK Rate Mode

NETOPT_MR_OFDM_OPTION 

(uint8_t) MR-OFDM PHY Option (Values: 1-4)

NETOPT_MR_OFDM_MCS 

(uint8_t) MR-OFDM PHY Modulation and Coding Scheme (Values: 0-6)

NETOPT_MR_FSK_MODULATION_INDEX 

(uint8_t) MR-FSK PHY Modulation Index (x 64)

NETOPT_MR_FSK_MODULATION_ORDER 

(uint8_t) MR-FSK Modulation Order

NETOPT_MR_FSK_SRATE 

(uint8_t) MR-FSK PHY Symbol Rate (kHz)

NETOPT_MR_FSK_FEC 

(uint8_t) MR-FSK PHY Forward Error Correction

NETOPT_CHANNEL_SPACING 

(uint8_t) PHY Channel Spacing (kHz)

NETOPT_SYNCWORD 

(uint8_t*) phy layer syncword

NETOPT_RANDOM 

(uint32_t) Get a random value from the device

Nothing happens when set

NETOPT_RX_SYMBOL_TIMEOUT 

(uint16_t) Get or set the number of PHY symbols before assuming there's no data

NETOPT_OTAA 

(netopt_enable_t) Enable or disable OTAA activation (LoRaWAN)

NETOPT_DEMOD_MARGIN 

(uint8_t) Get the demodulation margin of the last Link Check request.

NETOPT_NUM_GATEWAYS 

(uint8_t) Get the number of gateways of the last Link Check request.

NETOPT_LINK_CHECK 

(netopt_enable_t) Perform a Link Check request (LoRaWAN)

When set, the next transmission will request a Link Check and will be received on the next downlink

NETOPT_RSSI 

(int16_t) Received Signal Strength Indicator (RSSI)

The RSSI is an indicator for the received field strength in wireless channels. It is often represented as the ratio of received power to a given unit, for example milliwatts. With a device-dependent scaling factor, the RSSI value can be expressed as power level in the unit dBm or ASU (Arbitrary Strength Unit).

NETOPT_SCAN 

(netopt_scan_request_t) Instruct the interface to do a network scan

This netopt triggers an asynchronous network scan. The result is a list of reachable access points l2scan_list_t. Notification happens by a callback netopt_on_scan_result_t.

NETOPT_CONNECT 

(netopt_connect_request_t) Instructs the interface to connect to a network

This netopt triggers an asynchronous connection attempt to a network. The result is a derivative of netopt_connect_result_t or netopt_disconnect_result_t. Notification happens through a callback netopt_on_connect_result_t or netopt_on_disconnect_result_t respectively.

NETOPT_DISCONNECT 

(netopt_disconnect_request_t) Instructs the interface to disconnect from a network

This netopt triggers a disconnect procedure from a network. The result is a derivative of netopt_disconnect_result_t. Notification happens through a callback netopt_on_disconnect_result_t.

NETOPT_BATMON 

(uint16_t) Set the battery monitor voltage (in mV).

When set, a SYS_BUS_POWER_EVENT_LOW_VOLTAGE event is generated on the SYS_BUS_POWER bus if the supply voltage falls below the set value.

Set to 0 to disable battery monitoring.

NETOPT_L2_GROUP 

(array of byte array) get link layer multicast groups as array of byte arrays (length of each byte array corresponds to the length of NETOPT_ADDRESS) or join a link layer multicast group as byte array on an interface

When getting the option you can pass an array of byte arrays of any length greater than 0 to the getter. The array will be filled up to to its maximum and the remaining addresses on the interface will be ignored

NETOPT_L2_GROUP_LEAVE 

(array of byte arrays) Leave an link layer multicast group

NETOPT_PAN_COORD 

(netopt_enable_t) Set/Get PAN coordinator role

NETOPT_GTS_ALLOC 

(ieee802154_dsme_alloc_t) Allocate DSME GTS slot

NETOPT_GTS_TX 

(netopt_enable_t) Transmit frames using GTS transmission

When set, frames are sent using a Guaranteed Time Slot (GTS). Otherwise with CSMA/CA.

NETOPT_NUMOF 

maximum number of options defined here.

Note
Interfaces are not meant to respond to this option

Definition at line 45 of file netopt.h.

Function Documentation

◆ netopt2str()

const char * netopt2str ( netopt_t  opt)

Get a string ptr corresponding to opt, for debugging.

Parameters
[in]optThe option to get a string representation for
Returns
ptr to string representation for given option or "unknown"