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