blob: b92fda053817ee6466e1c3d59a06a4f58d8a6532 [file] [log] [blame] [view]
Alexander Afanasyev357c2052015-08-10 21:26:52 -07001Testing Instructions
2====================
3
4This folder contains several crafted tcpdump traces that can be used to manually check
5correctness of NDN Packet Dissector for Wireshark in several scenarios.
6
7To use the dissector, follow the instructions in
8[dissector's README.md](../../tools/dissect-wireshark/README.md).
9
10`-r <trace-file>` command-line flag can be used to directly open a specific trace file in
11WireShark. For example:
12
13 wireshark -X lua_script:../../tools/dissect-wireshark/ndn.lua -r ipv4-udp-fragmented.pcap
14
15## Test Cases / Trace File Description
16
17### 1. IPv4 UDP
18
19Trace file: `ipv4-udp-fragmented.pcap`
20
21Trace summary: several IPv4 UDP packets, carrying NDN interests and data packets. One
22datagram is fragmented into several IPv4 packets.
23
24Expected result of the dissection:
25
26- NDN interests are dissected from packets 1, 2, 3, and 8.
27- NDN data packet is dissected from defragmented packets 4, 5, 6, and 7.
Alexander Afanasyev4fb67ea2018-08-02 08:18:28 -060028- In packet 1, the "Info" column of Wireshark shows: `Interest /ndn/broadcast/ndnrtc-chatrooms/2366d310b15ba97a62c8734d4a760174f78d14446be3d70a54ee80d3ed19c83b`
29- In packet 7, the "Info" column of Wireshark shows: `Data /example/testApp/1/testApp/%FD%00%00%01O%23E%07%ED`
Alexander Afanasyev357c2052015-08-10 21:26:52 -070030
31### 2. IPv6 UDP
32
33Trace file: `ipv6-udp-fragmented.pcap`
34
35Trace summary: several IPv6 UDP packets, carrying NDN interests and data packets. One
36datagram is fragmented into several IPv6 packets.
37
38Expected result of the dissection:
39
40- NDN interests are dissected from packets 1, and 2.
41- NDN data packet is dissected from defragmented packets 3, 4, 5, and 6.
42
43### 3. IPv4 TCP
44
45#### 3.1. De-segmentation and dissection
46
47 Trace file: `ipv4-tcp-segmented.pcap`
48
49 Trace summary: several IPv4 TCP packets, carrying NDN interest and a data packets. The data
50 packet spans several TCP segments.
51
52 Expected result of the dissection:
53 - interest packet is properly dissected from packet 2.
54 - data packet is properly dissected after de-segmentation of payloads in packets 4, 5, 6, and 7.
55
56#### 3.2. Dissection of TCP segments containing multiple NDN packets
57
58 Trace file: `ipv4-tcp-multi-ndn-packets-in-segment.pcap`
59
60 Trace summary: Several IPv4 TCP packets, payload of one containing several NDN interests.
61
62 Expected result of the dissection:
63 - a single interest packet is dissected from packet 1.
64 - four interest packets are dissected from packet 3.
65
66### 4. IPv6 TCP
67
68Trace file: `ipv6-tcp-segmented.pcap`
69
70Trace summary: several IPv6 TCP packets, carrying an NDN data packet that spans several
71TCP segments.
72
73Expected result of the dissection:
74- data packet is properly dissected after de-segmentation of payloads in packets 2, 3, 4, and 5.
75
76### 5. IPv4 TCP/WebSocket
77
78Trace file: `ipv4-websocket-segmented.pcap`
79
80Trace summary: Partial capture of a live IPv4 WebSocket session with a single NDN interest
81retrieving large (~5k) NDN data packet.
82
83Expected result of the dissection:
84- interest packet is dissected after a partial reconstruction of WebSocket session at
85 packet 16.
86- data packet is properly dissected after a partial reconstruction of WebSocket
87 conversation at packet 22.
88
89### 6. IPv6 TCP/WebSocket
90
91Trace file: `ipv6-websocket-segmented.pcap`
92
93Trace summary: Partial capture of a live IPv6 WebSocket session with a single NDN interest
94retrieving large (~5k) NDN data packet.
95
96Expected result of the dissection:
97- interest packet is dissected after a partial reconstruction of WebSocket session at
98 packet 6.
99- data packet is properly dissected after a partial reconstruction of WebSocket
100 conversation at packet 12.
Alexander Afanasyev7f43c532015-08-12 15:28:51 -0700101
102### 7. Ethernet
103
104Trace file: `ethernet.pcap`
105
106Trace summary: Short capture, containing an NDN interest multicasted directly in Ethernet frame.
107
108Expected result of the dissection:
109- interest packet is dissected from packet 6.
Junxiao Shie65c6d72016-07-24 21:53:19 +0000110
111### 8. tvb Overflow
112
113Trace file: `bug3603.pcap`
114
115Trace summary: A Data whose payload could be read as incomplete TLV and may cause tvb overflow
116if parser does not check packet length.
117
118Expected result of the dissection:
119- data packet is dissected at packet 12 without Lua error.
Zipeng Wang574eeb02016-10-05 21:46:02 -0700120
Junxiao Shi89db73c2018-05-27 15:22:49 +0000121### 9. NDNLPv2
Zipeng Wang574eeb02016-10-05 21:46:02 -0700122
123Trace file: `ndnlpv2.pcap`
124
Junxiao Shi89db73c2018-05-27 15:22:49 +0000125Trace summary: Handcrafted NDNLPv2 packets.
126(`xxd -p -r < ndnlpv2.hex > ndnlpv2.pcap`).
Zipeng Wang574eeb02016-10-05 21:46:02 -0700127
Junxiao Shi89db73c2018-05-27 15:22:49 +0000128Expected result of the dissection: 12 "Ethernet (NDN)" frames.
1291. LpPacket contains 12 unrecognized fields. The 10th and 12th fields are labelled "ignored".
1302. No special requirements.
1313. "Sequence: 12732154106453800448". "FragIndex: 0". "FragCount: 2". Fragment exists.
1324. "Sequence: 12732154106453800449". "FragIndex: 1". "FragCount: 2". Fragment exists.
Alexander Afanasyev4fb67ea2018-08-02 08:18:28 -06001335. "NackReason: Congestion". The "Info" column shows "Nack /A".
Junxiao Shi89db73c2018-05-27 15:22:49 +00001346. "NackReason: Duplicate".
1357. "NackReason: NoRoute".
1368. "NackReason: 1".
1379. Nack exists, but NackReason does not exist.
13810. "PitToken: 15047039637272254167".
13911. "CongestionMark: 1". "TxSequence: 16204482402681480935".
14012. There are eight Ack fields. First is "Ack: 16204482402681480704". Eighth is "Ack: 16204482402681480711".
Zipeng Wang574eeb02016-10-05 21:46:02 -0700141
Junxiao Shi89db73c2018-05-27 15:22:49 +0000142### 10. NDNLPv2 (random)
Zipeng Wang574eeb02016-10-05 21:46:02 -0700143
144Trace file: `ndnlpv2-more.pcap`
145
146Trace summary: Short capture of randomly generated NDNLPv2 packets (see
147https://gist.github.com/cawka/fcdde58cc4dc94d789025ab8300076dc) with multiple fields set to various
148values. Given the random generation, some fields are semantically meaningless.
149
150Expected results of the dissection:
151- 10 NDN (NDNLPv2) packets extracted from the reassembled TCP stream
152- the dissection results include Fragment (Interest/Data), Sequence (number), FragIndex (number),
153 FragCount (number), Nack (various reasons), NextHopFaceId, IncomingFaceId, CachingPolicy, and
154 unknown fields
Junxiao Shiac4b5462018-04-17 02:26:17 +0000155
156### 11. NDN Packet Format v0.3
157
158Trace file: `packet03.pcap`
159
Junxiao Shi89db73c2018-05-27 15:22:49 +0000160Trace summary: Handcrafted packets in NDN Packet Format v0.3
Junxiao Shiac4b5462018-04-17 02:26:17 +0000161(`xxd -p -r < packet03.hex > packet03.pcap`).
162All packets are valid and do not contain unrecognized TLV elements.
163
164Expected results of the dissection:
Junxiao Shic687af62018-05-06 21:58:09 +0000165- Packet 1 is recognized as "Interest" type, and has `CanBePrefix: Yes`, `MustBeFresh: Yes`,
Davide Pesavento105cd9e2019-04-06 18:13:44 -0400166 `HopLimit: 214`, as well as an "ApplicationParameters" field.
Junxiao Shic687af62018-05-06 21:58:09 +0000167- Packet 2 is recognized as "Interest" type, and has `Name: /2=A/7=B/C/252=D/256=E/65535=E/sha256digest=ee357c5791dcaa4494d9b301047b875d8833caa76dada3e95837bbc3eaf7b300`.
168- Packet 3 is recognized as "Data" type, and has `Name: /`.
169
170### 12. URI Scheme
171
172Trace file: `nameuri.pcap`
173
Junxiao Shi89db73c2018-05-27 15:22:49 +0000174Trace summary: Handcrafted packet for testing URI encoding in Name and FinalBlockId
Junxiao Shic687af62018-05-06 21:58:09 +0000175(`xxd -p -r < nameuri.hex > nameuri.pcap`).
176
177Expected results of the dissection:
178- Packet 1 is recognized as "Data" type.
179- Its name has eight components.
180- First name component is `NameComponent: ...`.
181- Second name component is `NameComponent: ....`.
182- Third name component is `NameComponent: .....`.
183- Fourth name component is `NameComponent: .A`.
184- Fifth name component is `NameComponent: %00%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F`.
185 Notice that digits, HYPHEN (`-`), and PERIOD (`.`) are not percent-encoded.
186- Sixth name component is `NameComponent: %40ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D~%7F`.
187 Notice that upper case letters, lower case letters, UNDERSCORE (`_`), and TILDE (`~`) are not percent-encoded.
188- Seventh name component is `NameComponent: %80%81%82%83%84%85%86%87%88%89%8A%8B%8C%8D%8E%8F%90%91%92%93%94%95%96%97%98%99%9A%9B%9C%9D%9E%9F%A0%A1%A2%A3%A4%A5%A6%A7%A8%A9%AA%AB%AC%AD%AE%AF%B0%B1%B2%B3%B4%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF`.
189- Eighth name component is `NameComponent: %C0%C1%C2%C3%C4%C5%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%DE%DF%E0%E1%E2%E3%E4%E5%E6%E7%E8%E9%EA%EB%EC%ED%EE%EF%F0%F1%F2%F3%F4%F5%F6%F7%F8%F9%FA%FB%FC%FD%FE%FF`.
190- FinalBlockId and its nested NameComponent are both `%02`.
Alexander Afanasyev4fb67ea2018-08-02 08:18:28 -0600191
192### 13. PPP
193
194Trace file: `ppp.pcap`
195
196Trace summary: 8 packets created in a simple ndnSIM scenario
197
198Expected results of the dissection:
199- 4 interests (packets 1, 2, 5, 6), each carried in an LpPacket fragment
200- 4 data packets (packets 3, 4, 7, 8), also each carried in an LpPacket fragment