#define _NETINET6_AH_H_
struct ah {
- uint8_t ah_nxt; /* Next Header */
- uint8_t ah_len; /* Length of data, in 32bit */
- uint16_t ah_reserve; /* Reserved for future use */
- uint32_t ah_spi; /* Security parameter index */
+ nd_uint8_t ah_nxt; /* Next Header */
+ nd_uint8_t ah_len; /* Length of data, in 32bit */
+ nd_uint16_t ah_reserve; /* Reserved for future use */
+ nd_uint32_t ah_spi; /* Security parameter index */
/* variable size, 32bit bound*/ /* Authentication data */
};
struct newah {
- uint8_t ah_nxt; /* Next Header */
- uint8_t ah_len; /* Length of data + 1, in 32bit */
- uint16_t ah_reserve; /* Reserved for future use */
- uint32_t ah_spi; /* Security parameter index */
- uint32_t ah_seq; /* Sequence number field */
+ nd_uint8_t ah_nxt; /* Next Header */
+ nd_uint8_t ah_len; /* Length of data + 1, in 32bit */
+ nd_uint16_t ah_reserve; /* Reserved for future use */
+ nd_uint32_t ah_spi; /* Security parameter index */
+ nd_uint32_t ah_seq; /* Sequence number field */
/* variable size, 32bit bound*/ /* Authentication data */
};
#include <netdissect-stdinc.h>
-#include "ah.h"
-
#include "netdissect.h"
#include "extract.h"
+#include "ah.h"
+
int
ah_print(netdissect_options *ndo, const u_char *bp)
{
ND_TCHECK(*ah);
- sumlen = ah->ah_len << 2;
+ sumlen = EXTRACT_U_1(ah->ah_len) << 2;
- ND_PRINT((ndo, "AH(spi=0x%08x", EXTRACT_BE_U_4(&ah->ah_spi)));
+ ND_PRINT((ndo, "AH(spi=0x%08x", EXTRACT_BE_U_4(ah->ah_spi)));
if (ndo->ndo_vflag)
ND_PRINT((ndo, ",sumlen=%d", sumlen));
ND_TCHECK_4(ah + 1);
ah = (const struct ah *)bp;
if (!ND_TTEST(ah->ah_len))
return(NULL);
- nh = ah->ah_nxt;
- hlen = (ah->ah_len + 2) << 2;
+ nh = EXTRACT_U_1(ah->ah_nxt);
+ hlen = (EXTRACT_U_1(ah->ah_len) + 2) << 2;
break;
default: /* unknown or undecodable header */