updated per PR input

This commit is contained in:
graynode
2025-10-24 10:09:02 -04:00
parent 9601c7f287
commit 4b25b3581d

View File

@@ -671,15 +671,17 @@ class DLC(utils.EventEmitter):
def process_tx(self) -> None: def process_tx(self) -> None:
# Send anything we can (or an empty frame if we need to send rx credits) # Send anything we can (or an empty frame if we need to send rx credits)
rx_credits_needed = self.rx_credits_needed() rx_credits_needed = self.rx_credits_needed()
while (self.tx_buffer and self.tx_credits > 0) or ( while (self.tx_buffer and self.tx_credits > 0) or rx_credits_needed > 0:
rx_credits_needed > 0 and self.tx_credit > 0
):
# Get the next chunk, up to MTU size # Get the next chunk, up to MTU size
if rx_credits_needed > 0: if rx_credits_needed > 0:
chunk = bytes([rx_credits_needed]) + self.tx_buffer[: self.mtu - 1] chunk = bytes([rx_credits_needed])
self.tx_buffer = self.tx_buffer[len(chunk) - 1 :]
self.rx_credits += rx_credits_needed self.rx_credits += rx_credits_needed
tx_credit_spent = len(chunk) > 1 if self.tx_buffer and self.tx_credits > 0:
chunk += self.tx_buffer[: self.mtu - 1]
self.tx_buffer = self.tx_buffer[len(chunk) - 1 :]
tx_credit_spent = True
else:
tx_credit_spent = False
else: else:
chunk = self.tx_buffer[: self.mtu] chunk = self.tx_buffer[: self.mtu]
self.tx_buffer = self.tx_buffer[len(chunk) :] self.tx_buffer = self.tx_buffer[len(chunk) :]