NDN-DPDK
High-Speed Named Data Networking Forwarder
Loading...
Searching...
No Matches
common.h
Go to the documentation of this file.
1#ifndef NDNDPDK_TGCONSUMER_COMMON_H
2#define NDNDPDK_TGCONSUMER_COMMON_H
3
5
6#include "../iface/common.h"
7#include "enum.h"
8
9enum {
10 TgcSeqNumSize = 1 + 1 + sizeof(uint64_t),
11
16};
17
18__attribute__((nonnull)) static __rte_always_inline void
19TgcToken_Set(LpPitToken* token, uint8_t patternID, uint8_t runNum, TscTime timestamp) {
20 *token = (LpPitToken){
21 .length = TgcTokenLength,
22 };
23 token->value[TgcTokenOffsetPatternID] = patternID;
24 token->value[TgcTokenOffsetRunNum] = runNum;
25 *(unaligned_uint64_t*)RTE_PTR_ADD(token->value, TgcTokenOffsetTimestamp) = timestamp;
26}
27
28__attribute__((nonnull)) static __rte_always_inline uint8_t
29TgcToken_GetPatternID(const LpPitToken* token) {
30 return token->value[TgcTokenOffsetPatternID];
31}
32
33__attribute__((nonnull)) static __rte_always_inline uint8_t
34TgcToken_GetRunNum(const LpPitToken* token) {
35 return token->value[TgcTokenOffsetRunNum];
36}
37
38__attribute__((nonnull)) static __rte_always_inline TscTime
39TgcToken_GetTimestamp(const LpPitToken* token) {
40 return *(const unaligned_uint64_t*)RTE_PTR_ADD(token->value, TgcTokenOffsetTimestamp);
41}
42
43#endif // NDNDPDK_TGCONSUMER_COMMON_H
NDNLPv2 PIT token value.
Definition lp.h:35
uint8_t value[32]
Definition lp.h:37
@ TgcSeqNumSize
Definition common.h:10
@ TgcTokenOffsetRunNum
Definition common.h:14
@ TgcTokenLength
Definition common.h:12
@ TgcTokenOffsetPatternID
Definition common.h:13
@ TgcTokenOffsetTimestamp
Definition common.h:15
uint64_t TscTime
TSC clock time point.
Definition tsc.h:9