From eaeaece2393b7ec85d03c4c3a5985c2fb12c7130 Mon Sep 17 00:00:00 2001 From: Bastian Bloessl Date: Tue, 14 Apr 2015 10:56:19 +0200 Subject: [PATCH] mac: always remove header --- grc/ieee802_11_ofdm_mac.xml | 18 +----------------- include/ieee802-11/ofdm_mac.h | 3 +-- lib/ofdm_mac.cc | 30 +++++++++++++----------------- 3 files changed, 15 insertions(+), 36 deletions(-) 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)); }