SENF Extensible Network Framework
Home
Overview
Examples
HowTos
Glossary
Ext
NetEmu
PPI
Packets
Scheduler
Socket
Utils
Console
Daemon
Logger
Termlib
80211Bundle
radiotap
radiotap_iter.h
Go to the documentation of this file.
1
//
2
// Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3
// Network Research Group (NET)
4
// Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5
// Contact: support@wiback.org
6
//
7
// This file is part of the SENF code tree.
8
// It is licensed under the 3-clause BSD License (aka New BSD License).
9
// See LICENSE.txt in the top level directory for details or visit
10
// https://opensource.org/licenses/BSD-3-Clause
11
//
12
13
14
#ifndef __RADIOTAP_ITER_H
15
#define __RADIOTAP_ITER_H
16
17
#include <stdint.h>
18
#include "
radiotap.h
"
19
20
/* Radiotap header iteration
21
* implemented in radiotap.c
22
*/
23
24
struct
radiotap_override
{
25
uint8_t
field
;
26
uint8_t
align
:4,
size
:4;
27
};
28
29
struct
radiotap_align_size
{
30
uint8_t
align
:4,
size
:4;
31
};
32
33
struct
ieee80211_radiotap_namespace
{
34
const
struct
radiotap_align_size
*
align_size
;
35
int
n_bits
;
36
uint32_t
oui
;
37
uint8_t
subns
;
38
};
39
40
struct
ieee80211_radiotap_vendor_namespaces
{
41
const
struct
ieee80211_radiotap_namespace
*
ns
;
42
int
n_ns
;
43
};
44
77
struct
ieee80211_radiotap_iterator
{
78
struct
ieee80211_radiotap_header
*
_rtheader
;
79
const
struct
ieee80211_radiotap_vendor_namespaces
*
_vns
;
80
const
struct
ieee80211_radiotap_namespace
*
current_namespace
;
81
82
unsigned
char
*_arg, *
_next_ns_data
;
83
uint32_t *
_next_bitmap
;
84
85
unsigned
char
*
this_arg
;
86
const
struct
radiotap_override
*
overrides
;
/* Only for RADIOTAP_SUPPORT_OVERRIDES */
87
int
n_overrides
;
/* Only for RADIOTAP_SUPPORT_OVERRIDES */
88
int
this_arg_index
;
89
int
this_arg_size
;
90
91
int
is_radiotap_ns
;
92
93
int
_max_length
;
94
int
_arg_index
;
95
uint32_t
_bitmap_shifter
;
96
int
_reset_on_ext
;
97
};
98
99
extern
int
ieee80211_radiotap_iterator_init
(
100
struct
ieee80211_radiotap_iterator
*
iterator
,
101
struct
ieee80211_radiotap_header
*radiotap_header,
102
int
max_length,
const
struct
ieee80211_radiotap_vendor_namespaces
*vns);
103
104
extern
int
ieee80211_radiotap_iterator_next
(
105
struct
ieee80211_radiotap_iterator
*
iterator
);
106
107
#endif
/* __RADIOTAP_ITER_H */
radiotap_align_size
Definition:
radiotap_iter.h:29
ieee80211_radiotap_iterator::overrides
const struct radiotap_override * overrides
Definition:
radiotap_iter.h:86
radiotap_align_size::size
uint8_t size
Definition:
radiotap_iter.h:30
ieee80211_radiotap_header
Definition:
radiotap.h:74
ieee80211_radiotap_vendor_namespaces
Definition:
radiotap_iter.h:40
radiotap_override::size
uint8_t size
Definition:
radiotap_iter.h:26
ieee80211_radiotap_iterator::_max_length
int _max_length
Definition:
radiotap_iter.h:93
ieee80211_radiotap_vendor_namespaces::n_ns
int n_ns
Definition:
radiotap_iter.h:42
ieee80211_radiotap_iterator::_next_ns_data
unsigned char * _next_ns_data
Definition:
radiotap_iter.h:82
radiotap_override::field
uint8_t field
Definition:
radiotap_iter.h:25
ieee80211_radiotap_iterator::_next_bitmap
uint32_t * _next_bitmap
Definition:
radiotap_iter.h:83
ieee80211_radiotap_iterator::_bitmap_shifter
uint32_t _bitmap_shifter
Definition:
radiotap_iter.h:95
ieee80211_radiotap_vendor_namespaces::ns
const struct ieee80211_radiotap_namespace * ns
Definition:
radiotap_iter.h:41
ieee80211_radiotap_namespace::n_bits
int n_bits
Definition:
radiotap_iter.h:35
ieee80211_radiotap_iterator::current_namespace
const struct ieee80211_radiotap_namespace * current_namespace
Definition:
radiotap_iter.h:80
senf::detail::packet::iterator
raw_container::iterator iterator
Definition:
PacketTypes.hh:69
ieee80211_radiotap_iterator::this_arg
unsigned char * this_arg
Definition:
radiotap_iter.h:85
radiotap_override::align
uint8_t align
Definition:
radiotap_iter.h:26
ieee80211_radiotap_iterator::this_arg_index
int this_arg_index
Definition:
radiotap_iter.h:88
ieee80211_radiotap_iterator::_reset_on_ext
int _reset_on_ext
Definition:
radiotap_iter.h:96
radiotap_override
Definition:
radiotap_iter.h:24
ieee80211_radiotap_iterator_init
int ieee80211_radiotap_iterator_init(struct ieee80211_radiotap_iterator *iterator, struct ieee80211_radiotap_header *radiotap_header, int max_length, const struct ieee80211_radiotap_vendor_namespaces *vns)
Definition:
radiotap.c:105
ieee80211_radiotap_iterator::_arg_index
int _arg_index
Definition:
radiotap_iter.h:94
ieee80211_radiotap_namespace::oui
uint32_t oui
Definition:
radiotap_iter.h:36
ieee80211_radiotap_iterator_next
int ieee80211_radiotap_iterator_next(struct ieee80211_radiotap_iterator *iterator)
Definition:
radiotap.c:246
ieee80211_radiotap_iterator::n_overrides
int n_overrides
Definition:
radiotap_iter.h:87
ieee80211_radiotap_namespace
Definition:
radiotap_iter.h:33
ieee80211_radiotap_iterator::_vns
const struct ieee80211_radiotap_vendor_namespaces * _vns
Definition:
radiotap_iter.h:79
ieee80211_radiotap_namespace::align_size
const struct radiotap_align_size * align_size
Definition:
radiotap_iter.h:34
ieee80211_radiotap_namespace::subns
uint8_t subns
Definition:
radiotap_iter.h:37
radiotap.h
ieee80211_radiotap_iterator::is_radiotap_ns
int is_radiotap_ns
Definition:
radiotap_iter.h:91
ieee80211_radiotap_iterator::this_arg_size
int this_arg_size
Definition:
radiotap_iter.h:89
ieee80211_radiotap_iterator
Definition:
radiotap_iter.h:77
ieee80211_radiotap_iterator::_rtheader
struct ieee80211_radiotap_header * _rtheader
Definition:
radiotap_iter.h:78