mirror of
https://github.com/oliverschmidt/contiki.git
synced 2025-02-08 19:31:03 +00:00
Merge pull request #1795 from g-oikonomou/contrib/sensniff
Add generic sensniff example and remove legacy sniffers
This commit is contained in:
commit
7ddbe640be
@ -57,20 +57,6 @@ static RIE_BaseConfigs base_config = ADUCRF101_RADIO_BASE_CONFIG;
|
||||
static int current_channel = 915000000;
|
||||
static int current_power = 31;
|
||||
static int radio_is_on = 0;
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Sniffer configuration. We can re-use the CC2538 sniffer application
|
||||
if we also accept CC2538_RF_CONF_SNIFFER. */
|
||||
#ifndef ADUCRF101_RF_CONF_SNIFFER
|
||||
#if CC2538_RF_CONF_SNIFFER
|
||||
#define ADUCRF101_RF_CONF_SNIFFER 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ADUCRF101_RF_CONF_SNIFFER
|
||||
#include "dev/uart.h"
|
||||
static const uint8_t magic[] = { 0x53, 0x6E, 0x69, 0x66 }; /* Snif */
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* "Channel" is really frequency, and can be within the bands:
|
||||
431000000 Hz to 464000000 Hz
|
||||
@ -246,20 +232,6 @@ read(void *buf, unsigned short buf_len)
|
||||
/* Re-enter receive mode immediately after receiving a packet */
|
||||
RadioRxPacketVariableLen();
|
||||
|
||||
#if ADUCRF101_RF_CONF_SNIFFER
|
||||
uart_put(magic[0]);
|
||||
uart_put(magic[1]);
|
||||
uart_put(magic[2]);
|
||||
uart_put(magic[3]);
|
||||
uart_put(packet_len + 2);
|
||||
for(int i = 0; i < packet_len; i++) {
|
||||
uart_put(((uint8_t *)buf)[i]);
|
||||
}
|
||||
/* FCS value is Wireshark's "TI CC24xx format" option: */
|
||||
uart_put(rssi); /* RSSI */
|
||||
uart_put(0x80); /* CRC is OK, LQI correlation is 0 */
|
||||
#endif
|
||||
|
||||
return packet_len;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
@ -39,8 +39,6 @@
|
||||
* On the cc2538, character I/O can be directed over USB or UART. This is
|
||||
* controlled by a series of configuration directives:
|
||||
* - SLIP_ARCH_CONF_USB: Controls the operation of slip-arch.
|
||||
* - CC2538_RF_CONF_SNIFFER_USB: Controls the output of the RF driver when
|
||||
* operating as a sniffer
|
||||
* - DBG_CONF_USB: Controls all debugging output
|
||||
*
|
||||
* Defaults for those defines are set in contiki-conf.h
|
||||
|
@ -91,29 +91,6 @@
|
||||
/* 192 usec off -> on interval (RX Callib -> SFD Wait). We wait a bit more */
|
||||
#define ONOFF_TIME RTIMER_ARCH_SECOND / 3125
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Sniffer configuration */
|
||||
#ifndef CC2538_RF_CONF_SNIFFER_USB
|
||||
#define CC2538_RF_CONF_SNIFFER_USB 0
|
||||
#endif
|
||||
|
||||
#if CC2538_RF_CONF_SNIFFER
|
||||
static const uint8_t magic[] = { 0x53, 0x6E, 0x69, 0x66 }; /** Snif */
|
||||
|
||||
#if CC2538_RF_CONF_SNIFFER_USB
|
||||
#include "usb/usb-serial.h"
|
||||
#define write_byte(b) usb_serial_writeb(b)
|
||||
#define flush() usb_serial_flush()
|
||||
#else
|
||||
#include "dev/uart.h"
|
||||
#define write_byte(b) uart_write_byte(CC2538_RF_CONF_SNIFFER_UART, b)
|
||||
#define flush()
|
||||
#endif
|
||||
|
||||
#else /* CC2538_RF_CONF_SNIFFER */
|
||||
#define write_byte(b)
|
||||
#define flush()
|
||||
#endif /* CC2538_RF_CONF_SNIFFER */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifdef CC2538_RF_CONF_AUTOACK
|
||||
#define CC2538_RF_AUTOACK CC2538_RF_CONF_AUTOACK
|
||||
#else
|
||||
@ -526,11 +503,6 @@ init(void)
|
||||
REG(RFCORE_XREG_FRMCTRL0) |= RFCORE_XREG_FRMCTRL0_AUTOACK;
|
||||
#endif
|
||||
|
||||
/* If we are a sniffer, turn off frame filtering */
|
||||
#if CC2538_RF_CONF_SNIFFER
|
||||
REG(RFCORE_XREG_FRMFILT0) &= ~RFCORE_XREG_FRMFILT0_FRAME_FILTER_EN;
|
||||
#endif
|
||||
|
||||
/* Disable source address matching and autopend */
|
||||
REG(RFCORE_XREG_SRCMATCH) = 0;
|
||||
|
||||
@ -798,20 +770,6 @@ read(void *buf, unsigned short bufsize)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if CC2538_RF_CONF_SNIFFER
|
||||
write_byte(magic[0]);
|
||||
write_byte(magic[1]);
|
||||
write_byte(magic[2]);
|
||||
write_byte(magic[3]);
|
||||
write_byte(len + 2);
|
||||
for(i = 0; i < len; ++i) {
|
||||
write_byte(((unsigned char *)(buf))[i]);
|
||||
}
|
||||
write_byte(rssi);
|
||||
write_byte(crc_corr);
|
||||
flush();
|
||||
#endif
|
||||
|
||||
if(!poll_mode) {
|
||||
/* If FIFOP==1 and FIFO==0 then we had a FIFO overflow at some point. */
|
||||
if(REG(RFCORE_XREG_FSMSTAT1) & RFCORE_XREG_FSMSTAT1_FIFOP) {
|
||||
|
@ -101,11 +101,6 @@
|
||||
#define CC2530_RF_TX_POWER_TXCTRL_MIN_VAL 0x09 /* Value for min TX Power */
|
||||
#define CC2530_RF_TX_POWER_TXCTRL_DEF_VAL 0x69 /* Reset Value */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#if CC2530_RF_CONF_HEXDUMP
|
||||
#include "dev/io-arch.h"
|
||||
static const uint8_t magic[] = { 0x53, 0x6E, 0x69, 0x66 }; /* Snif */
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifdef CC2530_RF_CONF_AUTOACK
|
||||
#define CC2530_RF_AUTOACK CC2530_RF_CONF_AUTOACK
|
||||
#else
|
||||
@ -531,15 +526,6 @@ read(void *buf, unsigned short bufsize)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if CC2530_RF_CONF_HEXDUMP
|
||||
/* If we reach here, chances are the FIFO is holding a valid frame */
|
||||
io_arch_writeb(magic[0]);
|
||||
io_arch_writeb(magic[1]);
|
||||
io_arch_writeb(magic[2]);
|
||||
io_arch_writeb(magic[3]);
|
||||
io_arch_writeb(len);
|
||||
#endif
|
||||
|
||||
RF_RX_LED_ON();
|
||||
|
||||
PUTSTRING("RF: read (0x");
|
||||
@ -548,9 +534,6 @@ read(void *buf, unsigned short bufsize)
|
||||
len -= CHECKSUM_LEN;
|
||||
for(i = 0; i < len; ++i) {
|
||||
((unsigned char *)(buf))[i] = RFD;
|
||||
#if CC2530_RF_CONF_HEXDUMP
|
||||
io_arch_writeb(((unsigned char *)(buf))[i]);
|
||||
#endif
|
||||
PUTHEX(((unsigned char *)(buf))[i]);
|
||||
}
|
||||
PUTSTRING("\n");
|
||||
@ -559,12 +542,6 @@ read(void *buf, unsigned short bufsize)
|
||||
rssi = ((int8_t) RFD) - RSSI_OFFSET;
|
||||
crc_corr = RFD;
|
||||
|
||||
#if CC2530_RF_CONF_HEXDUMP
|
||||
io_arch_writeb(rssi);
|
||||
io_arch_writeb(crc_corr);
|
||||
io_arch_flush();
|
||||
#endif
|
||||
|
||||
/* MS bit CRC OK/Not OK, 7 LS Bits, Correlation value */
|
||||
if(crc_corr & CRC_BIT_MASK) {
|
||||
packetbuf_set_attr(PACKETBUF_ATTR_RSSI, rssi);
|
||||
|
@ -107,16 +107,6 @@
|
||||
#define PROP_MODE_USE_CRC16 0
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifdef PROP_MODE_CONF_SNIFFER
|
||||
#define PROP_MODE_SNIFFER PROP_MODE_CONF_SNIFFER
|
||||
#else
|
||||
#define PROP_MODE_SNIFFER 0
|
||||
#endif
|
||||
|
||||
#if PROP_MODE_SNIFFER
|
||||
static const uint8_t magic[] = { 0x53, 0x6E, 0x69, 0x66 };
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/**
|
||||
* \brief Returns the current status of a running Radio Op command
|
||||
* \param a A pointer with the buffer used to initiate the command
|
||||
@ -773,28 +763,7 @@ read_frame(void *buf, unsigned short buf_len)
|
||||
}
|
||||
|
||||
packetbuf_set_attr(PACKETBUF_ATTR_RSSI, (int8_t)data_ptr[len]);
|
||||
|
||||
#if PROP_MODE_SNIFFER
|
||||
{
|
||||
int i;
|
||||
|
||||
cc26xx_uart_write_byte(magic[0]);
|
||||
cc26xx_uart_write_byte(magic[1]);
|
||||
cc26xx_uart_write_byte(magic[2]);
|
||||
cc26xx_uart_write_byte(magic[3]);
|
||||
|
||||
cc26xx_uart_write_byte(len + 2);
|
||||
|
||||
for(i = 0; i < len; ++i) {
|
||||
cc26xx_uart_write_byte(((uint8_t *)(buf))[i]);
|
||||
}
|
||||
|
||||
cc26xx_uart_write_byte((uint8_t)rx_stats.lastRssi);
|
||||
cc26xx_uart_write_byte(0x80);
|
||||
|
||||
while(cc26xx_uart_busy() == UART_BUSY);
|
||||
}
|
||||
#endif
|
||||
packetbuf_set_attr(PACKETBUF_ATTR_LINK_QUALITY, 0x7F);
|
||||
}
|
||||
|
||||
/* Move read entry pointer to next entry */
|
||||
@ -1082,6 +1051,8 @@ set_value(radio_param_t param, radio_value_t value)
|
||||
rv = RADIO_RESULT_ERROR;
|
||||
}
|
||||
|
||||
return RADIO_RESULT_OK;
|
||||
case RADIO_PARAM_RX_MODE:
|
||||
return RADIO_RESULT_OK;
|
||||
case RADIO_PARAM_CCA_THRESHOLD:
|
||||
rssi_threshold = (int8_t)value;
|
||||
|
@ -222,15 +222,5 @@
|
||||
#define CC1200_RX_LEDS CC1200_CONF_RX_LEDS
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/*
|
||||
* If set, enable sniff mode: turn radio on (and keep it on), disable
|
||||
* address filter and auto ack
|
||||
*/
|
||||
#ifdef CC1200_CONF_SNIFFER
|
||||
#define CC1200_SNIFFER CC1200_CONF_SNIFFER
|
||||
#else
|
||||
#define CC1200_SNIFFER 0
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
#endif /* CC1200_H_ */
|
||||
|
@ -374,17 +374,6 @@ extern const cc1200_rf_cfg_t CC1200_RF_CFG;
|
||||
} while(0)
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Sniffer configuration */
|
||||
#if CC1200_SNIFFER
|
||||
static const uint8_t magic[] = { 0x53, 0x6E, 0x69, 0x66 };
|
||||
#include "dev/uart.h"
|
||||
#define write_byte(b) uart_write_byte(CC1200_RF_CONF_SNIFFER_UART, b)
|
||||
#define flush()
|
||||
#else /* CC1200_SNIFFER */
|
||||
#define write_byte(b)
|
||||
#define flush()
|
||||
#endif /* CC1200_SNIFFER */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Variables */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Flag indicating whether non-interrupt routines are using SPI */
|
||||
@ -553,11 +542,6 @@ calculate_freq(uint8_t channel);
|
||||
/* Update rf channel if possible, else postpone it (-> pollhandler). */
|
||||
static int
|
||||
set_channel(uint8_t channel);
|
||||
#if !CC1200_SNIFFER
|
||||
/* Check broadcast address. */
|
||||
static int
|
||||
is_broadcast_addr(uint8_t mode, uint8_t *addr);
|
||||
#endif /* CC1200_SNIFFER */
|
||||
/* Validate address and send ACK if requested. */
|
||||
static int
|
||||
addr_check_auto_ack(uint8_t *frame, uint16_t frame_len);
|
||||
@ -574,8 +558,7 @@ PROCESS_THREAD(cc1200_process, ev, data)
|
||||
|
||||
PROCESS_BEGIN();
|
||||
|
||||
#if CC1200_USE_RX_WATCHDOG && !CC1200_SNIFFER
|
||||
/* RX watchdog interferes with sniffer. Reason unknown... */
|
||||
#if CC1200_USE_RX_WATCHDOG
|
||||
while(1) {
|
||||
|
||||
if((rf_flags & (RF_ON | RF_TX_ACTIVE)) == RF_ON) {
|
||||
@ -716,11 +699,6 @@ init(void)
|
||||
* configuration of the GPIO0 pin
|
||||
*/
|
||||
off();
|
||||
|
||||
/* #if CC1200_SNIFFER */
|
||||
/* on(); */
|
||||
/* #endif */
|
||||
|
||||
}
|
||||
|
||||
return 1;
|
||||
@ -881,10 +859,6 @@ read(void *buf, unsigned short buf_len)
|
||||
|
||||
int len = 0;
|
||||
|
||||
#if CC1200_SNIFFER
|
||||
uint8_t i;
|
||||
#endif
|
||||
|
||||
if(rx_pkt_len > 0) {
|
||||
|
||||
int8_t rssi = rx_pkt[rx_pkt_len - 2];
|
||||
@ -911,21 +885,6 @@ read(void *buf, unsigned short buf_len)
|
||||
packetbuf_set_attr(PACKETBUF_ATTR_LINK_QUALITY,
|
||||
crc_lqi & ~(1 << 7));
|
||||
|
||||
|
||||
#if CC1200_SNIFFER
|
||||
write_byte(magic[0]);
|
||||
write_byte(magic[1]);
|
||||
write_byte(magic[2]);
|
||||
write_byte(magic[3]);
|
||||
write_byte(len + 2);
|
||||
for(i = 0; i < len; ++i) {
|
||||
write_byte(((unsigned char *)(buf))[i]);
|
||||
}
|
||||
write_byte(rssi);
|
||||
write_byte(crc_lqi);
|
||||
flush();
|
||||
#endif
|
||||
|
||||
RIMESTATS_ADD(llrx);
|
||||
}
|
||||
|
||||
@ -2137,7 +2096,6 @@ set_channel(uint8_t channel)
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Check broadcast address. */
|
||||
#if !CC1200_SNIFFER
|
||||
static int
|
||||
is_broadcast_addr(uint8_t mode, uint8_t *addr)
|
||||
{
|
||||
@ -2153,30 +2111,7 @@ is_broadcast_addr(uint8_t mode, uint8_t *addr)
|
||||
return 1;
|
||||
|
||||
}
|
||||
#endif /* CC12100_SNIFFER */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Validate address and send ACK if requested. */
|
||||
#if CC1200_SNIFFER
|
||||
static int
|
||||
addr_check_auto_ack(uint8_t *frame, uint16_t frame_len)
|
||||
{
|
||||
|
||||
frame802154_t info154;
|
||||
|
||||
if(frame802154_parse(frame, frame_len, &info154) != 0) {
|
||||
|
||||
/* We accept all 802.15.4 frames ... */
|
||||
return ADDR_CHECK_OK;
|
||||
|
||||
} else {
|
||||
|
||||
/* .. and discard others. */
|
||||
return INVALID_FRAME;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
#else /* CC1200_SNIFFER */
|
||||
static int
|
||||
addr_check_auto_ack(uint8_t *frame, uint16_t frame_len)
|
||||
{
|
||||
@ -2245,7 +2180,6 @@ addr_check_auto_ack(uint8_t *frame, uint16_t frame_len)
|
||||
return INVALID_FRAME;
|
||||
|
||||
}
|
||||
#endif /* CC1200_SNIFFER */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/*
|
||||
* The CC1200 interrupt handler: called by the hardware interrupt
|
||||
|
@ -1,11 +0,0 @@
|
||||
DEFINES+=PROJECT_CONF_H
|
||||
PROJECT_SOURCEFILES += stub-rdc.c
|
||||
|
||||
CONTIKI_PROJECT = sniffer
|
||||
|
||||
all: $(CONTIKI_PROJECT)
|
||||
|
||||
CONTIKI = ../../..
|
||||
|
||||
CONTIKI_WITH_RIME = 1
|
||||
include $(CONTIKI)/Makefile.include
|
@ -1 +0,0 @@
|
||||
TARGET = cc2530dk
|
@ -1,49 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010, Loughborough University - Computer Science
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the Contiki operating system.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* Stub file overriding core/net/netstack.c. What we want to achieve
|
||||
* here is call netstack_init from main without initialising the RDC,
|
||||
* MAC and Network layers. It will just turn on the radio instead.
|
||||
*
|
||||
* \author
|
||||
* George Oikonomou - <oikonomou@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#include "netstack.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
netstack_init(void)
|
||||
{
|
||||
NETSTACK_RADIO.init();
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
@ -1,56 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010, Loughborough University - Computer Science
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the Contiki operating system.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file
|
||||
* Project specific configuration defines for the sniffer example.
|
||||
*
|
||||
* \author
|
||||
* George Oikonomou - <oikonomou@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#ifndef PROJECT_CONF_H_
|
||||
#define PROJECT_CONF_H_
|
||||
|
||||
#define CC2530_RF_CONF_HEXDUMP 1
|
||||
#define CC2530_RF_CONF_AUTOACK 0
|
||||
#define NETSTACK_CONF_RDC stub_rdc_driver
|
||||
#define ADC_SENSOR_CONF_ON 0
|
||||
#define LPM_CONF_MODE 0
|
||||
#define UART0_CONF_HIGH_SPEED 1
|
||||
|
||||
/* Change to 0 to build for the SmartRF + cc2530 EM */
|
||||
#define MODELS_CONF_CC2531_USB_STICK 1
|
||||
|
||||
/* Used by cc2531 USB dongle builds, has no effect on SmartRF builds */
|
||||
#define USB_SERIAL_CONF_BUFFERED 1
|
||||
|
||||
#endif /* PROJECT_CONF_H_ */
|
@ -1,54 +0,0 @@
|
||||
/*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* This file is part of the Contiki operating system.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "contiki.h"
|
||||
#include "cc253x.h"
|
||||
|
||||
#define DEBUG DEBUG_NONE
|
||||
#include "net/ip/uip-debug.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
PROCESS(sniffer_process, "Sniffer process");
|
||||
AUTOSTART_PROCESSES(&sniffer_process);
|
||||
/*---------------------------------------------------------------------------*/
|
||||
PROCESS_THREAD(sniffer_process, ev, data)
|
||||
{
|
||||
|
||||
PROCESS_BEGIN();
|
||||
|
||||
PRINTF("Sniffer started\n");
|
||||
|
||||
/* Turn off RF Address Recognition - We need to accept all frames */
|
||||
FRMFILT0 &= ~0x01;
|
||||
|
||||
PROCESS_EXIT();
|
||||
|
||||
PROCESS_END();
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
@ -1,10 +0,0 @@
|
||||
DEFINES+=PROJECT_CONF_H=\"project-conf.h\"
|
||||
PROJECT_SOURCEFILES += stub-rdc.c
|
||||
|
||||
CONTIKI_PROJECT = sniffer
|
||||
|
||||
all: $(CONTIKI_PROJECT)
|
||||
|
||||
CONTIKI = ../../..
|
||||
CONTIKI_WITH_RIME = 1
|
||||
include $(CONTIKI)/Makefile.include
|
@ -1 +0,0 @@
|
||||
TARGET = cc2538dk
|
@ -1,96 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2010, Loughborough University - Computer Science
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
/**
|
||||
* \file
|
||||
* Definition of a fake RDC driver to be used with passive
|
||||
* examples. The sniffer will never send packets and it will never
|
||||
* push incoming packets up the stack. We do this by defining this
|
||||
* driver as our RDC. We then drop everything
|
||||
*
|
||||
* \author
|
||||
* George Oikonomou - <oikonomou@users.sourceforge.net>
|
||||
*/
|
||||
#include "net/mac/mac.h"
|
||||
#include "net/mac/rdc.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static void
|
||||
send(mac_callback_t sent, void *ptr)
|
||||
{
|
||||
if(sent) {
|
||||
sent(ptr, MAC_TX_OK, 1);
|
||||
}
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static void
|
||||
send_list(mac_callback_t sent, void *ptr, struct rdc_buf_list *list)
|
||||
{
|
||||
if(sent) {
|
||||
sent(ptr, MAC_TX_OK, 1);
|
||||
}
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static void
|
||||
input(void)
|
||||
{
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static int
|
||||
on(void)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static int
|
||||
off(int keep_radio_on)
|
||||
{
|
||||
return keep_radio_on;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static unsigned short
|
||||
cca(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
static void
|
||||
init(void)
|
||||
{
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
||||
const struct rdc_driver stub_rdc_driver = {
|
||||
"stub-rdc",
|
||||
init,
|
||||
send,
|
||||
send_list,
|
||||
input,
|
||||
on,
|
||||
off,
|
||||
cca,
|
||||
};
|
||||
/*---------------------------------------------------------------------------*/
|
25
examples/sensniff/Makefile
Executable file
25
examples/sensniff/Makefile
Executable file
@ -0,0 +1,25 @@
|
||||
DEFINES+=PROJECT_CONF_H=\"project-conf.h\"
|
||||
|
||||
CONTIKI_PROJECT = sensniff
|
||||
|
||||
PROJECT_SOURCEFILES += sensniff-rdc.c netstack.c
|
||||
PROJECTDIRS += pool $(TARGET)
|
||||
|
||||
ifeq ($(TARGET),)
|
||||
-include Makefile.target
|
||||
ifeq ($(TARGET),)
|
||||
TARGET=srf06-cc26xx
|
||||
$(info TARGET not defined, using target $(TARGET))
|
||||
endif
|
||||
endif
|
||||
|
||||
CONTIKI_WITH_RIME = 1
|
||||
|
||||
### Optionally, the target can add its own Makefile, to do things like e.g.
|
||||
### add more source files to the build or define make variables.
|
||||
-include $(TARGET)/Makefile.$(TARGET)
|
||||
|
||||
all: $(CONTIKI_PROJECT)
|
||||
|
||||
CONTIKI = ../..
|
||||
include $(CONTIKI)/Makefile.include
|
83
examples/sensniff/README.md
Normal file
83
examples/sensniff/README.md
Normal file
@ -0,0 +1,83 @@
|
||||
sensniff Contiki Project
|
||||
========================
|
||||
This example can be used to create an IEEE 802.15.4 wireless sniffer firmware,
|
||||
meant to be used in parallel with
|
||||
[sensniff](https://github.com/g-oikonomou/sensniff).
|
||||
|
||||
Running
|
||||
=======
|
||||
* Build this example and program your device
|
||||
* Connect your device to a host
|
||||
* Run sensniff on your host
|
||||
* Fire up wireshark and enjoy.
|
||||
|
||||
Make sure your device's UART baud rate matches the `-b` argument passed to
|
||||
sensniff. I strongly recommend using at least 460800. This comment does not
|
||||
apply if your device is using native USB.
|
||||
|
||||
Subsequently, make absolutely certain that your device is tuned to the same RF
|
||||
channel as the network you are trying to sniff. You can change sniffing channel
|
||||
through sensniff's text interface.
|
||||
|
||||
More details in sensniff's README.
|
||||
|
||||
Adding support for more platforms
|
||||
=================================
|
||||
Firstly, this example will try to turn off frame filtering and automatic h/w
|
||||
ACKs by calling `NETSTACK_RADIO.set_value(RADIO_PARAM_RX_MODE, 0)`. If your
|
||||
radio does not support this, then implementing this is your first step towards
|
||||
running this example on your board.
|
||||
|
||||
Secondly, in order to be able to switch channels and retrieve current/min/max
|
||||
RF channel supported from sensniff's text interface, your device's radio driver
|
||||
must also support:
|
||||
|
||||
NETSTACK_RADIO.get_value(RADIO_PARAM_CHANNEL, ...)
|
||||
NETSTACK_RADIO.set_value(RADIO_PARAM_CHANNEL, ...)
|
||||
NETSTACK_RADIO.get_value(RADIO_CONST_CHANNEL_MIN, ...)
|
||||
NETSTACK_RADIO.get_value(RADIO_CONST_CHANNEL_MAX, ...)
|
||||
|
||||
The following radios have been tested:
|
||||
|
||||
* CC13xx/CC26xx in PROP and IEEE modes
|
||||
* CC2538
|
||||
* CC2530/CC2531
|
||||
* CC1200
|
||||
|
||||
One you have the radio sorted out, you also need to configure character I/O.
|
||||
The firmware captures wireless frames and streams them over a serial line to
|
||||
the host where your device is connected. This can be achieved over UART or over
|
||||
CDC-ACM. The example makes zero assumptions about your hardware's capability,
|
||||
you have to configure thnigs explicitly.
|
||||
|
||||
* Firstly, create a directory named the same as your platform. Crate a header
|
||||
file therein called `target-conf.h`. This will get included automatically.
|
||||
* Then look at the header files under `pool`, perhaps your device's CPU is
|
||||
already supported. If that's the case, then within your `target-conf.h` you
|
||||
simply need to add a line like this:
|
||||
|
||||
#define SENSNIFF_IO_DRIVER_H "pool/cc2538-io.h"
|
||||
|
||||
choosing the header that corresponds to your device's CPU. Just look for any of
|
||||
the platforms already supported to see how you can configure things in a more
|
||||
fine-grained fashion (e.g. to select UART instance, switch between UART/USB
|
||||
etc).
|
||||
|
||||
* If your CPU is not already supported, then you need to create an additional
|
||||
header file. In that header file, you will need to define the following three:
|
||||
|
||||
#define sensniff_io_byte_out() <driver function that prints bytes>
|
||||
#define sensniff_io_flush() <for buffered I/O. Can be empty>
|
||||
#define sensniff_io_set_input() <driver function that sets an input callback>
|
||||
|
||||
Those should map to functions implemented by your device's peripheral driver,
|
||||
e.g. your UART driver. `_byte_out()` and `set_input()` are required, but
|
||||
`_flush()` is optional and is only really helpful in case of drivers/hardware
|
||||
that support buffered I/O (as is the case for some Contiki's USB drivers). Once
|
||||
you have provided those defines, then simple go back to your `target-conf.h`
|
||||
and:
|
||||
|
||||
#define SENSNIFF_IO_DRIVER_H "header-with-my-own-defines.h"
|
||||
|
||||
That should be it!
|
||||
|
1
examples/sensniff/cc2530dk/Makefile.cc2530dk
Normal file
1
examples/sensniff/cc2530dk/Makefile.cc2530dk
Normal file
@ -0,0 +1 @@
|
||||
HAVE_BANKING = 1
|
@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
@ -28,45 +28,22 @@
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/**
|
||||
* \addtogroup cc2538-examples
|
||||
* @{
|
||||
*
|
||||
* \defgroup cc2538-sniffer cc2538 Sniffer
|
||||
*
|
||||
* Sniffer for the CC2538-based platforms. Originally based on the sensinode
|
||||
* and cc2530dk sniffers.
|
||||
*
|
||||
* This example is to be used combined with the sensniff host-side tool,
|
||||
* which can be downloaded from: https://github.com/g-oikonomou/sensniff
|
||||
*
|
||||
* @{
|
||||
*
|
||||
* \file
|
||||
* Implementation of a Sniffer Process Thread
|
||||
*/
|
||||
#include "contiki.h"
|
||||
|
||||
#define DEBUG DEBUG_NONE
|
||||
#include "net/ip/uip-debug.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
PROCESS(sniffer_process, "Sniffer process");
|
||||
AUTOSTART_PROCESSES(&sniffer_process);
|
||||
#ifndef TARGET_CONF_H_
|
||||
#define TARGET_CONF_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
PROCESS_THREAD(sniffer_process, ev, data)
|
||||
{
|
||||
|
||||
PROCESS_BEGIN();
|
||||
|
||||
PRINTF("Sniffer started\n");
|
||||
|
||||
PROCESS_EXIT();
|
||||
|
||||
PROCESS_END();
|
||||
}
|
||||
/* Change to 0 to build for the SmartRF + cc2530 EM */
|
||||
#define MODELS_CONF_CC2531_USB_STICK 1
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/* Don't change below this line */
|
||||
#define ADC_SENSOR_CONF_ON 0
|
||||
#define LPM_CONF_MODE 0
|
||||
#define UART0_CONF_HIGH_SPEED 1
|
||||
#define UART0_RTSCTS 1
|
||||
#define UART0_CONF_WITH_INPUT 1
|
||||
#define USB_SERIAL_CONF_BUFFERED 1
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define SENSNIFF_IO_DRIVER_H "pool/cc2530-cc2531-io.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* TARGET_CONF_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
||||
/**
|
||||
* @}
|
||||
* @}
|
||||
*/
|
54
examples/sensniff/cc2538dk/target-conf.h
Normal file
54
examples/sensniff/cc2538dk/target-conf.h
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifndef TARGET_CONF_H_
|
||||
#define TARGET_CONF_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/*
|
||||
* Selection of Sensniff I/O Interface.
|
||||
* Define CC2538_IO_CONF_USB as 0 to use UART as sensniff's interface.
|
||||
* This will default to using UART0, unless you also define
|
||||
* CC2538_IO_CONF_USE_UART_1 as 1.
|
||||
*
|
||||
* Don't forget to also set a correct baud rate (460800 or higher) by defining
|
||||
* the corresponding UART0_CONF_BAUD_RATE or UART1_CONF_BAUD_RATE
|
||||
*/
|
||||
#define CC2538_IO_CONF_USB 1
|
||||
#define CC2538_IO_CONF_USE_UART1 0
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#if CC2538_IO_CONF_USB
|
||||
#define USB_SERIAL_CONF_ENABLE 1
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define SENSNIFF_IO_DRIVER_H "pool/cc2538-io.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* TARGET_CONF_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
@ -1,16 +1,16 @@
|
||||
/*
|
||||
* Copyright (c) 2012, Texas Instruments Incorporated - http://www.ti.com/
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
@ -28,32 +28,16 @@
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/**
|
||||
* \addtogroup zoul-cc1200-sniffer
|
||||
* @{
|
||||
*
|
||||
* \file
|
||||
* Project specific configuration defines for the CC1200 sniffer
|
||||
*/
|
||||
#ifndef PROJECT_CONF_H_
|
||||
#define PROJECT_CONF_H_
|
||||
|
||||
#define CC1200_CONF_SNIFFER 1
|
||||
#define CC1200_RF_CONF_SNIFFER_UART 0
|
||||
#define CC1200_CONF_RF_CFG cc1200_802154g_863_870_fsk_50kbps
|
||||
|
||||
#undef NETSTACK_CONF_RADIO
|
||||
#define NETSTACK_CONF_RADIO cc1200_driver
|
||||
|
||||
#define CC1200_CONF_USE_GPIO2 0
|
||||
#define CC1200_CONF_USE_RX_WATCHDOG 0
|
||||
#define ANTENNA_SW_SELECT_DEF_CONF ANTENNA_SW_SELECT_SUBGHZ
|
||||
|
||||
#undef NETSTACK_CONF_RDC
|
||||
#define NETSTACK_CONF_RDC stub_rdc_driver
|
||||
|
||||
#define UART0_CONF_BAUD_RATE 460800
|
||||
|
||||
#endif /* PROJECT_CONF_H_ */
|
||||
|
||||
/** @} */
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifndef EV_ADUCRF101MKXZ_IO_H_
|
||||
#define EV_ADUCRF101MKXZ_IO_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#include "contiki-conf.h"
|
||||
#include "dev/uart.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define sensniff_io_byte_out(b) uart_put(b)
|
||||
#define sensniff_io_flush()
|
||||
#define sensniff_io_set_input(f) uart_set_input(f)
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* EV_ADUCRF101MKXZ_IO_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
38
examples/sensniff/ev-aducrf101mkxz/target-conf.h
Normal file
38
examples/sensniff/ev-aducrf101mkxz/target-conf.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifndef TARGET_CONF_H_
|
||||
#define TARGET_CONF_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define SENSNIFF_IO_DRIVER_H "ev-aducrf101mkxz/ev-aducrf101mkxz-io.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* TARGET_CONF_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
56
examples/sensniff/jn516x/jn516x-io.h
Normal file
56
examples/sensniff/jn516x/jn516x-io.h
Normal file
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifndef JN516X_IO_H_
|
||||
#define JN516X_IO_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#include "contiki-conf.h"
|
||||
#include "dev/uart0.h"
|
||||
#include "dev/uart1.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifdef JN516X_IO_CONF_USE_UART1
|
||||
#define JN516X_IO_USE_UART1 JN516X_IO_CONF_USE_UART1
|
||||
#else
|
||||
#define JN516X_IO_USE_UART1 0
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#if JN516X_IO_USE_UART1
|
||||
#define sensniff_io_byte_out(b) uart1_writeb(b)
|
||||
#define sensniff_io_flush()
|
||||
#define sensniff_io_set_input(f) uart1_set_input(f)
|
||||
#else
|
||||
#define sensniff_io_byte_out(b) uart0_writeb(b)
|
||||
#define sensniff_io_flush()
|
||||
#define sensniff_io_set_input(f) uart0_set_input(f)
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* JN516X_IO_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
38
examples/sensniff/jn516x/target-conf.h
Normal file
38
examples/sensniff/jn516x/target-conf.h
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifndef TARGET_CONF_H_
|
||||
#define TARGET_CONF_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define SENSNIFF_IO_DRIVER_H "jn516x/jn516x-io.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* TARGET_CONF_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
@ -26,21 +26,13 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
/**
|
||||
* \file
|
||||
* Stub file overriding core/net/netstack.c. What we want to achieve
|
||||
* here is call netstack_init from main without initialising the RDC,
|
||||
* MAC and Network layers. It will just turn on the radio instead.
|
||||
*
|
||||
* \author
|
||||
* George Oikonomou - <oikonomou@users.sourceforge.net>
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#include "netstack.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
void
|
||||
netstack_init(void)
|
||||
{
|
||||
NETSTACK_RADIO.init();
|
||||
NETSTACK_RADIO.on();
|
||||
NETSTACK_RDC.init();
|
||||
}
|
||||
/*---------------------------------------------------------------------------*/
|
56
examples/sensniff/openmote-cc2538/target-conf.h
Normal file
56
examples/sensniff/openmote-cc2538/target-conf.h
Normal file
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifndef TARGET_CONF_H_
|
||||
#define TARGET_CONF_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
/*
|
||||
* Selection of Sensniff I/O Interface.
|
||||
* Define CC2538_IO_CONF_USB as 0 to use UART as sensniff's interface.
|
||||
* This will default to using UART0, unless you also define
|
||||
* CC2538_IO_CONF_USE_UART1 as 1.
|
||||
*
|
||||
* Don't forget to also set a correct baud rate (460800 or higher) by defining
|
||||
* the corresponding UART0_CONF_BAUD_RATE or UART1_CONF_BAUD_RATE
|
||||
*/
|
||||
#define CC2538_IO_CONF_USB 0
|
||||
#define CC2538_IO_CONF_USE_UART1 0
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#if CC2538_IO_CONF_USB
|
||||
#define USB_SERIAL_CONF_ENABLE 1
|
||||
#else
|
||||
#define UART0_CONF_BAUD_RATE 460800
|
||||
#endif
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define SENSNIFF_IO_DRIVER_H "pool/cc2538-io.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* TARGET_CONF_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
43
examples/sensniff/pool/cc13xx-cc26xx-io.h
Normal file
43
examples/sensniff/pool/cc13xx-cc26xx-io.h
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifndef CC13XX_CC26XX_IO_H_
|
||||
#define CC13XX_CC26XX_IO_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#include "contiki-conf.h"
|
||||
#include "dev/cc26xx-uart.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define sensniff_io_byte_out(b) cc26xx_uart_write_byte(b)
|
||||
#define sensniff_io_flush()
|
||||
#define sensniff_io_set_input(f) cc26xx_uart_set_input(f)
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* CC13XX_CC26XX_IO_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
43
examples/sensniff/pool/cc2530-cc2531-io.h
Normal file
43
examples/sensniff/pool/cc2530-cc2531-io.h
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the copyright holder nor the names of its
|
||||
* contributors may be used to endorse or promote products derived
|
||||
* from this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
|
||||
* OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#ifndef CC2530_CC2531_IO_H_
|
||||
#define CC2530_CC2531_IO_H_
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#include "contiki-conf.h"
|
||||
#include "dev/io-arch.h"
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#define sensniff_io_byte_out(b) io_arch_writeb(b)
|
||||
#define sensniff_io_flush() io_arch_flush()
|
||||
#define sensniff_io_set_input(f) io_arch_set_input(f)
|
||||
/*---------------------------------------------------------------------------*/
|
||||
#endif /* CC2530_CC2531_IO_H_ */
|
||||
/*---------------------------------------------------------------------------*/
|
76
examples/sensniff/pool/cc2538-io.h
Normal file
76
examples/sensniff/pool/cc2538-io.h
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* Copyright (c) 2016, George Oikonomou - http://www.spd.gr
|
||||
* All rights reserved.
|
||||