summaryrefslogtreecommitdiff
path: root/cesar/tools/sniffer_phy
diff options
context:
space:
mode:
authorNicolas Schodet2011-02-03 17:15:34 +0100
committerNicolas Schodet2011-02-10 15:04:02 +0100
commit6873d3f6f097dc4a0556d31d452cb140f5d4e4cb (patch)
tree6c810b734773679936741f2ae215acc7f6288586 /cesar/tools/sniffer_phy
parent29efea32e81a97a21cc1b26245b3a34a25052f87 (diff)
cesar/tools/sniffer_phy: fix status field in sniffer mme, closes #2283
Diffstat (limited to 'cesar/tools/sniffer_phy')
-rw-r--r--cesar/tools/sniffer_phy/inc/mme.h2
-rw-r--r--cesar/tools/sniffer_phy/src/mme.c9
-rw-r--r--cesar/tools/sniffer_phy/src/test_mme.c6
3 files changed, 9 insertions, 8 deletions
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);