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

TCPlp #23

Open
wants to merge 3 commits into
base: hamilton-combined-v8.0
Choose a base branch
from
Open

Conversation

samkumar
Copy link

I rebased TCP, along with the duty-cycling updates I made when working on the paper. Make sure to merge in the duty-cycling protocol first (and prefer my code if there are any conflicts, since my code is most recent).

samkumar added 3 commits May 12, 2017 18:40
…scheduler and condition variable implementation

The original commits are:

Added FreeBSD TCP code and very basic integration into GNRC (doesn't compile yet)

Add dummy method stubs and made modifications so that the code compiles; still doesn't link

Fix some linker problems

Fixed module definitions so that the code compiles

Implement receipt of packets from lower layer

Modify FreeBSD code to send packets using pktsnips

Use consistent errno.h file

Some more progress

Implemented TinyOS-style scheduler (compiles, but not tested yet)

Stub the remaining functions

Debug task scheduler

Start working on socket allocator

Implement remaining functions for socket allocator

Define external API in header file for TCP

Delete unnecessary file and add some (coarse) synchronization to the TCP module

Check the checksum for received segments

Reorganize the code a bit, and fix bugs

Fix bugs in TCP segment reception

Fix bugs interfering with SYN-ACK retransmission

Start implementing conn API for TCP

Implement condition variable

More work on conn API

More work on conn interface

Add memmgr-based zone allocator for TCP conn API

Use union-based conn tcp structure

Implemented all of conn except for send

Preliminary implementation of send capability in conn API

Fix memory leak

Tie conn API logic into posix_sockets

Fix bugs, and accept on ACK instead of SYN-ACK

Got send/recv somewhat working

Fix some bugs

Update to new APIs after rebasing

Fix race condition in initialization of TCP packet loop

Prevent radio from going to sleep after send

Fix some resource bugs in TCP Conn API implementation

Fix bug in RIOT that prevents socket 0 from working properly

Fix more bugs

Implemented sock bindings for TCP in posix_sockets.c
Also fixed some other miscellaneous errors that came up along the way. Compiles and linkes, but is not yet tested.

Fix bugs found during testing

Modify duty-cycling code to allow for Router - Router TCP connections
Also fix many bugs in TCP and elsewhere

Implement link-layer retransmission and software CSMA logic

Commit remaining code and make CSMA/retries configurable in periph_conf.h

Fix issue in software CSMA implementation

Add support for REthos for border router

Allow broadcast packets to be sent (without queueing)

Fix bug in handling of broadcast

Fix memory leaks in duty-cycled router

Use autoconf bootstrapping

Make autoconf_onehop more flexible

Fix concurrency bugs in link retry/software CSMA implementation

Fix some bugs in FreeBSD TCP
These bugs were discovered when testing interoperability with Linux

Fix major memory management problem in design of sock layer for tcp_freebsd

Fix concurrency issue in sock_tcp_freebsd zone allocator

Change starting MSS for TCP

Fix bug in gnrc_netdev2_duty_router.c

Allow for implicit bind in FreeBSD TCP

Fix minor bug in FreeBSD TCP sock layer

Increase queue_size

Fix bug in link-layer so framebuffer is not overwritten while receiving

Fix race condition in _xtimer_set_absolute

Adjust MSS constants for Hamilton experiments

Bugfixes and optimizations found during experiments

Some progress on duty-cycling

Appears to be quite stable

Commit additional modifications needed for duty-cycling

Further improvements to duty-cycling (and good TCP throughput!)

Make duty_router work again
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.

1 participant