NDN-DPDK
High-Speed Named Data Networking Forwarder
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
naming.h
Go to the documentation of this file.
1 #ifndef NDNDPDK_FILESERVER_NAMING_H
2 #define NDNDPDK_FILESERVER_NAMING_H
3 
6 #include "../ndni/interest.h"
7 #include "../ndni/nni.h"
8 #include "enum.h"
9 
11 static const uint8_t FileServer_KeywordLs[4] = {TtKeywordNameComponent, 2, 0x6C, 0x73};
12 
14 static const uint8_t FileServer_KeywordMetadata[10] = {
15  TtKeywordNameComponent, 8, 0x6D, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61};
16 
17 enum {
23  NameMaxLength - sizeof(FileServer_KeywordLs) - sizeof(FileServer_KeywordMetadata) - 10 - 10,
24 };
25 
27 typedef enum FileServerRequestKind {
34 
36 typedef struct FileServerRequestName {
37  uint64_t version;
38  uint64_t segment;
41 
43 __attribute__((nonnull)) static inline LName
44 FileServer_GetPrefix(const PName* name) {
45  return PName_GetPrefix(name, name->firstNonGeneric);
46 }
47 
49 __attribute__((nonnull)) FileServerRequestName
51 
57 __attribute__((nonnull)) bool
58 FileServer_ToFilename(const PName* name, int16_t mountComps, char filename[PATH_MAX]);
59 
60 #endif // NDNDPDK_FILESERVER_NAMING_H
struct vlanhdr __rte_packed
bool FileServer_ToFilename(const PName *name, int16_t mountComps, char filename[PATH_MAX])
Construct relative filename.
Definition: naming.c:65
FileServerRequestKind
Indicate what components are present in Interest name.
Definition: naming.h:27
@ FileServerRequestVersion
Definition: naming.h:29
@ FileServerRequestNone
Definition: naming.h:28
@ FileServerRequestMetadata
Definition: naming.h:32
@ FileServerRequestLs
Definition: naming.h:31
@ FileServerRequestSegment
Definition: naming.h:30
struct FileServerRequestName FileServerRequestName
Parsed Interest name processed by file server.
FileServerRequestName FileServer_ParseRequest(const PInterest *pi)
Parse Interest name.
Definition: naming.c:4
@ FileServer_MaxPrefixL
Maximum mount+path TLV-LENGTH to accommodate [32=ls]+[32=metadata]+version+segment suffix components.
Definition: naming.h:22
@ TtKeywordNameComponent
Definition: an.h:24
@ NameMaxLength
Definition: enum.h:10
Parsed Interest name processed by file server.
Definition: naming.h:36
uint64_t version
Definition: naming.h:37
FileServerRequestKind kind
Definition: naming.h:39
uint64_t segment
Definition: naming.h:38
Name in linear buffer.
Definition: name.h:11
Parsed Interest packet.
Definition: interest.h:9
Parsed name.
Definition: name.h:139
int16_t firstNonGeneric
index of first non-generic component
Definition: name.h:144