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:
# Send anything we can (or an empty frame if we need to send rx credits)
rx_credits_needed = self.rx_credits_needed()
while (self.tx_buffer and self.tx_credits > 0) or (
rx_credits_needed > 0 and self.tx_credit > 0
):
while (self.tx_buffer and self.tx_credits > 0) or rx_credits_needed > 0:
# Get the next chunk, up to MTU size
if rx_credits_needed > 0:
chunk = bytes([rx_credits_needed]) + self.tx_buffer[: self.mtu - 1]
self.tx_buffer = self.tx_buffer[len(chunk) - 1 :]
chunk = bytes([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:
chunk = self.tx_buffer[: self.mtu]
self.tx_buffer = self.tx_buffer[len(chunk) :]