The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
proto_arp.h
Go to the documentation of this file.
1 #pragma once
2 /*
3  * This program is free software; you can redistribute it and/or modify
4  * it under the terms of the GNU General Public License as published by
5  * the Free Software Foundation; either version 2 of the License, or
6  * (at your option) any later version.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
16  */
17 
18 /*
19  * $Id: 77017c010111d2de41e4cdc0515d33dc3a11512a $
20  *
21  * @file proto_arp.h
22  * @brief Structures for the ARP protocol
23  *
24  * @copyright 2020 Network RADIUS SAS (legal@networkradius.com)
25  */
26 #include <freeradius-devel/io/listen.h>
27 #include <freeradius-devel/arp/arp.h>
28 
29 typedef struct {
30  CONF_SECTION *server_cs; //!< server CS for this listener
31  CONF_SECTION *cs; //!< my configuration
32 
33  dl_module_inst_t *io_submodule; //!< As provided by the transport_parse
34  ///< callback. Broken out into the
35  ///< app_io_* fields below for convenience.
36 
37  CONF_SECTION *app_io_conf; //!< for the APP IO
38  fr_app_io_t const *app_io; //!< Easy access to the app_io handle.
39  void *app_io_instance; //!< Easy access to the app_io instance.
40 
41  dl_module_inst_t *app_process; //!< app_process pointer
42  void *process_instance; //!< app_process instance
43 
44  fr_dict_t *dict; //!< root dictionary
45 
46  bool active; //!< do we respond to anything?
47  uint32_t num_messages; //!< for message ring buffer
48  uint32_t priority; //!< for packet processing, larger == higher
49 
50  fr_schedule_t *sc; //!< the scheduler, where we insert new readers
51 
52  fr_listen_t *listen; //!< The listener structure which describes
53  //!< the I/O path.
54 } proto_arp_t;
55 
56 
Public structure describing an I/O path for a protocol.
Definition: app_io.h:33
A section grouping multiple CONF_PAIR.
Definition: cf_priv.h:89
A module/inst tuple.
Definition: dl_module.h:162
unsigned int uint32_t
Definition: merged_model.c:33
uint32_t num_messages
for message ring buffer
Definition: proto_arp.h:47
bool active
do we respond to anything?
Definition: proto_arp.h:46
fr_listen_t * listen
The listener structure which describes the I/O path.
Definition: proto_arp.h:52
CONF_SECTION * app_io_conf
for the APP IO
Definition: proto_arp.h:37
dl_module_inst_t * io_submodule
As provided by the transport_parse callback.
Definition: proto_arp.h:33
void * app_io_instance
Easy access to the app_io instance.
Definition: proto_arp.h:39
fr_schedule_t * sc
the scheduler, where we insert new readers
Definition: proto_arp.h:50
fr_app_io_t const * app_io
Easy access to the app_io handle.
Definition: proto_arp.h:38
uint32_t priority
for packet processing, larger == higher
Definition: proto_arp.h:48
void * process_instance
app_process instance
Definition: proto_arp.h:42
CONF_SECTION * cs
my configuration
Definition: proto_arp.h:31
dl_module_inst_t * app_process
app_process pointer
Definition: proto_arp.h:41
fr_dict_t * dict
root dictionary
Definition: proto_arp.h:44
CONF_SECTION * server_cs
server CS for this listener
Definition: proto_arp.h:30
The scheduler.
Definition: schedule.c:125