Skip to contentSkip to conversation

reading RSSI value

DISCUSSION [email protected] 2 participants 5 messages Jan 21, 2018 – Jan 24, 2018 IEEE 802.15.4

lore
Share & tools
lore
#0 lore raw

Hello

Is it possible to somehow read RSSI (Received Signal Strength indicator) value for each ieee802154 frame received using raw socket? Quick grepping in kernel and wpan-tools sources says no, but just wanted to confirm. Could energy detection level value used instead? Also, is it possible to set transmitter power from userspace?

Thanks

Anton

maintainer
#1 lore raw

Hi,

2018-01-21 7:24 GMT-05:00 <[email protected]>:

Quoted 4 lines

Hello

Is it possible to somehow read RSSI (Received Signal Strength indicator) value for each ieee802154 frame received using raw socket? Quick grepping in kernel and wpan-tools sources says no, but just wanted to

One note about raw sockets: you should use AF_PACKET RAW as socket type.

The answer is no. A single RSSI value of a frame says nothing about something... We want to collect them in kernelspace e.g. wireless station dump and make some mapping from $NODE_ADDR (complicated because short/extended mapping).
There exists some thesis branch on github which I did for my "thesis" but not ready to bring upstream at all...

Quoted 1 line

confirm. Could energy detection level value used instead? Also, is it possible to set transmitter power

Also no energy detection and no LQI...

Transmit power is possible (depends on driver support), but not per frame...

- Alex

maintainer
#2 lore raw

Hi,

2018-01-21 12:59 GMT-05:00 Alexander Aring <[email protected]>:

Quoted 17 lines

Hi,

2018-01-21 7:24 GMT-05:00 <[email protected]>:

Quoted 4 lines

Hello

Is it possible to somehow read RSSI (Received Signal Strength indicator) value for each ieee802154 frame received using raw socket? Quick grepping in kernel and wpan-tools sources says no, but just wanted to

One note about raw sockets: you should use AF_PACKET RAW as socket type.

The answer is no. A single RSSI value of a frame says nothing about something... We want to collect them in kernelspace e.g. wireless station dump and make some mapping from $NODE_ADDR (complicated because short/extended mapping).
There exists some thesis branch on github which I did for my "thesis" but not ready to bring upstream at all...

Quoted 6 lines
Quoted 1 line

confirm. Could energy detection level value used instead? Also, is it possible to set transmitter power

Also no energy detection and no LQI...

Transmit power is possible (depends on driver support), but not per frame...

got a new idea about to handle this per frame. Talked with one of the TC maintainers today... I think it would be nice to have a TC action where you can set a transmit power per classifier... not sure there exists many way how to handle it. Also there was an idea according to 6lowpan to handle it per ndisc entry. :-/

If you really want to set it per frame. 802.11 people might be interessted in the "wireless tx power TC action" as well...

- Alex

#3 lore raw
Quoted 33 lines · Alexander Aring

Hi,

2018-01-21 12:59 GMT-05:00 Alexander Aring <[email protected]>:

Quoted 17 lines

Hi,

2018-01-21 7:24 GMT-05:00 <[email protected]>:

Quoted 4 lines

Hello

Is it possible to somehow read RSSI (Received Signal Strength indicator) value for each ieee802154 frame received using raw socket? Quick grepping in kernel and wpan-tools sources says no, but just wanted to

One note about raw sockets: you should use AF_PACKET RAW as socket type.

The answer is no. A single RSSI value of a frame says nothing about something... We want to collect them in kernelspace e.g. wireless station dump and make some mapping from $NODE_ADDR (complicated because short/extended mapping).
There exists some thesis branch on github which I did for my "thesis" but not ready to bring upstream at all...

Quoted 6 lines
Quoted 1 line

confirm. Could energy detection level value used instead? Also, is it possible to set transmitter power

Also no energy detection and no LQI...

Transmit power is possible (depends on driver support), but not per frame...

got a new idea about to handle this per frame. Talked with one of the TC maintainers today... I think it would be nice to have a TC action where you can set a transmit power per classifier... not sure there exists many way how to handle it. Also there was an idea according to 6lowpan to handle it per ndisc entry. :-/

Quoted 4 lines

If you really want to set it per frame. 802.11 people might be interessted in the "wireless tx power TC action" as well...

- Alex

But changing transmit power is possible in runtime, isn't it? I mean, without bringing interface down/up. Or not?
Is it supported by at86rf230 driver for at86rf212 chip? It seems that yes

Anton

maintainer
#4 lore raw

Hi,

2018-01-24 12:24 GMT-05:00 <[email protected]>:

Quoted 37 lines · Alexander Aring
Quoted 36 lines

Hi,

2018-01-21 12:59 GMT-05:00 Alexander Aring <[email protected]>:

Quoted 17 lines

Hi,

2018-01-21 7:24 GMT-05:00 <[email protected]>:

Quoted 4 lines

Hello

Is it possible to somehow read RSSI (Received Signal Strength indicator) value for each ieee802154 frame received using raw socket? Quick grepping in kernel and wpan-tools sources says no, but just wanted to

One note about raw sockets: you should use AF_PACKET RAW as socket type.

The answer is no. A single RSSI value of a frame says nothing about something... We want to collect them in kernelspace e.g. wireless station dump and make some mapping from $NODE_ADDR (complicated because short/extended mapping).
There exists some thesis branch on github which I did for my "thesis" but not ready to bring upstream at all...

Quoted 6 lines
Quoted 1 line

confirm. Could energy detection level value used instead? Also, is it possible to set transmitter power

Also no energy detection and no LQI...

Transmit power is possible (depends on driver support), but not per frame...

got a new idea about to handle this per frame. Talked with one of the TC maintainers today... I think it would be nice to have a TC action where you can set a transmit power per classifier... not sure there exists many way how to handle it. Also there was an idea according to 6lowpan to handle it per ndisc entry. :-/

If you really want to set it per frame. 802.11 people might be interessted in the "wireless tx power TC action" as well...

Quoted 7 lines
Quoted 1 line

- Alex

But changing transmit power is possible in runtime, isn't it? I mean, without bringing interface down/up. Or not?
Is it supported by at86rf230 driver for at86rf212 chip? It seems that yes

no, but this has only one reason currently why we allow this only on ifdown... we need to set the txpower for next transmit. We don't do a transmit power setting WHILE the transceiver is actually sending, this ends mostly in some UNDEF behavior of transceivers (the vendors doesn't say anything about that handling in datasheets and it sounds fragile).
BUT this will not be solution to make in userspace something like:

set_power(x);
send_frame(....);
set_power(y);
send_frame(....);

Such use case can be done by some another ideas with sendmsg() CMSG OR what I said before by a TC action.

- Alex