The FreeRADIUS server  $Id: 15bac2a4c627c01d1aa2047687b3418955ac7f00 $
Data Structures | Macros | Functions | Variables
base.c File Reference

Base DORA, etc. More...

#include <freeradius-devel/io/application.h>
#include <freeradius-devel/server/protocol.h>
#include <freeradius-devel/util/dict.h>
#include <freeradius-devel/util/debug.h>
#include <freeradius-devel/dhcpv4/dhcpv4.h>
#include <freeradius-devel/server/process.h>
+ Include dependency graph for base.c:

Go to the source code of this file.

Data Structures

struct  process_dhcpv4_sections_t
 
struct  process_dhcpv4_t
 

Macros

#define FR_DHCP_PROCESS_CODE_VALID(_x)   (FR_DHCP_PACKET_CODE_VALID(_x) || (_x == FR_DHCP_DO_NOT_RESPOND))
 
#define LOG_PREFIX   "process_dhcpv4"
 
#define PROCESS_CODE_DO_NOT_RESPOND   FR_DHCP_DO_NOT_RESPOND
 
#define PROCESS_CODE_DYNAMIC_CLIENT   FR_DHCP_ACK
 
#define PROCESS_CODE_MAX   FR_DHCP_CODE_MAX
 
#define PROCESS_INST   process_dhcpv4_t
 
#define PROCESS_PACKET_CODE_VALID   FR_DHCP_PROCESS_CODE_VALID
 
#define PROCESS_PACKET_TYPE   fr_dhcpv4_packet_code_t
 

Functions

static void dhcpv4_packet_debug (request_t *request, fr_packet_t *packet, fr_pair_list_t *list, bool received)
 
