NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
fib.h
Go to the documentation of this file.
1#ifndef NDNDPDK_STRATEGYAPI_FIB_H
2#define NDNDPDK_STRATEGYAPI_FIB_H
3
5
6#include "../core/rttest.h"
7#include "../fib/enum.h"
8#include "common.h"
9
15
16typedef struct SgFibEntry {
17 uint8_t a_[525];
18 uint8_t nNexthops;
19 uint8_t b_[2];
22
23typedef uint32_t SgFibNexthopFilter;
24
25SUBROUTINE bool
27 static_assert(__builtin_types_compatible_p(typeof(filter), uint32_t), "");
28 return (((uint32_t)filter) & (1 << i)) != 0;
29}
30
50
51SUBROUTINE bool
53 return it->i < it->entry->nNexthops;
54}
55
56SUBROUTINE void
58 for (; SgFibNexthopIt_Valid(it); ++it->i) {
59 if (SgFibNexthopFilter_Rejected(it->filter, it->i)) {
60 continue;
61 }
62 it->nh = it->entry->nexthops[it->i];
63 return;
64 }
65 it->nh = 0;
66}
67
68SUBROUTINE void
70 it->entry = entry;
71 it->filter = filter;
72 it->i = 0;
74}
75
76SUBROUTINE void
81
82#endif // NDNDPDK_STRATEGYAPI_FIB_H
uint16_t FaceID
Numeric face identifier.
Definition faceid.h:13
@ FibScratchSize
Definition enum.h:9
@ FibMaxNexthops
Definition enum.h:8
#define SUBROUTINE
Indicate that a function is a subroutine.
Definition common.h:20
uint32_t SgFibNexthopFilter
Definition fib.h:23
SUBROUTINE bool SgFibNexthopFilter_Rejected(SgFibNexthopFilter filter, uint8_t i)
Definition fib.h:26
SUBROUTINE bool SgFibNexthopIt_Valid(const SgFibNexthopIt *it)
Definition fib.h:52
SUBROUTINE void SgFibNexthopIt_Next(SgFibNexthopIt *it)
Definition fib.h:77
SUBROUTINE void SgFibNexthopIt_Init(SgFibNexthopIt *it, const SgFibEntry *entry, SgFibNexthopFilter filter)
Definition fib.h:69
SUBROUTINE void SgFibNexthopIt_Advance_(SgFibNexthopIt *it)
Definition fib.h:57
SRTT and RTTVAR values in RTT estimator.
Definition rttest.h:13
Definition fib.h:10
uint8_t scratch[FibScratchSize]
Definition fib.h:12
RttValue rtt[FibMaxNexthops]
Definition fib.h:13
uint8_t a_[32]
Definition fib.h:11
Definition fib.h:16
FaceID nexthops[FibMaxNexthops]
Definition fib.h:20
uint8_t b_[2]
Definition fib.h:19
uint8_t a_[525]
Definition fib.h:17
uint8_t nNexthops
Definition fib.h:18
Iterator of FIB nexthops passing a filter.
Definition fib.h:44
FaceID nh
Definition fib.h:48
const SgFibEntry * entry
Definition fib.h:45
SgFibNexthopFilter filter
Definition fib.h:46
uint8_t i
Definition fib.h:47