DPDK  21.11.8
Data Structures | Enumerations | Functions
rte_meter.h File Reference
#include <stdint.h>
#include "rte_compat.h"

Go to the source code of this file.

Data Structures

struct  rte_meter_srtcm_params
 
struct  rte_meter_trtcm_params
 
struct  rte_meter_trtcm_rfc4115_params
 
struct  rte_meter_trtcm
 
struct  rte_meter_trtcm_rfc4115
 

Enumerations

enum  rte_color { RTE_COLOR_GREEN = 0, RTE_COLOR_YELLOW, RTE_COLOR_RED, RTE_COLORS }
 

Functions

int rte_meter_srtcm_profile_config (struct rte_meter_srtcm_profile *p, struct rte_meter_srtcm_params *params)
 
int rte_meter_trtcm_profile_config (struct rte_meter_trtcm_profile *p, struct rte_meter_trtcm_params *params)
 
int rte_meter_trtcm_rfc4115_profile_config (struct rte_meter_trtcm_rfc4115_profile *p, struct rte_meter_trtcm_rfc4115_params *params)
 
int rte_meter_srtcm_config (struct rte_meter_srtcm *m, struct rte_meter_srtcm_profile *p)
 
int rte_meter_trtcm_config (struct rte_meter_trtcm *m, struct rte_meter_trtcm_profile *p)
 
int rte_meter_trtcm_rfc4115_config (struct rte_meter_trtcm_rfc4115 *m, struct rte_meter_trtcm_rfc4115_profile *p)
 
static enum rte_color rte_meter_srtcm_color_blind_check (struct rte_meter_srtcm *m, struct rte_meter_srtcm_profile *p, uint64_t time, uint32_t pkt_len)
 
static enum rte_color rte_meter_srtcm_color_aware_check (struct rte_meter_srtcm *m, struct rte_meter_srtcm_profile *p, uint64_t time, uint32_t pkt_len, enum rte_color pkt_color)
 
static enum rte_color rte_meter_trtcm_color_blind_check (struct rte_meter_trtcm *m, struct rte_meter_trtcm_profile *p, uint64_t time, uint32_t pkt_len)
 
static enum rte_color rte_meter_trtcm_color_aware_check (struct rte_meter_trtcm *m, struct rte_meter_trtcm_profile *p, uint64_t time, uint32_t pkt_len, enum rte_color pkt_color)
 
static enum rte_color rte_meter_trtcm_rfc4115_color_blind_check (struct rte_meter_trtcm_rfc4115 *m, struct rte_meter_trtcm_rfc4115_profile *p, uint64_t time, uint32_t pkt_len)
 
static enum rte_color rte_meter_trtcm_rfc4115_color_aware_check (struct rte_meter_trtcm_rfc4115 *m, struct rte_meter_trtcm_rfc4115_profile *p, uint64_t time, uint32_t pkt_len, enum rte_color pkt_color)
 

Detailed Description

RTE Traffic Metering

Traffic metering algorithms:

  1. Single Rate Three Color Marker (srTCM): defined by IETF RFC 2697
  2. Two Rate Three Color Marker (trTCM): defined by IETF RFC 2698
  3. Two Rate Three Color Marker (trTCM): defined by IETF RFC 4115

Definition in file rte_meter.h.

Enumeration Type Documentation

◆ rte_color

enum rte_color

Color

Enumerator
RTE_COLOR_GREEN 

Green

RTE_COLOR_YELLOW 

Yellow

RTE_COLOR_RED 

Red

RTE_COLORS 

Number of colors

Definition at line 36 of file rte_meter.h.

Function Documentation

◆ rte_meter_srtcm_profile_config()

int rte_meter_srtcm_profile_config ( struct rte_meter_srtcm_profile *  p,
struct rte_meter_srtcm_params params 
)

srTCM profile configuration

Parameters
pPointer to pre-allocated srTCM profile data structure
paramssrTCM profile parameters
Returns
0 upon success, error code otherwise
Examples:
examples/qos_meter/main.c.

◆ rte_meter_trtcm_profile_config()

int rte_meter_trtcm_profile_config ( struct rte_meter_trtcm_profile *  p,
struct rte_meter_trtcm_params params 
)

trTCM profile configuration

Parameters
pPointer to pre-allocated trTCM profile data structure
paramstrTCM profile parameters
Returns
0 upon success, error code otherwise
Examples:
examples/qos_meter/main.c.

◆ rte_meter_trtcm_rfc4115_profile_config()

int rte_meter_trtcm_rfc4115_profile_config ( struct rte_meter_trtcm_rfc4115_profile *  p,
struct rte_meter_trtcm_rfc4115_params params 
)

trTCM RFC 4115 profile configuration

Parameters
pPointer to pre-allocated trTCM profile data structure
paramstrTCM profile parameters
Returns
0 upon success, error code otherwise

◆ rte_meter_srtcm_config()

int rte_meter_srtcm_config ( struct rte_meter_srtcm *  m,
struct rte_meter_srtcm_profile *  p 
)

srTCM configuration per metered traffic flow

