This patch adds the channel and the fhss info to the packet's annotation.
Tested with radiotap headers.

Signed-off-by: Roberto Riggio<[email protected]>

-- 


diff --git a/elements/wifi/radiotapdecap.cc b/elements/wifi/radiotapdecap.cc
index aef3e8e..552451b 100644
--- a/elements/wifi/radiotapdecap.cc
+++ b/elements/wifi/radiotapdecap.cc
@@ -25,6 +25,7 @@
  #include<clicknet/radiotap.h>
  #include<click/packet_anno.hh>
  #include<clicknet/llc.h>
+#include<click/string.hh>
  CLICK_DECLS

  #define NUM_RADIOTAP_ELEMENTS 18
@@ -124,6 +125,14 @@ RadiotapDecap::simple_action(Packet *p)
        if (rt_check_header(th, p->length())) {
                ceh->magic = WIFI_EXTRA_MAGIC;

+               if (rt_el_present(th, IEEE80211_RADIOTAP_CHANNEL)) {
+                       ceh->channel = *((u_int16_t *) rt_el_offset(th, 
IEEE80211_RADIOTAP_CHANNEL));
+               }
+
+               if (rt_el_present(th, IEEE80211_RADIOTAP_FHSS)) {
+                       ceh->fhss = *((u_int16_t *) rt_el_offset(th, 
IEEE80211_RADIOTAP_FHSS));
+               }
+
                if (rt_el_present(th, IEEE80211_RADIOTAP_RATE)) {
                        ceh->rate = *((u_int8_t *) rt_el_offset(th, 
IEEE80211_RADIOTAP_RATE));
                }
diff --git a/include/click/packet_anno.hh b/include/click/packet_anno.hh
index f5c9955..f0706da 100644
--- a/include/click/packet_anno.hh
+++ b/include/click/packet_anno.hh
@@ -13,7 +13,7 @@

  // bytes 16-31
  #define WIFI_EXTRA_ANNO_OFFSET                16
-#define WIFI_EXTRA_ANNO_SIZE           24
+#define WIFI_EXTRA_ANNO_SIZE           28
  #define WIFI_EXTRA_ANNO(p)            ((click_wifi_extra *) ((p)->anno_u8() + 
WIFI_EXTRA_ANNO_OFFSET))

  // byte 16
diff --git a/include/clicknet/wifi.h b/include/clicknet/wifi.h
index 4612e1f..b8d8ab7 100644
--- a/include/clicknet/wifi.h
+++ b/include/clicknet/wifi.h
@@ -31,6 +31,9 @@ struct click_wifi_extra {
    uint32_t magic;
    uint32_t flags;

+  uint16_t channel;
+  uint16_t fhss;
+
    uint8_t rssi;
    uint8_t silence;
    uint8_t power;

_______________________________________________
click mailing list
[email protected]
https://amsterdam.lcs.mit.edu/mailman/listinfo/click

Reply via email to