-
Notifications
You must be signed in to change notification settings - Fork 4
Updated Layer 2 code with RS <-> DS sequence tracking and error correction #101
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Checks on making sure packets are received in order and inside the current receive window.
Counts packets used to know how much to advance the window start.
…rate tx one later.
Adding simple utility functions. Trimming down module names in specs.
…q, for packets outside the current window and out of sequence packets.
Structure and error checking code for ensuring incoming packets are in the proper order. The code checks that there are no pending packets before the received packets, and if there are out of order packets it returns the action to do, which will be translated into a function call.
Formatting changes. Adding packet numbers to logging of acks and wacks.
until acked.
Add packets to cache on original transmit, delete on ack, resend on nakcce.
its own GenServer, Transmitter. It checks to see if the RS is ready to accept packets before sending them.
Transmitter now keeps track of when a nakcce is replied to, and doesn't reply to a nakcce on the same packet.
if acks have already been sent to RS.
if acks have already been sent to RS. If DS gets a wackpk on a packet sequence but DS already sent an ackpkt, DS just sends another ackpkt. Fixed the internal typo, nakccc -> nakncc.
…t, plus the time of the last one sent so DS knows when to send one. Added the check in the main loop to see if it's time to send any wackpk's.
…k limit exceeded message. Handle the wackpk limit exceeded (:wp_limit_exceeded) message to know to close this connection.
Set so that wackpk attempts @wack_threshold (4) times correctly.
…tState. The tuple was getting too many members to keep track of.
Using rs_buf to keep the list of "starting unacked" list of packets in case we get a rxmitp. After each ack, recalculate the rs_buf, trimming acked packets from the head of the list. If we get a rxmitp, send all the packets in rs_buf.
…eceive window then we send a rxmitp and we don't move up the receive window.
transmission errors in both directions. Currently no errors in tests.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Added code to keep track of sequence packets traveling between RS and DS, with sending proper error codes to RS when communication is disrupted.