#include "cpack.h"
const uint8_t *
-cpack_next_boundary(const uint8_t *buf, const uint8_t *p, size_t alignment)
+nd_cpack_next_boundary(const uint8_t *buf, const uint8_t *p, size_t alignment)
{
size_t misalignment = (size_t)(p - buf) % alignment;
* return a pointer to the boundary.
*/
const uint8_t *
-cpack_align_and_reserve(struct cpack_state *cs, size_t wordsize)
+nd_cpack_align_and_reserve(struct cpack_state *cs, size_t wordsize)
{
const uint8_t *next;
/* Ensure alignment. */
- next = cpack_next_boundary(cs->c_buf, cs->c_next, wordsize);
+ next = nd_cpack_next_boundary(cs->c_buf, cs->c_next, wordsize);
/* Too little space for wordsize bytes? */
if (next - cs->c_buf + wordsize > cs->c_len)
/* Advance by N bytes without returning them. */
int
-cpack_advance(struct cpack_state *cs, const size_t toskip)
+nd_cpack_advance(struct cpack_state *cs, const size_t toskip)
{
/* No space left? */
if (cs->c_next - cs->c_buf + toskip > cs->c_len)
}
int
-cpack_init(struct cpack_state *cs, const uint8_t *buf, size_t buflen)
+nd_cpack_init(struct cpack_state *cs, const uint8_t *buf, size_t buflen)
{
memset(cs, 0, sizeof(*cs));
/* Unpack a 64-bit unsigned integer. */
int
-cpack_uint64(netdissect_options *ndo, struct cpack_state *cs, uint64_t *u)
+nd_cpack_uint64(netdissect_options *ndo, struct cpack_state *cs, uint64_t *u)
{
const uint8_t *next;
- if ((next = cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
+ if ((next = nd_cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
return -1;
*u = GET_LE_U_8(next);
/* Unpack a 64-bit signed integer. */
int
-cpack_int64(netdissect_options *ndo, struct cpack_state *cs, int64_t *u)
+nd_cpack_int64(netdissect_options *ndo, struct cpack_state *cs, int64_t *u)
{
const uint8_t *next;
- if ((next = cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
+ if ((next = nd_cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
return -1;
*u = GET_LE_S_8(next);
/* Unpack a 32-bit unsigned integer. */
int
-cpack_uint32(netdissect_options *ndo, struct cpack_state *cs, uint32_t *u)
+nd_cpack_uint32(netdissect_options *ndo, struct cpack_state *cs, uint32_t *u)
{
const uint8_t *next;
- if ((next = cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
+ if ((next = nd_cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
return -1;
*u = GET_LE_U_4(next);
/* Unpack a 32-bit signed integer. */
int
-cpack_int32(netdissect_options *ndo, struct cpack_state *cs, int32_t *u)
+nd_cpack_int32(netdissect_options *ndo, struct cpack_state *cs, int32_t *u)
{
const uint8_t *next;
- if ((next = cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
+ if ((next = nd_cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
return -1;
*u = GET_LE_S_4(next);
/* Unpack a 16-bit unsigned integer. */
int
-cpack_uint16(netdissect_options *ndo, struct cpack_state *cs, uint16_t *u)
+nd_cpack_uint16(netdissect_options *ndo, struct cpack_state *cs, uint16_t *u)
{
const uint8_t *next;
- if ((next = cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
+ if ((next = nd_cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
return -1;
*u = GET_LE_U_2(next);
/* Unpack a 16-bit signed integer. */
int
-cpack_int16(netdissect_options *ndo, struct cpack_state *cs, int16_t *u)
+nd_cpack_int16(netdissect_options *ndo, struct cpack_state *cs, int16_t *u)
{
const uint8_t *next;
- if ((next = cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
+ if ((next = nd_cpack_align_and_reserve(cs, sizeof(*u))) == NULL)
return -1;
*u = GET_LE_S_2(next);
/* Unpack an 8-bit unsigned integer. */
int
-cpack_uint8(netdissect_options *ndo, struct cpack_state *cs, uint8_t *u)
+nd_cpack_uint8(netdissect_options *ndo, struct cpack_state *cs, uint8_t *u)
{
/* No space left? */
if ((size_t)(cs->c_next - cs->c_buf) >= cs->c_len)
/* Unpack an 8-bit signed integer. */
int
-cpack_int8(netdissect_options *ndo, struct cpack_state *cs, int8_t *u)
+nd_cpack_int8(netdissect_options *ndo, struct cpack_state *cs, int8_t *u)
{
/* No space left? */
if ((size_t)(cs->c_next - cs->c_buf) >= cs->c_len)
size_t c_len;
};
-int cpack_init(struct cpack_state *, const uint8_t *, size_t);
+int nd_cpack_init(struct cpack_state *, const uint8_t *, size_t);
-int cpack_uint8(netdissect_options *, struct cpack_state *, uint8_t *);
-int cpack_int8(netdissect_options *, struct cpack_state *, int8_t *);
-int cpack_uint16(netdissect_options *, struct cpack_state *, uint16_t *);
-int cpack_int16(netdissect_options *, struct cpack_state *, int16_t *);
-int cpack_uint32(netdissect_options *, struct cpack_state *, uint32_t *);
-int cpack_int32(netdissect_options *, struct cpack_state *, int32_t *);
-int cpack_uint64(netdissect_options *, struct cpack_state *, uint64_t *);
-int cpack_int64(netdissect_options *, struct cpack_state *, int64_t *);
+int nd_cpack_uint8(netdissect_options *, struct cpack_state *, uint8_t *);
+int nd_cpack_int8(netdissect_options *, struct cpack_state *, int8_t *);
+int nd_cpack_uint16(netdissect_options *, struct cpack_state *, uint16_t *);
+int nd_cpack_int16(netdissect_options *, struct cpack_state *, int16_t *);
+int nd_cpack_uint32(netdissect_options *, struct cpack_state *, uint32_t *);
+int nd_cpack_int32(netdissect_options *, struct cpack_state *, int32_t *);
+int nd_cpack_uint64(netdissect_options *, struct cpack_state *, uint64_t *);
+int nd_cpack_int64(netdissect_options *, struct cpack_state *, int64_t *);
-const uint8_t *cpack_next_boundary(const uint8_t *buf, const uint8_t *p, size_t alignment);
-const uint8_t *cpack_align_and_reserve(struct cpack_state *cs, size_t wordsize);
+const uint8_t *nd_cpack_next_boundary(const uint8_t *buf, const uint8_t *p, size_t alignment);
+const uint8_t *nd_cpack_align_and_reserve(struct cpack_state *cs, size_t wordsize);
-extern int cpack_advance(struct cpack_state *, const size_t);
+extern int nd_cpack_advance(struct cpack_state *, const size_t);
#endif /* ND_CPACK_H */
case IEEE80211_RADIOTAP_TSFT: {
uint64_t tsft;
- rc = cpack_uint64(ndo, s, &tsft);
+ rc = nd_cpack_uint64(ndo, s, &tsft);
if (rc != 0)
goto trunc;
ND_PRINT("%" PRIu64 "us tsft ", tsft);
case IEEE80211_RADIOTAP_FLAGS: {
uint8_t flagsval;
- rc = cpack_uint8(ndo, s, &flagsval);
+ rc = nd_cpack_uint8(ndo, s, &flagsval);
if (rc != 0)
goto trunc;
*flagsp = flagsval;
case IEEE80211_RADIOTAP_RATE: {
uint8_t rate;
- rc = cpack_uint8(ndo, s, &rate);
+ rc = nd_cpack_uint8(ndo, s, &rate);
if (rc != 0)
goto trunc;
/*
uint16_t frequency;
uint16_t flags;
- rc = cpack_uint16(ndo, s, &frequency);
+ rc = nd_cpack_uint16(ndo, s, &frequency);
if (rc != 0)
goto trunc;
- rc = cpack_uint16(ndo, s, &flags);
+ rc = nd_cpack_uint16(ndo, s, &flags);
if (rc != 0)
goto trunc;
/*
uint8_t hopset;
uint8_t hoppat;
- rc = cpack_uint8(ndo, s, &hopset);
+ rc = nd_cpack_uint8(ndo, s, &hopset);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &hoppat);
+ rc = nd_cpack_uint8(ndo, s, &hoppat);
if (rc != 0)
goto trunc;
ND_PRINT("fhset %u fhpat %u ", hopset, hoppat);
case IEEE80211_RADIOTAP_DBM_ANTSIGNAL: {
int8_t dbm_antsignal;
- rc = cpack_int8(ndo, s, &dbm_antsignal);
+ rc = nd_cpack_int8(ndo, s, &dbm_antsignal);
if (rc != 0)
goto trunc;
ND_PRINT("%ddBm signal ", dbm_antsignal);
case IEEE80211_RADIOTAP_DBM_ANTNOISE: {
int8_t dbm_antnoise;
- rc = cpack_int8(ndo, s, &dbm_antnoise);
+ rc = nd_cpack_int8(ndo, s, &dbm_antnoise);
if (rc != 0)
goto trunc;
ND_PRINT("%ddBm noise ", dbm_antnoise);
case IEEE80211_RADIOTAP_LOCK_QUALITY: {
uint16_t lock_quality;
- rc = cpack_uint16(ndo, s, &lock_quality);
+ rc = nd_cpack_uint16(ndo, s, &lock_quality);
if (rc != 0)
goto trunc;
ND_PRINT("%u sq ", lock_quality);
case IEEE80211_RADIOTAP_TX_ATTENUATION: {
int16_t tx_attenuation;
- rc = cpack_int16(ndo, s, &tx_attenuation);
+ rc = nd_cpack_int16(ndo, s, &tx_attenuation);
if (rc != 0)
goto trunc;
ND_PRINT("%d tx power ", -tx_attenuation);
case IEEE80211_RADIOTAP_DB_TX_ATTENUATION: {
int8_t db_tx_attenuation;
- rc = cpack_int8(ndo, s, &db_tx_attenuation);
+ rc = nd_cpack_int8(ndo, s, &db_tx_attenuation);
if (rc != 0)
goto trunc;
ND_PRINT("%ddB tx attenuation ", -db_tx_attenuation);
case IEEE80211_RADIOTAP_DBM_TX_POWER: {
int8_t dbm_tx_power;
- rc = cpack_int8(ndo, s, &dbm_tx_power);
+ rc = nd_cpack_int8(ndo, s, &dbm_tx_power);
if (rc != 0)
goto trunc;
ND_PRINT("%ddBm tx power ", dbm_tx_power);
case IEEE80211_RADIOTAP_ANTENNA: {
uint8_t antenna;
- rc = cpack_uint8(ndo, s, &antenna);
+ rc = nd_cpack_uint8(ndo, s, &antenna);
if (rc != 0)
goto trunc;
ND_PRINT("antenna %u ", antenna);
case IEEE80211_RADIOTAP_DB_ANTSIGNAL: {
uint8_t db_antsignal;
- rc = cpack_uint8(ndo, s, &db_antsignal);
+ rc = nd_cpack_uint8(ndo, s, &db_antsignal);
if (rc != 0)
goto trunc;
ND_PRINT("%udB signal ", db_antsignal);
case IEEE80211_RADIOTAP_DB_ANTNOISE: {
uint8_t db_antnoise;
- rc = cpack_uint8(ndo, s, &db_antnoise);
+ rc = nd_cpack_uint8(ndo, s, &db_antnoise);
if (rc != 0)
goto trunc;
ND_PRINT("%udB noise ", db_antnoise);
case IEEE80211_RADIOTAP_RX_FLAGS: {
uint16_t rx_flags;
- rc = cpack_uint16(ndo, s, &rx_flags);
+ rc = nd_cpack_uint16(ndo, s, &rx_flags);
if (rc != 0)
goto trunc;
/* Do nothing for now */
uint8_t channel;
uint8_t maxpower;
- rc = cpack_uint32(ndo, s, &flags);
+ rc = nd_cpack_uint32(ndo, s, &flags);
if (rc != 0)
goto trunc;
- rc = cpack_uint16(ndo, s, &frequency);
+ rc = nd_cpack_uint16(ndo, s, &frequency);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &channel);
+ rc = nd_cpack_uint8(ndo, s, &channel);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &maxpower);
+ rc = nd_cpack_uint8(ndo, s, &maxpower);
if (rc != 0)
goto trunc;
print_chaninfo(ndo, frequency, flags, presentflags);
};
float htrate;
- rc = cpack_uint8(ndo, s, &known);
+ rc = nd_cpack_uint8(ndo, s, &known);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &flags);
+ rc = nd_cpack_uint8(ndo, s, &flags);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &mcs_index);
+ rc = nd_cpack_uint8(ndo, s, &mcs_index);
if (rc != 0)
goto trunc;
if (known & IEEE80211_RADIOTAP_MCS_MCS_INDEX_KNOWN) {
uint8_t delim_crc;
uint8_t reserved;
- rc = cpack_uint32(ndo, s, &reference_num);
+ rc = nd_cpack_uint32(ndo, s, &reference_num);
if (rc != 0)
goto trunc;
- rc = cpack_uint16(ndo, s, &flags);
+ rc = nd_cpack_uint16(ndo, s, &flags);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &delim_crc);
+ rc = nd_cpack_uint8(ndo, s, &delim_crc);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &reserved);
+ rc = nd_cpack_uint8(ndo, s, &reserved);
if (rc != 0)
goto trunc;
/* Do nothing for now */
"unknown (31)"
};
- rc = cpack_uint16(ndo, s, &known);
+ rc = nd_cpack_uint16(ndo, s, &known);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &flags);
+ rc = nd_cpack_uint8(ndo, s, &flags);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &bandwidth);
+ rc = nd_cpack_uint8(ndo, s, &bandwidth);
if (rc != 0)
goto trunc;
for (i = 0; i < 4; i++) {
- rc = cpack_uint8(ndo, s, &mcs_nss[i]);
+ rc = nd_cpack_uint8(ndo, s, &mcs_nss[i]);
if (rc != 0)
goto trunc;
}
- rc = cpack_uint8(ndo, s, &coding);
+ rc = nd_cpack_uint8(ndo, s, &coding);
if (rc != 0)
goto trunc;
- rc = cpack_uint8(ndo, s, &group_id);
+ rc = nd_cpack_uint8(ndo, s, &group_id);
if (rc != 0)
goto trunc;
- rc = cpack_uint16(ndo, s, &partial_aid);
+ rc = nd_cpack_uint16(ndo, s, &partial_aid);
if (rc != 0)
goto trunc;
for (i = 0; i < 4; i++) {
nd_print_trunc(ndo);
return caplen;
}
- cpack_init(&cpacker, (const uint8_t *)hdr, len); /* align against header start */
- cpack_advance(&cpacker, sizeof(*hdr)); /* includes the 1st bitmap */
+ nd_cpack_init(&cpacker, (const uint8_t *)hdr, len); /* align against header start */
+ nd_cpack_advance(&cpacker, sizeof(*hdr)); /* includes the 1st bitmap */
for (last_presentp = &hdr->it_present;
(const u_char*)(last_presentp + 1) <= p + len &&
IS_EXTENDED(last_presentp);
last_presentp++)
- cpack_advance(&cpacker, sizeof(hdr->it_present)); /* more bitmaps */
+ nd_cpack_advance(&cpacker, sizeof(hdr->it_present)); /* more bitmaps */
/* are there more bitmap extensions than bytes in header? */
if ((const u_char*)(last_presentp + 1) > p + len) {
* it'd be added here; use vendor_oui and
* vendor_subnamespace to interpret the fields.
*/
- if (cpack_advance(&cpacker, skip_length) != 0) {
+ if (nd_cpack_advance(&cpacker, skip_length) != 0) {
/*
* Ran out of space in the packet.
*/
*/
bit0 = 0;
vendor_namespace = 1;
- if ((cpack_align_and_reserve(&cpacker, 2)) == NULL) {
+ if ((nd_cpack_align_and_reserve(&cpacker, 2)) == NULL) {
nd_print_trunc(ndo);
break;
}
- if (cpack_uint8(ndo, &cpacker, &vendor_oui[0]) != 0) {
+ if (nd_cpack_uint8(ndo, &cpacker, &vendor_oui[0]) != 0) {
nd_print_trunc(ndo);
break;
}
- if (cpack_uint8(ndo, &cpacker, &vendor_oui[1]) != 0) {
+ if (nd_cpack_uint8(ndo, &cpacker, &vendor_oui[1]) != 0) {
nd_print_trunc(ndo);
break;
}
- if (cpack_uint8(ndo, &cpacker, &vendor_oui[2]) != 0) {
+ if (nd_cpack_uint8(ndo, &cpacker, &vendor_oui[2]) != 0) {
nd_print_trunc(ndo);
break;
}
- if (cpack_uint8(ndo, &cpacker, &vendor_subnamespace) != 0) {
+ if (nd_cpack_uint8(ndo, &cpacker, &vendor_subnamespace) != 0) {
nd_print_trunc(ndo);
break;
}
- if (cpack_uint16(ndo, &cpacker, &skip_length) != 0) {
+ if (nd_cpack_uint16(ndo, &cpacker, &skip_length) != 0) {
nd_print_trunc(ndo);
break;
}