From 73095d93f3384f6bffb35c58be58cd4debfd6d3d Mon Sep 17 00:00:00 2001 From: Bastian Bloessl Date: Fri, 18 Jul 2014 14:30:50 +0200 Subject: [PATCH] mac: add csma parameter --- lib/ofdm_mac.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lib/ofdm_mac.cc b/lib/ofdm_mac.cc index 17c6b1a..8ca4cf4 100644 --- a/lib/ofdm_mac.cc +++ b/lib/ofdm_mac.cc @@ -106,6 +106,19 @@ void app_in (pmt::pmt_t msg) { dict = pmt::dict_add(dict, pmt::mp("crc_included"), pmt::PMT_T); + // check if csma is enabled + pmt::pmt_t pmt_cw = pmt::dict_ref(dict, pmt::mp("cw_min"), pmt::PMT_NIL); + if(pmt_cw != pmt::PMT_NIL) { + uint64_t cw = pmt::to_long(pmt_cw); + pmt::pmt_t backoffs = pmt::make_u64vector(2, 0); + pmt::u64vector_set(backoffs, 0, rand() % cw); + pmt::u64vector_set(backoffs, 1, rand() % cw); + + dict = pmt::dict_add(dict, pmt::mp("backoffs"), backoffs); + dict = pmt::dict_add(dict, pmt::mp("csma"), pmt::PMT_T); + } + + // blob pmt::pmt_t mac = pmt::make_blob(psdu, psdu_length);