Now all the macros have a name meaning a count in bytes.
e.g.:
ND_TCHECK_32BITS -> ND_TCHECK_4
ND_TTEST_32BITS -> ND_TTEST_4
/*
* Macros to check the presence of the values in question.
*/
-#define ND_TTEST_8BITS(p) ND_TTEST2(*(p), 1)
-#define ND_TCHECK_8BITS(p) ND_TCHECK2(*(p), 1)
+#define ND_TTEST_1(p) ND_TTEST2(*(p), 1)
+#define ND_TCHECK_1(p) ND_TCHECK2(*(p), 1)
-#define ND_TTEST_16BITS(p) ND_TTEST2(*(p), 2)
-#define ND_TCHECK_16BITS(p) ND_TCHECK2(*(p), 2)
+#define ND_TTEST_2(p) ND_TTEST2(*(p), 2)
+#define ND_TCHECK_2(p) ND_TCHECK2(*(p), 2)
-#define ND_TTEST_24BITS(p) ND_TTEST2(*(p), 3)
-#define ND_TCHECK_24BITS(p) ND_TCHECK2(*(p), 3)
+#define ND_TTEST_3(p) ND_TTEST2(*(p), 3)
+#define ND_TCHECK_3(p) ND_TCHECK2(*(p), 3)
-#define ND_TTEST_32BITS(p) ND_TTEST2(*(p), 4)
-#define ND_TCHECK_32BITS(p) ND_TCHECK2(*(p), 4)
+#define ND_TTEST_4(p) ND_TTEST2(*(p), 4)
+#define ND_TCHECK_4(p) ND_TCHECK2(*(p), 4)
-#define ND_TTEST_40BITS(p) ND_TTEST2(*(p), 5)
-#define ND_TCHECK_40BITS(p) ND_TCHECK2(*(p), 5)
+#define ND_TTEST_5(p) ND_TTEST2(*(p), 5)
+#define ND_TCHECK_5(p) ND_TCHECK2(*(p), 5)
-#define ND_TTEST_48BITS(p) ND_TTEST2(*(p), 6)
-#define ND_TCHECK_48BITS(p) ND_TCHECK2(*(p), 6)
+#define ND_TTEST_6(p) ND_TTEST2(*(p), 6)
+#define ND_TCHECK_6(p) ND_TCHECK2(*(p), 6)
-#define ND_TTEST_56BITS(p) ND_TTEST2(*(p), 7)
-#define ND_TCHECK_56BITS(p) ND_TCHECK2(*(p), 7)
+#define ND_TTEST_7(p) ND_TTEST2(*(p), 7)
+#define ND_TCHECK_7(p) ND_TCHECK2(*(p), 7)
-#define ND_TTEST_64BITS(p) ND_TTEST2(*(p), 8)
-#define ND_TCHECK_64BITS(p) ND_TCHECK2(*(p), 8)
+#define ND_TTEST_8(p) ND_TTEST2(*(p), 8)
+#define ND_TCHECK_8(p) ND_TCHECK2(*(p), 8)
-#define ND_TTEST_128BITS(p) ND_TTEST2(*(p), 16)
-#define ND_TCHECK_128BITS(p) ND_TCHECK2(*(p), 16)
+#define ND_TTEST_16(p) ND_TTEST2(*(p), 16)
+#define ND_TCHECK_16(p) ND_TCHECK2(*(p), 16)
ND_PRINT((ndo, "AH(spi=0x%08x", EXTRACT_BE_32BITS(&ah->ah_spi)));
if (ndo->ndo_vflag)
ND_PRINT((ndo, ",sumlen=%d", sumlen));
- ND_TCHECK_32BITS(ah + 1);
+ ND_TCHECK_4(ah + 1);
ND_PRINT((ndo, ",seq=0x%x", EXTRACT_BE_32BITS(ah + 1)));
if (!ND_TTEST2(*bp, sizeof(struct ah) + sumlen)) {
ND_PRINT((ndo, "[truncated]):"));
total_length = 0;
/* Source address length, encoded in bits */
- ND_TCHECK_8BITS(pptr);
+ ND_TCHECK_1(pptr);
addr_length = EXTRACT_8BITS(pptr);
pptr++;
}
/* Group address length, encoded in bits */
- ND_TCHECK_8BITS(pptr);
+ ND_TCHECK_1(pptr);
addr_length = EXTRACT_8BITS(pptr);
pptr++;
return -1;
/* With at least "origin AS", possibly with "route target". */
- ND_TCHECK_32BITS(pptr + 1);
+ ND_TCHECK_4(pptr + 1);
as_printf(ndo, asbuf, sizeof(asbuf), EXTRACT_BE_32BITS(pptr + 1));
plen-=32; /* adjust prefix length */
{
int plen,tlen,stringlen,tlv_type,tlv_len,ttlv_len;
- ND_TCHECK_16BITS(pptr);
+ ND_TCHECK_2(pptr);
plen=EXTRACT_BE_16BITS(pptr);
tlen=plen;
pptr+=2;
if (len != 4)
ND_PRINT((ndo, "invalid len"));
else {
- ND_TCHECK_32BITS(tptr);
+ ND_TCHECK_4(tptr);
ND_PRINT((ndo, "%u", EXTRACT_BE_32BITS(tptr)));
}
break;
}
while (tlen>0) {
uint32_t comm;
- ND_TCHECK_32BITS(tptr);
+ ND_TCHECK_4(tptr);
comm = EXTRACT_BE_32BITS(tptr);
switch (comm) {
case BGP_COMMUNITY_NO_EXPORT:
while (tlen>0) {
uint16_t extd_comm;
- ND_TCHECK_16BITS(tptr);
+ ND_TCHECK_2(tptr);
extd_comm=EXTRACT_BE_16BITS(tptr);
ND_PRINT((ndo, "\n\t %s (0x%04x), Flags [%s]",
break;
}
case BGPTYPE_ATTR_SET:
- ND_TCHECK_32BITS(tptr);
+ ND_TCHECK_4(tptr);
if (len < 4)
goto trunc;
ND_PRINT((ndo, "\n\t Origin AS: %s",
length -= BGP_SIZE;
/* Unfeasible routes */
- ND_TCHECK_16BITS(p);
+ ND_TCHECK_2(p);
if (length < 2)
goto trunc;
withdrawn_routes_len = EXTRACT_BE_16BITS(p);
length -= withdrawn_routes_len;
}
- ND_TCHECK_16BITS(p);
+ ND_TCHECK_2(p);
if (length < 2)
goto trunc;
len = EXTRACT_BE_16BITS(p);
bgpn.bgpn_minor == BGP_NOTIFY_MINOR_CEASE_RESET) &&
length >= BGP_NOTIFICATION_SIZE + 1) {
tptr = dat + BGP_NOTIFICATION_SIZE;
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
shutdown_comm_length = EXTRACT_8BITS(tptr);
remainder_offset = 0;
/* garbage, hexdump it all */
ND_PRINT((ndo, "\n\t Client-Ethernet-Address %s", etheraddr_string(ndo, bp->bp_chaddr)));
}
- ND_TCHECK_8BITS(bp->bp_sname); /* check first char only */
+ ND_TCHECK_1(bp->bp_sname); /* check first char only */
if (EXTRACT_8BITS(bp->bp_sname)) {
ND_PRINT((ndo, "\n\t sname \""));
if (fn_printztn(ndo, bp->bp_sname, (u_int)sizeof bp->bp_sname,
}
ND_PRINT((ndo, "\""));
}
- ND_TCHECK_8BITS(bp->bp_file); /* check first char only */
+ ND_TCHECK_1(bp->bp_file); /* check first char only */
if (EXTRACT_8BITS(bp->bp_file)) {
ND_PRINT((ndo, "\n\t file \""));
if (fn_printztn(ndo, bp->bp_file, (u_int)sizeof bp->bp_file,
bp += sizeof(int32_t);
/* Loop while we there is a tag left in the buffer */
- while (ND_TTEST_8BITS(bp)) {
+ while (ND_TTEST_1(bp)) {
tag = EXTRACT_8BITS(bp);
bp++;
if (tag == TAG_PAD && ndo->ndo_vflag < 3)
if (tag == TAG_END && ndo->ndo_vflag < 3)
return;
if (tag == TAG_EXTENDED_OPTION) {
- ND_TCHECK_16BITS(bp + 1);
+ ND_TCHECK_2(bp + 1);
tag = EXTRACT_BE_16BITS(bp + 1);
/* XXX we don't know yet if the IANA will
* preclude overlap of 1-byte and 2-byte spaces.
len = 0;
else {
/* Get the length; check for truncation */
- ND_TCHECK_8BITS(bp);
+ ND_TCHECK_1(bp);
len = EXTRACT_8BITS(bp);
bp++;
}
if (tag == TAG_PAD && ndo->ndo_vflag > 2) {
u_int ntag = 1;
- while (ND_TTEST_8BITS(bp) &&
- EXTRACT_8BITS(bp) == TAG_PAD) {
+ while (ND_TTEST_1(bp) &&
+ EXTRACT_8BITS(bp) == TAG_PAD) {
bp++;
ntag++;
}
/* is the fudge byte set ? lets verify by spotting ISO headers */
if (length < 2)
goto trunc;
- ND_TCHECK_16BITS(p);
+ ND_TCHECK_2(p);
if (*(p+1) == NLPID_CLNP ||
*(p+1) == NLPID_ESIS ||
*(p+1) == NLPID_ISIS)
{
register u_char i;
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return (NULL);
i = EXTRACT_8BITS(cp);
cp++;
if ((i & ~INDIR_MASK) != EDNS0_ELT_BITLABEL)
return(NULL); /* unknown ELT */
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return (NULL);
if ((bitlen = EXTRACT_8BITS(cp)) == 0)
bitlen = 256;
cp += bytelen;
} else
cp += i;
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return (NULL);
i = EXTRACT_8BITS(cp);
cp++;
const u_char *bitp, *lim;
char tc;
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return(NULL);
if ((bitlen = EXTRACT_8BITS(cp)) == 0)
bitlen = 256;
{
register u_int i;
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return(-1);
i = EXTRACT_8BITS(cp);
if ((i & INDIR_MASK) == EDNS0_MASK) {
ND_PRINT((ndo, "<ELT %d>", elt));
return(-1);
}
- if (!ND_TTEST_8BITS(cp + 1))
+ if (!ND_TTEST_1(cp + 1))
return(-1);
if ((bitlen = EXTRACT_8BITS(cp + 1)) == 0)
bitlen = 256;
if ((l = labellen(ndo, cp)) == (u_int)-1)
return(NULL);
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return(NULL);
max_offset = (u_int)(cp - bp);
i = EXTRACT_8BITS(cp);
rp = cp + 1;
compress = 1;
}
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return(NULL);
offset = (((i << 8) | EXTRACT_8BITS(cp)) & 0x3fff);
/*
cp = bp + offset;
if ((l = labellen(ndo, cp)) == (u_int)-1)
return(NULL);
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return(NULL);
i = EXTRACT_8BITS(cp);
cp++;
ND_PRINT((ndo, "."));
if ((l = labellen(ndo, cp)) == (u_int)-1)
return(NULL);
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return(NULL);
i = EXTRACT_8BITS(cp);
cp++;
{
register u_int i;
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return (NULL);
i = EXTRACT_8BITS(cp);
cp++;
int pbit, pbyte;
char ntop_buf[INET6_ADDRSTRLEN];
- if (!ND_TTEST_8BITS(cp))
+ if (!ND_TTEST_1(cp))
return(NULL);
pbit = EXTRACT_8BITS(cp);
pbyte = (pbit & ~7) / 8;
if ((cp = ns_nprint(ndo, cp, bp)) == NULL)
return(NULL);
cp += 6;
- if (!ND_TTEST_16BITS(cp))
+ if (!ND_TTEST_2(cp))
return(NULL);
ND_PRINT((ndo, " fudge=%u", EXTRACT_BE_16BITS(cp)));
cp += 2;
- if (!ND_TTEST_16BITS(cp))
+ if (!ND_TTEST_2(cp))
return(NULL);
ND_PRINT((ndo, " maclen=%u", EXTRACT_BE_16BITS(cp)));
cp += 2 + EXTRACT_BE_16BITS(cp);
- if (!ND_TTEST_16BITS(cp))
+ if (!ND_TTEST_2(cp))
return(NULL);
ND_PRINT((ndo, " origid=%u", EXTRACT_BE_16BITS(cp)));
cp += 2;
- if (!ND_TTEST_16BITS(cp))
+ if (!ND_TTEST_2(cp))
return(NULL);
ND_PRINT((ndo, " error=%u", EXTRACT_BE_16BITS(cp)));
cp += 2;
- if (!ND_TTEST_16BITS(cp))
+ if (!ND_TTEST_2(cp))
return(NULL);
ND_PRINT((ndo, " otherlen=%u", EXTRACT_BE_16BITS(cp)));
cp += 2;
if (bp >= ep)
return;
- ND_TCHECK_8BITS(bp + 1);
+ ND_TCHECK_1(bp + 1);
type = EXTRACT_8BITS(bp + 1);
/* Skip IGMP header */
}
origin = 0;
for (i = 0; i < width; ++i) {
- ND_TCHECK_8BITS(bp);
+ ND_TCHECK_1(bp);
origin = origin << 8 | EXTRACT_8BITS(bp);
bp++;
}
for ( ; i < 4; ++i)
origin <<= 8;
- ND_TCHECK_8BITS(bp);
+ ND_TCHECK_1(bp);
metric = EXTRACT_8BITS(bp);
bp++;
done = metric & 0x80;
switch (eap->type) {
case EAP_FRAME_TYPE_PACKET:
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
type = *(tptr);
- ND_TCHECK_16BITS(tptr+2);
+ ND_TCHECK_2(tptr + 2);
len = EXTRACT_BE_16BITS(tptr + 2);
ND_PRINT((ndo, ", %s (%u), id %u, len %u",
tok2str(eap_code_values, "unknown", type),
ND_TCHECK2(*tptr, len);
if (type <= 2) { /* For EAP_REQUEST and EAP_RESPONSE only */
- ND_TCHECK_8BITS(tptr+4);
+ ND_TCHECK_1(tptr + 4);
subtype = EXTRACT_8BITS(tptr + 4);
ND_PRINT((ndo, "\n\t\t Type %s (%u)",
tok2str(eap_type_values, "unknown", subtype),
* type one octet per type
*/
while (count < len) {
- ND_TCHECK_8BITS(tptr+count);
+ ND_TCHECK_1(tptr + count);
ND_PRINT((ndo, " %s (%u),",
tok2str(eap_type_values, "unknown", EXTRACT_8BITS((tptr + count))),
*(tptr + count)));
case EAP_TYPE_TTLS:
case EAP_TYPE_TLS:
- ND_TCHECK_8BITS(tptr + 5);
+ ND_TCHECK_1(tptr + 5);
if (subtype == EAP_TYPE_TTLS)
ND_PRINT((ndo, " TTLSv%u",
EAP_TTLS_VERSION(EXTRACT_8BITS((tptr + 5)))));
*(tptr + 5)));
if (EAP_TLS_EXTRACT_BIT_L(*(tptr+5))) {
- ND_TCHECK_32BITS(tptr + 6);
+ ND_TCHECK_4(tptr + 6);
ND_PRINT((ndo, " len %u", EXTRACT_BE_32BITS(tptr + 6)));
}
break;
case EAP_TYPE_FAST:
- ND_TCHECK_8BITS(tptr + 5);
+ ND_TCHECK_1(tptr + 5);
ND_PRINT((ndo, " FASTv%u",
EAP_TTLS_VERSION(EXTRACT_8BITS((tptr + 5)))));
ND_PRINT((ndo, " flags [%s] 0x%02x,",
*(tptr + 5)));
if (EAP_TLS_EXTRACT_BIT_L(*(tptr+5))) {
- ND_TCHECK_32BITS(tptr + 6);
+ ND_TCHECK_4(tptr + 6);
ND_PRINT((ndo, " len %u", EXTRACT_BE_32BITS(tptr + 6)));
}
case EAP_TYPE_AKA:
case EAP_TYPE_SIM:
- ND_TCHECK_8BITS(tptr + 5);
+ ND_TCHECK_1(tptr + 5);
ND_PRINT((ndo, " subtype [%s] 0x%02x,",
tok2str(eap_aka_subtype_values, "unknown", EXTRACT_8BITS((tptr + 5))),
*(tptr + 5)));
const u_char *p, u_int *dlci,
u_int *addr_len, uint8_t *flags, u_int length)
{
- if (!ND_TTEST_8BITS(p) || length < 1)
+ if (!ND_TTEST_1(p) || length < 1)
return -1;
if ((EXTRACT_8BITS(p) & FR_EA_BIT))
return 0;
- if (!ND_TTEST_8BITS(p+1) || length < 2)
+ if (!ND_TTEST_1(p + 1) || length < 2)
return -1;
*addr_len = 2;
*dlci = ((EXTRACT_8BITS(p) & 0xFC) << 2) | ((EXTRACT_8BITS(p+1) & 0xF0) >> 4);
p += 2;
length -= 2;
- if (!ND_TTEST_8BITS(p) || length < 1)
+ if (!ND_TTEST_1(p) || length < 1)
return -1;
(*addr_len)++; /* 3- or 4-byte Q.922 address */
if ((EXTRACT_8BITS(p) & FR_EA_BIT) == 0) {
length--;
}
- if (!ND_TTEST_8BITS(p) || length < 1)
+ if (!ND_TTEST_1(p) || length < 1)
return -1;
if ((EXTRACT_8BITS(p) & FR_EA_BIT) == 0)
return 0; /* more than 4 bytes of Q.922 address? */
return 0;
}
- ND_TCHECK_8BITS(p + addr_len);
+ ND_TCHECK_1(p + addr_len);
if (length < addr_len + 1)
goto trunc;
* with an Ethernet type (Cisco HDLC type?) following the
* address.
*/
- if (!ND_TTEST_16BITS(p + addr_len) || length < addr_len + 2) {
+ if (!ND_TTEST_2(p + addr_len) || length < addr_len + 2) {
/* no Ethertype */
ND_PRINT((ndo, "UI %02x! ", EXTRACT_8BITS(p + addr_len)));
} else {
}
}
- ND_TCHECK_8BITS(p + addr_len + 1);
+ ND_TCHECK_1(p + addr_len + 1);
if (length < addr_len + 2)
goto trunc;
hdr_len = addr_len + 1 /* UI */ + 1 /* NLPID */;
}
- ND_TCHECK_8BITS(p + hdr_len - 1);
+ ND_TCHECK_1(p + hdr_len - 1);
if (length < hdr_len)
goto trunc;
nlpid = EXTRACT_8BITS(p + hdr_len - 1);
ND_PRINT((ndo, "%s, codeset %u", is_ansi ? "ANSI" : "CCITT", codeset));
if (call_ref_length != 0) {
- ND_TCHECK_8BITS(p);
+ ND_TCHECK_1(p);
if (call_ref_length > 1 || EXTRACT_8BITS(p) != 0) {
/*
* Not a dummy call reference.
ND_PRINT((ndo, "\n\t"));
ip = (const struct ip *)bp;
snapend_save = ndo->ndo_snapend;
- ND_TCHECK_16BITS(&ip->ip_len);
+ ND_TCHECK_2(&ip->ip_len);
ip_print(ndo, bp, EXTRACT_BE_16BITS(&ip->ip_len));
ndo->ndo_snapend = snapend_save;
}
ND_PRINT((ndo, " [invalid len %d]", len));
return;
}
- ND_TCHECK_16BITS(bp + 6);
+ ND_TCHECK_2(bp + 6);
ngroups = EXTRACT_BE_16BITS(bp + 6);
ND_PRINT((ndo, ", %d group record(s)", ngroups));
if (ndo->ndo_vflag > 0) {
ND_PRINT((ndo, " [invalid len %d]", len));
return;
}
- ND_TCHECK_8BITS(bp + 1);
+ ND_TCHECK_1(bp + 1);
mrc = EXTRACT_8BITS(bp + 1);
if (mrc < 128) {
mrt = mrc;
}
ND_PRINT((ndo, "]"));
}
- ND_TCHECK_32BITS(bp + 4);
+ ND_TCHECK_4(bp + 4);
if (EXTRACT_BE_32BITS(bp + 4) == 0)
return;
ND_PRINT((ndo, " [gaddr %s", ipaddr_string(ndo, &bp[4])));
- ND_TCHECK_16BITS(bp + 10);
+ ND_TCHECK_2(bp + 10);
nsrcs = EXTRACT_BE_16BITS(bp + 10);
if (nsrcs > 0) {
if (len < 12 + (nsrcs << 2))
return;
}
- ND_TCHECK_8BITS(bp);
+ ND_TCHECK_1(bp);
switch (EXTRACT_8BITS(bp)) {
case 0x11:
ND_PRINT((ndo, "igmp query"));
if (len >= 12)
print_igmpv3_query(ndo, bp, len);
else {
- ND_TCHECK_8BITS(bp + 1);
+ ND_TCHECK_1(bp + 1);
if (EXTRACT_8BITS(bp + 1)) {
ND_PRINT((ndo, " v2"));
if (EXTRACT_8BITS(bp + 1) != 100)
ND_PRINT((ndo, " [max resp time %u]", EXTRACT_8BITS(bp + 1)));
} else
ND_PRINT((ndo, " v1"));
- ND_TCHECK_32BITS(bp + 4);
+ ND_TCHECK_4(bp + 4);
if (EXTRACT_BE_32BITS(bp + 4))
ND_PRINT((ndo, " [gaddr %s]", ipaddr_string(ndo, &bp[4])));
if (len != 8)
if (p[0] & 0x80)
totlen = 4;
else {
- ND_TCHECK_16BITS(&p[2]);
+ ND_TCHECK_2(&p[2]);
totlen = 4 + EXTRACT_BE_16BITS(p + 2);
}
if (ep2 < p + totlen) {
return ep2 + 1;
}
- ND_TCHECK_16BITS(&p[0]);
+ ND_TCHECK_2(&p[0]);
ND_PRINT((ndo,"("));
t = EXTRACT_BE_16BITS(p) & 0x7fff;
if (map && t < nmap && map[t].type)
ND_PRINT((ndo,"type=#%d ", t));
if (p[0] & 0x80) {
ND_PRINT((ndo,"value="));
- ND_TCHECK_16BITS(&p[2]);
+ ND_TCHECK_2(&p[2]);
v = EXTRACT_BE_16BITS(p + 2);
if (map && t < nmap && v < map[t].nvalue && map[t].value[v])
ND_PRINT((ndo,"%s", map[t].value[v]));
if (p[0] & 0x80)
totlen = 4;
else {
- ND_TCHECK_16BITS(&p[2]);
+ ND_TCHECK_2(&p[2]);
totlen = 4 + EXTRACT_BE_16BITS(p + 2);
}
if (ep2 < p + totlen) {
return ep2 + 1;
}
- ND_TCHECK_16BITS(&p[0]);
+ ND_TCHECK_2(&p[0]);
ND_PRINT((ndo,"("));
t = EXTRACT_BE_16BITS(p) & 0x7fff;
ND_PRINT((ndo,"type=#%d ", t));
case ESIS_OPTION_PROTOCOLS:
while (opli>0) {
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
ND_PRINT((ndo, "%s (0x%02x)",
tok2str(nlpid_values,
"unknown",
stlv_len = stlv_len - 8;
while (stlv_len >= 4) {
- ND_TCHECK_32BITS(tptr);
+ ND_TCHECK_4(tptr);
ND_PRINT((ndo, "\n\t T: %d, R: %d, RES: %d, ISID: %d",
(EXTRACT_BE_32BITS(tptr) >> 31),
(EXTRACT_BE_32BITS(tptr) >> 30) & 0x01,
tptr+=NODE_ID_LEN;
if (tlv_type != ISIS_TLV_IS_ALIAS_ID) { /* the Alias TLV Metric field is implicit 0 */
- if (!ND_TTEST_24BITS(tptr)) /* and is therefore skipped */
+ if (!ND_TTEST_3(tptr)) /* and is therefore skipped */
return(0);
ND_PRINT((ndo, ", Metric: %d", EXTRACT_BE_24BITS(tptr)));
tptr+=3;
}
- if (!ND_TTEST_8BITS(tptr))
+ if (!ND_TTEST_1(tptr))
return(0);
subtlv_sum_len=EXTRACT_8BITS(tptr); /* read out subTLV length */
tptr++;
isis_print_mtid(netdissect_options *ndo,
const uint8_t *tptr, const char *ident)
{
- if (!ND_TTEST_16BITS(tptr))
+ if (!ND_TTEST_2(tptr))
return(0);
ND_PRINT((ndo, "%s%s",
uint8_t prefix[sizeof(struct in6_addr)]; /* shared copy buffer for IPv4 and IPv6 prefixes */
u_int metric, status_byte, bit_length, byte_length, sublen, processed, subtlvtype, subtlvlen;
- if (!ND_TTEST_32BITS(tptr))
+ if (!ND_TTEST_4(tptr))
return (0);
metric = EXTRACT_BE_32BITS(tptr);
processed=4;
tptr+=4;
if (afi == AF_INET) {
- if (!ND_TTEST_8BITS(tptr)) /* fetch status byte */
+ if (!ND_TTEST_1(tptr)) /* fetch status byte */
return (0);
status_byte=EXTRACT_8BITS(tptr);
tptr++;
than one subTLV - therefore the first byte must reflect
the aggregate bytecount of the subTLVs for this prefix
*/
- if (!ND_TTEST_8BITS(tptr))
+ if (!ND_TTEST_1(tptr))
return (0);
sublen=EXTRACT_8BITS(tptr);
tptr++;
/* now check if we have a decoder otherwise do a hexdump at the end*/
switch (tlv_type) {
case ISIS_TLV_AREA_ADDR:
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
alen = EXTRACT_8BITS(tptr);
tptr++;
while (tmp && alen < tmp) {
tmp -= alen + 1;
if (tmp==0) /* if this is the last area address do not attemt a boundary check */
break;
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
alen = EXTRACT_8BITS(tptr);
tptr++;
}
break;
case ISIS_TLV_ISNEIGH_VARLEN:
- if (!ND_TTEST_8BITS(tptr) || tmp < 3) /* min. TLV length */
+ if (!ND_TTEST_1(tptr) || tmp < 3) /* min. TLV length */
goto trunctlv;
lan_alen = EXTRACT_8BITS(tptr); /* LAN address length */
tptr++;
}
break;
case ISIS_TLV_IS_REACH:
- ND_TCHECK_8BITS(tptr); /* check if there is one byte left to read out the virtual flag */
+ ND_TCHECK_1(tptr); /* check if there is one byte left to read out the virtual flag */
ND_PRINT((ndo, "\n\t %s",
tok2str(isis_is_reach_virtual_values,
"bogus virtual flag 0x%02x",
}
break;
case ISIS_TLV_AUTH:
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
ND_PRINT((ndo, "\n\t %s: ",
tok2str(isis_subtlv_auth_values,
break;
case ISIS_SUBTLV_AUTH_MD5:
for(i=1;i<tlv_len;i++) {
- ND_TCHECK_8BITS(tptr + i);
+ ND_TCHECK_1(tptr + i);
ND_PRINT((ndo, "%02x", EXTRACT_8BITS(tptr + i)));
}
if (tlv_len != ISIS_SUBTLV_AUTH_MD5_LEN+1)
break;
case ISIS_SUBTLV_AUTH_GENERIC:
- ND_TCHECK_16BITS(tptr + 1);
+ ND_TCHECK_2(tptr + 1);
key_id = EXTRACT_BE_16BITS(tptr + 1);
ND_PRINT((ndo, "%u, password: ", key_id));
for(i=1 + sizeof(uint16_t);i<tlv_len;i++) {
- ND_TCHECK_8BITS(tptr + i);
+ ND_TCHECK_1(tptr + i);
ND_PRINT((ndo, "%02x", EXTRACT_8BITS(tptr + i)));
}
break;
case ISIS_TLV_PTP_ADJ:
tlv_ptp_adj = (const struct isis_tlv_ptp_adj *)tptr;
if(tmp>=1) {
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
ND_PRINT((ndo, "\n\t Adjacency State: %s (%u)",
tok2str(isis_ptp_adjancey_values, "unknown", EXTRACT_8BITS(tptr)),
EXTRACT_8BITS(tptr)));
case ISIS_TLV_PROTOCOLS:
ND_PRINT((ndo, "\n\t NLPID(s): "));
while (tmp>0) {
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
ND_PRINT((ndo, "%s (0x%02x)",
tok2str(nlpid_values,
"unknown",
case ISIS_TLV_MT_PORT_CAP:
{
- ND_TCHECK_16BITS(tptr);
+ ND_TCHECK_2(tptr);
ND_PRINT((ndo, "\n\t RES: %d, MTID(s): %d",
(EXTRACT_BE_16BITS(tptr) >> 12),
case ISIS_TLV_MT_CAPABILITY:
- ND_TCHECK_16BITS(tptr);
+ ND_TCHECK_2(tptr);
ND_PRINT((ndo, "\n\t O: %d, RES: %d, MTID(s): %d",
(EXTRACT_BE_16BITS(tptr) >> 15) & 0x01,
if (tmp < 1)
break;
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
ND_PRINT((ndo, ", Flags: [%s]", ISIS_MASK_TLV_SHARED_RISK_GROUP(EXTRACT_8BITS(tptr)) ? "numbered" : "unnumbered"));
tptr++;
tmp--;
tmp-=sizeof(struct in_addr);
while (tmp>=4) {
- ND_TCHECK_32BITS(tptr);
+ ND_TCHECK_4(tptr);
ND_PRINT((ndo, "\n\t Link-ID: 0x%08x", EXTRACT_BE_32BITS(tptr)));
tptr+=4;
tmp-=4;
tptr++;
switch (isis_subtlv_idrp) {
case ISIS_SUBTLV_IDRP_ASN:
- ND_TCHECK_16BITS(tptr); /* fetch AS number */
+ ND_TCHECK_2(tptr); /* fetch AS number */
ND_PRINT((ndo, "AS Number: %u", EXTRACT_BE_16BITS(tptr)));
break;
case ISIS_SUBTLV_IDRP_LOCAL:
tmp-=sizeof(struct isis_metric_block);
while(tmp>0) {
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
prefix_len=EXTRACT_8BITS(tptr); /* read out prefix length in semioctets*/
tptr++;
if (prefix_len < 2) {
if (ndo->ndo_eflag) ND_PRINT((ndo, ": ")); /* print demarc b/w L2/L3*/
- ND_TCHECK_16BITS(p+l2info->cookie_len);
+ ND_TCHECK_2(p + l2info->cookie_len);
l2info->proto = EXTRACT_BE_16BITS(p + l2info->cookie_len);
break;
}
goto trunc;
}
/* units of 4 secs */
- ND_TCHECK_16BITS(&bp[i+2]);
+ ND_TCHECK_2(&bp[i + 2]);
ND_PRINT((ndo, "(refresh: %u)",
EXTRACT_BE_16BITS(bp + i + 2) << 2));
break;
ND_PRINT((ndo, "(altcoa: trunc)"));
goto trunc;
}
- ND_TCHECK_128BITS(&bp[i+2]);
+ ND_TCHECK_16(&bp[i + 2]);
ND_PRINT((ndo, "(alt-CoA: %s)", ip6addr_string(ndo, &bp[i+2])));
break;
case IP6MOPT_NONCEID:
ND_PRINT((ndo, "(ni: trunc)"));
goto trunc;
}
- ND_TCHECK_16BITS(&bp[i+2]);
- ND_TCHECK_16BITS(&bp[i+4]);
+ ND_TCHECK_2(&bp[i + 2]);
+ ND_TCHECK_2(&bp[i + 4]);
ND_PRINT((ndo, "(ni: ho=0x%04x co=0x%04x)",
EXTRACT_BE_16BITS(bp + i + 2),
EXTRACT_BE_16BITS(bp + i + 4)));
case IP6M_CAREOF_TEST_INIT:
hlen = IP6M_MINLEN;
if (ndo->ndo_vflag) {
- ND_TCHECK_32BITS(&bp[hlen + 4]);
+ ND_TCHECK_4(&bp[hlen + 4]);
ND_PRINT((ndo, " %s Init Cookie=%08x:%08x",
type == IP6M_HOME_TEST_INIT ? "Home" : "Care-of",
EXTRACT_BE_32BITS(bp + hlen),
ND_PRINT((ndo, " nonce id=0x%x", EXTRACT_BE_16BITS(&mh->ip6m_data16[0])));
hlen = IP6M_MINLEN;
if (ndo->ndo_vflag) {
- ND_TCHECK_32BITS(&bp[hlen + 4]);
+ ND_TCHECK_4(&bp[hlen + 4]);
ND_PRINT((ndo, " %s Init Cookie=%08x:%08x",
type == IP6M_HOME_TEST ? "Home" : "Care-of",
EXTRACT_BE_32BITS(bp + hlen),
}
hlen += 8;
if (ndo->ndo_vflag) {
- ND_TCHECK_32BITS(&bp[hlen + 4]);
+ ND_TCHECK_4(&bp[hlen + 4]);
ND_PRINT((ndo, " %s Keygen Token=%08x:%08x",
type == IP6M_HOME_TEST ? "Home" : "Care-of",
EXTRACT_BE_32BITS(bp + hlen),
ND_TCHECK(mh->ip6m_data16[0]);
ND_PRINT((ndo, " seq#=%u", EXTRACT_BE_16BITS(&mh->ip6m_data16[0])));
hlen = IP6M_MINLEN;
- ND_TCHECK_16BITS(&bp[hlen]);
+ ND_TCHECK_2(&bp[hlen]);
if (bp[hlen] & 0xf0) {
ND_PRINT((ndo, " "));
if (bp[hlen] & 0x80)
hlen += 1;
/* Reserved (8bits) */
hlen += 1;
- ND_TCHECK_16BITS(&bp[hlen]);
+ ND_TCHECK_2(&bp[hlen]);
/* units of 4 secs */
ND_PRINT((ndo, " lifetime=%u", EXTRACT_BE_16BITS(bp + hlen) << 2));
hlen += 2;
ND_PRINT((ndo, " K"));
/* Reserved (7bits) */
hlen = IP6M_MINLEN;
- ND_TCHECK_16BITS(&bp[hlen]);
+ ND_TCHECK_2(&bp[hlen]);
ND_PRINT((ndo, " seq#=%u", EXTRACT_BE_16BITS(bp + hlen)));
hlen += 2;
- ND_TCHECK_16BITS(&bp[hlen]);
+ ND_TCHECK_2(&bp[hlen]);
/* units of 4 secs */
ND_PRINT((ndo, " lifetime=%u", EXTRACT_BE_16BITS(bp + hlen) << 2));
hlen += 2;
case OSPF_TYPE_HELLO: {
register const struct hello6 *hellop = (const struct hello6 *)((const uint8_t *)op + OSPF6HDR_LEN);
- ND_TCHECK_32BITS(&hellop->hello_options);
+ ND_TCHECK_4(&hellop->hello_options);
ND_PRINT((ndo, "\n\tOptions [%s]",
bittok2str(ospf6_option_values, "none",
EXTRACT_BE_32BITS(&hellop->hello_options))));
* and stopping if we don't have enough.
*/
bp += (2 * sizeof(uint16_t));
- ND_TCHECK_16BITS(bp);
+ ND_TCHECK_2(bp);
switch (EXTRACT_BE_16BITS(bp)) {
case AFNUM_INET:
ND_TCHECK2(*bp, sizeof(struct in_addr));
/* Fragment Tag, Hash Mask len, and BSR-priority */
if (len < 2)
goto trunc;
- ND_TCHECK_16BITS(bp);
+ ND_TCHECK_2(bp);
ND_PRINT((ndo, " tag=%x", EXTRACT_BE_16BITS(bp)));
bp += 2;
len -= 2;
if (len < 2)
goto trunc;
- ND_TCHECK_16BITS(bp);
+ ND_TCHECK_2(bp);
ND_PRINT((ndo, ",holdtime="));
unsigned_relts_print(ndo,
EXTRACT_BE_16BITS(bp));
ND_PRINT((ndo, " prio=%d", bp[1]));
if (len < 4)
goto trunc;
- ND_TCHECK_16BITS(&bp[2]);
+ ND_TCHECK_2(&bp[2]);
ND_PRINT((ndo, " holdtime="));
unsigned_relts_print(ndo, EXTRACT_BE_16BITS(bp + 2));
bp += 4;
len -= advance;
if (len < 2)
goto trunc;
- ND_TCHECK_16BITS(bp);
+ ND_TCHECK_2(bp);
ND_PRINT((ndo, " TUNR "));
unsigned_relts_print(ndo, EXTRACT_BE_16BITS(bp));
break;
ND_PRINT((ndo, " (length bogus, should be >= 6)"));
return len;
}
- ND_TCHECK_24BITS(p + 2);
+ ND_TCHECK_3(p + 2);
ND_PRINT((ndo, ": Vendor: %s (%u)",
tok2str(oui_values,"Unknown",EXTRACT_BE_24BITS(p + 2)),
EXTRACT_BE_24BITS(p + 2)));
ND_PRINT((ndo, " (length bogus, should be = 4)"));
return len;
}
- ND_TCHECK_16BITS(p + 2);
+ ND_TCHECK_2(p + 2);
ND_PRINT((ndo, ": %u", EXTRACT_BE_16BITS(p + 2)));
break;
case LCPOPT_ACCM:
ND_PRINT((ndo, " (length bogus, should be = 6)"));
return len;
}
- ND_TCHECK_32BITS(p + 2);
+ ND_TCHECK_4(p + 2);
ND_PRINT((ndo, ": 0x%08x", EXTRACT_BE_32BITS(p + 2)));
break;
case LCPOPT_AP:
ND_PRINT((ndo, " (length bogus, should be >= 4)"));
return len;
}
- ND_TCHECK_16BITS(p + 2);
+ ND_TCHECK_2(p + 2);
ND_PRINT((ndo, ": %s", tok2str(ppptype2str, "Unknown Auth Proto (0x04x)", EXTRACT_BE_16BITS(p + 2))));
switch (EXTRACT_BE_16BITS(p + 2)) {
ND_PRINT((ndo, " (length bogus, should be >= 4)"));
return 0;
}
- ND_TCHECK_16BITS(p+2);
+ ND_TCHECK_2(p + 2);
if (EXTRACT_BE_16BITS(p + 2) == PPP_LQM)
ND_PRINT((ndo, ": LQR"));
else
ND_PRINT((ndo, " (length bogus, should be = 6)"));
return 0;
}
- ND_TCHECK_32BITS(p + 2);
+ ND_TCHECK_4(p + 2);
ND_PRINT((ndo, ": 0x%08x", EXTRACT_BE_32BITS(p + 2)));
break;
case LCPOPT_PFC:
ND_PRINT((ndo, " (length bogus, should be = 4)"));
return 0;
}
- ND_TCHECK_16BITS(p + 2);
+ ND_TCHECK_2(p + 2);
ND_PRINT((ndo, ": 0x%04x", EXTRACT_BE_16BITS(p + 2)));
break;
case LCPOPT_CBACK:
ND_PRINT((ndo, " (length bogus, should be = 4)"));
return 0;
}
- ND_TCHECK_16BITS(p + 2);
+ ND_TCHECK_2(p + 2);
ND_PRINT((ndo, ": %u", EXTRACT_BE_16BITS(p + 2)));
break;
case LCPOPT_MLED:
ND_PRINT((ndo, "[|mlppp]"));
return;
}
- if (!ND_TTEST_16BITS(p)) {
+ if (!ND_TTEST_2(p)) {
ND_PRINT((ndo, "[|mlppp]"));
return;
}
ND_PRINT((ndo, " (length bogus, should be >= 4)"));
return 0;
}
- ND_TCHECK_16BITS(p+2);
+ ND_TCHECK_2(p + 2);
compproto = EXTRACT_BE_16BITS(p + 2);
ND_PRINT((ndo, ": %s (0x%02x):",
ND_PRINT((ndo, " (length bogus, should be = 6)"));
return len;
}
- ND_TCHECK_32BITS(p + 2);
+ ND_TCHECK_4(p + 2);
ND_PRINT((ndo, ": Magic-Num 0x%08x", EXTRACT_BE_32BITS(p + 2)));
break;
default:
const u_char *msg;
/* Protocol Version */
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
if (*tptr != 0) {
/* Skip the rest of the input buffer because even if this is
* a well-formed PDU of a future RPKI-Router protocol version
struct rx_cache_entry *rxent;
const struct rx_header *rxh = (const struct rx_header *) bp;
- if (!ND_TTEST_32BITS(bp + sizeof(struct rx_header)))
+ if (!ND_TTEST_4(bp + sizeof(struct rx_header)))
return;
rxent = &rx_cache[rx_cache_next];
}
#define INTOUT() { int32_t _i; \
- ND_TCHECK_32BITS(bp); \
+ ND_TCHECK_4(bp); \
_i = EXTRACT_BE_INT32(bp); \
bp += sizeof(int32_t); \
ND_PRINT((ndo, " %d", _i)); \
}
#define UINTOUT() { uint32_t _i; \
- ND_TCHECK_32BITS(bp); \
+ ND_TCHECK_4(bp); \
_i = EXTRACT_BE_32BITS(bp); \
bp += sizeof(uint32_t); \
ND_PRINT((ndo, " %u", _i)); \
}
#define DATEOUT() { time_t _t; struct tm *tm; char str[256]; \
- ND_TCHECK_32BITS(bp); \
+ ND_TCHECK_4(bp); \
_t = (time_t) EXTRACT_BE_INT32(bp); \
bp += sizeof(int32_t); \
tm = localtime(&_t); \
* gleaned from fsint/afsint.xg
*/
- ND_TCHECK_32BITS(bp + sizeof(struct rx_header));
+ ND_TCHECK_4(bp + sizeof(struct rx_header));
fs_op = EXTRACT_BE_32BITS(bp + sizeof(struct rx_header));
ND_PRINT((ndo, " fs call %s", tok2str(fs_req, "op#%u", fs_op)));
case 65536: /* Inline bulk stat */
{
uint32_t j;
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
case 131: /* Fetch ACL */
{
char a[AFSOPAQUEMAX+1];
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
i = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
ND_TCHECK2(bp[0], i);
*/
int32_t errcode;
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
errcode = EXTRACT_BE_INT32(bp);
bp += sizeof(int32_t);
* gleaned from fsint/afscbint.xg
*/
- ND_TCHECK_32BITS(bp + sizeof(struct rx_header));
+ ND_TCHECK_4(bp + sizeof(struct rx_header));
cb_op = EXTRACT_BE_32BITS(bp + sizeof(struct rx_header));
ND_PRINT((ndo, " cb call %s", tok2str(cb_req, "op#%u", cb_op)));
case 204: /* Callback */
{
uint32_t j, t;
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
if (j == 0)
ND_PRINT((ndo, " <none!>"));
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
INTOUT();
ND_PRINT((ndo, " expires"));
DATEOUT();
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
t = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
tok2str(cb_types, "type %u", t);
* gleaned from ptserver/ptint.xg
*/
- ND_TCHECK_32BITS(bp + sizeof(struct rx_header));
+ ND_TCHECK_4(bp + sizeof(struct rx_header));
pt_op = EXTRACT_BE_32BITS(bp + sizeof(struct rx_header));
ND_PRINT((ndo, " pt"));
case 504: /* Name to ID */
{
uint32_t j;
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
{
uint32_t j;
ND_PRINT((ndo, " ids:"));
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
i = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
for (j = 0; j < i; j++)
{
uint32_t j;
ND_PRINT((ndo, " ids:"));
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
i = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
for (j = 0; j < i; j++)
case 505: /* ID to name */
{
uint32_t j;
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
case 519: /* Get host CPS */
{
uint32_t j;
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
for (i = 0; i < j; i++) {
* gleaned from vlserver/vldbint.xg
*/
- ND_TCHECK_32BITS(bp + sizeof(struct rx_header));
+ ND_TCHECK_4(bp + sizeof(struct rx_header));
vldb_op = EXTRACT_BE_32BITS(bp + sizeof(struct rx_header));
ND_PRINT((ndo, " vldb"));
case 518: /* Get entry by ID N */
ND_PRINT((ndo, " volid"));
INTOUT();
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
i = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
if (i <= 2)
case 520: /* Replace entry N */
ND_PRINT((ndo, " volid"));
INTOUT();
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
i = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
if (i <= 2)
case 504: /* Get entry by name */
{ uint32_t nservers, j;
VECOUT(VLNAMEMAX);
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
bp += sizeof(uint32_t);
ND_PRINT((ndo, " numservers"));
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
nservers = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
ND_PRINT((ndo, " %u", nservers));
ND_PRINT((ndo, " servers"));
for (i = 0; i < 8; i++) {
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
if (i < nservers)
ND_PRINT((ndo, " %s",
intoa(((const struct in_addr *) bp)->s_addr)));
}
ND_PRINT((ndo, " partitions"));
for (i = 0; i < 8; i++) {
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
if (i < nservers && j <= 26)
ND_PRINT((ndo, " %c", 'a' + j));
{ uint32_t nservers, j;
VECOUT(VLNAMEMAX);
ND_PRINT((ndo, " numservers"));
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
nservers = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
ND_PRINT((ndo, " %u", nservers));
ND_PRINT((ndo, " servers"));
for (i = 0; i < 13; i++) {
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
if (i < nservers)
ND_PRINT((ndo, " %s",
intoa(((const struct in_addr *) bp)->s_addr)));
}
ND_PRINT((ndo, " partitions"));
for (i = 0; i < 13; i++) {
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
if (i < nservers && j <= 26)
ND_PRINT((ndo, " %c", 'a' + j));
{ uint32_t nservers, j;
VECOUT(VLNAMEMAX);
ND_PRINT((ndo, " numservers"));
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
nservers = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
ND_PRINT((ndo, " %u", nservers));
bp += 4 * 13;
ND_PRINT((ndo, " partitions"));
for (i = 0; i < 13; i++) {
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
if (i < nservers && j <= 26)
ND_PRINT((ndo, " %c", 'a' + j));
* gleaned from kauth/kauth.rg
*/
- ND_TCHECK_32BITS(bp + sizeof(struct rx_header));
+ ND_TCHECK_4(bp + sizeof(struct rx_header));
kauth_op = EXTRACT_BE_32BITS(bp + sizeof(struct rx_header));
ND_PRINT((ndo, " kauth"));
INTOUT();
ND_PRINT((ndo, " domain"));
STROUT(KANAMEMAX);
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
i = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
ND_TCHECK2(bp[0], i);
* gleaned from volser/volint.xg
*/
- ND_TCHECK_32BITS(bp + sizeof(struct rx_header));
+ ND_TCHECK_4(bp + sizeof(struct rx_header));
vol_op = EXTRACT_BE_32BITS(bp + sizeof(struct rx_header));
ND_PRINT((ndo, " vol call %s", tok2str(vol_req, "op#%u", vol_op)));
DATEOUT();
{
uint32_t i, j;
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
for (i = 0; i < j; i++) {
case 121: /* List one volume */
{
uint32_t i, j;
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
j = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
for (i = 0; i < j; i++) {
* gleaned from bozo/bosint.xg
*/
- ND_TCHECK_32BITS(bp + sizeof(struct rx_header));
+ ND_TCHECK_4(bp + sizeof(struct rx_header));
bos_op = EXTRACT_BE_32BITS(bp + sizeof(struct rx_header));
ND_PRINT((ndo, " bos call %s", tok2str(bos_req, "op#%u", bos_op)));
switch (ubik_op) {
case 10000: /* Beacon */
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
temp = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
ND_PRINT((ndo, " syncsite %s", temp ? "yes" : "no"));
INTOUT();
ND_PRINT((ndo, " length"));
INTOUT();
- ND_TCHECK_32BITS(bp);
+ ND_TCHECK_4(bp);
temp = EXTRACT_BE_32BITS(bp);
bp += sizeof(uint32_t);
tok2str(ubik_lock_types, "type %u", temp);
if (ndo->ndo_vflag < 2)
return;
- ND_TCHECK_16BITS(&buf[10]);
+ ND_TCHECK_2(&buf[10]);
flags2 = EXTRACT_LE_16BITS(buf + 10);
unicodestr = flags2 & 0x8000;
nterrcodes = flags2 & 0x4000;
p = smb_fdata(ndo, p, "Name=[n1]\n#", maxbuf, 0);
if (p == NULL)
goto out;
- ND_TCHECK_16BITS(p);
+ ND_TCHECK_2(p);
restype = EXTRACT_BE_16BITS(p);
p = smb_fdata(ndo, p, "ResType=[rw]\nResClass=[rw]\nTTL=[rD]\n", p + 8, 0);
if (p == NULL)
goto out;
- ND_TCHECK_16BITS(p);
+ ND_TCHECK_2(p);
rdlen = EXTRACT_BE_16BITS(p);
ND_PRINT((ndo, "ResourceLength=%d\nResourceData=\n", rdlen));
p += 2;
(float) EXTRACT_BE_16BITS(&stp_bpdu->hello_time) / STP_TIME_BASE,
(float) EXTRACT_BE_16BITS(&stp_bpdu->forward_delay) / STP_TIME_BASE));
- ND_TCHECK_16BITS(ptr + MST_BPDU_VER3_LEN_OFFSET);
+ ND_TCHECK_2(ptr + MST_BPDU_VER3_LEN_OFFSET);
ND_PRINT((ndo, "\n\tv3len %d, ", EXTRACT_BE_16BITS(ptr + MST_BPDU_VER3_LEN_OFFSET)));
- ND_TCHECK_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 12);
+ ND_TCHECK_4(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 12);
ND_PRINT((ndo, "MCID Name "));
if (fn_printzp(ndo, ptr + MST_BPDU_CONFIG_NAME_OFFSET, 32, ndo->ndo_snapend))
goto trunc;
EXTRACT_BE_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 8),
EXTRACT_BE_32BITS(ptr + MST_BPDU_CONFIG_DIGEST_OFFSET + 12)));
- ND_TCHECK_32BITS(ptr + MST_BPDU_CIST_INT_PATH_COST_OFFSET);
+ ND_TCHECK_4(ptr + MST_BPDU_CIST_INT_PATH_COST_OFFSET);
ND_PRINT((ndo, "CIST int-root-pathcost %u,",
EXTRACT_BE_32BITS(ptr + MST_BPDU_CIST_INT_PATH_COST_OFFSET)));
ND_PRINT((ndo, "CIST remaining-hops %d", ptr[MST_BPDU_CIST_REMAIN_HOPS_OFFSET]));
/* Dump all MSTI's */
- ND_TCHECK_16BITS(ptr + MST_BPDU_VER3_LEN_OFFSET);
+ ND_TCHECK_2(ptr + MST_BPDU_VER3_LEN_OFFSET);
v3len = EXTRACT_BE_16BITS(ptr + MST_BPDU_VER3_LEN_OFFSET);
if (v3len > MST_BPDU_CONFIG_INFO_LENGTH) {
len = v3len - MST_BPDU_CONFIG_INFO_LENGTH;
}
ptr = (const u_char *)stp_bpdu;
- ND_TCHECK_32BITS(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET + 16);
+ ND_TCHECK_4(ptr + offset + SPB_BPDU_AGREEMENT_DIGEST_OFFSET + 16);
ND_PRINT((ndo, "\n\tv4len %d, ", EXTRACT_BE_16BITS(ptr + offset)));
ND_PRINT((ndo, "AUXMCID Name "));
}
/* Validate v3 length */
- ND_TCHECK_16BITS(p + MST_BPDU_VER3_LEN_OFFSET);
+ ND_TCHECK_2(p + MST_BPDU_VER3_LEN_OFFSET);
mstp_len = EXTRACT_BE_16BITS(p + MST_BPDU_VER3_LEN_OFFSET);
mstp_len += 2; /* length encoding itself is 2 bytes */
if (length < (sizeof(struct stp_bpdu_) + mstp_len)) {
if (stp_bpdu->protocol_version == STP_PROTO_SPB)
{
/* Validate v4 length */
- ND_TCHECK_16BITS(p + MST_BPDU_VER3_LEN_OFFSET + mstp_len);
+ ND_TCHECK_2(p + MST_BPDU_VER3_LEN_OFFSET + mstp_len);
spb_len = EXTRACT_BE_16BITS(p + MST_BPDU_VER3_LEN_OFFSET + mstp_len);
spb_len += 2;
if (length < (sizeof(struct stp_bpdu_) + mstp_len + spb_len) ||
/* Print tftp request type */
if (length < 2)
goto trunc;
- ND_TCHECK_16BITS(bp);
+ ND_TCHECK_2(bp);
opcode = EXTRACT_BE_16BITS(bp);
cp = tok2str(op2str, "tftp-#%d", opcode);
ND_PRINT((ndo, " %s", cp));
case DATA:
if (length < 2)
goto trunc; /* no block number */
- ND_TCHECK_16BITS(bp);
+ ND_TCHECK_2(bp);
ND_PRINT((ndo, " block %d", EXTRACT_BE_16BITS(bp)));
break;
/* Print error code string */
if (length < 2)
goto trunc; /* no error code */
- ND_TCHECK_16BITS(bp);
+ ND_TCHECK_2(bp);
ND_PRINT((ndo, " %s", tok2str(err2str, "tftp-err-#%d \"",
EXTRACT_BE_16BITS(bp))));
bp += 2;
/* vat/vt audio */
u_int ts;
- ND_TCHECK_16BITS((const u_int *)hdr);
+ ND_TCHECK_2((const u_int *)hdr);
ts = EXTRACT_BE_16BITS(hdr);
if ((ts & 0xf060) != 0) {
/* probably vt */
- ND_TCHECK_16BITS(&up->uh_ulen);
+ ND_TCHECK_2(&up->uh_ulen);
ND_PRINT((ndo, "udp/vt %u %d / %d",
(uint32_t)(EXTRACT_BE_16BITS(&up->uh_ulen) - sizeof(*up)),
ts & 0x3ff, ts >> 10));
/* probably vat */
uint32_t i0, i1;
- ND_TCHECK_32BITS(&((const u_int *)hdr)[0]);
+ ND_TCHECK_4(&((const u_int *)hdr)[0]);
i0 = EXTRACT_BE_32BITS(&((const u_int *)hdr)[0]);
- ND_TCHECK_32BITS(&((const u_int *)hdr)[1]);
+ ND_TCHECK_4(&((const u_int *)hdr)[1]);
i1 = EXTRACT_BE_32BITS(&((const u_int *)hdr)[1]);
- ND_TCHECK_16BITS(&up->uh_ulen);
+ ND_TCHECK_2(&up->uh_ulen);
ND_PRINT((ndo, "udp/vat %u c%d %u%s",
(uint32_t)(EXTRACT_BE_16BITS(&up->uh_ulen) - sizeof(*up) - 8),
i0 & 0xffff,
uint32_t i0, i1;
const char * ptype;
- ND_TCHECK_32BITS(&((const u_int *)hdr)[0]);
+ ND_TCHECK_4(&((const u_int *)hdr)[0]);
i0 = EXTRACT_BE_32BITS(&((const u_int *)hdr)[0]);
- ND_TCHECK_32BITS(&((const u_int *)hdr)[1]);
+ ND_TCHECK_4(&((const u_int *)hdr)[1]);
i1 = EXTRACT_BE_32BITS(&((const u_int *)hdr)[1]);
- ND_TCHECK_16BITS(&up->uh_ulen);
+ ND_TCHECK_2(&up->uh_ulen);
dlen = EXTRACT_BE_16BITS(&up->uh_ulen) - sizeof(*up) - 8;
ip += 2;
len >>= 2;
i0 & 0xffff,
i1));
if (ndo->ndo_vflag) {
- ND_TCHECK_32BITS(&((const u_int *)hdr)[2]);
+ ND_TCHECK_4(&((const u_int *)hdr)[2]);
ND_PRINT((ndo, " %u", EXTRACT_BE_32BITS(&((const u_int *)hdr)[2])));
if (hasopt) {
u_int i2, optlen;
do {
- ND_TCHECK_32BITS(ip);
+ ND_TCHECK_4(ip);
i2 = EXTRACT_BE_32BITS(ip);
optlen = (i2 >> 16) & 0xff;
if (optlen == 0 || optlen > len) {
}
if (hasext) {
u_int i2, extlen;
- ND_TCHECK_32BITS(ip);
+ ND_TCHECK_4(ip);
i2 = EXTRACT_BE_32BITS(ip);
extlen = (i2 & 0xffff) + 1;
if (extlen > len) {
}
ip += extlen;
}
- ND_TCHECK_32BITS(ip);
+ ND_TCHECK_4(ip);
if (contype == 0x1f) /*XXX H.261 */
ND_PRINT((ndo, " 0x%04x", EXTRACT_BE_32BITS(ip) >> 16));
}
*
*/
- ND_TCHECK_32BITS(tptr);
+ ND_TCHECK_4(tptr);
ND_PRINT((ndo, ", Config Rev %x", EXTRACT_BE_32BITS(tptr)));
/*
tptr += 4;
while (tptr < (pptr+length)) {
- ND_TCHECK_8BITS(tptr);
+ ND_TCHECK_1(tptr);
len = *tptr;
if (len == 0)
break;