summaryrefslogtreecommitdiff
path: root/wiretap/commview.c
diff options
context:
space:
mode:
authorSimon Barber <simon.barber@meraki.net>2015-12-09 14:26:46 -0800
committerGuy Harris <guy@alum.mit.edu>2015-12-24 07:58:51 +0000
commitffa9e938e24779470c664ea8eca1e452ce025f97 (patch)
tree907bfdf175cdfd1ac3694b2ca9de9ca452f33020 /wiretap/commview.c
parent1ffd4398504d5bc69c322fd64e826fa7eb22ed3b (diff)
downloadwireshark-ffa9e938e24779470c664ea8eca1e452ce025f97.tar.gz
Refactor 802.11 radio flags.
The use of a flag field here is aesthetically unpleasing when the flags are referred to frequently. Convert these into bitfield entries. Change-Id: I6f47e31558439dfd343ec7f856d04480366a1237 Reviewed-on: https://code.wireshark.org/review/12511 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu>
Diffstat (limited to 'wiretap/commview.c')
-rw-r--r--wiretap/commview.c78
1 files changed, 34 insertions, 44 deletions
diff --git a/wiretap/commview.c b/wiretap/commview.c
index 1d99fbc051..ec89dda834 100644
--- a/wiretap/commview.c
+++ b/wiretap/commview.c
@@ -156,20 +156,16 @@ commview_read_packet(FILE_T fh, struct wtap_pkthdr *phdr, Buffer *buf,
case MEDIUM_WIFI :
phdr->pkt_encap = WTAP_ENCAP_IEEE_802_11_WITH_RADIO;
+ memset(&phdr->pseudo_header.ieee_802_11, 0, sizeof(phdr->pseudo_header.ieee_802_11));
phdr->pseudo_header.ieee_802_11.fcs_len = -1; /* Unknown */
phdr->pseudo_header.ieee_802_11.decrypted = FALSE;
phdr->pseudo_header.ieee_802_11.datapad = FALSE;
phdr->pseudo_header.ieee_802_11.phy = PHDR_802_11_PHY_UNKNOWN;
- phdr->pseudo_header.ieee_802_11.presence_flags =
- PHDR_802_11_HAS_CHANNEL |
- PHDR_802_11_HAS_DATA_RATE |
- PHDR_802_11_HAS_SIGNAL_PERCENT;
switch (cv_hdr.band) {
case BAND_11A:
phdr->pseudo_header.ieee_802_11.phy = PHDR_802_11_PHY_11A;
- phdr->pseudo_header.ieee_802_11.phy_info.info_11a.presence_flags =
- PHDR_802_11A_HAS_TURBO_TYPE;
+ phdr->pseudo_header.ieee_802_11.phy_info.info_11a.has_turbo_type = TRUE;
phdr->pseudo_header.ieee_802_11.phy_info.info_11a.turbo_type =
PHDR_802_11A_TURBO_TYPE_NORMAL;
frequency = ieee80211_chan_to_mhz(cv_hdr.channel, FALSE);
@@ -177,14 +173,12 @@ commview_read_packet(FILE_T fh, struct wtap_pkthdr *phdr, Buffer *buf,
case BAND_11B:
phdr->pseudo_header.ieee_802_11.phy = PHDR_802_11_PHY_11B;
- phdr->pseudo_header.ieee_802_11.phy_info.info_11b.presence_flags = 0;
frequency = ieee80211_chan_to_mhz(cv_hdr.channel, TRUE);
break;
case BAND_11G:
phdr->pseudo_header.ieee_802_11.phy = PHDR_802_11_PHY_11G;
- phdr->pseudo_header.ieee_802_11.phy_info.info_11g.presence_flags =
- PHDR_802_11G_HAS_MODE;
+ phdr->pseudo_header.ieee_802_11.phy_info.info_11g.has_mode = TRUE;
phdr->pseudo_header.ieee_802_11.phy_info.info_11g.mode =
PHDR_802_11G_MODE_NORMAL;
frequency = ieee80211_chan_to_mhz(cv_hdr.channel, TRUE);
@@ -192,8 +186,7 @@ commview_read_packet(FILE_T fh, struct wtap_pkthdr *phdr, Buffer *buf,
case BAND_11A_TURBO:
phdr->pseudo_header.ieee_802_11.phy = PHDR_802_11_PHY_11A;
- phdr->pseudo_header.ieee_802_11.phy_info.info_11a.presence_flags =
- PHDR_802_11A_HAS_TURBO_TYPE;
+ phdr->pseudo_header.ieee_802_11.phy_info.info_11a.has_turbo_type = TRUE;
phdr->pseudo_header.ieee_802_11.phy_info.info_11a.turbo_type =
PHDR_802_11A_TURBO_TYPE_TURBO;
frequency = ieee80211_chan_to_mhz(cv_hdr.channel, FALSE);
@@ -201,8 +194,7 @@ commview_read_packet(FILE_T fh, struct wtap_pkthdr *phdr, Buffer *buf,
case BAND_SUPERG:
phdr->pseudo_header.ieee_802_11.phy = PHDR_802_11_PHY_11G;
- phdr->pseudo_header.ieee_802_11.phy_info.info_11g.presence_flags =
- PHDR_802_11G_HAS_MODE;
+ phdr->pseudo_header.ieee_802_11.phy_info.info_11g.has_mode = TRUE;
phdr->pseudo_header.ieee_802_11.phy_info.info_11g.mode =
PHDR_802_11G_MODE_SUPER_G;
frequency = ieee80211_chan_to_mhz(cv_hdr.channel, TRUE);
@@ -210,15 +202,11 @@ commview_read_packet(FILE_T fh, struct wtap_pkthdr *phdr, Buffer *buf,
case BAND_11N_5GHZ:
phdr->pseudo_header.ieee_802_11.phy = PHDR_802_11_PHY_11N;
- phdr->pseudo_header.ieee_802_11.phy_info.info_11n.presence_flags =
- 0;
frequency = ieee80211_chan_to_mhz(cv_hdr.channel, FALSE);
break;
case BAND_11N_2_4GHZ:
phdr->pseudo_header.ieee_802_11.phy = PHDR_802_11_PHY_11N;
- phdr->pseudo_header.ieee_802_11.phy_info.info_11n.presence_flags =
- 0;
frequency = ieee80211_chan_to_mhz(cv_hdr.channel, TRUE);
break;
@@ -236,13 +224,17 @@ commview_read_packet(FILE_T fh, struct wtap_pkthdr *phdr, Buffer *buf,
break;
}
if (frequency != 0) {
- phdr->pseudo_header.ieee_802_11.presence_flags |=
- PHDR_802_11_HAS_FREQUENCY;
+ phdr->pseudo_header.ieee_802_11.has_frequency = TRUE;
phdr->pseudo_header.ieee_802_11.frequency = frequency;
}
+ phdr->pseudo_header.ieee_802_11.has_channel = TRUE;
phdr->pseudo_header.ieee_802_11.channel = cv_hdr.channel;
+
+ phdr->pseudo_header.ieee_802_11.has_data_rate = TRUE;
phdr->pseudo_header.ieee_802_11.data_rate =
cv_hdr.rate | (cv_hdr.direction << 8);
+
+ phdr->pseudo_header.ieee_802_11.has_signal_percent = TRUE;
phdr->pseudo_header.ieee_802_11.signal_percent = cv_hdr.signal_level_percent;
/*
@@ -257,13 +249,11 @@ commview_read_packet(FILE_T fh, struct wtap_pkthdr *phdr, Buffer *buf,
*/
if (cv_hdr.signal_level_dbm != 0) {
phdr->pseudo_header.ieee_802_11.signal_dbm = -cv_hdr.signal_level_dbm;
- phdr->pseudo_header.ieee_802_11.presence_flags |=
- PHDR_802_11_HAS_SIGNAL_DBM;
+ phdr->pseudo_header.ieee_802_11.has_signal_dbm = TRUE;
}
if (cv_hdr.noise_level != 0) {
phdr->pseudo_header.ieee_802_11.noise_dbm = -cv_hdr.noise_level;
- phdr->pseudo_header.ieee_802_11.presence_flags |=
- PHDR_802_11_HAS_NOISE_DBM;
+ phdr->pseudo_header.ieee_802_11.has_noise_dbm = TRUE;
}
break;
@@ -455,7 +445,7 @@ static gboolean commview_dump(wtap_dumper *wdh,
* If we don't know whether it's turbo, say it's
* not.
*/
- if (!(phdr->pseudo_header.ieee_802_11.phy_info.info_11a.presence_flags & PHDR_802_11A_HAS_TURBO_TYPE) ||
+ if (!phdr->pseudo_header.ieee_802_11.phy_info.info_11a.has_turbo_type ||
phdr->pseudo_header.ieee_802_11.phy_info.info_11a.turbo_type == PHDR_802_11A_TURBO_TYPE_NORMAL)
cv_hdr.band = BAND_11A;
else
@@ -471,7 +461,7 @@ static gboolean commview_dump(wtap_dumper *wdh,
* If we don't know whether it's Super G, say it's
* not.
*/
- if (!(phdr->pseudo_header.ieee_802_11.phy_info.info_11g.presence_flags & PHDR_802_11G_HAS_MODE))
+ if (!phdr->pseudo_header.ieee_802_11.phy_info.info_11g.has_mode)
cv_hdr.band = BAND_11G;
else {
switch (phdr->pseudo_header.ieee_802_11.phy_info.info_11g.mode) {
@@ -495,7 +485,7 @@ static gboolean commview_dump(wtap_dumper *wdh,
/*
* Pick the band based on the frequency.
*/
- if (phdr->pseudo_header.ieee_802_11.presence_flags & PHDR_802_11_HAS_FREQUENCY) {
+ if (phdr->pseudo_header.ieee_802_11.has_frequency) {
if (phdr->pseudo_header.ieee_802_11.frequency > 2484) {
/* 5 GHz band */
cv_hdr.band = BAND_11N_5GHZ;
@@ -518,29 +508,29 @@ static gboolean commview_dump(wtap_dumper *wdh,
break;
}
cv_hdr.channel =
- (phdr->pseudo_header.ieee_802_11.presence_flags & PHDR_802_11_HAS_CHANNEL) ?
- phdr->pseudo_header.ieee_802_11.channel :
- 0;
+ phdr->pseudo_header.ieee_802_11.has_channel ?
+ phdr->pseudo_header.ieee_802_11.channel :
+ 0;
cv_hdr.rate =
- (phdr->pseudo_header.ieee_802_11.presence_flags & PHDR_802_11_HAS_DATA_RATE) ?
- (guint8)(phdr->pseudo_header.ieee_802_11.data_rate & 0xFF) :
- 0;
+ phdr->pseudo_header.ieee_802_11.has_data_rate ?
+ (guint8)(phdr->pseudo_header.ieee_802_11.data_rate & 0xFF) :
+ 0;
cv_hdr.direction =
- (phdr->pseudo_header.ieee_802_11.presence_flags & PHDR_802_11_HAS_DATA_RATE) ?
- (guint8)((phdr->pseudo_header.ieee_802_11.data_rate >> 8) & 0xFF) :
- 0;
+ phdr->pseudo_header.ieee_802_11.has_data_rate ?
+ (guint8)((phdr->pseudo_header.ieee_802_11.data_rate >> 8) & 0xFF) :
+ 0;
cv_hdr.signal_level_percent =
- (phdr->pseudo_header.ieee_802_11.presence_flags & PHDR_802_11_HAS_SIGNAL_PERCENT) ?
- phdr->pseudo_header.ieee_802_11.signal_percent :
- 0;
+ phdr->pseudo_header.ieee_802_11.has_signal_percent ?
+ phdr->pseudo_header.ieee_802_11.signal_percent :
+ 0;
cv_hdr.signal_level_dbm =
- (phdr->pseudo_header.ieee_802_11.presence_flags & PHDR_802_11_HAS_SIGNAL_DBM) ?
- -phdr->pseudo_header.ieee_802_11.signal_dbm :
- 0;
+ phdr->pseudo_header.ieee_802_11.has_signal_dbm ?
+ -phdr->pseudo_header.ieee_802_11.signal_dbm :
+ 0;
cv_hdr.noise_level =
- (phdr->pseudo_header.ieee_802_11.presence_flags & PHDR_802_11_HAS_NOISE_DBM) ?
- -phdr->pseudo_header.ieee_802_11.noise_dbm :
- 0;
+ phdr->pseudo_header.ieee_802_11.has_noise_dbm ?
+ -phdr->pseudo_header.ieee_802_11.noise_dbm :
+ 0;
break;
case WTAP_ENCAP_TOKEN_RING :