From 6873d3f6f097dc4a0556d31d452cb140f5d4e4cb Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Thu, 3 Feb 2011 17:15:34 +0100 Subject: cesar/tools/sniffer_phy: fix status field in sniffer mme, closes #2283 --- cesar/tools/sniffer_phy/inc/mme.h | 2 ++ cesar/tools/sniffer_phy/src/mme.c | 9 ++++----- cesar/tools/sniffer_phy/src/test_mme.c | 6 +++--- 3 files changed, 9 insertions(+), 8 deletions(-) (limited to 'cesar/tools') diff --git a/cesar/tools/sniffer_phy/inc/mme.h b/cesar/tools/sniffer_phy/inc/mme.h index 613e8bd734..b7b081727b 100644 --- a/cesar/tools/sniffer_phy/inc/mme.h +++ b/cesar/tools/sniffer_phy/inc/mme.h @@ -22,6 +22,8 @@ struct mme_t mac_t mac; /** MAC address to send sniffed data to. */ mac_t mac_sniffer; + /** Current sniffing status. */ + u8 status; /** Take PB content. */ bool pb; }; diff --git a/cesar/tools/sniffer_phy/src/mme.c b/cesar/tools/sniffer_phy/src/mme.c index 31b6d0f61c..22ecff4569 100644 --- a/cesar/tools/sniffer_phy/src/mme.c +++ b/cesar/tools/sniffer_phy/src/mme.c @@ -174,9 +174,7 @@ mme_send_vs_sniffer_cnf (sniffer_phy_t *ctx, mme_buffer_t *mme, u8 result) { /* Write MME. */ bitstream_write (&cnf.bitstream, result, 8); - bitstream_write (&cnf.bitstream, - ctx->mme.mac_sniffer ? MME_SNIFFER_MODE_RX_FC : 0, - 8); + bitstream_write (&cnf.bitstream, ctx->mme.status, 8); bitstream_write_large (&cnf.bitstream, ctx->mme.mac_sniffer, 48); /* Send MME. */ mme_send (ctx, &cnf); @@ -209,10 +207,11 @@ mme_handle_vs_sniffer_req (sniffer_phy_t *ctx, mme_buffer_t *mme) result = 0; bool was_activated = ctx->mme.mac_sniffer != 0; bool is_activated = command != 0; - if (was_activated != is_activated) - lowlevel_activate (ctx, is_activated); ctx->mme.mac_sniffer = is_activated ? mme->sa : 0; ctx->mme.pb = (command & MME_SNIFFER_MODE_RX_PB) != 0; + ctx->mme.status = command; + if (was_activated != is_activated) + lowlevel_activate (ctx, is_activated); } while (0); /* Send feedback. */ mme_send_vs_sniffer_cnf (ctx, mme, result); diff --git a/cesar/tools/sniffer_phy/src/test_mme.c b/cesar/tools/sniffer_phy/src/test_mme.c index 914e08b452..a51c8c5083 100644 --- a/cesar/tools/sniffer_phy/src/test_mme.c +++ b/cesar/tools/sniffer_phy/src/test_mme.c @@ -351,19 +351,19 @@ mme_sniffer_test_case (test_t t, sniffer_phy_t *ctx) false, false); mme_sniffer_test (t, ctx, "req subscribe change ok", TEST_MME_MAC_PEER, 0xa0, - 0x00, 0x20, TEST_MME_MAC_PEER, + 0x00, 0xa0, TEST_MME_MAC_PEER, false, false, TEST_MME_MAC_PEER, TEST_MME_MAC_PEER, false, true); mme_sniffer_test (t, ctx, "req subscribe another nok", TEST_MME_MAC_OTHER, 0x20, - 0x01, 0x20, TEST_MME_MAC_PEER, + 0x01, 0xa0, TEST_MME_MAC_PEER, false, false, TEST_MME_MAC_PEER, TEST_MME_MAC_PEER, true, true); mme_sniffer_test (t, ctx, "req unsubscribe another nok", TEST_MME_MAC_OTHER, 0x00, - 0x01, 0x20, TEST_MME_MAC_PEER, + 0x01, 0xa0, TEST_MME_MAC_PEER, false, false, TEST_MME_MAC_PEER, TEST_MME_MAC_PEER, true, true); -- cgit v1.2.3