+ return (hdrlen);
+}
+
+/*
+ * Print EtherTalk/TokenTalk packets (or FDDITalk, or whatever it's called
+ * when it runs over FDDI; yes, I've seen FDDI captures with AppleTalk
+ * packets in them).
+ */
+void
+atalk_print(netdissect_options *ndo,
+ register const u_char *bp, u_int length)
+{
+ register const struct atDDP *dp;
+ u_short snet;
+
+ if(!ndo->ndo_eflag)
+ ND_PRINT((ndo, "AT "));
+
+ if (length < ddpSize) {
+ ND_PRINT((ndo, " [|ddp %u]", length));
+ return;
+ }
+ dp = (const struct atDDP *)bp;
+ snet = EXTRACT_16BITS(&dp->srcNet);
+ ND_PRINT((ndo, "%s.%s", ataddr_string(ndo, snet, dp->srcNode),
+ ddpskt_string(ndo, dp->srcSkt)));
+ ND_PRINT((ndo, " > %s.%s: ",
+ ataddr_string(ndo, EXTRACT_16BITS(&dp->dstNet), dp->dstNode),
+ ddpskt_string(ndo, dp->dstSkt)));
+ bp += ddpSize;
+ length -= ddpSize;
+ ddp_print(ndo, bp, length, dp->type, snet, dp->srcNode, dp->srcSkt);