52 #define PRINTF(...) printf(__VA_ARGS__)
53 #define PRINT6ADDR(addr) PRINTF(" %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x ", ((u8_t *)addr)[0], ((u8_t *)addr)[1], ((u8_t *)addr)[2], ((u8_t *)addr)[3], ((u8_t *)addr)[4], ((u8_t *)addr)[5], ((u8_t *)addr)[6], ((u8_t *)addr)[7], ((u8_t *)addr)[8], ((u8_t *)addr)[9], ((u8_t *)addr)[10], ((u8_t *)addr)[11], ((u8_t *)addr)[12], ((u8_t *)addr)[13], ((u8_t *)addr)[14], ((u8_t *)addr)[15])
54 #define PRINTLLADDR(lladdr) PRINTF(" %02x:%02x:%02x:%02x:%02x:%02x ",lladdr->addr[0], lladdr->addr[1], lladdr->addr[2], lladdr->addr[3],lladdr->addr[4], lladdr->addr[5])
57 #define PRINT6ADDR(addr)
60 #define UIP_IP_BUF ((struct uip_ip_hdr *)&uip_buf[UIP_LLH_LEN])
61 #define UIP_ICMP_BUF ((struct uip_icmp_hdr *)&uip_buf[uip_l2_l3_hdr_len])
62 #define UIP_ICMP6_ERROR_BUF ((struct uip_icmp6_error *)&uip_buf[uip_l2_l3_icmp_hdr_len])
76 PRINTF(
"Received Echo Request from");
85 if(uip_is_addr_mcast(&
UIP_IP_BUF->destipaddr)){
107 (
uip_len - UIP_IPH_LEN - UIP_ICMPH_LEN));
119 PRINTF(
"Sending Echo Reply to");
146 memmove((uint8_t *)UIP_ICMP6_ERROR_BUF + UIP_ICMP6_ERROR_LEN,
157 if(uip_is_addr_unspecified(&
UIP_IP_BUF->srcipaddr)){
164 if(uip_is_addr_mcast(&tmp_ipaddr)){
182 UIP_ICMP6_ERROR_BUF->param = uip_htonl(param);
190 PRINTF(
"Sending ICMPv6 ERROR message to");
208 UIP_IP_BUF->len[0] = (UIP_ICMPH_LEN + payload_len) >> 8;
209 UIP_IP_BUF->len[1] = (UIP_ICMPH_LEN + payload_len) & 0xff;
211 memcpy(&
UIP_IP_BUF->destipaddr, dest,
sizeof(*dest));
220 uip_len = UIP_IPH_LEN + UIP_ICMPH_LEN + payload_len;