bRAWcap 1.1.0
b-plus Technologies - Ethernet Performance Transmitter Receiver
Loading...
Searching...
No Matches
brawcap_types_um.h
Go to the documentation of this file.
1/**
2 * @file brawcap_types_um.h
3 *
4 * @brief bRAWcap API - User mode types.
5 *
6 * The file includes all (data)types and defines used for bRAWcap (user space only).
7 *
8 * @copyright
9 * <b> © 2021 - b-plus technologies GmbH. All rights reserved!</b>
10 *
11 * All rights exclusively reserved for b-plus GmbH, unless expressly otherwise agreed.
12 *
13 * Redistribution in source or any other form, with or without modification, is not permitted.
14 *
15 *
16 * You may use this code under the according license terms of b-plus. Please contact b-plus at services@b-plus.com
17 * to get the appropriate terms and conditions.
18 */
19#ifndef BRAWCAP_TYPES_UM_H
20#define BRAWCAP_TYPES_UM_H
21
23
24/**************************************************** LIB ************************************************************/
25#if 1
26/**
27 * @defgroup brawcap_lib Importing
28 * @brief Defines required for automatic/dynamic bRAWcap API function importing.
29 * @{
30 */
31
32/**
33 * @internal
34 * @brief Marks a function as deprecated.
35 */
36#define _BRAWCAP_DEPRECATED __declspec(deprecated)
37
38// You should never define _BRAWCAP_EXPORT when including bRAWcap.
39#ifdef _BRAWCAP_EXPORT
40 /**
41 * @internal
42 * @brief Dynamic/automatic function export when compiling bRAWcap itself.
43 * @warning Only required when building the bRAWcap library.
44 * Should never be defined if you include bRAWcap.
45 */
46 #define _BRAWCAP_API_FUNC(returnType) __declspec(dllexport) returnType __cdecl
47#else
48 /**
49 * @brief Dynamic/automatic function import for loading/including.
50 */
51 #define _BRAWCAP_API_FUNC(returnType) __declspec(dllimport) returnType __cdecl
52#endif
53
54/**@}*/
55#endif
56
57/************************************************ LOGGING ************************************************************/
58#if 1
59/**
60 * @defgroup brawcap_logging Logging
61 * @brief Types and functions for handling/modifying the bRAWcap logging.
62 *
63 * This module provides some functions for configuring the bRAWcap logging behavior.
64 * The bRAWcap logger supports different log levels and types, which allows to configure the logging for specific
65 * types independent to each other.
66 * Increasing the log level may help during development of the user application which shall use bRAWcap.
67 *
68 * @note If you think there is a problem with bRAWcap, please enable detailed logging,
69 * run your application until the problem occurs and then send the created bRAWcap log files to b-plus.
70 *
71 * @attention For release builds log levels such as verbose shall be avoided, because they can lead to performance
72 * degradation.
73 * @{
74 */
75
76/**
77 * @brief List of bRAWcap log levels.
78 *
79 * The log levels allows to (de)activate additional log entries.
80 * This can be especially useful during development, to get a more detailed log from bRAWcap.
81 */
82typedef enum _brawcap_log_level
83{
84 /**
85 * @brief Debug log level is for debugging bRAWcap itself only.
86 * Therefore it can only be enabled if the application is registered with higher privilege.
87 *
88 * @note Default: Deactivated
89 */
91 /**
92 * @brief Verbose log level will include many informative loggings.
93 * Those loggings gives more info why some API calls may fail.
94 * This will especially contain those cases in which the caller has provided invalid parameters.
95 * It should be activated only for development, testing or error research.
96 *
97 * @note Default: Deactivated
98 */
100 /**
101 * @brief Notice log level will include some loggings which gives information of the current bRAWcap state.
102 * This may be disabled to decrease logging to a minimum.
103 *
104 * @note Default: Activated
105 */
107 /**
108 * @brief Warning log level will include loggings for unexpected states.
109 * This level should never be disabled.
110 *
111 * @note Default: Activated
112 */
114 /**
115 * @brief Error log level will include loggings if something went completely wrong and bRAWcap could not solve
116 * the issue.
117 * Those loggings should never appear, if so bRAWcap may be in a invalid state.
118 * If loggings contain such a logentry please try to reproduce it again with all log levels enabled
119 * and send the logfile (with a short description of how to reproduce it) to b-plus.
120 * This should really never be disabled.
121 *
122 * @note Default: Activated
123 */
126
127/**
128 * @brief List of bRAWcap log types.
129 *
130 * The log types allows to adjust log levels for each type independent.
131 * To distinguish between different types each logentry will be prefixed with it´s type, this increases the readability
132 * of the logfile.
133 */
134typedef enum _brawcap_log_type
135{
136 /**
137 * @brief Generic loggings will be used for everything which has no specific type.
138 */
140 /**
141 * @brief Adapter loggings will be used for anything which relates to the local adapter handling.
142 */
144 /**
145 * @brief Receive loggings will be used for anything which relates to receiving.
146 */
148 /**
149 * @brief Transmit loggings will be used for anything which relates to transmitting.
150 */
152 /**
153 * @brief License loggings will be used for anything which relates to licensing.
154 */
156
157 /**
158 * @brief PCAP loggings will be used for anything which relates to libpcap/WinPcap/Npcap.
159 */
161
162 BRAWCAP_LOG_TYPE_ALL = 0xFFFF
164
165/**@}*/
166#endif
167
168/************************************************ GENERIC ************************************************************/
169#if 1
170/**
171 * @addtogroup brawcap_generics
172 * @{
173 */
174
175/**
176 * @brief A bRAWcap handle.
177 *
178 * It can be @ref brawcap_open "created/opened" and @ref brawcap_close "deleted/closed".
179 * In general every function which communicates with the bRAWcap driver requires a open bRAWcap handle.
180 *
181 * @attention The number of bRAWcap handles per adapter is limited to @ref BRAWCAP_HANDLES_PER_ADAPTER_MAX.
182 * If this limit is reached each additional open on that adapter will fail.
183 */
184typedef struct _brawcap_handle brawcap_handle_t;
185
186/**@}*/
187#endif
188
189/*********************************************** TIMESTAMP ***********************************************************/
190#if 1
191/**
192 * @addtogroup brawcap_timestamp
193 * @{
194 */
195
196/**@}*/
197#endif
198
199/************************************************ PACKET *************************************************************/
200#if 1
201/**
202 * @addtogroup brawcap_packet
203 * @{
204 */
205
206/**@}*/
207#endif
208
209/************************************************* BUFFER *************************************************************/
210#if 1
211/**
212 * @addtogroup brawcap_buffer
213 * @{
214 */
215
216/**
217 * @brief Buffer sort order.
218 *
219 * This enum defines the sort order for buffer operations.
220 */
221typedef enum brawcap_buffer_sort_order
222{
223 BRAWCAP_BUFFER_SORT_ORDER_NONE = 0, //!< No sort order
224 BRAWCAP_BUFFER_SORT_ORDER_RISING = 1, //!< Rising sort order
225 BRAWCAP_BUFFER_SORT_ORDER_FALLING = 2 //!< Falling sort order
227
228/**
229 * @brief Buffer sort types.
230 *
231 * This enum defines the sort types for buffer operations.
232 */
233typedef enum brawcap_buffer_sort_types
234{
235 BRAWCAP_BUFFER_SORT_TYPE_NONE = 0, /**< No sorting */
236 BRAWCAP_BUFFER_SORT_TYPE_TIMESTAMP = 1, /**< Sort by receive timestamp */
237 BRAWCAP_BUFFER_SORT_TYPE_PAYLOAD = 2 /**< Sort by payload (specific range/field in packet payload) @ref brawcap_buffer_sort */
239
240/**
241 * @brief Byte order selection for payload sorting.
242 */
243typedef enum brawcap_buffer_sort_endian_e
244{
245 BRAWCAP_BUFFER_SORT_ENDIAN_BIG = 0, /**< Interpret payload bytes as big-endian (network order). */
246 BRAWCAP_BUFFER_SORT_ENDIAN_LITTLE = 1 /**< Interpret payload bytes as little-endian. */
248
249/********************************************* BUFFER ITERATOR ********************************************************/
250#if 1
251/**
252 * @addtogroup brawcap_buffer_iterator
253 * @{
254 */
255
256/**@}*/
257#endif
258
259/**@}*/
260#endif
261
262/************************************************** ADAPTER **********************************************************/
263#if 1
264/**
265 * @addtogroup brawcap_adapter
266 * @{
267 */
268
269/**
270 * @brief Required number of bytes for describing a MAC address.
271 * The defined length does not containing any delimiters, it represents the number of MAC address digits.
272 */
273#define BRAWCAP_ADAPTER_MAC_LENGTH 6
274
275/**
276 * @brief The max supported length for an adapter name.
277 *
278 * @note On Windows a adapter name always corresponds to it´s GUID.
279 * Those GUIDs have a fixed length.
280 */
281#define BRAWCAP_ADAPTER_NAME_LENGTH 40
282
283/**
284 * @brief Type used for counting the available/supported adapters on a machine.
285 */
287
288/**
289 * @brief Fixed size array describing a MAC address.
290 *
291 * The array only contains the MAC address digits without any delimiters.
292 */
294
295/**
296 * @brief Fixed size array containing a adapter name.
297 *
298 * @note On Windows a adapter name corresponds always to it´s GUID.
299 * Textual GUIDs always have the format "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}".
300 */
302
303/**
304 * @brief IPv4 address.
305 */
306typedef union _brawcap_adapter_ipv4
307{
308 UINT8 bytes[4]; /*!< IPv4 address as byte array. */
309 UINT16 words[2]; /*!< IPv4 address as word array (each element has two Bytes). */
310 UINT32 addr; /*!< IPv4 address as single integer value. */
312
313/**
314 * @brief IPv6 address.
315 */
316typedef union _brawcap_adapter_ipv6
317{
318 UINT8 bytes[16]; /*!< IPv6 address as byte array. */
319 UINT16 words[8]; /*!< IPv6 address as word array (each element has two Bytes). */
320 UINT64 qwords[2]; /*!< IPv6 address as large word array (each element has eight Bytes). */
322
323/**
324 * @brief List of bRAWcap adapter speeds.
325 * Values indicating the current adapter uplink speed.
326 *
327 * @note The speed should be always equal for rx and tx,
328 * but both can be requested independent of each other.
329 */
330typedef enum _brawcap_adapter_speed
331{
332 BRAWCAP_ADAPTER_SPEED_UNKNOWN = 0ULL, /*!< Speed unknown */
333 BRAWCAP_ADAPTER_SPEED_10M = 10ULL, /*!< 10 MBit/s */
334 BRAWCAP_ADAPTER_SPEED_100M = 100ULL, /*!< 100 MBit/s */
335 BRAWCAP_ADAPTER_SPEED_1G = 1000ULL, /*!< 1 GBit/s */
336 BRAWCAP_ADAPTER_SPEED_2_5G = 2500ULL, /*!< 2,5 GBit/s */
337 BRAWCAP_ADAPTER_SPEED_5G = 5000ULL, /*!< 5 GBit/s */
338 BRAWCAP_ADAPTER_SPEED_10G = 10000ULL, /*!< 10 GBit/s*/
339 BRAWCAP_ADAPTER_SPEED_25G = 25000ULL, /*!< 25 GBit/s */
340 BRAWCAP_ADAPTER_SPEED_40G = 40000ULL, /*!< 40 GBit/s */
341 BRAWCAP_ADAPTER_SPEED_50G = 50000ULL, /*!< 50 GBit/s */
342 BRAWCAP_ADAPTER_SPEED_100G = 100000ULL /*!< 100 GBit/s */
344
345/**
346 * @brief List of adapter connection states.
347 * Values indicating the current adapter connection state (uplink/cable connected).
348 */
349typedef enum _brawcap_adapter_connection_state
350{
351 BRAWCAP_ADAPTER_CONNECTION_UNKNOWN = 0, /*!< Connection state unknown. */
352 BRAWCAP_ADAPTER_CONNECTION_UP = 1, /*!< Connection is up (uplink/cable connected). */
353 BRAWCAP_ADAPTER_CONNECTION_DOWN = 2 /*!< Connection is down (cable not connected). */
355
356/**
357 * @brief List of adapter operation states.
358 * Values indicating the current adapter operation state (adapter driver status).
359 */
360typedef enum _brawcap_adapter_operation_state
361{
362 BRAWCAP_ADAPTER_OPERATION_UNKNOWN = 0, /*!< Operation state unknown. */
363 BRAWCAP_ADAPTER_OPERATION_UP = 1, /*!< Adapter is running (driver activated). */
364 BRAWCAP_ADAPTER_OPERATION_DOWN = 2, /*!< Adapter is down/disabled (driver deactivated). */
365 BRAWCAP_ADAPTER_OPERATION_TESTING = 3 /*!< Adapter is in probing state. */
367
368/**
369 * @brief Type for handling the adapter maximum transmission unit (MTU).
370 *
371 * It describes the maximum bytes per packet which can be received/transmitted on the adapter.
372 * Typical values are 1500 bytes for default sized Ethernet and 9000 bytes for jumbo frames.
373 *
374 * @note In general the MTU does not contain the Ethernet header (14 Bytes).
375 * If something like 1514/9014 is displayed by the adapter driver it contains the Ethernet header.
376 * If VLAN tagging is activated, VLAN packets require 4 additional bytes for each VLAN tag.
377 * There is also a 4 Byte FCS - defined by Ethernet - added to each packet (done by the network adapter).
378 * For example a full sized Jumbo Packet with one VLAN Tag can have:
379 * 14 Bytes Ethernet header + 4 Bytes VLAN Tag + 9000 Bytes Payload + 4 Bytes FCS = 9022 Bytes.
380 */
382
383/**
384 * @brief List of reasons for adapter change notifications.
385 * This values indicate why a adapter change notification is received.
386 */
387typedef enum _brawcap_adapter_notify_reason
388{
389 /**
390 * @brief The notification reason is unknown.
391 */
393 /**
394 * @brief A new bRAWcap adapter was detected.
395 * E.g. due to enabling bRAWcap driver on an adapter where it was disabled before.
396 */
398 /**
399 * @brief A bRAWcap adapter was removed.
400 * E.g. due to disabling bRAWcap driver on an adapter where it was enabled before.
401 */
403 /**
404 * @brief A adapter property has changed.
405 * This can have several reasons, for a list of all properties see @ref brawcap_adapter_properties_t.
406 */
409
410/**
411 * @brief List of adapter properties.
412 * They are used to identify adapter change notifications with a property change reason.
413 *
414 * @note The property values allow to store several properties in a single bitfield.
415 * This makes it possible to indicate several property changes with only one notification.
416 */
417typedef enum _brawcap_adapter_properties
418{
419 BRAWCAP_ADAPTER_PROPERTY_FRIENDLY_NAME = 0x0001, /*!< Adapter friendly name changed. */
420 BRAWCAP_ADAPTER_PROPERTY_RX_SPEED = 0x0002, /*!< Adapter receive speed changed. */
421 BRAWCAP_ADAPTER_PROPERTY_TX_SPEED = 0x0004, /*!< Adapter transmit speed changed. */
422 BRAWCAP_ADAPTER_PROPERTY_MTU = 0x0008, /*!< Adapter max transmission unit changed. */
423 BRAWCAP_ADAPTER_PROPERTY_OPERATION_STATE = 0x0010, /*!< Adapter operation state changed. */
424 BRAWCAP_ADAPTER_PROPERTY_CONNECTION_STATE = 0x0020, /*!< Adapter connection state changed. */
425 BRAWCAP_ADAPTER_PROPERTY_IPV4 = 0x0040, /*!< Adapter IPv4 address changed. */
426 BRAWCAP_ADAPTER_PROPERTY_IPV6 = 0x0080 /*!< Adapter IPv6 address changed. */
428
429/**
430 * @brief The general callback for adapter change notifications.
431 * It will be called each time a available and supported adapter change is detected.
432 *
433 * @attention Each application can only register for this callback once.
434 *
435 * @param[in] name The adapter name on which the change happened.
436 * @param[in] reason The reason/type of change (see @ref brawcap_adapter_notify_reason_t).
437 * @param[in] properties A bit field with the properties that have changed (see @ref brawcap_adapter_properties_t).
438 * @param[in] pUser Pointer to a user defined context.
439 * It allows access to user specific data within the callback.
440 */
442 const brawcap_adapter_notify_reason_t reason, const UINT32 properties, void* pUser);
443
444/**
445 * @brief The per handle callback for adapter change notifications.
446 * It will be called each time a change for the handle underlying adapter (and only for this adapter) is detected.
447 *
448 * @attention Each handle can register for this callback once.
449 *
450 * @param[in] pHandle The handle for which the adapter change notification was registered.
451 * @param[in] reason The reason/type of change (see @ref brawcap_adapter_notify_reason_t).
452 * @param[in] properties A bit field with the properties that have changed (see @ref brawcap_adapter_properties_t).
453 * @param[in] pUser Pointer to a user defined context.
454 * It allows access to user specific data within the callback.
455 */
457 const brawcap_adapter_notify_reason_t reason, const UINT32 properties, void* pUser);
458
459/**@}*/
460#endif
461
462/************************************************** RECEIVE **********************************************************/
463#if 1
464/**
465 * @addtogroup brawcap_receive
466 * @{
467 */
468
469/********************************************** RECEIVE FILTER *******************************************************/
470#if 1
471/**
472 * @addtogroup brawcap_filter
473 * @{
474 */
475
476/**@}*/
477#endif
478
479/**
480 * @brief Max number of supported packet (receive) buffers per bRAWcap handle.
481 *
482 * Limits the number of buffers which can be attached to a single handle with @ref brawcap_rx_buffer_attach.
483 */
484#define BRAWCAP_RX_BUFFERS_PER_HANDLE_MAX 2
485
486/**
487 * @brief Receive callback which is called each time a receive has finished.
488 * Receiving can be started with @ref brawcap_rx_start and has to be stopped with @ref brawcap_rx_stop.
489 * Before anything can be received it is necessary to attach packet buffers to the bRAWcap handle.
490 * This can be done by creating new bRAWcap buffers (@ref brawcap_buffer_create) and attach it with
491 * @ref brawcap_rx_buffer_attach.
492 *
493 * @note If a handle has multiple buffers attached, the callback may be called in parallel (by different threads).
494 *
495 * @warning Executing to long in the callback can lead to a bottleneck in reception!
496 * It is recommended that the driver always has at least one (free) buffer were it can store the packets to.
497 *
498 * @param[in] pHandle Handle on which the receive returned.
499 * @param[in] status The overall receive status see @ref brawcap_status_t for possible return values.
500 * @param[in] pBuffer Pointer to the buffer which has finished receiving.
501 * It can be used to access all packets in the buffer and allows to retrieve information
502 * for each received packet (e.g. payload, length, timestamp, ...).
503 * @param[in] pUser Pointer to a user defined context.
504 * It allows access to user specific data within the callback.
505 */
506typedef void (*brawcap_rx_callback_t)(brawcap_handle_t* const pHandle, const brawcap_status_t status,
507 brawcap_buffer_t* const pBuffer, void* pUser);
508
509/**@}*/
510#endif
511
512/************************************************* TRANSMIT **********************************************************/
513#if 1
514/**
515 * @addtogroup brawcap_transmit
516 * @{
517 */
518
519/**
520 * @brief Transmit callback which is called each time a transmission initiated with @ref brawcap_tx_buffer_send has
521 * finished.
522 *
523 * @note Before any buffer can be transmitted the tranmission has to be started with @ref brawcap_tx_start and
524 * stopped with @ref brawcap_tx_stop.
525 *
526 * @param[in] pHandle Handle on which the transmission has finished.
527 * @param[in] status The overall transmission status see @ref brawcap_status_t for possible return values.
528 * @param[in] pBuffer Pointer to the buffer which has finished transmission (initiated with
529 * @ref brawcap_tx_buffer_send). It can be used to access all packets in the buffer - after transmission - and allows
530 * to retrieve information about each packet (e.g. (transmission) status, timestamp, ...).
531 * @param[in] pUser Pointer to a user defined context (allows access to user specific data within the callback).
532 */
533typedef void (*brawcap_tx_callback_t)(brawcap_handle_t* const pHandle, const brawcap_status_t status,
534 brawcap_buffer_t* const pBuffer, void* pUser);
535
536/**@}*/
537#endif
538
539/*************************************************** STATS ***********************************************************/
540#if 1
541/**
542 * @addtogroup brawcap_stats
543 * @{
544 */
545
546/**@}*/
547#endif
548
549/************************************************ ENVIRONMENT ********************************************************/
550#if 1
551/**
552 * @defgroup brawcap_env Environment
553 * @brief Types and functions for handling/modifying the bRAWcap environment.
554 * @{
555 */
556
557/**
558 * @brief Environment variable for the bRAWcap library.
559 *
560 * It can be used to modify the bRAWcap behavior.
561 * For example it can be used to specify a custom path for loading a specific library (such as libpcap).
562 */
563#define BRAWCAP_ENV_VAR "BRAWCAP"
564/**@}*/
565#endif
566
567#endif // BRAWCAP_TYPES_UM_H
bRAWcap API - Shared types.
struct _brawcap_handle brawcap_handle_t
A bRAWcap handle.
Definition: brawcap_types_um.h:184
brawcap_status_t
bRAWcap status/return codes.
Definition: brawcap_types_shared.h:140
struct _brawcap_buffer brawcap_buffer_t
bRAWcap packet buffer object.
Definition: brawcap_types_shared.h:746
brawcap_buffer_sort_order_t
Buffer sort order.
Definition: brawcap_types_um.h:222
brawcap_buffer_sort_types_t
Buffer sort types.
Definition: brawcap_types_um.h:234
brawcap_buffer_sort_endian_t
Byte order selection for payload sorting.
Definition: brawcap_types_um.h:244
@ BRAWCAP_BUFFER_SORT_ORDER_NONE
No sort order.
Definition: brawcap_types_um.h:223
@ BRAWCAP_BUFFER_SORT_ORDER_RISING
Rising sort order.
Definition: brawcap_types_um.h:224
@ BRAWCAP_BUFFER_SORT_ORDER_FALLING
Falling sort order.
Definition: brawcap_types_um.h:225
@ BRAWCAP_BUFFER_SORT_TYPE_PAYLOAD
Definition: brawcap_types_um.h:237
@ BRAWCAP_BUFFER_SORT_TYPE_TIMESTAMP
Definition: brawcap_types_um.h:236
@ BRAWCAP_BUFFER_SORT_TYPE_NONE
Definition: brawcap_types_um.h:235
@ BRAWCAP_BUFFER_SORT_ENDIAN_BIG
Definition: brawcap_types_um.h:245
@ BRAWCAP_BUFFER_SORT_ENDIAN_LITTLE
Definition: brawcap_types_um.h:246
IPv4 address.
Definition: brawcap_types_um.h:307
IPv6 address.
Definition: brawcap_types_um.h:317
UINT32 addr
Definition: brawcap_types_um.h:310
#define BRAWCAP_ADAPTER_NAME_LENGTH
The max supported length for an adapter name.
Definition: brawcap_types_um.h:281
brawcap_adapter_properties_t
List of adapter properties. They are used to identify adapter change notifications with a property ch...
Definition: brawcap_types_um.h:418
void(* brawcap_adapter_notify_handle_callback_t)(brawcap_handle_t *const pHandle, const brawcap_adapter_notify_reason_t reason, const UINT32 properties, void *pUser)
The per handle callback for adapter change notifications. It will be called each time a change for th...
Definition: brawcap_types_um.h:456
UINT8 brawcap_adapter_mac_t[BRAWCAP_ADAPTER_MAC_LENGTH]
Fixed size array describing a MAC address.
Definition: brawcap_types_um.h:293
brawcap_adapter_connection_state_t
List of adapter connection states. Values indicating the current adapter connection state (uplink/cab...
Definition: brawcap_types_um.h:350
char brawcap_adapter_name_t[BRAWCAP_ADAPTER_NAME_LENGTH]
Fixed size array containing a adapter name.
Definition: brawcap_types_um.h:301
brawcap_adapter_speed_t
List of bRAWcap adapter speeds. Values indicating the current adapter uplink speed.
Definition: brawcap_types_um.h:331
void(* brawcap_adapter_notify_callback_t)(const brawcap_adapter_name_t name, const brawcap_adapter_notify_reason_t reason, const UINT32 properties, void *pUser)
The general callback for adapter change notifications. It will be called each time a available and su...
Definition: brawcap_types_um.h:441
brawcap_adapter_operation_state_t
List of adapter operation states. Values indicating the current adapter operation state (adapter driv...
Definition: brawcap_types_um.h:361
UINT8 brawcap_adapter_count_t
Type used for counting the available/supported adapters on a machine.
Definition: brawcap_types_um.h:286
#define BRAWCAP_ADAPTER_MAC_LENGTH
Required number of bytes for describing a MAC address. The defined length does not containing any del...
Definition: brawcap_types_um.h:273
brawcap_adapter_notify_reason_t
List of reasons for adapter change notifications. This values indicate why a adapter change notificat...
Definition: brawcap_types_um.h:388
UINT64 brawcap_adapter_mtu_t
Type for handling the adapter maximum transmission unit (MTU).
Definition: brawcap_types_um.h:381
@ BRAWCAP_ADAPTER_PROPERTY_CONNECTION_STATE
Definition: brawcap_types_um.h:424
@ BRAWCAP_ADAPTER_PROPERTY_IPV6
Definition: brawcap_types_um.h:426
@ BRAWCAP_ADAPTER_PROPERTY_OPERATION_STATE
Definition: brawcap_types_um.h:423
@ BRAWCAP_ADAPTER_PROPERTY_RX_SPEED
Definition: brawcap_types_um.h:420
@ BRAWCAP_ADAPTER_PROPERTY_FRIENDLY_NAME
Definition: brawcap_types_um.h:419
@ BRAWCAP_ADAPTER_PROPERTY_IPV4
Definition: brawcap_types_um.h:425
@ BRAWCAP_ADAPTER_PROPERTY_TX_SPEED
Definition: brawcap_types_um.h:421
@ BRAWCAP_ADAPTER_PROPERTY_MTU
Definition: brawcap_types_um.h:422
@ BRAWCAP_ADAPTER_CONNECTION_UP
Definition: brawcap_types_um.h:352
@ BRAWCAP_ADAPTER_CONNECTION_UNKNOWN
Definition: brawcap_types_um.h:351
@ BRAWCAP_ADAPTER_CONNECTION_DOWN
Definition: brawcap_types_um.h:353
@ BRAWCAP_ADAPTER_SPEED_5G
Definition: brawcap_types_um.h:337
@ BRAWCAP_ADAPTER_SPEED_100G
Definition: brawcap_types_um.h:342
@ BRAWCAP_ADAPTER_SPEED_2_5G
Definition: brawcap_types_um.h:336
@ BRAWCAP_ADAPTER_SPEED_10G
Definition: brawcap_types_um.h:338
@ BRAWCAP_ADAPTER_SPEED_100M
Definition: brawcap_types_um.h:334
@ BRAWCAP_ADAPTER_SPEED_40G
Definition: brawcap_types_um.h:340
@ BRAWCAP_ADAPTER_SPEED_10M
Definition: brawcap_types_um.h:333
@ BRAWCAP_ADAPTER_SPEED_25G
Definition: brawcap_types_um.h:339
@ BRAWCAP_ADAPTER_SPEED_UNKNOWN
Definition: brawcap_types_um.h:332
@ BRAWCAP_ADAPTER_SPEED_50G
Definition: brawcap_types_um.h:341
@ BRAWCAP_ADAPTER_SPEED_1G
Definition: brawcap_types_um.h:335
@ BRAWCAP_ADAPTER_OPERATION_DOWN
Definition: brawcap_types_um.h:364
@ BRAWCAP_ADAPTER_OPERATION_UNKNOWN
Definition: brawcap_types_um.h:362
@ BRAWCAP_ADAPTER_OPERATION_TESTING
Definition: brawcap_types_um.h:365
@ BRAWCAP_ADAPTER_OPERATION_UP
Definition: brawcap_types_um.h:363
@ BRAWCAP_ADAPTER_NOTIFY_REASON_PROPERTY_CHANGE
A adapter property has changed. This can have several reasons, for a list of all properties see brawc...
Definition: brawcap_types_um.h:407
@ BRAWCAP_ADAPTER_NOTIFY_REASON_ADD
A new bRAWcap adapter was detected. E.g. due to enabling bRAWcap driver on an adapter where it was di...
Definition: brawcap_types_um.h:397
@ BRAWCAP_ADAPTER_NOTIFY_REASON_REMOVE
A bRAWcap adapter was removed. E.g. due to disabling bRAWcap driver on an adapter where it was enable...
Definition: brawcap_types_um.h:402
@ BRAWCAP_ADAPTER_NOTIFY_REASON_UNKNOWN
The notification reason is unknown.
Definition: brawcap_types_um.h:392
void(* brawcap_rx_callback_t)(brawcap_handle_t *const pHandle, const brawcap_status_t status, brawcap_buffer_t *const pBuffer, void *pUser)
Receive callback which is called each time a receive has finished. Receiving can be started with braw...
Definition: brawcap_types_um.h:506
void(* brawcap_tx_callback_t)(brawcap_handle_t *const pHandle, const brawcap_status_t status, brawcap_buffer_t *const pBuffer, void *pUser)
Transmit callback which is called each time a transmission initiated with brawcap_tx_buffer_send has ...
Definition: brawcap_types_um.h:533
brawcap_log_type_t
List of bRAWcap log types.
Definition: brawcap_types_um.h:135
brawcap_log_level_t
List of bRAWcap log levels.
Definition: brawcap_types_um.h:83
@ BRAWCAP_LOG_TYPE_GENERIC
Generic loggings will be used for everything which has no specific type.
Definition: brawcap_types_um.h:139
@ BRAWCAP_LOG_TYPE_PCAP
PCAP loggings will be used for anything which relates to libpcap/WinPcap/Npcap.
Definition: brawcap_types_um.h:160
@ BRAWCAP_LOG_TYPE_LICENSE
License loggings will be used for anything which relates to licensing.
Definition: brawcap_types_um.h:155
@ BRAWCAP_LOG_TYPE_TRANSMIT
Transmit loggings will be used for anything which relates to transmitting.
Definition: brawcap_types_um.h:151
@ BRAWCAP_LOG_TYPE_ADAPTER
Adapter loggings will be used for anything which relates to the local adapter handling.
Definition: brawcap_types_um.h:143
@ BRAWCAP_LOG_TYPE_RECEIVE
Receive loggings will be used for anything which relates to receiving.
Definition: brawcap_types_um.h:147
@ BRAWCAP_LOG_LEVEL_WARNING
Warning log level will include loggings for unexpected states. This level should never be disabled.
Definition: brawcap_types_um.h:113
@ BRAWCAP_LOG_LEVEL_ERROR
Error log level will include loggings if something went completely wrong and bRAWcap could not solve ...
Definition: brawcap_types_um.h:124
@ BRAWCAP_LOG_LEVEL_DEBUG
Debug log level is for debugging bRAWcap itself only. Therefore it can only be enabled if the applica...
Definition: brawcap_types_um.h:90
@ BRAWCAP_LOG_LEVEL_VERBOSE
Verbose log level will include many informative loggings. Those loggings gives more info why some API...
Definition: brawcap_types_um.h:99
@ BRAWCAP_LOG_LEVEL_NOTICE
Notice log level will include some loggings which gives information of the current bRAWcap state....
Definition: brawcap_types_um.h:106