Parameters
mPointer to pre-allocated srTCM data structure
psrTCM profile. Needs to be valid.
Returns
0 upon success, error code otherwise

◆ rte_meter_trtcm_config()

int rte_meter_trtcm_config ( struct rte_meter_trtcm m,
struct rte_meter_trtcm_profile *  p 
)

trTCM configuration per metered traffic flow

Parameters
mPointer to pre-allocated trTCM data structure
ptrTCM profile. Needs to be valid.
Returns
0 upon success, error code otherwise

◆ rte_meter_trtcm_rfc4115_config()

int rte_meter_trtcm_rfc4115_config ( struct rte_meter_trtcm_rfc4115 m,
struct rte_meter_trtcm_rfc4115_profile *  p 
)

trTCM RFC 4115 configuration per metered traffic flow

Parameters
mPointer to pre-allocated trTCM data structure
ptrTCM profile. Needs to be valid.
Returns
0 upon success, error code otherwise

◆ rte_meter_srtcm_color_blind_check()

static enum rte_color rte_meter_srtcm_color_blind_check ( struct rte_meter_srtcm *  m,
struct rte_meter_srtcm_profile *  p,
uint64_t  time,
uint32_t  pkt_len 
)
inlinestatic

srTCM color blind traffic metering

Parameters
mHandle to srTCM instance
psrTCM profile specified at srTCM object creation time
timeCurrent CPU time stamp (measured in CPU cycles)
pkt_lenLength of the current IP packet (measured in bytes)
Returns
Color assigned to the current IP packet

Definition at line 402 of file rte_meter.h.

◆ rte_meter_srtcm_color_aware_check()

static enum rte_color rte_meter_srtcm_color_aware_check ( struct rte_meter_srtcm *  m,
struct rte_meter_srtcm_profile *  p,
uint64_t  time,
uint32_t  pkt_len,
enum rte_color  pkt_color 
)
inlinestatic

srTCM color aware traffic metering

Parameters
mHandle to srTCM instance
psrTCM profile specified at srTCM object creation time
timeCurrent CPU time stamp (measured in CPU cycles)
pkt_lenLength of the current IP packet (measured in bytes)
pkt_colorInput color of the current IP packet
Returns
Color assigned to the current IP packet

Definition at line 443 of file rte_meter.h.

◆ rte_meter_trtcm_color_blind_check()

static enum rte_color rte_meter_trtcm_color_blind_check ( struct rte_meter_trtcm m,
struct rte_meter_trtcm_profile *  p,
uint64_t  time,
uint32_t  pkt_len 
)
inlinestatic

trTCM color blind traffic metering

Parameters
mHandle to trTCM instance
ptrTCM profile specified at trTCM object creation time
timeCurrent CPU time stamp (measured in CPU cycles)
pkt_lenLength of the current IP packet (measured in bytes)
Returns
Color assigned to the current IP packet

Definition at line 485 of file rte_meter.h.

◆ rte_meter_trtcm_color_aware_check()

static enum rte_color rte_meter_trtcm_color_aware_check ( struct rte_meter_trtcm m,
struct rte_meter_trtcm_profile *  p,
uint64_t  time,
uint32_t  pkt_len,
enum rte_color  pkt_color 
)
inlinestatic

trTCM color aware traffic metering

Parameters
mHandle to trTCM instance
ptrTCM profile specified at trTCM object creation time
timeCurrent CPU time stamp (measured in CPU cycles)
pkt_lenLength of the current IP packet (measured in bytes)
pkt_colorInput color of the current IP packet
Returns
Color assigned to the current IP packet

Definition at line 527 of file rte_meter.h.

◆ rte_meter_trtcm_rfc4115_color_blind_check()

static enum rte_color rte_meter_trtcm_rfc4115_color_blind_check ( struct rte_meter_trtcm_rfc4115 m,
struct rte_meter_trtcm_rfc4115_profile *  p,
uint64_t  time,
uint32_t  pkt_len 
)
inlinestatic

trTCM RFC4115 color blind traffic metering

Parameters
mHandle to trTCM instance
ptrTCM profile specified at trTCM object creation time
timeCurrent CPU time stamp (measured in CPU cycles)
pkt_lenLength of the current IP packet (measured in bytes)
Returns
Color assigned to the current IP packet

Definition at line 570 of file rte_meter.h.

◆ rte_meter_trtcm_rfc4115_color_aware_check()

static enum rte_color rte_meter_trtcm_rfc4115_color_aware_check ( struct rte_meter_trtcm_rfc4115 m,
struct rte_meter_trtcm_rfc4115_profile *  p,
uint64_t  time,
uint32_t  pkt_len,
enum rte_color  pkt_color 
)
inlinestatic

trTCM RFC4115 color aware traffic metering

Parameters
mHandle to trTCM instance
ptrTCM profile specified at trTCM object creation time
timeCurrent CPU time stamp (measured in CPU cycles)
pkt_lenLength of the current IP packet (measured in bytes)
pkt_colorInput color of the current IP packet
Returns
Color assigned to the current IP packet

Definition at line 613 of file rte_meter.h.