DPDK  20.05.0
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

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

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.
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.
int rte_meter_trtcm_rfc4115_profile_config ( struct rte_meter_trtcm_rfc4115_profile *  p,
struct rte_meter_trtcm_rfc4115_params params 
)
Warning
EXPERIMENTAL: this API may change without prior notice

trTCM RFC 4115 profile configuration

Parameters
pPointer to pre-allocated trTCM profile data structure
paramstrTCM profile parameters
Returns
0 upon success, error code otherwise
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
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
int rte_meter_trtcm_rfc4115_config ( struct rte_meter_trtcm_rfc4115 m,
struct rte_meter_trtcm_rfc4115_profile *  p 
)
Warning
EXPERIMENTAL: this API may change without prior notice

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
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 414 of file rte_meter.h.

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 455 of file rte_meter.h.

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 497 of file rte_meter.h.

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 539 of file rte_meter.h.

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
Warning
EXPERIMENTAL: this API may change without prior notice

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 582 of file rte_meter.h.

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
Warning
EXPERIMENTAL: this API may change without prior notice

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 625 of file rte_meter.h.