diff --git a/grc/ieee802_11_ofdm_mac.xml b/grc/ieee802_11_ofdm_mac.xml
index 9bca984..4d6e48a 100644
--- a/grc/ieee802_11_ofdm_mac.xml
+++ b/grc/ieee802_11_ofdm_mac.xml
@@ -5,7 +5,7 @@
ieee802_11_ofdm_mac
IEEE802.11
import ieee802_11
- ieee802_11.ofdm_mac($src_mac, $dst_mac, $bss_mac, $strip_header)
+ ieee802_11.ofdm_mac($src_mac, $dst_mac, $bss_mac)
SRC MAC
@@ -28,22 +28,6 @@
int_vector
-
- Strip header
- strip_header
- False
- bool
-
-
-
-
-
len($src_mac) == 6
len($dst_mac) == 6
len($bss_mac) == 6
diff --git a/include/ieee802-11/ofdm_mac.h b/include/ieee802-11/ofdm_mac.h
index ea270b9..599b91d 100644
--- a/include/ieee802-11/ofdm_mac.h
+++ b/include/ieee802-11/ofdm_mac.h
@@ -30,8 +30,7 @@ public:
typedef boost::shared_ptr sptr;
static sptr make(std::vector src_mac,
std::vector dst_mac,
- std::vector bss_mac,
- bool strip_header);
+ std::vector bss_mac);
};
} // namespace ieee802_11
diff --git a/lib/ofdm_mac.cc b/lib/ofdm_mac.cc
index be90fc7..c763fc6 100644
--- a/lib/ofdm_mac.cc
+++ b/lib/ofdm_mac.cc
@@ -38,12 +38,11 @@ class ofdm_mac_impl : public ofdm_mac {
public:
-ofdm_mac_impl(std::vector src_mac, std::vector dst_mac, std::vector bss_mac, bool strip_header) :
+ofdm_mac_impl(std::vector src_mac, std::vector dst_mac, std::vector bss_mac) :
block("ofdm_mac",
gr::io_signature::make(0, 0, 0),
gr::io_signature::make(0, 0, 0)),
- d_seq_nr(0),
- d_strip_header(strip_header) {
+ d_seq_nr(0) {
message_port_register_out(pmt::mp("phy out"));
message_port_register_out(pmt::mp("app out"));
@@ -66,19 +65,17 @@ ofdm_mac_impl(std::vector src_mac, std::vector dst_mac, std::v
}
void phy_in (pmt::pmt_t msg) {
- if (d_strip_header) {
- // this must be a pair
- if (!pmt::is_blob(pmt::cdr(msg)))
- throw std::runtime_error("PMT must be blob");
+ // this must be a pair
+ if (!pmt::is_blob(pmt::cdr(msg)))
+ throw std::runtime_error("PMT must be blob");
- // strip MAC header and only leave PHY blob
- pmt::pmt_t blob(pmt::cdr(msg));
- const char *mpdu = reinterpret_cast(pmt::blob_data(blob));
- pmt::pmt_t msdu = pmt::make_blob(mpdu + 24, pmt::blob_length(blob) - 24);
+ // strip MAC header and CRC
+ pmt::pmt_t blob(pmt::cdr(msg));
+ const char *mpdu = reinterpret_cast(pmt::blob_data(blob));
+ pmt::pmt_t msdu = pmt::make_blob(mpdu + 24, pmt::blob_length(blob) - 24 - 4);
- // update original msg, note that the fcs is still there
- pmt::set_cdr(msg, msdu);
- }
+ // update msg
+ pmt::set_cdr(msg, msdu);
message_port_pub(pmt::mp("app out"), msg);
}
@@ -175,11 +172,10 @@ private:
uint8_t d_src_mac[6];
uint8_t d_dst_mac[6];
uint8_t d_bss_mac[6];
- bool d_strip_header;
};
ofdm_mac::sptr
-ofdm_mac::make(std::vector src_mac, std::vector dst_mac, std::vector bss_mac, bool strip_header) {
- return gnuradio::get_initial_sptr(new ofdm_mac_impl(src_mac, dst_mac, bss_mac, strip_header));
+ofdm_mac::make(std::vector src_mac, std::vector dst_mac, std::vector bss_mac) {
+ return gnuradio::get_initial_sptr(new ofdm_mac_impl(src_mac, dst_mac, bss_mac));
}