length -= cf.length;
break;
}
- memcpy(&cf.count, p + offset, 6);
- offset += 6;
- length -= 6;
+ cf.count = GET_U_1(p + offset);
+ offset += 1;
+ length -= 1;
+ cf.period = GET_U_1(p + offset);
+ offset += 1;
+ length -= 1;
+ cf.max_duration = GET_LE_U_2(p + offset);
+ offset += 2;
+ length -= 2;
+ cf.dur_remaining = GET_LE_U_2(p + offset);
+ offset += 2;
+ length -= 2;
/*
* Present and not truncated.
*
}
if (tim.length - 3U > sizeof(tim.bitmap))
return 0;
- memcpy(&tim.count, p + offset, 3);
- offset += 3;
- length -= 3;
-
+ tim.count = GET_U_1(p + offset);
+ offset += 1;
+ length -= 1;
+ tim.period = GET_U_1(p + offset);
+ offset += 1;
+ length -= 1;
+ tim.bitmap_control = GET_U_1(p + offset);
+ offset += 1;
+ length -= 1;
memcpy(tim.bitmap, p + offset, tim.length - 3);
offset += tim.length - 3;
length -= tim.length - 3;
}
} else {
if (!FC_FROM_DS(fc)) {
- /* From DS and not To DS */
+ /* To DS and not From DS */
*srcp = ADDR2;
*dstp = ADDR3;
} else {
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;
}