1 #ifndef NDNDPDK_NDNI_DATA_H
2 #define NDNDPDK_NDNI_DATA_H
28 __attribute__((nonnull))
bool
40 __attribute__((nonnull, returns_nonnull))
struct rte_crypto_op*
47 __attribute__((nonnull)) uint16_t
56 __attribute__((nonnull))
bool
76 __attribute__((nonnull))
void
83 __attribute__((nonnull))
static inline uint16_t
84 DataEnc_SizeofMetaInfo(
const uint8_t* meta) {
85 return likely(meta[0] ==
TtMetaInfo) ? 2 + meta[1] : 0;
97 __attribute__((nonnull))
struct rte_mbuf*
111 __attribute__((nonnull))
struct rte_mbuf*
121 __attribute__((nonnull))
Packet*
144 __attribute__((nonnull))
static inline Packet*
146 struct rte_mbuf* pkt =
148 if (unlikely(pkt == NULL)) {
struct PData PData
Parsed Data packet.
struct rte_crypto_op * DataDigest_Prepare(CryptoQueuePair *cqp, Packet *npkt)
Prepare a crypto_op for Data digest computation.
Definition: data.c:142
uint8_t DataEnc_NoMetaInfo[]
Indicate that Data MetaInfo field should be omitted.
Definition: data.c:26
struct rte_mbuf * DataEnc_EncodeRoom(LName prefix, LName suffix, const uint8_t *meta, uint32_t roomL, struct iovec *roomIov, int *roomIovcnt, PacketMempools *mp, PacketTxAlign align)
Encode Data with unfilled Content room.
Definition: data.c:315
struct DataGen DataGen
Data encoder optimized for traffic generator.
struct rte_mbuf * DataEnc_EncodeTpl(LName prefix, LName suffix, const uint8_t *meta, struct rte_mbuf *tplV, struct iovec *tplIov, int tplIovcnt, PacketMempools *mp, PacketTxAlign align)
Encode Data with Content from template.
Definition: data.c:292
bool PData_Parse(PData *data, struct rte_mbuf *pkt, ParseFor parseFor)
Parse Data.
Definition: data.c:67
uint16_t DataDigest_Enqueue(CryptoQueuePair *cqp, struct rte_crypto_op **ops, uint16_t count)
Enqueue crypto_ops for Data digest computation.
Definition: data.c:157
DataSatisfyResult PData_CanSatisfy(PData *data, PInterest *interest)
Determine whether Data can satisfy Interest.
Definition: data.c:132
Packet * DataEnc_Sign(struct rte_mbuf *pkt, PacketMempools *mp, PacketTxAlign align)
Append Null signature to Data.
Definition: data.c:352
bool DataDigest_Finish(struct rte_crypto_op *op, Packet **npkt)
Finish Data digest computation.
Definition: data.c:166
void DataEnc_PrepareMetaInfo(uint8_t *room, ContentType ct, uint32_t freshness, LName finalBlock)
Prepare Data MetaInfo.
Definition: data.c:175
ContentType
Definition: an.h:61
@ TtMetaInfo
Definition: an.h:41
struct Packet Packet
Definition: common.h:11
DataSatisfyResult
Definition: enum.h:23
@ ImplicitDigestLength
Definition: enum.h:11
ParseFor
Definition: enum.h:29
Crypto queue pair.
Definition: cryptodev.h:12
Data encoder optimized for traffic generator.
Definition: data.h:125
struct rte_mbuf * tpl
Definition: data.h:126
const uint8_t * meta
Definition: data.h:128
LName suffix
Definition: data.h:127
struct iovec contentIov[1]
Definition: data.h:129
Name in linear buffer.
Definition: name.h:11
Parsed Data packet.
Definition: data.h:9
RTE_MARKER64 a_
Definition: data.h:16
uint32_t contentOffset
Content TLV-VALUE offset.
Definition: data.h:14
bool isFinalBlock
Definition: data.h:13
uint32_t freshness
FreshnessPeriod in millis.
Definition: data.h:11
bool hasDigest
Definition: data.h:12
uint32_t contentL
Content TLV-LENGTH.
Definition: data.h:15
RTE_MARKER64 b_
Definition: data.h:18
uint8_t digest[ImplicitDigestLength]
Definition: data.h:17
PName name
Definition: data.h:10
uint8_t helperScratch[192]
scratch area for helper threads
Definition: data.h:19
Parsed Interest packet.
Definition: interest.h:9
Parsed name.
Definition: name.h:139
Mempools for packet modification.
Definition: common.h:17
mbuf alignment requirements for encoding or packet modification.
Definition: common.h:35