- switch (FC_SUBTYPE(fc)) {
- case DATA_DATA:
- case DATA_NODATA:
- break;
- case DATA_DATA_CF_ACK:
- case DATA_NODATA_CF_ACK:
- printf("CF Ack ");
- break;
- case DATA_DATA_CF_POLL:
- case DATA_NODATA_CF_POLL:
- printf("CF Poll ");
- break;
- case DATA_DATA_CF_ACK_POLL:
- case DATA_NODATA_CF_ACK_POLL:
- printf("CF Ack/Poll ");
- break;
+ u_int subtype = FC_SUBTYPE(fc);
+
+ if (DATA_FRAME_IS_CF_ACK(subtype) || DATA_FRAME_IS_CF_POLL(subtype) ||
+ DATA_FRAME_IS_QOS(subtype)) {
+ printf("CF ");
+ if (DATA_FRAME_IS_CF_ACK(subtype)) {
+ if (DATA_FRAME_IS_CF_POLL(subtype))
+ printf("Ack/Poll");
+ else
+ printf("Ack");
+ } else {
+ if (DATA_FRAME_IS_CF_POLL(subtype))
+ printf("Poll");
+ }
+ if (DATA_FRAME_IS_QOS(subtype))
+ printf("+QoS");
+ printf(" ");