NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Typedefs | Enumerations | Variables
face.h File Reference
#include "input-demux.h"
#include "reassembler.h"
#include "../core/urcu.h"
#include "../pdump/source.h"
#include <urcu/rcuhlist.h>

Go to the source code of this file.

Data Structures

struct  FaceRxInputCtx
 Face_RxInputFunc inputs and outputs. More...
 
struct  FaceRxThread
 Face RX per-thread information. More...
 
struct  FaceTxThread
 Face TX per-thread information. More...
 
struct  FaceImpl
 Face details. More...
 
struct  Face
 Generic network interface. More...
 

Typedefs

typedef struct FaceRxInputCtx FaceRxInputCtx
 Face_RxInputFunc inputs and outputs. More...
 
typedef void(* Face_RxInputFunc) (Face *face, int rxThread, FaceRxInputCtx *ctx)
 Process a burst of received L2 frames. More...
 
typedef uint16_t(* Face_TxLoopFunc) (Face *face, int txThread)
 Transfer a burst of L3 packets from outputQueue to Face_TxBurstFunc . More...
 
typedef uint16_t(* Face_TxBurstFunc) (Face *face, struct rte_mbuf **pkts, uint16_t nPkts)
 Transmit a burst of L2 frames. More...
 
typedef struct FaceRxThread FaceRxThread
 Face RX per-thread information. More...
 
typedef struct FaceTxThread FaceTxThread
 Face TX per-thread information. More...
 
typedef struct FaceImpl FaceImpl
 Face details. More...
 

Enumerations

enum  { FaceRxThread_cntNOctets = PktFragment }
 

Variables

Face gFaces []
 Static array of all faces. More...
 

Typedef Documentation

◆ Face_RxInputFunc

typedef void(* Face_RxInputFunc) (Face *face, int rxThread, FaceRxInputCtx *ctx)

Process a burst of received L2 frames.

Default implementation for NDN traffic is FaceRx_Input .

◆ Face_TxBurstFunc

typedef uint16_t(* Face_TxBurstFunc) (Face *face, struct rte_mbuf **pkts, uint16_t nPkts)

Transmit a burst of L2 frames.

Parameters
pktsL2 frames.
Returns
successfully queued frames.
Postcondition
FaceImpl owns queued frames, but does not own remaining frames.

◆ Face_TxLoopFunc

typedef uint16_t(* Face_TxLoopFunc) (Face *face, int txThread)

Transfer a burst of L3 packets from outputQueue to Face_TxBurstFunc .

Default implementations are TxLoop_Transfer_Linear and TxLoop_Transfer_Chained . This function should perform fragmentation and hrlog submission as necessary.

◆ FaceImpl

typedef struct FaceImpl FaceImpl

Face details.

Fields in this struct are meant to be accessed in RX and TX threads, but not in forwarding/producer/consumer threads.

◆ FaceRxInputCtx

Face_RxInputFunc inputs and outputs.

◆ FaceRxThread

typedef struct FaceRxThread FaceRxThread

Face RX per-thread information.

◆ FaceTxThread

typedef struct FaceTxThread FaceTxThread

Face TX per-thread information.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
FaceRxThread_cntNOctets 

FaceRxThread.nFrames[cntNOctets] is nOctets counter.

Variable Documentation

◆ gFaces

Face gFaces[]
extern

Static array of all faces.