Project

General

Profile

NDNLP-TLV » History » Version 8

Davide Pesavento, 01/03/2023 02:22 AM

1 8 Davide Pesavento
# NDNLPv1 TLV packet format (obsolete)
2 1 Junxiao Shi
3 8 Davide Pesavento
NDN packet format is shifting from CCNB to [NDN-TLV](https://named-data.net/doc/NDN-packet-spec/current/).
4 1 Junxiao Shi
In this format, every packet, and every field within a packet, is represented by a tuple of Type-Length-Value.
5
6
[NDNLP: A Link Protocol for NDN](http://named-data.net/publications/techreports/trlinkprotocol/) provides two services to enable NDN communication directly on Ethernet:
7
8
* Fragmentation and Reassembly
9
* Acknowledgement and Retransmission
10
11
NDNLP is initially designed to work with CCNx, and therefore adopts a CCNB-based packet format.
12
Although it's possible to enclose NDN-TLV packets in CCNB-based NDNLP packets, this is awkward.
13
Therefore, a TLV-based packet format should be defined for NDNLP.
14
15
This document defines the TLV-based packet format for NDNLP.
16 4 Junxiao Shi
In operation reality, acknowledgement and retransmission is rarely used. **This version only defines packet type and fields necessary for fragmentation and reassembly**.
17 1 Junxiao Shi
18
Basic [protocol operations](http://named-data.net/publications/techreports/trlinkprotocol/) are unchanged.
19
Fragmentation and reassembly operations are [extended to multicast](https://github.com/NDN-Routing/NDNFD/blob/80c3e009106d7e16db85ee8afd647ba85b5b7c2d/docs/NDNLP.md).
20
21
22
## Link Data Packet
23
24
A Link Data packet carries a NDN-TLV packet or a fragment of it as the payload.
25
It has the following format:
26
27 4 Junxiao Shi
    NdnlpData ::= NDNLP-DATA-TYPE TLV-LENGTH
28 7 Junxiao Shi
                    NdnlpSequence
29
                    NdnlpFragIndex?
30
                    NdnlpFragCount?
31
                    NdnlpPayload
32 1 Junxiao Shi
33
### sequence number
34
35 7 Junxiao Shi
    NdnlpSequence ::= NDNLP-SEQUENCE-TYPE TLV-LENGTH(=8)
36
                        BYTE+
37 4 Junxiao Shi
38 7 Junxiao Shi
A sequence number for each packet.
39 1 Junxiao Shi
40 7 Junxiao Shi
This sequence number is unique for recent packets. It can wrap around ultimately.
41
42 1 Junxiao Shi
### fragment index
43
44 7 Junxiao Shi
    NdnlpFragIndex ::= NDNLP-FRAG-INDEX-TYPE TLV-LENGTH
45
                         nonNegativeNumber
46 1 Junxiao Shi
47
The 0-based index of current fragment within the network layer packet.
48
49
Optional. Default to '0' if not present.
50
51
### fragment count
52
53 7 Junxiao Shi
    NdnlpFragCount ::= NDNLP-FRAG-COUNT-TYPE TLV-LENGTH
54
                         nonNegativeNumber
55 1 Junxiao Shi
56
Total number of fragments of the network layer packet.
57
58
Optional. Default to '1' if not present.
59
60
### payload
61
62 7 Junxiao Shi
    NdnlpPayload ::= NDNLP-PAYLOAD-TYPE TLV-LENGTH
63
                       BYTE+
64 1 Junxiao Shi
65 7 Junxiao Shi
The payload, which is a fragment of network layer packet.
66 3 Alex Afanasyev
67
## TLV-TYPE assignments
68
69
Type                                        | Assigned value    | Assigned value (hex)
70
------------------------------------------- | ----------------- | --------------------
71 6 Junxiao Shi
NdnlpData                                   | 80                | 0x50
72
NdnlpSequence                               | 81                | 0x51
73
NdnlpFragIndex                              | 82                | 0x52
74
NdnlpFragCount                              | 83                | 0x53
75
NdnlpPayload                                | 84                | 0x54