NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
common.h
Go to the documentation of this file.
1 #ifndef NDNDPDK_TGCONSUMER_COMMON_H
2 #define NDNDPDK_TGCONSUMER_COMMON_H
3 
6 #include "../iface/common.h"
7 #include "enum.h"
8 
9 enum {
10  TgcSeqNumSize = 1 + 1 + sizeof(uint64_t),
11 
16 };
17 
18 __attribute__((nonnull)) static __rte_always_inline void
19 TgcToken_Set(LpPitToken* token, uint8_t patternID, uint8_t runNum, TscTime timestamp) {
20  *token = (LpPitToken){
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
29 TgcToken_GetPatternID(const LpPitToken* token) {
30  return token->value[TgcTokenOffsetPatternID];
31 }
32 
33 __attribute__((nonnull)) static __rte_always_inline uint8_t
34 TgcToken_GetRunNum(const LpPitToken* token) {
35  return token->value[TgcTokenOffsetRunNum];
36 }
37 
38 __attribute__((nonnull)) static __rte_always_inline TscTime
39 TgcToken_GetTimestamp(const LpPitToken* token) {
40  return *(const unaligned_uint64_t*)RTE_PTR_ADD(token->value, TgcTokenOffsetTimestamp);
41 }
42 
43 #endif // NDNDPDK_TGCONSUMER_COMMON_H
struct LpPitToken LpPitToken
NDNLPv2 PIT token value.
NDNLPv2 PIT token value.
Definition: lp.h:35
uint8_t value[32]
Definition: lp.h:37
uint8_t length
Definition: lp.h:36
@ 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