![]() |
The FreeRADIUS server $Id: f3670dba8951ca10eb4948feb3dc3db9423a334f $
|
Generic protocol load generator. More...
#include <netdb.h>#include <fcntl.h>#include <freeradius-devel/server/protocol.h>#include <freeradius-devel/server/main_loop.h>#include <freeradius-devel/io/application.h>#include <freeradius-devel/io/listen.h>#include <freeradius-devel/io/schedule.h>#include <freeradius-devel/io/load.h>#include "proto_load.h"
Include dependency graph for proto_load_step.c:Go to the source code of this file.
Data Structures | |
| struct | proto_load_step_s |
| struct | proto_load_step_thread_t |
Typedefs | |
| typedef struct proto_load_step_s | proto_load_step_t |
Enumerations | |
| enum | load_step_on_complete_t { LOAD_STEP_ON_COMPLETE_EXIT = 0 , LOAD_STEP_ON_COMPLETE_REPEAT , LOAD_STEP_ON_COMPLETE_STOP , LOAD_STEP_ON_COMPLETE_CONTINUE } |
| What to do when the load test is complete. More... | |
Functions | |
| static void | load_complete (proto_load_step_thread_t *thread) |
| The load test is complete - apply on_complete. | |
| static fr_client_t * | mod_client_find (fr_listen_t *li, UNUSED fr_ipaddr_t const *ipaddr, UNUSED int ipproto) |
| static int | mod_decode (void const *instance, request_t *request, UNUSED uint8_t *const data, UNUSED size_t data_len) |
| Decode the packet. | |
| static void | mod_event_list_set (fr_listen_t *li, fr_event_list_t *el, void *nr) |
| Set the event list for a new socket. | |
| static int | mod_generate (fr_time_t now, void *uctx) |
| Generate traffic. | |
| static int | mod_instantiate (module_inst_ctx_t const *mctx) |
| static void | mod_load_done (void *uctx) |
| The generator noticed completion itself, without a final reply. | |
| static char const * | mod_name (fr_listen_t *li) |
| static int | mod_open (fr_listen_t *li) |
| Open a load listener. | |
| static ssize_t | mod_read (fr_listen_t *li, void **packet_ctx, fr_time_t *recv_time_p, uint8_t *buffer, size_t buffer_len, size_t *leftover) |
| static ssize_t | mod_write (fr_listen_t *li, UNUSED void *packet_ctx, fr_time_t request_time, UNUSED uint8_t *buffer, size_t buffer_len, UNUSED size_t written) |
| static void | write_stats (fr_timer_list_t *tl, fr_time_t now, void *uctx) |
Variables | |
| static const conf_parser_t | load_listen_config [] |
| static fr_table_num_sorted_t const | load_on_complete_table [] |
| static size_t | load_on_complete_table_len = NUM_ELEMENTS(load_on_complete_table) |
| fr_app_io_t | proto_load_step |
Generic protocol load generator.
Definition in file proto_load_step.c.
| struct proto_load_step_s |
Definition at line 82 of file proto_load_step.c.
Collaboration diagram for proto_load_step_s:| Data Fields | ||
|---|---|---|
| fr_client_t * | client | static client |
| int | code | |
| CONF_SECTION * | cs | our configuration |
| char const * | csv | where to write CSV stats |
| fr_dict_t const * | dict | Our namespace. |
| char const * | filename | where to read input packet from |
| fr_load_config_t | load | load configuration |
| uint32_t | max_attributes | Limit maximum decodable attributes. |
| load_step_on_complete_t | on_complete | what to do when the load test completes |
| fr_pair_list_t | pair_list | for input packet |
| proto_load_t * | parent | |
| struct proto_load_step_thread_t |
Definition at line 61 of file proto_load_step.c.
Collaboration diagram for proto_load_step_thread_t:| Data Fields | ||
|---|---|---|
| bool | done | |
| fr_event_list_t * | el | event list |
| fr_timer_t * | ev | for writing statistics |
| int | fd | for CSV files |
| proto_load_step_t const * | inst | |
| fr_load_t * | l | load generation handler |
| fr_load_config_t | load | load configuration |
| char const * | name | socket name |
| fr_network_t * | nr | network handler |
| fr_listen_t * | parent | master IO handler |
| fr_time_t | recv_time | recv time of the last packet |
| fr_stats_t | stats | statistics for this socket |
| bool | suspended | |
| typedef struct proto_load_step_s proto_load_step_t |
Definition at line 38 of file proto_load_step.c.
What to do when the load test is complete.
The test is complete when the PPS ramp has passed max_pps, all max_requests packets (if set) have been sent, and every reply has been received.
Definition at line 46 of file proto_load_step.c.
|
static |
The load test is complete - apply on_complete.
Definition at line 187 of file proto_load_step.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 489 of file proto_load_step.c.
|
static |
Decode the packet.
Definition at line 328 of file proto_load_step.c.
Here is the call graph for this function:
|
static |
Set the event list for a new socket.
| [in] | li | the listener |
| [in] | el | the event list |
| [in] | nr | context from the network side |
Definition at line 365 of file proto_load_step.c.
Here is the call graph for this function:
|
static |
Generate traffic.
Definition at line 294 of file proto_load_step.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
|
static |
The generator noticed completion itself, without a final reply.
Definition at line 223 of file proto_load_step.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 398 of file proto_load_step.c.
|
static |
Open a load listener.
Definition at line 261 of file proto_load_step.c.
Here is the call graph for this function:
|
static |
Definition at line 125 of file proto_load_step.c.
|
static |
Definition at line 310 of file proto_load_step.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 103 of file proto_load_step.c.
|
static |
Definition at line 53 of file proto_load_step.c.
|
static |
Definition at line 59 of file proto_load_step.c.
| fr_app_io_t proto_load_step |
Definition at line 496 of file proto_load_step.c.
1.9.8