static unlang_action_t mod_process (rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
 
 RESUME (check_yiaddr)
 

Variables

static fr_dict_attr_t const * attr_message_type
 
static fr_dict_attr_t const * attr_packet_type
 
static fr_dict_attr_t const * attr_yiaddr
 
static const virtual_server_compile_t compile_list []
 
static fr_dict_t const * dict_dhcpv4
 
fr_process_module_t process_dhcpv4
 
fr_dict_autoload_t process_dhcpv4_dict []
 
fr_dict_attr_autoload_t process_dhcpv4_dict_attr []
 
static fr_process_state_t const process_state []
 

Detailed Description

Base DORA, etc.

Id
aabf946f382b6fd1184336d848c2f7bf6fc41934

DHCPV4 processing.

Definition in file base.c.


Data Structure Documentation

◆ process_dhcpv4_sections_t

struct process_dhcpv4_sections_t

Definition at line 95 of file base.c.

+ Collaboration diagram for process_dhcpv4_sections_t:
Data Fields
CONF_SECTION * ack
CONF_SECTION * add_client
CONF_SECTION * decline
CONF_SECTION * deny_client
CONF_SECTION * discover
CONF_SECTION * do_not_respond
CONF_SECTION * force_renew
CONF_SECTION * inform
CONF_SECTION * lease_active
CONF_SECTION * lease_query
CONF_SECTION * lease_unassigned
CONF_SECTION * lease_unknown
CONF_SECTION * nak
CONF_SECTION * new_client
uint64_t nothing
CONF_SECTION * offer
CONF_SECTION * release
CONF_SECTION * request

◆ process_dhcpv4_t

struct process_dhcpv4_t

Definition at line 118 of file base.c.

+ Collaboration diagram for process_dhcpv4_t:
Data Fields
process_dhcpv4_sections_t sections

Macro Definition Documentation

◆ FR_DHCP_PROCESS_CODE_VALID

#define FR_DHCP_PROCESS_CODE_VALID (   _x)    (FR_DHCP_PACKET_CODE_VALID(_x) || (_x == FR_DHCP_DO_NOT_RESPOND))

Definition at line 122 of file base.c.

◆ LOG_PREFIX

#define LOG_PREFIX   "process_dhcpv4"

Definition at line 25 of file base.c.

◆ PROCESS_CODE_DO_NOT_RESPOND

#define PROCESS_CODE_DO_NOT_RESPOND   FR_DHCP_DO_NOT_RESPOND

Definition at line 126 of file base.c.

◆ PROCESS_CODE_DYNAMIC_CLIENT

#define PROCESS_CODE_DYNAMIC_CLIENT   FR_DHCP_ACK

Definition at line 129 of file base.c.

◆ PROCESS_CODE_MAX

#define PROCESS_CODE_MAX   FR_DHCP_CODE_MAX

Definition at line 125 of file base.c.

◆ PROCESS_INST

#define PROCESS_INST   process_dhcpv4_t

Definition at line 128 of file base.c.

◆ PROCESS_PACKET_CODE_VALID

#define PROCESS_PACKET_CODE_VALID   FR_DHCP_PROCESS_CODE_VALID

Definition at line 127 of file base.c.

◆ PROCESS_PACKET_TYPE

#define PROCESS_PACKET_TYPE   fr_dhcpv4_packet_code_t

Definition at line 124 of file base.c.

Function Documentation

◆ dhcpv4_packet_debug()

static void dhcpv4_packet_debug ( request_t request,
fr_packet_t packet,
fr_pair_list_t list,
bool  received 
)
static

Definition at line 56 of file base.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mod_process()

static unlang_action_t mod_process ( rlm_rcode_t p_result,
module_ctx_t const *  mctx,
request_t request 
)
static

Definition at line 391 of file base.c.

+ Here is the call graph for this function:

◆ RESUME()

RESUME ( check_yiaddr  )

Definition at line 132 of file base.c.

+ Here is the call graph for this function:

Variable Documentation

◆ attr_message_type

fr_dict_attr_t const* attr_message_type
static

Definition at line 41 of file base.c.

◆ attr_packet_type

fr_dict_attr_t const* attr_packet_type
static

Definition at line 43 of file base.c.

◆ attr_yiaddr

fr_dict_attr_t const* attr_yiaddr
static

Definition at line 42 of file base.c.

◆ compile_list

const virtual_server_compile_t compile_list[]
static

Definition at line 420 of file base.c.

◆ dict_dhcpv4

fr_dict_t const* dict_dhcpv4
static

Definition at line 33 of file base.c.

◆ process_dhcpv4

fr_process_module_t process_dhcpv4
Initial value:
= {
.common = {
.name = "dhcpv4",
.inst_size = sizeof(process_dhcpv4_t)
},
.process = mod_process,
.compile_list = compile_list,
.dict = &dict_dhcpv4
}
#define MODULE_MAGIC_INIT
Stop people using different module/library/server versions together.
Definition: dl_module.h:65
static unlang_action_t mod_process(rlm_rcode_t *p_result, module_ctx_t const *mctx, request_t *request)
Definition: base.c:391
static const virtual_server_compile_t compile_list[]
Definition: base.c:420
static fr_dict_t const * dict_dhcpv4
Definition: base.c:33

Definition at line 543 of file base.c.

◆ process_dhcpv4_dict

fr_dict_autoload_t process_dhcpv4_dict
Initial value:
= {
{ .out = &dict_dhcpv4, .proto = "dhcpv4" },
{ NULL }
}

Definition at line 36 of file base.c.

◆ process_dhcpv4_dict_attr

fr_dict_attr_autoload_t process_dhcpv4_dict_attr
Initial value:
= {
{ .out = &attr_message_type, .name = "Message-Type", .type = FR_TYPE_UINT8, .dict = &dict_dhcpv4},
{ .out = &attr_yiaddr, .name = "Your-IP-Address", .type = FR_TYPE_IPV4_ADDR, .dict = &dict_dhcpv4},
{ .out = &attr_packet_type, .name = "Packet-Type", .type = FR_TYPE_UINT32, .dict = &dict_dhcpv4},
{ NULL }
}
@ FR_TYPE_IPV4_ADDR
32 Bit IPv4 Address.
Definition: merged_model.c:86
@ FR_TYPE_UINT8
8 Bit unsigned integer.
Definition: merged_model.c:97
@ FR_TYPE_UINT32
32 Bit unsigned integer.
Definition: merged_model.c:99
static fr_dict_attr_t const * attr_packet_type
Definition: base.c:43
static fr_dict_attr_t const * attr_yiaddr
Definition: base.c:42
static fr_dict_attr_t const * attr_message_type
Definition: base.c:41

Definition at line 46 of file base.c.

◆ process_state

fr_process_state_t const process_state[]
static

Definition at line 145 of file base.c.