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

Go to the source code of this file.

Data Structures

struct  PitDnUpIt_
 

Macros

#define PitDn_Each(var, entry, canExtend)
 Iterate over DN slots in PIT entry. More...
 
#define PitUp_Each(var, entry, canExtend)
 Iterate over UP slots in PIT entry. More...
 

Typedefs

typedef struct PitDnUpIt_ PitDnUpIt_
 
typedef PitDnUpIt_ PitDnIt
 Iterator of DN slots in PIT entry. More...
 
typedef PitDnUpIt_ PitUpIt
 Iterator of UP slots in PIT entry. More...
 

Functions

bool PitDnUpIt_Extend_ (PitDnUpIt_ *it, PitEntry *entry, int maxInExt, size_t offsetInExt)
 

Macro Definition Documentation

◆ PitDn_Each

#define PitDn_Each (   var,
  entry,
  canExtend 
)
Value:
for (PitDnIt var = PitDnUpIt_New_((entry), PitMaxDns, (entry)->dns); \
PitDnUpIt_Valid_(&var, (canExtend), (entry), PitMaxExtDns, offsetof(PitEntryExt, dns)); \
PitDnUpIt_Next_(&var, sizeof(PitDn), PitMaxExtDns, offsetof(PitEntryExt, dns)))
@ PitMaxExtDns
Definition: pit-const.h:9
@ PitMaxDns
Definition: pit-const.h:7
Definition: pit-iterator.h:8
A PIT downstream record.
Definition: pit-dn.h:11
Definition: pit-entry.h:47

Iterate over DN slots in PIT entry.

PitDn_Each(it, pitEntry, false) {
int index = it.index;
PitDn* dn = it.dn;
if (dn->face == 0) { // reaching the end of used slots
break;
}
// access the DN record
}
#define PitDn_Each(var, entry, canExtend)
Iterate over DN slots in PIT entry.
Definition: pit-iterator.h:118
FaceID face
Definition: pit-dn.h:14
PitDn_Each(it, pitEntry, true) {
int index = it.index;
PitDn* dn = it.dn;
if (dn->face == faceID) { // found existing slot with wanted face
}
if (dn->face == 0) { // reaching the end of used slots
PitDn_UseSlot(&it); // claim this slot as used
dn->face = faceID;
// initialized the slot
}
}

◆ PitUp_Each

#define PitUp_Each (   var,
  entry,
  canExtend 
)
Value:
for (PitUpIt var = PitDnUpIt_New_((entry), PitMaxUps, (entry)->ups); \
PitDnUpIt_Valid_(&var, (canExtend), (entry), PitMaxExtUps, offsetof(PitEntryExt, ups)); \
PitDnUpIt_Next_(&var, sizeof(PitUp), PitMaxExtUps, offsetof(PitEntryExt, ups)))
@ PitMaxExtUps
Definition: pit-const.h:10
@ PitMaxUps
Definition: pit-const.h:8
A PIT upstream record.
Definition: pit-up.h:14

Iterate over UP slots in PIT entry.

See also
PitDn_Each
PitUp_Each(it, pitEntry, false) {
int index = it.index;
PitUp* up = it.up;
}
#define PitUp_Each(var, entry, canExtend)
Iterate over UP slots in PIT entry.
Definition: pit-iterator.h:150

Typedef Documentation

◆ PitDnIt

Iterator of DN slots in PIT entry.

◆ PitDnUpIt_

typedef struct PitDnUpIt_ PitDnUpIt_

◆ PitUpIt

Iterator of UP slots in PIT entry.

Function Documentation

◆ PitDnUpIt_Extend_()

bool PitDnUpIt_Extend_ ( PitDnUpIt_ it,
PitEntry entry,
int  maxInExt,
size_t  offsetInExt 
)