Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Link layer interfaces #460

Merged
merged 6 commits into from
Mar 1, 2014
Merged

Link layer interfaces #460

merged 6 commits into from
Mar 1, 2014

Conversation

miri64
Copy link
Member

@miri64 miri64 commented Dec 20, 2013

Currently every module above link layer defines their ways to communicate with the transceivers. This results e. g. that the sixlowpan module to this day basically just speaks to cc1100 (and if not, it treets the transceiver like one). To abstract from this I introduced an interface layer similar to the network interfaces in unixoid operating systems. It is basically a wrapper for the transceiver module, with the capability to associate certain upper layer addresses with the a transceiver.

@mehlis
Copy link
Contributor

mehlis commented Dec 21, 2013

@authmillenon let's put the discussion about this multiplexer in the next year.

@miri64
Copy link
Member Author

miri64 commented Dec 22, 2013

It was not meant for this release anyways ;-)

@miri64
Copy link
Member Author

miri64 commented Dec 23, 2013

No longer WIP. Test project is des-testbed/RIOT-projects#84

@miri64
Copy link
Member Author

miri64 commented Dec 27, 2013

Added some more functions and make shell commands (untested)

@miri64
Copy link
Member Author

miri64 commented Jan 21, 2014

Again WIP!

miri64 pushed a commit to miri64/RIOT that referenced this pull request Jan 24, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
miri64 pushed a commit to miri64/RIOT that referenced this pull request Jan 24, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
miri64 pushed a commit to miri64/RIOT that referenced this pull request Jan 24, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
miri64 pushed a commit to miri64/RIOT that referenced this pull request Jan 27, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
miri64 pushed a commit to miri64/RIOT that referenced this pull request Jan 27, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
@mehlis
Copy link
Contributor

mehlis commented Jan 27, 2014

style changes in own commit
in some files your "@author" field is missing

miri64 pushed a commit to miri64/RIOT that referenced this pull request Jan 31, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
@miri64
Copy link
Member Author

miri64 commented Jan 31, 2014

@mehlis which style changes (apart from the ones introduced in #557 on which this PR is dependent) do you mean exactly?

miri64 pushed a commit to miri64/RIOT that referenced this pull request Feb 1, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
miri64 pushed a commit to miri64/RIOT that referenced this pull request Feb 2, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
@miri64
Copy link
Member Author

miri64 commented Feb 2, 2014

Again no longer WIP

@miri64
Copy link
Member Author

miri64 commented Feb 2, 2014

Known issue: build test fails for all boards where I don't know the transceiver.

@LudwigKnuepfer
Copy link
Member

Known issue: build test fails for all boards where I don't know the transceiver.

How about implementing #432

@miri64
Copy link
Member Author

miri64 commented Feb 3, 2014

The problem is that the modules for the radio drivers are not added in the makefile ;) so your proposal would not work either (i'm technically doing this in auto_init)

miri64 pushed a commit to miri64/RIOT that referenced this pull request Feb 3, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
@LudwigKnuepfer
Copy link
Member

Your answer is due to a lack of creativity when reading the issue ;-) Let's discuss this over at that issue.

miri64 pushed a commit to miri64/RIOT that referenced this pull request Feb 4, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
@miri64
Copy link
Member Author

miri64 commented Feb 4, 2014

Rebased and changing NET_IF_L3P_ a bit.

mesg.content.ptr = (char *) &tcmd;

if (argc > 1) {
a = atoll(argv[1]);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

RIOT/sys/shell/commands/sc_transceiver.c:100: undefined reference to atoll'
on MSP-430 platforms.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed.

@OlegHahm
Copy link
Member

On MSB-A2 and examples/default
USEMODULE+=net_if PORT=/dev/ttyUSB0 BOARD=msba2 make

ifconfig 0
2014-02-27 16:32:52,440 - INFO # > ifconfig 0
2014-02-27 16:32:52,442 - INFO # Error reading interface 0

Rest seems to work fine.

miri64 pushed a commit to miri64/RIOT that referenced this pull request Feb 27, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
@miri64
Copy link
Member Author

miri64 commented Feb 27, 2014

@OlegHahm on current version it is working fine.
I redifined how net_if_get_pan_id() works on platforms without IEEE 802.15.4, so now it should not be a problem anymore.

@@ -0,0 +1,50 @@
####
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Obsolete style test Makefile

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not good enough - have a look at the other test Makefiles, or this: #759

@OlegHahm
Copy link
Member

For msp-430:

inet_pton.c:186:9: error: unknown type name `ssize_t'

I guess this needs an #include "kernel.h"

@miri64
Copy link
Member Author

miri64 commented Feb 27, 2014

Not part of this PR, but here is the fix: #808.

@OlegHahm
Copy link
Member

Wouldn't it make more sense to have this as a part of this PR (and squashed into one of it's commits) to avoid non-compilable revisons (which are nasty for git bisect)?

@OlegHahm
Copy link
Member

Or we merge #808 first... ;)

@miri64
Copy link
Member Author

miri64 commented Feb 28, 2014

merge #808 first ;-)

int iface = net_if_init_interface(0, transceivers);

if (iface >= 0) {
DEBUG("Interface %d initialized\n", iface)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

; missing

miri64 pushed a commit to miri64/RIOT that referenced this pull request Feb 28, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
@OlegHahm
Copy link
Member

Apart from the missing ; in DEBUG code: ACK.

Ready to be merged in my eyes.

@miri64
Copy link
Member Author

miri64 commented Feb 28, 2014

(Don't forget: without #644 the IoT network stack won't work)

@OlegHahm
Copy link
Member

Thanks for the reminder. I'll try to review the other two PRs today and would suggest to merge them within a short time frame.

miri64 pushed a commit to miri64/RIOT that referenced this pull request Feb 28, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
@miri64
Copy link
Member Author

miri64 commented Feb 28, 2014

@OlegHahm please comment on file changes, not on commits ;-)

@@ -102,3 +102,15 @@ ifneq (,$(filter vtimer,$(USEMODULE)))
USEMODULE += timex
endif
endif

ifneq (,$(findstring net_if,$(USEMODULE)))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use filter instead

Martin Lenders and others added 5 commits February 28, 2014 23:13
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460

export INCLUDES += -I$(RIOTBASE)/sys/net/include

ifeq ($(BOARD),msba2)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is superfluous.

miri64 added a commit that referenced this pull request Mar 1, 2014
@miri64 miri64 merged commit eaa8660 into RIOT-OS:master Mar 1, 2014
@miri64 miri64 deleted the define_ll_ifs branch March 1, 2014 14:46
kaspar030 pushed a commit to kaspar030/RIOT that referenced this pull request Apr 3, 2014
IEEE 802.15.4 has two addressing modes: 16-bit short and the device's
EUI-64. Currently RIOT supports only sending of packets with 16-bit
short addresses via the transceiver interface. This patch allows at
least for the radio chips that support IEEE 802.15.4 to let the
application/upper layer decide which addressing mode to use.

Upper layer implementation will be implemented in follow-up PR to RIOT-OS#460
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants