1 
2 #include "nx_api.h"
3 
4 #ifdef __PRODUCT_NETXDUO__
5 #include "netx_mdns_test.h"
6 
7 /* Frame (96 bytes) */
8 static const unsigned char pkt1[96] = {
9 0x33, 0x33, 0x00, 0x00, 0x00, 0xfb, 0xec, 0x17, /* 33...... */
10 0x2f, 0xbd, 0xa4, 0xb1, 0x86, 0xdd, 0x60, 0x00, /* /.....`. */
11 0x00, 0x00, 0x00, 0x2a, 0x11, 0xff, 0x20, 0x01, /* ...*.. . */
12 0x0d, 0xb1, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, /* ........ */
13 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x02, /* ........ */
14 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */
15 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x14, 0xe9, /* ........ */
16 0x14, 0xe9, 0x00, 0x2a, 0xb0, 0x29, 0x00, 0x00, /* ...*.).. */
17 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, /* ........ */
18 0x00, 0x00, 0x05, 0x5f, 0x68, 0x74, 0x74, 0x70, /* ..._http */
19 0x04, 0x5f, 0x74, 0x63, 0x70, 0x05, 0x6c, 0x6f, /* ._tcp.lo */
20 0x63, 0x61, 0x6c, 0x00, 0x00, 0x0c, 0x00, 0x01  /* cal..... */
21 };
22 
23 /* Frame (466 bytes) */
24 static const unsigned char pkt2[466] = {
25 0x33, 0x33, 0x00, 0x00, 0x00, 0xfb, 0x00, 0x11, /* 33...... */
26 0x22, 0x33, 0x44, 0x57, 0x86, 0xdd, 0x60, 0x00, /* "3DW..`. */
27 0x00, 0x00, 0x01, 0x9c, 0x11, 0xff, 0xfe, 0x80, /* ........ */
28 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x11, /* ........ */
29 0x22, 0xff, 0xfe, 0x33, 0x44, 0x57, 0xff, 0x02, /* "..3DW.. */
30 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */
31 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x14, 0xe9, /* ........ */
32 0x14, 0xe9, 0x01, 0x9c, 0xa2, 0xa8, 0x00, 0x00, /* ........ */
33 0x84, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, /* ........ */
34 0x00, 0x06, 0x05, 0x5f, 0x68, 0x74, 0x74, 0x70, /* ..._http */
35 0x04, 0x5f, 0x74, 0x63, 0x70, 0x05, 0x6c, 0x6f, /* ._tcp.lo */
36 0x63, 0x61, 0x6c, 0x00, 0x00, 0x0c, 0x00, 0x01, /* cal..... */
37 0x00, 0x00, 0x00, 0x64, 0x00, 0x1e, 0x0b, 0x41, /* ...d...A */
38 0x52, 0x4d, 0x4d, 0x44, 0x4e, 0x53, 0x54, 0x65, /* RMMDNSTe */
39 0x73, 0x74, 0x05, 0x5f, 0x68, 0x74, 0x74, 0x70, /* st._http */
40 0x04, 0x5f, 0x74, 0x63, 0x70, 0x05, 0x6c, 0x6f, /* ._tcp.lo */
41 0x63, 0x61, 0x6c, 0x00, 0x0b, 0x41, 0x52, 0x4d, /* cal..ARM */
42 0x4d, 0x44, 0x4e, 0x53, 0x54, 0x65, 0x73, 0x74, /* MDNSTest */
43 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x00, 0x00, /* .local.. */
44 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, /* ......x. */
45 0x04, 0x0a, 0x00, 0x00, 0x42, 0x0b, 0x41, 0x52, /* ....B.AR */
46 0x4d, 0x4d, 0x44, 0x4e, 0x53, 0x54, 0x65, 0x73, /* MMDNSTes */
47 0x74, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x00, /* t.local. */
48 0x00, 0x1c, 0x80, 0x01, 0x00, 0x00, 0x00, 0x78, /* .......x */
49 0x00, 0x10, 0xfe, 0x80, 0x00, 0x00, 0x00, 0x00, /* ........ */
50 0x00, 0x00, 0x02, 0x11, 0x22, 0xff, 0xfe, 0x33, /* ...."..3 */
51 0x44, 0x57, 0x0b, 0x41, 0x52, 0x4d, 0x4d, 0x44, /* DW.ARMMD */
52 0x4e, 0x53, 0x54, 0x65, 0x73, 0x74, 0x05, 0x6c, /* NSTest.l */
53 0x6f, 0x63, 0x61, 0x6c, 0x00, 0x00, 0x2f, 0x80, /* ocal../. */
54 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x19, 0x0b, /* ....x... */
55 0x41, 0x52, 0x4d, 0x4d, 0x44, 0x4e, 0x53, 0x54, /* ARMMDNST */
56 0x65, 0x73, 0x74, 0x05, 0x6c, 0x6f, 0x63, 0x61, /* est.loca */
57 0x6c, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x08, /* l...@... */
58 0x0b, 0x41, 0x52, 0x4d, 0x4d, 0x44, 0x4e, 0x53, /* .ARMMDNS */
59 0x54, 0x65, 0x73, 0x74, 0x05, 0x5f, 0x68, 0x74, /* Test._ht */
60 0x74, 0x70, 0x04, 0x5f, 0x74, 0x63, 0x70, 0x05, /* tp._tcp. */
61 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x00, 0x00, 0x21, /* local..! */
62 0x80, 0x01, 0x00, 0x00, 0x00, 0x64, 0x00, 0x19, /* .....d.. */
63 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x0b, 0x41, /* .....P.A */
64 0x52, 0x4d, 0x4d, 0x44, 0x4e, 0x53, 0x54, 0x65, /* RMMDNSTe */
65 0x73, 0x74, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, /* st.local */
66 0x00, 0x0b, 0x41, 0x52, 0x4d, 0x4d, 0x44, 0x4e, /* ..ARMMDN */
67 0x53, 0x54, 0x65, 0x73, 0x74, 0x05, 0x5f, 0x68, /* STest._h */
68 0x74, 0x74, 0x70, 0x04, 0x5f, 0x74, 0x63, 0x70, /* ttp._tcp */
69 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x00, 0x00, /* .local.. */
70 0x10, 0x80, 0x01, 0x00, 0x00, 0x00, 0x64, 0x00, /* ......d. */
71 0x14, 0x08, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3d, /* ..paper= */
72 0x41, 0x34, 0x0a, 0x76, 0x65, 0x72, 0x73, 0x69, /* A4.versi */
73 0x6f, 0x6e, 0x3d, 0x30, 0x31, 0x0b, 0x41, 0x52, /* on=01.AR */
74 0x4d, 0x4d, 0x44, 0x4e, 0x53, 0x54, 0x65, 0x73, /* MMDNSTes */
75 0x74, 0x05, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x04, /* t._http. */
76 0x5f, 0x74, 0x63, 0x70, 0x05, 0x6c, 0x6f, 0x63, /* _tcp.loc */
77 0x61, 0x6c, 0x00, 0x00, 0x2f, 0x80, 0x01, 0x00, /* al../... */
78 0x00, 0x00, 0x78, 0x00, 0x25, 0x0b, 0x41, 0x52, /* ..x.%.AR */
79 0x4d, 0x4d, 0x44, 0x4e, 0x53, 0x54, 0x65, 0x73, /* MMDNSTes */
80 0x74, 0x05, 0x5f, 0x68, 0x74, 0x74, 0x70, 0x04, /* t._http. */
81 0x5f, 0x74, 0x63, 0x70, 0x05, 0x6c, 0x6f, 0x63, /* _tcp.loc */
82 0x61, 0x6c, 0x00, 0x00, 0x05, 0x00, 0x00, 0x80, /* al...... */
83 0x00, 0x40                                      /* .@ */
84 };
85 
86 /* Frame (122 bytes) */
87 static const unsigned char pkt3[122] = {
88 0x33, 0x33, 0x00, 0x00, 0x00, 0xfb, 0xec, 0x17, /* 33...... */
89 0x2f, 0xbd, 0xa4, 0xb1, 0x86, 0xdd, 0x60, 0x00, /* /.....`. */
90 0x00, 0x00, 0x00, 0x44, 0x11, 0xff, 0x20, 0x01, /* ...D.. . */
91 0x0d, 0xb1, 0x00, 0x00, 0xf1, 0x01, 0x00, 0x00, /* ........ */
92 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x02, /* ........ */
93 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* ........ */
94 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x14, 0xe9, /* ........ */
95 0x14, 0xe9, 0x00, 0x44, 0x6e, 0x5c, 0x00, 0x00, /* ...Dn\.. */
96 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, /* ........ */
97 0x00, 0x00, 0x05, 0x5f, 0x68, 0x74, 0x74, 0x70, /* ..._http */
98 0x04, 0x5f, 0x74, 0x63, 0x70, 0x05, 0x6c, 0x6f, /* ._tcp.lo */
99 0x63, 0x61, 0x6c, 0x00, 0x00, 0x0c, 0x00, 0x01, /* cal..... */
100 0xc0, 0x0c, 0x00, 0x0c, 0x00, 0x01, 0x00, 0x00, /* ........ */
101 0x00, 0x64, 0x00, 0x0e, 0x0b, 0x41, 0x52, 0x4d, /* .d...ARM */
102 0x4d, 0x44, 0x4e, 0x53, 0x54, 0x65, 0x73, 0x74, /* MDNSTest */
103 0xc0, 0x0c                                      /* .. */
104 };
105 
106 static MDNS_SERVICE mdns_service = {"ARMMDNSTest", "_http._tcp", NX_NULL, "paper=A4;version=01", 100, 0, 0, 80, NX_MDNS_RR_SET_UNIQUE, 0};
107 
108 MDNS_TEST_SEQ mdns_basic_ipv6_response[] = {
109     {TITLE, "Basic IPv6 response", 19, 0},
110 
111     /* Add link local address. */
112     {MDNS_LLA_ADD, NX_NULL, 0x00000011, 0x22334457},
113     {WAIT, NX_NULL, 0, 5},
114 
115     /* Recreate mDNS. */
116     {MDNS_RECREATE, "ARMMDNSTest", 0, 0},
117 
118     /* Add service. */
119     {MDNS_SERVICE_ADD, (char*)&mdns_service, 0, 0},
120     {WAIT, NX_NULL, 0, 5},
121     {DUMP, NX_NULL, 0, 0},
122 
123     /* Inject query. */
124     {INJECT, (char*)&pkt1[0], sizeof(pkt1), 0},
125 
126     /* Check response. */
127     {MDNS_CHECK_DATA_V6, (char*)&pkt2[0], sizeof(pkt2), 3},
128 
129     /* Inject query. */
130     {INJECT, (char*)&pkt3[0], sizeof(pkt3), 0},
131 
132     /* No response is expected. */
133     {N_CHECK, NX_NULL, 0, 1},
134 
135     /* Delete link local address. */
136     {MDNS_LLA_DELETE, NX_NULL, 0, 0},
137 };
138 
139 int mdns_basic_ipv6_response_size = sizeof(mdns_basic_ipv6_response) / sizeof(MDNS_TEST_SEQ);
140 
141 #endif /* __PRODUCT_NETXDUO__  */
142