DPDK  19.02.0-rc3
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_experimental 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_experimental rte_meter_trtcm_rfc4115_config (struct rte_meter_trtcm_rfc4115 *m, struct rte_meter_trtcm_rfc4115_profile *p)
static enum rte_meter_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_meter_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_meter_color pkt_color)
static enum rte_meter_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_meter_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_meter_color pkt_color)
static enum rte_meter_color
__rte_experimental 
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_meter_color
__rte_experimental 
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_meter_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_experimental 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_experimental 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_meter_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 421 of file rte_meter.h.

static enum rte_meter_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_meter_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 462 of file rte_meter.h.

static enum rte_meter_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 504 of file rte_meter.h.

static enum rte_meter_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_meter_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 546 of file rte_meter.h.

static enum rte_meter_color __rte_experimental 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 589 of file rte_meter.h.

static enum rte_meter_color __rte_experimental 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_meter_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 632 of file rte_meter.h.