Skip to content

Commit

Permalink
Merge pull request #21 from niclabs/feat-lost-fragments
Browse files Browse the repository at this point in the history
Functional with no errors
  • Loading branch information
felipe-canales committed Jun 16, 2021
2 parents 51a1e73 + 13342fa commit 59bc46f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,15 @@ def generate_message(self, mtu):
self._logger_.schc_message(message)
return message
else:
return None
ack = SCHCAck(
rule_id=self.sm.__rule_id__,
protocol=self.sm.protocol.id,
c=True,
dtag=self.sm.__dtag__,
w=self.sm.__cw__
)
ack.add_padding()
return ack
else:
return None

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ def __generate_tiles__(self):
self._logger_.debug("{} tiles generated".format(len(sm.tiles)))
self.sm.state = self.sm.states["sending_phase"]
self.sm.state.enter_state()
self.sm.message_to_send.clear()
return

class SendingPhase(SCHCSender.SenderState):
Expand Down Expand Up @@ -184,6 +185,7 @@ def receive_schc_ack(self, schc_message):
self.sm.__cw__ = schc_message.header.w.w
self.sm.state = self.sm.states["resending_phase"]
self.sm.state.enter_state()
self.sm.message_to_send.clear()
return
else: # self.sm.__cw__ == schc_message.header.w.w:
if schc_message.header.c.c:
Expand Down Expand Up @@ -213,6 +215,7 @@ def receive_schc_ack(self, schc_message):
self.sm.retransmission_timer.stop()
self.sm.state = self.sm.states["resending_phase"]
self.sm.state.enter_state()
self.sm.message_to_send.clear()
return
else:
self.sm.state = self.sm.states["error"]
Expand All @@ -230,6 +233,7 @@ def receive_schc_ack(self, schc_message):
self.sm.state = self.sm.states["resending_phase"]
self.sm.retransmission_timer.stop()
self.sm.state.enter_state()
self.sm.message_to_send.clear()
return
else:
self.sm.sent_tiles.clear()
Expand All @@ -238,6 +242,7 @@ def receive_schc_ack(self, schc_message):
self.sm.__cw__ += 1
self.sm.__fcn__ = self.sm.protocol.WINDOW_SIZE - 1
self.sm.state.enter_state()
self.sm.message_to_send.clear()
return

def on_expiration_time(self, alarm):
Expand Down

0 comments on commit 59bc46f

Please sign in to comment.