+static const char *
+fwaddr_string(netdissect_options *ndo, const u_char *addr)
+{
+ return GET_LINKADDR_STRING(addr, LINKADDR_IEEE1394, FIREWIRE_EUI64_LEN);
+}
+
+static void
+ap1394_hdr_print(netdissect_options *ndo, const u_char *bp, u_int length)
+{
+ const struct firewire_header *fp;
+ uint16_t firewire_type;
+
+ fp = (const struct firewire_header *)bp;
+
+ ND_PRINT("%s > %s",
+ fwaddr_string(ndo, fp->firewire_shost),
+ fwaddr_string(ndo, fp->firewire_dhost));
+
+ firewire_type = GET_BE_U_2(fp->firewire_type);
+ if (!ndo->ndo_qflag) {
+ ND_PRINT(", ethertype %s (0x%04x)",
+ tok2str(ethertype_values,"Unknown", firewire_type),
+ firewire_type);
+ } else {
+ ND_PRINT(", %s", tok2str(ethertype_values,"Unknown Ethertype (0x%04x)", firewire_type));
+ }
+
+ ND_PRINT(", length %u: ", length);
+}
+