* as given to interface code.
*/
struct arc_header {
- uint8_t arc_shost;
- uint8_t arc_dhost;
- uint8_t arc_type;
+ nd_uint8_t arc_shost;
+ nd_uint8_t arc_dhost;
+ nd_uint8_t arc_type;
/*
* only present for newstyle encoding with LL fragmentation.
* Don't use sizeof(anything), use ARC_HDR{,NEW}LEN instead.
*/
- uint8_t arc_flag;
- uint16_t arc_seqid;
+ nd_uint8_t arc_flag;
+ nd_uint16_t arc_seqid;
/*
* only present in exception packets (arc_flag == 0xff)
*/
- uint8_t arc_type2; /* same as arc_type */
- uint8_t arc_flag2; /* real flag value */
- uint16_t arc_seqid2; /* real seqid value */
+ nd_uint8_t arc_type2; /* same as arc_type */
+ nd_uint8_t arc_flag2; /* real flag value */
+ nd_uint16_t arc_seqid2; /* real seqid value */
};
#define ARC_HDRLEN 3
* never presents packets that look like exception frames.
*/
struct arc_linux_header {
- uint8_t arc_shost;
- uint8_t arc_dhost;
- uint16_t arc_offset;
- uint8_t arc_type;
+ nd_uint8_t arc_shost;
+ nd_uint8_t arc_dhost;
+ nd_uint16_t arc_offset;
+ nd_uint8_t arc_type;
/*
* only present for newstyle encoding with LL fragmentation.
* Don't use sizeof(anything), use ARC_LINUX_HDR{,NEW}LEN
* instead.
*/
- uint8_t arc_flag;
- uint16_t arc_seqid;
+ nd_uint8_t arc_flag;
+ nd_uint16_t arc_seqid;
};
#define ARC_LINUX_HDRLEN 5
if (ndo->ndo_qflag) {
- ND_PRINT((ndo, "%02x %02x %d: ",
- ap->arc_shost,
- ap->arc_dhost,
+ ND_PRINT((ndo, "%02x %02x %u: ",
+ EXTRACT_U_1(ap->arc_shost),
+ EXTRACT_U_1(ap->arc_dhost),
length));
return;
}
- arctypename = tok2str(arctypemap, "%02x", ap->arc_type);
+ arctypename = tok2str(arctypemap, "%02x", EXTRACT_U_1(ap->arc_type));
if (!phds) {
ND_PRINT((ndo, "%02x %02x %s %d: ",
- ap->arc_shost, ap->arc_dhost, arctypename,
+ EXTRACT_U_1(ap->arc_shost),
+ EXTRACT_U_1(ap->arc_dhost),
+ arctypename,
length));
- return;
+ return;
}
if (flag == 0) {
ND_PRINT((ndo, "%02x %02x %s seqid %04x %d: ",
- ap->arc_shost, ap->arc_dhost, arctypename, seqid,
+ EXTRACT_U_1(ap->arc_shost),
+ EXTRACT_U_1(ap->arc_dhost),
+ arctypename, seqid,
length));
- return;
+ return;
}
if (flag & 1)
ND_PRINT((ndo, "%02x %02x %s seqid %04x "
"(first of %d fragments) %d: ",
- ap->arc_shost, ap->arc_dhost, arctypename, seqid,
+ EXTRACT_U_1(ap->arc_shost),
+ EXTRACT_U_1(ap->arc_dhost),
+ arctypename, seqid,
(flag + 3) / 2, length));
else
ND_PRINT((ndo, "%02x %02x %s seqid %04x "
"(fragment %d) %d: ",
- ap->arc_shost, ap->arc_dhost, arctypename, seqid,
+ EXTRACT_U_1(ap->arc_shost),
+ EXTRACT_U_1(ap->arc_dhost),
+ arctypename, seqid,
flag/2 + 1, length));
}
}
ap = (const struct arc_header *)p;
- arc_type = ap->arc_type;
+ arc_type = EXTRACT_U_1(ap->arc_type);
switch (arc_type) {
default:
return (caplen);
}
- if (ap->arc_flag == 0xff) {
+ flag = EXTRACT_U_1(ap->arc_flag);
+ if (flag == 0xff) {
if (caplen < ARC_HDRNEWLEN_EXC || length < ARC_HDRNEWLEN_EXC) {
arcnet_print(ndo, p, length, 0, 0, 0);
ND_PRINT((ndo, "[|phds extended]"));
return (caplen);
}
- flag = ap->arc_flag2;
- seqid = EXTRACT_BE_U_2(&ap->arc_seqid2);
+ flag = EXTRACT_U_1(ap->arc_flag2);
+ seqid = EXTRACT_BE_U_2(ap->arc_seqid2);
archdrlen = ARC_HDRNEWLEN_EXC;
} else {
- flag = ap->arc_flag;
- seqid = EXTRACT_BE_U_2(&ap->arc_seqid);
+ seqid = EXTRACT_BE_U_2(ap->arc_seqid);
archdrlen = ARC_HDRNEWLEN;
}
}
}
ap = (const struct arc_linux_header *)p;
- arc_type = ap->arc_type;
+ arc_type = EXTRACT_U_1(ap->arc_type);
switch (arc_type) {
default: