+ for (; nrecs != 0; nr++, nrecs--) {
+ char buf[20];
+ char asbuf[20];
+
+ /*
+ * Make sure we have the entire record.
+ */
+ ND_TCHECK_SIZE(nr);
+ ND_PRINT("\n started %u.%03u, last %u.%03u",
+ GET_BE_U_4(nr->start_time)/1000,
+ GET_BE_U_4(nr->start_time)%1000,
+ GET_BE_U_4(nr->last_time)/1000,
+ GET_BE_U_4(nr->last_time)%1000);
+
+ asbuf[0] = buf[0] = '\0';
+ snprintf(buf, sizeof(buf), "/%u", GET_U_1(nr->src_mask));
+ snprintf(asbuf, sizeof(asbuf), ":%u",
+ GET_BE_U_2(nr->src_as));
+ ND_PRINT("\n %s%s%s:%u ",
+ intoa(GET_IPV4_TO_NETWORK_ORDER(nr->src_ina)),
+ buf, asbuf,
+ GET_BE_U_2(nr->srcport));
+
+ snprintf(buf, sizeof(buf), "/%u", GET_U_1(nr->dst_mask));
+ snprintf(asbuf, sizeof(asbuf), ":%u",
+ GET_BE_U_2(nr->dst_as));
+ ND_PRINT("> %s%s%s:%u ",
+ intoa(GET_IPV4_TO_NETWORK_ORDER(nr->dst_ina)),
+ buf, asbuf,
+ GET_BE_U_2(nr->dstport));
+
+ ND_PRINT(">> %s\n ",
+ intoa(GET_IPV4_TO_NETWORK_ORDER(nr->nhop_ina)));
+
+ proto = GET_U_1(nr->proto);
+ if (!ndo->ndo_nflag && (p_name = netdb_protoname(proto)) != NULL)
+ ND_PRINT("%s ", p_name);
+ else
+ ND_PRINT("%u ", proto);
+
+ /* tcp flags for tcp only */
+ if (proto == IPPROTO_TCP) {
+ u_int flags;
+ flags = GET_U_1(nr->tcp_flags);
+ ND_PRINT("%s%s%s%s%s%s%s",
+ flags & TH_FIN ? "F" : "",
+ flags & TH_SYN ? "S" : "",
+ flags & TH_RST ? "R" : "",
+ flags & TH_PUSH ? "P" : "",
+ flags & TH_ACK ? "A" : "",
+ flags & TH_URG ? "U" : "",
+ flags ? " " : "");
+ }
+
+ buf[0]='\0';
+ snprintf(buf, sizeof(buf), "(%u<>%u encaps)",
+ (GET_BE_U_2(nr->flags) >> 8) & 0xff,
+ (GET_BE_U_2(nr->flags)) & 0xff);
+ ND_PRINT("tos %u, %u (%u octets) %s",
+ GET_U_1(nr->tos),
+ GET_BE_U_4(nr->packets),
+ GET_BE_U_4(nr->octets), buf);