Packet flow processing

Overview

Packet flow processing API. More…

// typedefs

typedef struct tapi_flow_ep tapi_flow_ep;
typedef struct tapi_flow_traffic tapi_flow_traffic;
typedef struct tapi_flow_s tapi_flow_t;

// structs

struct tapi_flow_ep;
struct tapi_flow_s;
struct tapi_flow_traffic;

// global functions

char* tapi_flow_preprocess_links(const char* param);
char* tapi_flow_preprocess_quotes(const char* param);
char** tapi_flow_preprocess_args(int argc, char** argv);
te_errno tapi_flow_conf_get(int argc, char** argv, bool do_preprocess, tapi_flow_t* flow);
tapi_flow_ep* tapi_flow_find_ep(tapi_flow_t* flow, const char* name);
tapi_flow_traffic* tapi_flow_find_traffic(tapi_flow_t* flow, const char* name);
te_errno tapi_flow_prepare_endpoints(tapi_flow_t* flow);
te_errno tapi_flow_prepare_traffic(tapi_flow_t* flow);
te_errno tapi_flow_csap_spec_to_stack(asn_value* spec, char** stack);
te_errno tapi_flow_gen_base_ptrn(asn_value* rcv_ptrn, asn_value** base_ptrn_p);
te_errno tapi_flow_setup_endpoints(tapi_flow_t* flow);
te_errno tapi_flow_prepare(int argc, char** argv, bool do_preprocess, tapi_flow_t* flow);
void tapi_flow_init(tapi_flow_t* flow);
void tapi_flow_fini(tapi_flow_t* flow);
te_errno tapi_flow_start(tapi_flow_t* flow, char* name);
te_errno tapi_flow_stop(tapi_flow_t* flow, char* name, int* rcv_num_p, int* rcv_base_num_p);
te_errno tapi_flow_check(tapi_flow_t* flow, char* name, int* rcv_num_p, int* rcv_base_num_p);
te_errno tapi_flow_check_sequence(tapi_flow_t* flow, ...);
te_errno tapi_flow_check_all(tapi_flow_t* flow, const char* traffic_prefix);

// macros

#define TAPI_FLOW_RECV_COUNT_MAX
#define TAPI_FLOW_RECV_TIMEOUT
#define TEST_GET_FLOW_CONFIG(_flow, _do_preprocess)

Detailed Documentation

Packet flow processing API.

Copyright (C) 2004-2022 OKTET Labs Ltd. All rights reserved.

Typedefs

typedef struct tapi_flow_s tapi_flow_t

General Flow structure List of endpoints and traffic entries

Global Functions

char* tapi_flow_preprocess_links(const char* param)

Preprocess parameter value and resolve all configurator links within.

Parameters:

param

Textual parameter value to preprocess

Returns:

Preprocessed value on success or NULL on any error

char* tapi_flow_preprocess_quotes(const char* param)

Preprocess parameter value and substitute quoted values. Quoted notation is used to increase readability Also dereference configurator links if quotting means configurator link reduction.

Parameters:

param

Textual parameter value to preprocess

Returns:

Preprocessed value on success or NULL on any error

char** tapi_flow_preprocess_args(int argc, char** argv)

Preprocess all test arguments

Parameters:

argc

Amount of arguments to preprocess

argv

Array of test arguments

Returns:

Array of preprocessed arguments on success or NULL on any error

te_errno tapi_flow_conf_get(int argc, char** argv, bool do_preprocess, tapi_flow_t* flow)

Get and process flow parametrisation from test arguments

Parameters:

argc

Amount of arguments to preprocess

argv

Array of test arguments

flow

Initialised flow structure (OUT)

Returns:

0, if success, or -1 otherwise

tapi_flow_ep* tapi_flow_find_ep(tapi_flow_t* flow, const char* name)

Find Endpoint by its name

Parameters:

flow

Flow structure to find endpoint in

name

Name of endpoint to find

Returns:

Endpoint structure, if success, or NULL otherwise

tapi_flow_traffic* tapi_flow_find_traffic(tapi_flow_t* flow, const char* name)

Find Traffic Entry by its name

Parameters:

flow

Flow structure to find traffic entry in

name

Name of traffic entry to find

Returns:

Endpoint structure, if success, or NULL otherwise

Macros

#define TEST_GET_FLOW_CONFIG(_flow, _do_preprocess)

Read configuration from test’s parameters

Parameters:

platfrom_config

Pointer to platform_config_s structure to receive configuration (OUT)