NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Typedefs | Functions
lp.h File Reference
#include "common.h"

Go to the source code of this file.

Data Structures

struct  LpL2
 NDNLPv2 layer 2 fields and reassembler state. More...
 
struct  LpPitToken
 NDNLPv2 PIT token value. More...
 
struct  LpL3
 NDNLPv2 layer 3 fields. More...
 
struct  LpHeader
 Parsed NDNLPv2 header. More...
 

Typedefs

typedef struct LpL2 LpL2
 NDNLPv2 layer 2 fields and reassembler state. More...
 
typedef struct LpPitToken LpPitToken
 NDNLPv2 PIT token value. More...
 
typedef struct LpL3 LpL3
 NDNLPv2 layer 3 fields. More...
 
typedef struct LpHeader LpHeader
 Parsed NDNLPv2 header. More...
 

Functions

const char * LpPitToken_ToString (const LpPitToken *token)
 Print PIT token as string for logging. More...
 
bool LpHeader_Parse (LpHeader *lph, struct rte_mbuf *pkt)
 Parse NDNLPv2 header and strip from mbuf. More...
 
void LpHeader_Prepend (struct rte_mbuf *pkt, const LpL3 *l3, const LpL2 *l2)
 Prepend NDNLPv2 header to mbuf. More...
 

Typedef Documentation

◆ LpHeader

typedef struct LpHeader LpHeader

Parsed NDNLPv2 header.

◆ LpL2

typedef struct LpL2 LpL2

NDNLPv2 layer 2 fields and reassembler state.

◆ LpL3

typedef struct LpL3 LpL3

NDNLPv2 layer 3 fields.

◆ LpPitToken

typedef struct LpPitToken LpPitToken

NDNLPv2 PIT token value.

Function Documentation

◆ LpHeader_Parse()

bool LpHeader_Parse ( LpHeader lph,
struct rte_mbuf *  pkt 
)

Parse NDNLPv2 header and strip from mbuf.

Parameters
pkta uniquely owned, possibly segmented, direct mbuf.
Returns
whether success.
Postcondition
pkt contains only (fragment of) network layer packet.

This function recognizes these NDNLPv2 features:

  • indexed fragmentation-reassembly
  • PIT token
  • network nack
  • congestion mark

This function does not check whether header fields are applicable to network layer packet type, because network layer type is unknown before reassembly. For example, it would accept Nack header on Data packet.

◆ LpHeader_Prepend()

void LpHeader_Prepend ( struct rte_mbuf *  pkt,
const LpL3 l3,
const LpL2 l2 
)

Prepend NDNLPv2 header to mbuf.

Parameters
pkttarget mbuf, must have enough headroom.
Precondition
pkt contains (fragment of) network layer packet.
Postcondition
pkt contains LpPacket.

◆ LpPitToken_ToString()

const char* LpPitToken_ToString ( const LpPitToken token)

Print PIT token as string for logging.

Returns
see DebugString_Get