Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:6lowpan_frames

Dies ist eine alte Version des Dokuments!


6LoWPAN Retransmissions

Implementierung

Fragmentierung: contiki-2.4/core/net/sicslowpan.c

Process a received 6lowpan packet:

static void input(const struct mac_driver *r)

Take an IP packet and format it to be sent on an 802.15.4:

static u8_t output(uip_lladdr_t *localdest)

Fragmentierung ein/ausschalten: contiki-2.4/core/net/sicslowpan.c

/**
 * Do we support 6lowpan fragmentation
 */
#ifndef SICSLOWPAN_CONF_FRAG  
#define SICSLOWPAN_CONF_FRAG  0
#endif

Testplan

Idee: Erstellung eines zuverlässigen und nachvollziehbaren Tests für die Überprüfung der Entwicklung (Erstellung einer Baseline für Verbesserungen/Verschlechterungen), bzw. für den Vergleich zwischen verschiedenen Contiki-Versionen.

Vorgehensweise:

  1. Die Tests werden in unterschiedlichen Entfernungen (1m, 3m, 5m, 8m, 10m, 15m) durchgeführt. Aus den Entfernungen ergeben sich unterschiedliche RF Charakteristiken, die sich dahingehend auswirken, dass 6LoWPAN Frames verloren gehen. Um Störeinflüsse aus der Umgebung auszuschließen (zu mitteln) sollten die Tests
  2. In Contiki (2.4-only?) gibt es die Möglichkeit Re-Transmissions auf Link-Layer Ebene anzuschalten (default - aus). Die Tests sollten jeweils mit und ohne dieser Funktion durchgeführt werden.
  3. Jeder Test sollte jeweils 100 mal wiederholt werden und dann die Mittelwerte der Tests verglichen werden.

Ansätze:

  1. HTTP-basiert:
    1. Contiki-Webserver wird mittels Testtool abgefragt und die Performance ermittelt
  2. ICMP-basiert:
    1. ICMP Pakete mit unterschiedlichen Packetgrößen (klein(64), mittel(512), groß (1280) )
    2. Vorteil: sollte mit Standard-Contiki funktionieren (keine Applikation erforderlich)

Zu Beachten

Ausgabe der 6LoWPAN-Frames ermitteln

Bei Contiki 2.4 sieht man die 6-LoWPAN-Fragmente im Wireshark.
Ist das bei 2.5 immer noch so? Wenn nicht, was müsste ggf. angepasst werden, bzw. könnten wir eine eigene Ausgabe bei Fehlern in den Code einbauen (TODO!)

Ggf. RSS ermitteln und mit printf über Debug ausgeben

In radio.h gibt es die Funktion: uint8_t radio_get_saved_rssi_value(void)
Laut diesem Dokument: http://www.atmel.com/dyn/resources/prod_documents/doc5131.pdf berechnet sich die Empfangsstärke wie folgt:

The RSSI is a 5-bit value indicating the receive power in the selected channel, in steps of 3 dB.

  • Minimum RSSI sensitivity is -91 dBm (RSSI_BASE_VAL)
  • Dynamic range is 81 dB
  • Minimum RSSI value is 0
  • Maximum RSSI value is 28

An RSSI value of 0 indicates an RF input power of < -91 dBm. For an RSSI value in the range of 1 to 28, the RF input power can be calculated as follows: PRF = RSSI_BASE_VAL + 3*(RSSI - 1)

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
contiki/6lowpan_frames.1336943761.txt.gz · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)