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